Bonjour
Est-il possible d’arrêter la fonction lié a des capteurs .
Je m'explique:
Mon programme arduino est un serveur Web qui permet d’accéder à un fichier de données.
Toute les 15 minutes, via la fonction Millis, le fichier de données se ferme, le serveur Web se coupe et les lectures des capteurs se lancent.
J'aimerais , une fois les lectures de donnes effectuées que la fonction des capteurs se coupe car, sinon mon serveur Web n'est plus accessible.
Je vous mets une partie de mon code à partir de la fonction Mills, qui lance ensuite la reception des mesures d' un module radio qui réceptionne diverses données et d'un capteur BMP180.
if( millis() - previousMillis >= interval) {
previousMillis = millis();
webFile.close();
server.available().stop(); // fermeture du fichier DATA et arrêt du serveur Web
delay(1000);
{
mySwitch.enableReceive(0);
temporaryValue = mySwitch.getReceivedValue();
if(temporaryValue >= -300 && temporaryValue < 700){
t = temporaryValue /10; // réception des données temperature depuis module reception 433 Mgz//
Serial.println(t);
}
}
delay(1500);
{
SFE_BMP180 pressure;
pressure.begin();
status = pressure.startTemperature();
if (status != 0) {
delay(1000);
status = pressure.getTemperature(T1); // réception des données tu capteur BMP180
}
delay(1500);
webFile = SD.open("DATA.CSV", FILE_WRITE); // Ouverture du fichier DATA
delay(2000);
Serial.println(T1);
delay(100);
webFile.print(T1); // ecriture de la donnée sur le fichier DATA
webFile.println(";");
webFile.flush();
first = false;
webFile.close(); // fermeture du fichier de DATA
}
}
//delay(3000);
}
Voila l'idée:
if( millis() - previousMillis >= interval) {
previousMillis = millis();
webFile.close();
server.available().stop(); // fermeture du fichier DATA et arrêt du serveur Web
delay(1000);
{
mySwitch.enableReceive(0);
temporaryValue = mySwitch.getReceivedValue();
if(temporaryValue >= -300 && temporaryValue < 700){
t = temporaryValue /10; // réception des données temperature depuis module reception 433 Mgz//
Serial.println(t);
( fermeture de la fonction module radio ) ;
}
}
delay(1500);
{
SFE_BMP180 pressure;
pressure.begin();
status = pressure.startTemperature();
if (status != 0) {
delay(1000);
status = pressure.getTemperature(T1); // réception des données tu capteur BMP180
( fermeture de la fonction module BMP180 ) ;
}
delay(1500);
webFile = SD.open("DATA.CSV", FILE_WRITE); // Ouverture du fichier DATA
delay(2000);
Serial.println(T1);
delay(100);
webFile.print(T1); // ecriture de la donnée sur le fichier DATA
webFile.println(";");
webFile.flush();
first = false;
webFile.close(); // fermeture du fichier de DATA
}
}
delay(3000);
}
J'ai essayer de mettre par exemple une commande "pressure.begin().stop();" mais j'ai un message d'erreur lié je pense à la bibiliothèque
Merci d'avance pour votre aide
Jean-Christophe