Benutzer-Werkzeuge

Webseiten-Werkzeuge


pflanzen_esp32

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
pflanzen_esp32 [2020/01/18 20:36] varnholtpflanzen_esp32 [2020/01/22 19:21] (aktuell) varnholt
Zeile 1: Zeile 1:
 ===== Pflanzenmonitor mit Node_MCU ESP32 ===== ===== Pflanzenmonitor mit Node_MCU ESP32 =====
 +
 +Stand Ende Januar 2020: Es würde gehen, wenn ich ihn nicht zum Schluß geschrottet hätte (s.u.). Neuer, anderer, besserer ist auf dem Weg.
  
 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 [[https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md|Arduino IDE Boards Manager]]. 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 [[https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md|Arduino IDE Boards Manager]].
Zeile 5: Zeile 7:
 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. 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 NodeMCU-32S.+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 [[https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers|USB to UART Bridge VCP Drivers]] installieren. Wenn kein Serieller Port angezeigt wird (unter OS X), muss man einen virtuellen installieren. Dazu die [[https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers|USB to UART Bridge VCP Drivers]] installieren.
 +
 +Ich habe dann Meldungen der Art:
 +<code>
 +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
 +</code>
 +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.
 +<code>
 +void setup()
 +{
 +  Serial.begin(115200);
 +  sleep(1);
 +  Serial.println();
 +  Serial.println("Setup...");
 +}
 +
 +void loop(){
 +  Serial.println("Alle 10 Sekunden eine Zeile...");
 +  sleep(10);
 +  }
 +</code>
 +
 +==== DeepSleep ====
 +
 +[[https://github.com/espressif/arduino-esp32/issues/1113|Hier]] habe ich gelesen, dass man vor dem DeepSleep erst WiFi abschalten muss, sonst wird mehr Strom verbraucht.
 +<code>
 +#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();
 +</code>
 +
 +==== 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.
 +<code>
 +int batterylevel; 
 +batterylevel = rom_phy_get_vdd33();
 +Serial.print((batterylevel / 100.0));  
 +Serial.println("V\n");
 +</code>
 +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
 +
pflanzen_esp32.1579379793.txt.gz · Zuletzt geändert: 2020/01/18 20:36 von varnholt