Gast
#4524449
Hallo und frohe Ostern, über die Osterfeiertage habe ich mal versucht meinen Temperatur und Luftfeuchtesensor zu überarbeiten. Es werden alle paar Minuten die Daten eines DHT22 gemessen und mit einem ESP8266 ins Web geschickt. Zusätzlich messe ich die Versorgungsspannung über einen integrierten ADWandler. Das Programm läuft an sich schon seit längerem stabil. Das Programm läuft auf dem ESP den ich mit Arduino programiere. Nur jetzt wo ich ein "deep sleep" integrieren wollte läuft der Code nicht mehr. D.h. lege ich an die Schaltung eine Versorgungsspannung an, sendet der Sensor genau ein mal Daten ins Web, nach dem ersten deep sleep wird nur noch die Versorgungsspannung ins Web übertragen. Änderungen zu dem lauffähigen code: delay(); durch ESP.deepSleep ersetzt... Code: #include "DHT.h" //Library für den DHT #include <ESP8266WiFi.h> //Library für den ESP8266 #define DHTPIN 2 // Digitaleingang 2 wird für den DHT22 Sensor verwendet #define DHTTYPE DHT22 // Definieren, welcher Sensor verwendet wird: DHT 22 DHT dht(DHTPIN, DHTTYPE); ADC_MODE(ADC_VCC); // Umschalten des ADC auf interne Messung der Versorgungsspannung void updateThingspeak(String field1, String field2, String field3){ // Daten versenden } void setup() { delay(1000); dht.begin(); WiFi.begin(wlanName, wlanPasswort); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); delay(1000); float h = dht.readHumidity();; float t = dht.readTemperature(); float vcc = ESP.getVcc(); if (isnan(t) || isnan(h)) { Serial.println("Failed to read from DHT"); } updateThingspeak(String(t), String(h), String(vcc)); //Aufrufen der Funktion Am Thingspeak-Server Anmelden und Daten Senden Strings übergeben! delay(100); ESP.deepSleep(60000000,WAKE_RF_DEFAULT); // 1s 60 5 = 5 Min. (Deep sleep ist in mikrosekunden) delay(100); // wird benötigt damit nicht die Befehle weiter laufen bis der Controller in den deep sleep geht } void loop() { }