NEWS
Wemos D1 Mini - Bewässerung - MQTT
-
Hallo,
ich freue mich auch über mehr Details am Wochenende. Schön, dass du den Thread noch aufgemacht hast.
Gruß
Pix
-
Kann mich meine Vorrednern nur anschließen bitte mehr !!!
Danke schon mal für die bisherigen Informationen.
Solche Anleitungen bringen einen manchmal auf ganz andere Ideen die nicht direkt mit der eigentlichen Anwendung zu tun haben.
LG Schubi.
-
So viel Zuspruch ehrt mich und ich freue mich was beitragen zu können.
Ein Hinweis vorweg. Für jedes von mir aufgelistetes Bauteil haben die Chinesen gefühlte 200 weitere Varianten. Aus meiner Sicht kann kann keine allgemeingültige, optimale Empfehlung abgeben werden. Bitte deshalb diese Auflistung, nur als Vorschläge verstehen. Sollte Jemand einen besseren Vorschlag oder Alternativen kennen, dann tragt das bitte hier ein. Ich habe mir in Aliexpress-jungles schon schwer genug getan. Die Links zum Aliexpress sind für die Orientierung angegeben. Ich habe davon gar nichts. Sollten es gewollt sein, dann können die Admins meine Links gegen Links mit Affiliaten austauschen.
Bei Unklarheiten und Fragen sag ich nur: FRAG NACH!
Bauteileliste:
-
Solarpanel: entweder ein Doppelpack mit 60x90mm 5V 150mA Link: https://www.aliexpress.com/item/2PCS-X- … 88637.html Preis: ca. 3,00 € Anmerkung: Bei dem Doppelpack muss noch eine Diode geschaltet werden. Dazu unter Verdrahtung etwas mehr.
-
oder 165x165mm 5V 840mA https://www.aliexpress.com/item/5V-5-5V … 10183.html Preis: ca. 7,50 €
-
Ein Set bestehend aus:https://www.aliexpress.com/item/0-9V-5V … 00384.html Preis: ca. 0,50 €
-
Akkulademodul TP4056 - von dem Teil gibt es grundsätzlich zwei Versionen. Beide werben mit Ladeschutz. Allerdings habe ich irgendwo gelesen, dass die Variante mit zwei waagerecht liegenden LEDs die bessere sein soll. Mein Know-How reicht dazu nicht aus dies zu beurteilen.
TP 4056 mit waagerechten LEDs
TP 4056 mit senkrechten LEDs
Wichtig: will man Li-Ion Akkus mit geringeren Ladestrom als 1A verwendet, muss man den einen SMD Widerstand (R3) ersetzen. Original ist der R3 mit 122 = 1200 Ohm = 1,2 kOhm für 1000mA Ladestrom verbaut. Hier die Tabelle für andere Ladeströme:
1,2 kOhm = 1000 mA
1,33 kOhm = 900 mA
1,5 kOhm = 780 mA
1,66 kOhm = 690 mA
2 kOhm = 580 mA
3 kOhm = 300 mA
4 kOhm = 400 mA
5 kOhm= 250 mA
10 kOhm = 130 mA
20 kOhm = 70 mA
30 kOhm = 50 mA -
USB Booster - 0.9V~5V 600MA Mini DC-DC
Die Aufgabe der Boosters (eigentlich eines Upsteppers) ist die Spannung bei konstanten 5V zu halten. Einige lassen ihn weg und verlassen sich auf den TP4056. Ich bin der Meinung, dass die Spannungsschwankungen bei dem TP4056 nicht gering sind und will lieber auf Nummer sicher gehen. Dabei IMHO spielt bei dieser Überlegung der Platzbedarf eine wichtigere Rolle, als der geringer Preis.
-
-
Li-Ion Akku - 3,7V, Bauform: 14500, Kapazität: Im höher umso besser! https://www.aliexpress.com/item/New-2pc … 35013.html Preis: ca. 3,20 €
Auf jeden Fall würde ich mindestens 1000mAh nehmen. Da Akkus nicht mit höheren Strom, als C, also die Kapazität geladen werden sollten (Haltbarkeit), muss man am 1000 mAh keine Änderungen an dem TP 4056 vornehmen. Außerdem lassen sich mit höheren Kapazitäten längere Sonnen-/Lichtarme-Stunden überbrücken.
Die Bauform 14500 beschreibt die Größe des Akkus. 145000 entspricht der Mignon also AA Zelle. Durchmesser: 14,3mm, Höhe 51mm. Diese Bauform ermöglicht uns die Nutzung leicht verfügbarer Batteriehalter, wie im nächsten Punkt beschrieben.
- Batteriehalterung für 1 x 14500 Akkus, AA. https://www.aliexpress.com/item/High-Qu … 02243.html Preis: ca. 0,40 €
- Temperatursensor. https://www.aliexpress.com/item/3In1-BM … 77783.html Preis: ca. 2,20 €
Auch hier gibt es mehrere Varianten. Vor allem mit 4 und mit 6 Beinchen. Auf beiden Varianten ist der BME280 Sensor von Bosch verbaut. Der Hauptunterschied liegt in der Kommunikation mit dem Board. Beide Varianten unterstützen den I2C Bus. Die 6 Bein Variante kann darüber hinaus noch einzeln angesprochen werden. Aufgrund seiner Größe, ziehe ich hier den Vierbeiner vor.
Meine bevorzugte Variante.
Braucht mehr Beinfreiheit.
- Bodenfeuchtesensor - https://www.aliexpress.com/item/NEW-Cap … 38686.html Preis: ca. 2,60 €
Grundsätzlich gibt es zwei Arten für die Messung der Bodenfeuchtigkeit. Die einfachste Methode ist den Widerstand zwischen zwei Punkten. Der Nachteil der Methode ist die Korrosion, die durch den fließenden Strom entsteht. Solche Sensoren lösen sich nach einigen Wochen auf. Einige Leute fahren deshalb etwas größere Geschütze auf:
(Quelle: http://www.gunook.com/machen-sie-ihren- … densensor/)Um diese Probleme zu vermeiden bevorzuge ich die kapazitive Messung, die mit dem vorgeschlagenen Sensor einfach zu realisieren ist. Beide Varianten müssen an den analogen PIN des ESP angeschlossen werden. Sie liefern bei mir einen relativen Wert zwischen ca. 780 (Sensor liegt auf dem Tisch) und ca. 400 (Sensor steht im einem Glas voll mit Wasser). Jeder sollte beide Messungen durchführen um die Extrempunkte zu bestimmen. Wie gesagt, es sind relative Werte, die von vielen Faktoren abhängig sind. Jeder muss selbst bestimmen beim welchen Wert, die Bewässerung ein- bzw. ausgeschaltet werden soll.
- ESP - Davon gibt es dutzende und ich werde mich nicht auf die Diskussion einlassen, welche Variante besser ist als die andere :D. Ich habe mich für einen Clone des Wemos D1 mini entschieden. https://www.aliexpress.com/item/D1-mini … 68489.html Preis: ca. 2,30 €
Gründe für meine Entscheidung:
* Kompaktheit/kleine Größe
* Schnelle Verfügbarkeit per Amazon (ja,ja, damals wollte ich es nicht glauben. Aber es lohnt sich wirklich direkt mehrere ESPs bei Ali zu bestellen, damit man immer einen parat hat!)
* Schnelle Programmierung. Das Aufspielen eines Sketches dauert bei mir etwa halb so lang wie bei einem NodeMCU. Und da ich den Code immer wieder verändern und testen will, spielt das eine Rolle für mich.
* Keine vorgelöteten Stiftleisten. Zum Entwickeln benutze ich einen ESP mit Beinchen. Später löte ich aus Platzgründen, die Kabeln direkt am ESP dran.
* Geringer Preis
* Ein ESP nackt bedeutet für mich zu viel Aufwand beim Programmieren, NodeMCU ist dafür zu groß.- Feuchtraum Abzweigdose - https://www.hornbach.de/shop/Feuchtraum … tikel.html Preis: ca. 0,50 €
<u><size size="150">Verdrahtung:</size></u>
<u><size size="150">Sketch:</size></u>
Hier mein Sketch. Es sind Fragmente aus verschiedenen Skripten, die ich geschrieben bzw. gefunden und analysiert habe. Mein Sketch ist bestimmt optimierungsbedürftig. Allerdings läuft der in meinem Kontext. <u>Verbesserungsvorschläge sind willkommen</u>.
Als MQTT Library habe ich https://github.com/256dpi/arduino-mqtt ausgewählt.
#include <wire.h> #include <spi.h> #include <adafruit_sensor.h> #include <adafruit_bme280.h> #include <esp8266wifi.h> #include <wificlient.h> #include <mqttclient.h> #define FORCE_DEEPSLEEP // DeepSleep wird aktiviert #define SEALEVELPRESSURE_HPA (1013.25) // Luftdruck bei N.n. in Deutschland #define DEEPSLEEPMIN 5 // Anzahl der Minuten für DeepSleep const char* ssid = "MeinSSId"; // SSId des WLANs const char* password = "MeinPasswort"; // WLAN Passwort const char* mqttuser = "mqttuser"; // Benutzername der MQTT-Instanz auf dem IoBroker const char* mqttpasswd = "mqttpasswort"; // Passwort der MQTT-Instanz auf dem IoBroker const char* mqttip = "aaa.bbb.ccc.ddd"; // IP Adresse des IoBrokers. WiFiClient net; MQTTClient mqtt; Adafruit_BME280 bme; // I2C unsigned long delayTime; void setup() { Serial.begin(9600); Serial.println("Start"); Serial.println(F("BME280 test")); bool status; status = bme.begin(); if (!status) { Serial.println("Probleme mit BME-280"); while (1); } WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); mqtt.begin(mqttip, net); // Verbindungsaufbau zu MQTT connect(); Serial.println("Weiter"); delayTime = 10000; } void loop() { // IoBroker Datenpunkte werden gefüllt mqtt.publish("Garten/Temperatur", String(bme.readTemperature())); mqtt.publish("Garten/Luftdruck", String(bme.readPressure() / 100.0F)); mqtt.publish("Garten/Hoehe ueber nN", String(bme.readAltitude(SEALEVELPRESSURE_HPA))); mqtt.publish("Garten/Luftfeuchtigkeit", String(bme.readHumidity())); mqtt.publish("Garten/ResetReason", ESP.getResetReason()); mqtt.publish("Garten/Bodenfeuchtigkeit", String(analogRead(0))); delay(1000); #ifdef FORCE_DEEPSLEEP // DeepSleep wird aktiviert Serial.println("DeepSleep 5min"); ESP.deepSleep(DEEPSLEEPMIN * 60 * 1000000); delay(100); #endif delay(delayTime); } void connect() { while (WiFi.waitForConnectResult() != WL_CONNECTED) { WiFi.begin(ssid, password); Serial.println("WLAN-Verbindung fehlgeschlagen. Wiederhole."); } Serial.print("IP Adresse: "); Serial.println(WiFi.localIP()); while (!mqtt.connect("ESP8266", mqttuser, mqttpasswd)) { // Verbindung zum MQTT wird hergestellt Serial.print("."); } Serial.println("Verbunden!"); }</mqttclient.h></wificlient.h></esp8266wifi.h></adafruit_bme280.h></adafruit_sensor.h></spi.h></wire.h>
Bitte beachten, dass die Brücke zwischen D0 und RST beim Flashen abgezogen werden muss. Anderenfalls wird der Flashvorgang abgebrochen. Man könnte auch mit einem Widerstand arbeiten, allerdings war mir der Aufwand zu groß. Zum Testen einfach die Zeile:
#define FORCE_DEEPSLEEP
auskommentieren. Dann wird kein Deepsleep durchgeführt, sondern ein delay von 10Sek. Später wenn alles fertig ist, die obere Zeile wieder ein-kommentieren.
Auswertung der Daten:
Die Datenpunkte werden unter mqtt.0->Garten->Temperatur usw. auf dem mqtt-Server abgelegt. Mit Hilfe von IoBroker bordeigenen Mitteln, SQL und Float kann man mit wenig Aufwand schöne Grafiken erzeugen.
Rot: Im höher um so trockener ist der Boden. Der steile Knick nach unten ist der Zeitpunkt an dem die Bewässerung gestartet wurde.Grün: Die starken Schwankungen nachmittags haben damit zu tun, dass in der Zeit die Sonne direkt auf die Box scheint. Nachdem Ich des Solarpanel von der Verteilerdose physikalisch getrennt habe (siehe Aufbau), sind die Ausschläge nicht ganz so stark.
Den Luftdruck habe ich nicht abgebildet. Die Schwankungen sind sehr gering und wenig spektakulär. Bei Bedarf kann eine Luftdruckkurve mit wenigen Klicks erzeugt werden.
Aufbau:
- Solarpanel
Wie ihr bestimmt schon bemerkt habt, ist das Foto oben ein Fake. Die Leistung eines kleines Solarpanels ist nicht ausreichend genug um die Akkus so aufzuladen, dass der ESP 24 Stunden durchhalten kann. Bei der Beschreibung der Bauteilen habe ich deshalb zwei Alternativen aufgeführt. Bei der Verwendung von zwei Solarpanelen muss eine Diode (1N4007) eingebaut werden.
Um die Solarpanele vor der Feuchtigkeit zu schützen, habe ich die Rückseite mit Panzertape abgeklebt.- Verteilerdose
Auf einer Seite der Dose habe ich eine schmalen Lücke für den Bodensensor ausgeschnitten. Danach mit reichlich Heißkleber verklebt.
Direkte Sonneneinstrahlung lässt die Temperatur in der Dose stark ansteigen (bis ca. 50°C). Um das zu vermeiden habe ich folgende Umbauten durchgeführt:
* Den BME280 Sensor habe ich auf den Boden der Dose gelegt. Darüber ein passend zugeschnittenes Stück Wellpappe gelegt, so dass nur die Leitungen zum ESP führen.
* Das Solarpanel habe ich ein paar cm vor der Dose gestellt. Damit erwärmt das recht heiße Panel die Dose nicht direkt und gleichzeitig spendet das Panel der Dose etwas Schatten. -
-
Bestellung für 13,90€ ist raus
Ich melde mich dann in 24-50 Tagen nochmal…
Hast mal den Luftdruck geloggt? Wie genau ist der?
-
Ich kann auf dem Verschaltungsplan nicht die Bezeichnungen erkennen. Ich habe auch eine adere wemos version. Sollte aber auch gehen, Oder?
Leider habe Ich vergessen den klimasensor zu bestellen. Geht és auch ohne? Hab nur einen dht11 rumliegen.
1146_15339220505601320126445.jpg -
Müsste nicht bei Verwendung von 2 Solarpanelen jedes über eine Diode geführt werden?
-
Ich versteh nicht mal warum da überhaupt eine Diode dazwischen soll, oder gibts hier ein Problem, wenn das erste Panel mehr Strom liefert als das zweite? Man bedenke immer den Spannungsabfall an der Diode, wenn ich hier ne "normale" Siliziumdiode verwende, sind schon 0,7V verbraten.
-
Hi Jan,
dazu verwenden man meistens Schottky-Dioden, der Spannungsabfall liegt dort bei 0,4V.
Bei Parallelschaltung entkoppelt man die einzelnen Solarmodule mit den Dioden, damit im Falle einer Verschattung einzelner Module die Spannung nicht einbricht! Nehmen wir mal an, Du hast zwei Solarmodule 12v 200mA.
Bei Parallelschaltung sollte in der Praxis am Ende 12V und 400 mA herauskommen. Jetzt ist ein Solarpanell verschattet und liefert nur 10V 100mA.
Damit die gesamte Spannung der parallel geschalteten Module nicht auf 10V absinkt, nimmt man die Schottky-Dioden.
Der Kollege hier hat nur noch eine Diode verwendet. Kann ich hier den Grund wissen weshalb? Bei zwei Solarmodulem müsste man zwei Dioden verwenden.
-
Ich kann auf dem Verschaltungsplan nicht die Bezeichnungen erkennen. Ich habe auch eine adere wemos version. Sollte aber auch gehen, Oder?
Leider habe Ich vergessen den klimasensor zu bestellen. Geht és auch ohne? Hab nur einen dht11 rumliegen. `
moin,
mit dem esp geht es auch, und auch den dht11 können wir gebrauchen. Ich schau mal wie sich die Verdrahtung ändert und melde mich spätestens am Montag wieder.
@knopers1 - du hast recht, im Bild habe ich sie vergessen einzuzeichnen, in der Schaltung ist die zweite Diode da.
LG,
a200
-
Ich habe den ersten Teil hinbekommen, also das Auslesen des Bosch-Sensors und des Feuchtigkeits-Sensors. Ich habe es aber mit ESP-Easy gemacht. Das ging soweit easy und ich bin begeistert
Spannungsversorgung bisher über USB, Bosch ist an D1 und D2 und der Feuchtesensor ist am Analog A0, beide natürlich an Erde und 3,3V. Ich habe da keine Brücke gesetzt neben dem Analog A0. Funktioniert soweit tadellos oder liegt es daran, dass ich einen NodeMCU V3 habe?
Nun wollte ich mir den zweiten Teil anschauen, also die Spannungsversorgung. Der Teil funktioniert doch unabhängig vom Sketch, richtig?
Dein Wemos D1 ist doch auch für 3,3V, oder? Kommen da nicht 5V vom Booster zum Wemos D1?
Das Anschließen am Booster ist mir auch nicht ganz klar, der hat doch eigentlich nur zwei Anschlüsse und einen USB-Anschluss? Auf dem Schaltplan sieht es so aus als würden zwei Anschlüsse am Anfang sein und zwei am Ende? Auf dem Foto wiederum sieht es so aus als würden nur zwei Kabel zum Booster gehen.
-
moin
SORRY! habe gerade bemerkt, dass ich dich vollkommen vergessen habe. Mea culpa!
Jetzt zu deinen Fragen. Es gibt verschiedene Booster. Der den ich einsetze hat einen 2-Poligen Eingang, und nur USB aus Ausgang. Deshalb gehe ich über den USB-Ausgang des Boosters (5V) über einen Adapter in den USB-Eingang (5V) des ESP rein. Diese Lösung ist so weit suboptimal, weil die Gesamtlänge Booster+ESP gerade so in die Feuchtraumaufputzdose passen. Dabei benutze ich einen Adapter USB->micro USB, dessen Länge bei 0mm liegt (siehe unten).
Im Fritzing habe ich keinen Booster mit USB gefunden, deshalb die einfache Variante.
Ich hoffe deine Fragen beantwortet zu haben und freue mich, dass du auch ohne meiner Hilfe das Ding zum fliegen gebracht hast. Ich verspreche weitere Fragen zu beantworten.
LG, a200.
![](</s><URL url=)<link_text text="https://ae01.alicdn.com/kf/HTB1.GbdAkCW ... nabled.jpg">https://ae01.alicdn.com/kf/HTB1.GbdAkCWBuNjy0Faq6xUlXXa5/Etmakit-Multi-functional-USB-Card-reader-Micro-USB-OTG-Adapter-Supported-for-Android-USB-OTG-Enabled.jpg</link_text>" /> -
Ja, danke. Ist ja eigentlich auch logisch
-
Ich taste mich langsam weiter.
Ich habe mal den Akkuladeregler über USB angeschlossen. Eingang sind 5,09 V (wie USB halt) und an beiden Ausgängen (Akku und ESP) ist eine Spannung von 4,09 V. Soweit korrekt? Einen Spannungsabfall von 1 V kann man sich erstmal vorstellen.
Dabei leuchtet eine blaue LED permanent und eine rote flackert. Ich nehme mal an, dass in diesem Zustand der Akku geladen und gleichzeitig der ESP mit Spannung versorgt wird, richtig? Die rote LED leuchtet nur beim Laden und die andere leuchtet immer?
Verbunden werden die Komponenten Akkuladeregler und Booster Plus an Plus und Minus an Minus, richtig (wie auf dem Foto). Beim Solarpanel ebenfalls so, korrekt?
-
moin,
blau = Akkus sind vollständig geladen
rot = Eingangsspannung liegt an = Solarpanel liefert Strom
Wenn du die Spannung von den Akkuladeregler weg nimmst, dann sollte die rote LED ausgehen und nach einer Weile auch die blaue, weil dann die Akkus nicht mehr vollgeladen sind.
Der Spannungsabfall auf ca. 4V ist normal. Deshalb wird auch der Booster benötigt um wieder auf volle 5V zu kommen. Anderenfalls könnten wir den auch weglassen.
Ansonsten die Anschlüsse sind, wie du beschrieben hast + an + und - an - angeschlossen.
Viel Erfolg für die nächste Stufe!!!
-
> Ich habe mal den Akkuladeregler über USB angeschlossen. Eingang sind 5,09 V (wie USB halt) und an beiden Ausgängen (Akku und ESP) ist eine Spannung von 4,09 V. Soweit korrekt? Einen Spannungsabfall von 1 V kann man sich erstmal vorstellen.
Das ist kein Spannungsabfall, sondern die Ladespannung bzw. Leerlaufspannung des Akkus und korrekt.
Viele Grüße
Christian
-
> Ich habe mal den Akkuladeregler über USB angeschlossen. Eingang sind 5,09 V (wie USB halt) und an beiden Ausgängen (Akku und ESP) ist eine Spannung von 4,09 V. Soweit korrekt? Einen Spannungsabfall von 1 V kann man sich erstmal vorstellen.
Das ist kein Spannungsabfall, sondern die Ladespannung bzw. Leerlaufspannung des Akkus und korrekt.
Viele Grüße
Christian
Danke. Ja, grad nachgelesen. Passt sehr gut.
> Die Ladeschlussspannung beträgt typischerweise 4,0–4,2 V `
https://de.wikipedia.org/wiki/Lithium-Ionen-Akkumulator -
> Ich habe mal den Akkuladeregler über USB angeschlossen. Eingang sind 5,09 V (wie USB halt) und an beiden Ausgängen (Akku und ESP) ist eine Spannung von 4,09 V. Soweit korrekt? Einen Spannungsabfall von 1 V kann man sich erstmal vorstellen.
Das ist kein Spannungsabfall, sondern die Ladespannung bzw. Leerlaufspannung des Akkus und korrekt.
Viele Grüße
Christian `
Du hast Recht. Danke für die Korrektur.
-
> Auch hier gibt es mehrere Varianten. Vor allem mit 4 und mit 6 Beinchen. Auf beiden Varianten ist der BME280 Sensor von Bosch verbaut. Der Hauptunterschied liegt in der Kommunikation mit dem Board. Beide Varianten unterstützen den I2C Bus. Die 6 Bein Variante kann darüber hinaus noch einzeln angesprochen werden. Aufgrund seiner Größe, ziehe ich hier den Vierbeiner vor.
Noch eine kleine Anmerkung zum BME280:
Die beiden Versionen unterscheiden sich in erster Linie in der Spannungsversorgung. Der 4-beiner hat einen Spannungswandler on Board, verträgt also auch 5V Spannung. Der 6-beiner verlangt 3.3V (und ja, die I2C Adresse lässt sich ändern - theoretisch, ich habe diverse Module, wo dies nicht Funktioniert).
Wer Akku-/Batteriebetriebene Sensoren mit dem BME baut, dem rate ich zu der 6-beinigen Variante, da der Spannungswandler die Akkukapazität doch stark "stresst"
Viele Grüße
Christian
Nachtrag: Die verlinkten China 14500´er sind ein Fake, die haben nicht mal die Hälfte an Kapazität. Ich würde auf 18650´er von Sony/LG/Panasonic setzen. Die gibt es mit Kapazitäten bis zu 3500 mAh, und die haben sie auch. Batteriehalter sind ebenfalls überall verfügbar.
-
Wer Akku-/Batteriebetriebene Sensoren mit dem BME baut, dem rate ich zu der 6-beinigen Variante, da der Spannungswandler die Akkukapazität doch stark "stresst" `
Vielen Dank. Wieder was gelernt. Der nächster Sommer kommt bestimmt. Ich werde meine Schaltung upgraden.
-
Hey,
super cooles Projekt. Wie funktioniert es nach einem Jahr und gibt es noch was dazu zu wissen