Bonjour à Tous,
J'ai un projet ( uPesy ESP32C3 Basic Low Power ) à l'extérieur qui me permet de collecter quelques données comme :
T° eau
Humidité de l'air
Température de l'air
Niveau Batterie
Ces données sont transférées vers Thingspeak pour enregistrement via le protocole MQTT (extrait de l'envoi des infos) :
Ce que je souhaite faire , ce serait d'avoir la possibilité de recueillir ces mêmes données pour les afficher en local sur (par ex) un ESP32-2432S028R
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 if (isWifiStarted) { while (WiFi.status() != WL_CONNECTED) { Serial.write('.'); delay(500); } Serial.println(" => Connecté"); Serial.print("adresse IP:"); Serial.println(WiFi.localIP()); isWifiReady = true; if (isWifiStarted) { pubSubclient.setServer(server, 1883); D_timestamp(); pubSubclient.connect(MQTT_CLIENT, MQTT_USER, MQTT_PASSWORD); delay(10); D_timestamp(); D_println("MQTT connected"); pubSubclient.loop(); D_print("MQTT Publish: "); D_println(MQTT_TOPIC); String topicString ="channels/" + String(MQTT_TOPIC) + "/publish"; String dataString = String("field1=" + String(temperature) + "&field2=" + String(humidity) + "&field3=" + String(batteryPercentage) + "&field4=" + String(piscine)); pubSubclient.publish(topicString.c_str(),dataString.c_str()); delay(100); // si la mémoire RTC n'était pas valide, on la met à jour pour le prochain réveil if (!isRtcValid) { rtcData.channel = WiFi.channel(); memcpy(rtcData.ap_mac, WiFi.BSSID(), 6); // les 6 octets de l'adresse mac // puis on met à jour le CRC dans la structure rtcData.crc32 = calculateCRC32MPGE2((uint8_t*)&rtcData, sizeof rtcData - sizeof(uint32_t)); Serial.println(" Sauv config pour la prochaine fois en mémoire RTC. "); printStructure(rtcData); } } if (tensionBrute > seuilTensionBruteBasse) { D_timestamp(); D_println("Batterie OK. Dormir...."); D_printf("Battery Percentage: %i", batteryPercentage); Serial.flush(); esp_sleep_enable_timer_wakeup(300000000ull); // on programme un réveil pour dans 5mn (en µs) } else{ D_timestamp(); D_println("Batterie faible. Sommeil profond."); D_printf("Battery Percentage: %i", batteryPercentage); Serial.flush(); esp_sleep_enable_timer_wakeup(3600000000ull); // on programme un réveil pour dans 1h (en µs) } }
Quel serait selon vous l'architecture la plus appropriée de cet ESP32 pour réaliser ce projet
Merci par avance
Cordialement
pascal
Partager