Salut à toutes et à tous et merci de votre présence. Alors, je suis novice dans le monde de la programmation. Je suis donc censé réaliser cette expérience et la documenter, alors, j’ignore si une personne aurait une idée ou pourrait m’orienter avec des liens,codes…
Matériels : Carte de développement du microcontrôleur ESP32 NodeMCU
Capteur d’humidité avec sortie numérique et analogique
Capteur capacitif d’humidité du sol v1.0
Capteur capacitif d’humidité du sol v2.0
Carte enfichable de laboratoire
Câble de liaison
DHT22 AM2302 Capteur de température et d’humidité de l’air
Samsung INR 18650–25R 3,6V-3,7V 2500mAh - Batterie lithium-ion rechargeable
SparkFun Soil Moisture Sensor (avec bornes à vis)
18650 Battery Shield V8
Sujet: Mise en place d’un capteur d’humidité autarcique qui mesure plusieurs fois par jour l’humidité du sol et enregistre les données. enregistre le résultat de la mesure dans une série temporelle. Le capteur peut être réalisé à l’aide d’un ESP32, car celui-ci dispose d’un mode de sommeil profond économe en énergie. Le montage doit être réalisé à l’aide d´une armoire climatique ce qui permettra de déterminer le nombre de mesures possibles dans une zone de dans une plage de température de -10◦C à 30◦C.
Logiciel : création du logiciel nécessaire à l’enregistrement et au stockage des données (par ex. par exemple à l’aide de l’IDE Arduino).
Logiciel : la version finale du logiciel élaboré est chargée sur le microcontrôleur. Calibrage:Calibrage du capteur par comparaison avec des valeurs d’humidité connues. Enregistrement des données. Enregistrement de données dans l’armoire climatique, mesure de la consommation d’énergie lors de la mesure avec réveil du mode Deep-Sleep et remise en mode Deep-Sleep après la mesure. Mesure de la dérive. Evaluation: Analyse des données obtenues dans la tâche 4. Estimation de la durée de mesure moyenne pour 3, 5 et 10 mesures par jour.
J´avais essayé un code complet mais rien ne semblait vraiment fonctionnel du coup maintenant j´essaie progressivement d´écrire un code complet et j´ai commencé par celui de la sd carte mais lorsque je lance le programme on me dit: 10:44:16.812 -> error opening file in SD card 10:44:17.799 -> error opening test1.txt 10:44:17.799 -> error opening file in SD card 10:44:18.771 -> error opening test1.txt 10:44:18.803 -> error opening file in SD card 10:44:19.783 -> error opening test1.txt 10:44:19.815 -> error opening file in SD card 10:44:20.773 -> error opening test1.txt 10:44:20.805 -> error opening file in SD card 10:44:21.799 -> error opening test1.txt 10:44:21.799 -> error opening file in SD card 10:44:22.799 -> error opening test1.txt 10:44:22.799 -> error opening file in SD card 10:44:23.778 -> error opening test1.txt 10:44:23.810 -> error opening file in SD card 10:44:24.799 -> error opening test1.txt
puis lorsque j´enleve la sd carte et met en machine je ne vois qu´une seule valeur qui s´affiche donc je ne connais pas la provenance j´ai essayé de la formater mais elle refuse.
#include <SPI.h> #include <SD.h>
File myFile; const int CS = 5; const char filePath [] = "test3.txt"; int i = 0;
void WriteFile(const char * message){ // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. myFile = SD.open(filePath, FILE_WRITE);
// if the file opened okay, write to it: if (myFile) { char buffer[50]; sprintf (buffer, "Writing to %s in SD card: %d…", filePath, ++i); Serial.println(buffer); myFile.println(message); // close the file: myFile.close(); Serial.println("done."); } else { // if the file didn’t open, print an error: Serial.println("error opening test1.txt"); } }
void ReadFile(){ // re-open the file for reading: myFile = SD.open(filePath); if (myFile) { Serial.println("test1.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else { // if the file didn’t open, print an error: Serial.println("error opening file in SD card"); } }
void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only }
Serial.print("Initializing SD card…");
if (!SD.begin(CS)) { Serial.println("initialization failed!"); while (1); } Serial.println("initialization done."); }
void loop() { // nothing happens after setup WriteFile("meassage variable work."); ReadFile(); delay(1000); }
Merci de bien vouloir m´aider ,me conseiller,m´orienter si possible . Bien de choses à toutes et à tous.