Tomatenpflanzenüberwachung
Lösung von Teilnehmer Florian Volk
Mein Projekt TomaTempo misst regelmäßig die Erdtemperatur von Tomatenpflanzen und zeigt mittels einer Ampel aus einer grünen, einer gelben und einer roten Leuchtdiode an, wie gut die Temperatur für die Tomatenpflanze geeignet ist. Zudem werden alle Messwerte im Internet bei Thingspeak gespeichert, sodass man später nachvollziehen kann, wie die Temperatur in der Vergangenheit war. Sämtliche Elektronik befindet zusammen mit einer Powerbank in einem wasserdichten Gehäuse. Den wasserdichten Temperatursensor steckt man einfach in die Erde neben der Tomatenpflanze.
Tomatenpflanzen wachsen ab 20°C optimal, darunter gehen sie in eine
Art "Winterschlaf" und stellen das Wachstum ein. Unter 5°C
leiden Tomatenpflanzen und gehen kaputt.
Input:
- Temperatursensor aus dem Kurs
Output:
- rote LED (leuchtet, wenn Temperatur < 5°C)
- gelbe LED (leuchtet, wenn Temperatur >= 5°C, aber < 20 °C)
- grüne LED (leuchtet, wenn Temperatur >= 20°C)
- Thingspeak-Channel (kann jeder ansehen: https://thingspeak.com/channels/783503)
Nachbau-Anleitung:
Den ESP32 habe ich komplett mit Ardublockly programmiert; mein Ergebnis stelle ich als Open Source zur Verfügung, d.h. jeder darf meinen Code und mein Projekt selbst benutzen und verändern.
Beim Nachbau helfen hoffentlich der Screenshot der Blöcke und die
XML-Datei für Ardublockly. Für die Verdrahtung habe ich ein Foto meines Testaufbaus gemacht, dem ich einen Schaltplan beigefügt habe.
- Zuerst schließt man die drei LEDs an den ESP32 an: Dazu habe ich die Pins 12, 14 und 27 gewählt. Direkt an die Pins schließt man jeweils einen Widerstand (100 Ohm) an und dahinter die LED (langes Beinchen!). Alle kurzen Beinchen der LEDs habe ich gemeinsam an einen beliebigen Ground-Pin (GND) angeschlossen.
- Den Temperatursensor schließt man wie folgt an: das rechte Beinchen kommt an den 3,3-Volt-Pin (3V3), das mittlere Beinchen für die Daten kommt an Pin 26 und das linke Beinchen schließt man an einen beliebigen Ground-Pin an. ACHTUNG: "Zwischen" dem mittleren und dem rechten Beinchen des Temperatursensors muss man einen Widerstand (etwa 5 Kiloohm) einbauen!
- Danach kann man den ESP32 mit Ardublockly programmieren: Im "run first"-Block bereite ich die serielle Kommunikation vor (für die spätere Fehlersuche) und schalte alle LEDs ein, bis die Verbindung mit dem WLAN hergestellt ist. Dann aktiviere ich den Temperatursensor. Danach schalte ich die LEDs wieder aus. Solange die LEDs leuchten weiß ein Beobachter also, dass TomaTempo sich noch vorbereitet.
- Im "loop forever"-Block messe ich zuerst die Temperatur und speichere den Wert in einer Variablen TempInGradC und schreibe diese auf die serielle Schnittstelle. Danach prüfe ich die Termperatur: Ist sie kleiner als 5 Grad, schalte ich die rote LED (an Pin 27) ein und die anderen beiden aus. Falls die Temperatur größer oder gleich 5 Grad, aber kleiner als 20 Grad ist, schalte ich die gelbe LED (an Pin 14) ein und die anderen beiden aus. Wenn auch das nicht stimmt, muss die Temperatur größer/gleich 20 Grad sein und ich schalte die grüne LED (an Pin 12) ein und die anderen beiden aus. Danach sende ich den Messwert noch an Thingspeak und warte für eine Minute.
Foto von der Schaltung
Foto von Einbau der Elektronik in das 3D-Gehäuse
Zusätzliche Fotos von TomaTempo findet man bei mir auf Twitter und Instagram.