Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Pflanzenmonitor mit Node_MCU ESP32
Stand Ende Januar 2020: Es würde gehen, wenn ich ihn nicht zum Schluß geschrottet hätte.
Aus China kam ein Pflanzenmonitor mit DHT11, ESP32. Man kann ihn finden, wenn man nach 'Higrow' sucht. Auf meinem steht aber www.diymore.cc drauf, auch wenn ich ihn auf deren Seite nicht finde. nach lesen einiger Informationen stellt es sich so dar, bevor ich anfange: Manche Hardware funktioniert nicht, wenn überhaupt, muss man mit DeepSleep arbeiten wegen der Lithium Ionen Batterie TR 18650, mit der das ganze betrieben wird. Auch bei DeepSleep verbrauchen die Sensoren 50mA Strom, da die nicht mit ausgeschaltet werden. Dazu müsste man einen MOSFET einbauen, was ich auch auf einer anderen Seite gefunden habe. Links stehen weiter unten. Um zu prüfen ob meine Hardware überhaupt funktioniert, muss man der Arduino IDE erst mal den NodeMCU ESP-32S beibringen. Beste Möglichkeit ist mittels Arduino IDE Boards Manager.
In den Arduino Einstellungen den Pfad https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json hinzufügen, dann im BoardManager das 'esp32' laden. Ich beginne mit der aktuellen 1.0.4 Version, wobei ich an anderer Stelle gelesen habe, dass der lieber bei 1.0.0. bleibt.
Bei Board die richtigen auswählen 'ESP32 Dev Module'.
Wenn kein Serieller Port angezeigt wird (unter OS X), muss man einen virtuellen installieren. Dazu die USB to UART Bridge VCP Drivers installieren.
Ich habe dann Meldungen der Art:
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room 4 load:0x40078000,len:9720 ho 0 tail 12 room 4 load:0x40080400,len:6352 entry 0x400806b8
bekommen. Vorschlag im Netz war, man sollte den Flash löschen, was nicht mit 'NodeMCU-32S' geht, den ich erst nutze. Mehr Einstellungen gibt es mit 'ESP32 Dev Module'. Da auch dort der Fehler kam, habe ich den Flash Mode von QIO auf DOUT geändert. Dann kam die Meldung ein Mal nicht mehr. Aber dann kam kein Loop und der Test Sketch läuft.
void setup() { Serial.begin(115200); sleep(1); Serial.println(); Serial.println("Setup..."); } void loop(){ Serial.println("Alle 10 Sekunden eine Zeile..."); sleep(10); }
DeepSleep
Hier habe ich gelesen, dass man vor dem DeepSleep erst WiFi abschalten muss, sonst wird mehr Strom verbraucht.
#include <esp_wifi.h> esp_wifi_stop(); esp_deep_sleep_start(); Mein Zusatz noch: if (WiFi.status() != WL_CONNECTED) WiFi.begin(ssid, password); bzw. WiFi.disconnect();
Batterie
Im ESP32 kann man wohl die Batterie nicht abfragen. Es gibt eine umdokumentierte Funktion, die aber nur bei angeschaltetem WiFi geht, was ich ja wohl habe, aber ungenau ist. Ich baue sie mal ein. Vorgeschlagen wird stattdessen ein Spannungsteiler und dann A/D-Wandler eines ESP-Pins benutzen.
int batterylevel; batterylevel = rom_phy_get_vdd33(); Serial.print((batterylevel / 100.0)); Serial.println("V\n");
Ich habe ihn mit einer GTF 9800mAh Batterie aus China laufen lassen. Ich brauchte nur irgendeine 18650 3.7v Li Batterie und die war billig. Inzwischen habe ich im Internet gefunden, was für ein Mist die ist. Macht aber aktuell nichts, bin ja noch am Testen.
Tests
Test 1: Alle 15 Sekunden: Aus dem DeepSleep aufwachen, Sensoren lesen, WLAN Verbindung aufbauen, zum Webserver posten, dort in eine Datei schreiben und dann wieder für 15 Sekunden in den DeepSleep. → Hat ca. 34 Stunden gehalten bei über 7000 Messungen. ⇒ Hochgerechnet käme man damit, wenn man nur Stündlich abfragt auf 9 Monate Batterielaufzeit, wenn da nicht das Problem der Sensoren wäre, die auch im DeepSleep 15mA und mehr fressen.
Test 2: Stromverbrauch. Batterie entfernt, Netzteil an die Pole, Multimeter dazwischen und dann hab ich statt max. 4 Volt wohl 12 Volt drauf gegeben. Ergebnis: In Ausgeschaltetem Zustand 500mA Verbrauch, ESP32 ging wohl noch, aber irgendwas war kaputt und ich konnte es nicht finden.
Ergebnis: Batteriehalter ausgebaut (ich kann nicht SMD löten), und als nächstes einen anderen Pflanzenwächter bestellt, der einen geringeren Ruhestrom haben soll. Ich melde mich wieder, wenn er da ist.
Januar 2020