Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Pflanzenmonitor mit Node_MCU ESP32
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 ein umdokumentierte Funktion, die aber nur bei angeschaltetem WiFi geht, was ich ja wohl habe, aber ungenau ist. Ich baue sie mal ein.
int batterylevel; batterylevel = rom_phy_get_vdd33(); Serial.print((batterylevel / 100.0)); Serial.println("V\n");
Januar 2020