Zur Werkzeugleiste springen
Hi Grow - Perspektivisch

Last Updated on 23. Oktober 2020 by sfambach

Das HiGrow (oder auch HighGrow) Board ist unter seinem vollem Name „ESP32 DHT11 WIFI Bluetooth Soil Temperature Humidity Sensor18650“ beim schnellen Ali erhältlich. Es soll zur Pflanzenüberwachung dienen und basiert auf einem ESP32 Wroom. Das Board kann Luftfeuchtigkeit, Temperatur, Licht sowie Erdfeuchte messen. Einige Pins sind nach aussen geführt, so dass weitere Sensoren hinzugefügt werden können. Der Lichtsensor scheint bei meiner Version nicht vorhanden zu sein. Es gibt noch andere ähnliche Boards, zum Beispiel von TTGO. Im weiteren Verlauf werde ich das Board auch als Stock oder Spiess bezeichnen, denn so sieht es aus ;).

Zum thema HighGrow ist auch dieser kurze Wikipediaeintrag ganz nett, den ich euch nicht vorenthalten möchte:

https://de.wikipedia.org/wiki/HighGrow

Fakten

BeschreibungWert
ProzessorESP32 Wroom
TasterReset (EN) / Boot
Ein-SchalterSchiebeschalter
Batteriefach18650 (Akku)
USBMicro
LED PinPin 16
DHT11 SensorPin 22
Boden-FeuchtesensorPin 32
Power Pin (Nicht verbunden)Pin 34
Lipo LadereglerTP5400 (bei anderen auch TP5410)
Licht Sensor (Nicht vorhanden)Pin 33
Größe L/B/B [cm] 19,5/ 3 / 2,5
Quelle: siehe unten
Hi Grow - Die wichtigsten Teile beschriftet
Hi Grow – Die wichtigsten Teile beschriftet

Was ist installiert

Am USB angeschlossen, blinkt die blaue LED. Der erste Blick im Terminal zeigt nur die Standardausgabe des ESP Wroom. Der Stock scheint keine programmierte Funktion zu haben und ist auch nicht mit MircoPython geflashed.

Higrow Sensor Blick auf die aufgespielte Software
Higrow Sensor Blick auf die aufgespielte Software

Ein Bootloader ist installiert. Beim Einschalten mit gedrückter Boot Taste blinkt die blaue LED nicht mehr.

Anwendungsbereiche

  • Zur Beobachtung von Pflanzen
  • Raumklima Erfassung
  • Jeder Pflanze einen Accesspoint 😉
  • Als Testplattform für Kurse (gibt ein paar negativ Beispiele im Netz)

Ansichten

Programmierung

Ich verwende ein fertiges MQTT Programm. Dieses ermöglicht mir ein paar schnelle Tests und spart Zeit.

Hier der Link zum Original

Bibliotheken

Für das Programm werden ein paar Biliotheken benötigt, diese sind im Folgenden aufgelistet.

MQTT Client

MQTT wird hier nicht neu erfunden sondern es wird die folgende Biliothek verwendet.

https://github.com/knolleary/pubsubclient

PubSubClient Bibliothek
PubSubClient Bibliothek

DHT11 Sensor Bibliothek

Der DHT11 und DHT22 Luftfeuchte und Temperatursensor ist weit verbreitet auch hier gibt es unterschiedliche Implementierungen, das gewählte Programm verwendet die folgende:

https://github.com/adafruit/DHT-sensor-library

DHT Bibliothek
DHT Bibliothek

Adafruit hat irgnd wann mal eine Basis für all ihre Sensorimplementierung geschaffen, diese nennt sich Unified SensorLib. Sie wird auch für den DHT11 Sensor benötigt.

https://github.com/adafruit/Adafruit_Sensor

Adafruit Unified Sensor Bibliothek
Adafruit Unified Sensor Bibliothek

Testprogramm

Das Testprogramm kann von GitHub heruntergeladen werden. Ich habe noch ein paar andere Änderungen am Code vorgenommen deswegen hier mein Fork:

https://github.com/sfambach/ESP32-1

Zip Download https://github.com/sfambach/ESP32-1

Das Original findet ihr hier:

Github Link zu HiGrowEsp32Mqtt

Direkt als Zip über DownGit

In der Datei credentials.h müssen noch SSID, WIFI Passwort und MQTT Broker und die Titel eingetragen werden.

// This file contains credentials to access several services
// WiFi
const char* mySSID = "NODES";
const char* myPW = "HappyNodes1234";

// MQTT (CloudMQTT)
const char* BROKER = "pi1";
uint16_t    BRPORT = 1024;
const char* BRUSER = "herbert";
const char* BRPWD  = "flieger";
const char* CLIENTID = "HiGrow1";

Auf die Einrichtung des Brokers gehe ich an dieser Stelle nicht näher ein, sollte noch keine Broker vorhanden sein, gibt es unterschiedliche Möglichkeiten an einen zu kommen:

  • Es gibt sog. Webbroker, hier kann man sich im Internet anmelden und oft auch kostenlos den Broker verwenden. Beispiele hierfür sind HiveMQ, diyporjects und hier noch ne 10er Liste.
  • Eigener Broker – exemplarisch sei hier auf dem Mosquitto in Verbindung mit dem PI verwiesen (hier das Setup)
  • Broker der Hausautomation. Ich verwende IP-Symcon für die Hausautomation, viele andere Systeme bieten mittlerweile auch MQTT Anbindungen.

Nun noch compilieren und auf den Spieß schreiben und dann hoffen, dass was beim Broker angkommt.

HiGrow - Arduino Gui Programiereinstellungen
HiGrow – Arduino Gui Programiereinstellungen

Hier liegt mal wieder der Hund begraben. Ohne Taster gehts nicht. Als erstes den Schreibvorgang einleiten. Dann den Boot Taster gedrückt halten und kurz auf den Reset (EN) Knopf drücken. Jetzt startet der ESP im Bootmode. Nach ein paar Sekunden kann der Boot Knopf wieder gelöst werden. Der Schreibvorgang sollte jetzt starten.

Auch auf meinen Broker werden die Werte vom Spiess jetzt angezeigt und können weiter verarbeitet werden.

IP-Symcon MQTT Broker - Werte vom ESP Stock
IP-Symcon MQTT Broker – Werte vom ESP Stock

Über die Zeit schwankt es schön, mal schauen was man daraus machen kann.

HiGrow Auswertung über eine Stunde

Langzeittest (aktualisiert)

Drei Planzen (Benjamini, Bogen Hanf (Kein THC), Areca Palme). Die Sensoren messen und legen sich dann 30Min/1h/2h schlafen. Die Sensoren senden ihre Werte an den Homeserver und dieser speichert sie. Alle Akkus haben um die 2400Ah.

  • 14.10.2020 11:30 Test mit Benjamini gestartet, sendet alle 30 Minuten.
  • 15.10.2020 23.03 Erhalte noch Nachrichten
  • 16.10.2020 13:29 Benjamini sendet noch.
  • 16.10.2020 18:23 Der Benjamine läuft weiter, der Bogen Hanf sendet jetzt jede Stunde und Areca Palme alle zwei Stunden.
  • 17.10.2020 13:04 Alle Sensoren laufen noch Tabelle aktualisiert
  • 19.10.2020 09:25 Heute morgen um 4 Uhr ist der letzte Messwert vom Benjamini gekommen. Somit hat dieser weniger als 5 Tage durchgehalten.
  • 20.10.2020 ~21:30 Der Sensor des Bogen Hanf ist ausgefallen
  • 21.10.2020 ~04:00 Der Sensor der Areca Palme ist ausgefallen.

Auswertung

Die Palme hält etwas länger durch aber nicht signifikant siehe Tabelle. Somit haben wir unspektakuläre 5 Tage. Alleine am ESP32 scheint es zumnindest laut Datenblatt nicht zu liegen:

  • Der ESP verbraucht im Normal Betrieb mit Wifi maximal 180mA.
  • Im DeepSleep Modus verbraucht er nur <10 uA.

Geht man von einem Zyklus von 2 Stunden DeepSleep und 10 Sekunden Messen/Senden aus. Gestaltet sich die Berechnung wie folgt:

Verbrauch pro Zyklus unter Last
= 10s * 180mAh/60(Min)*60(Sec)
= 10s * 180mAh/3600
= 10s * 0,022mAh
= 0.22 mAh

Verbrauch pro Zyklus in Standby
= 2h * 0,10mA
= 0,02mAh

Verbrauch gesamt pro Zyklus
= 0,22mAh + 0,02mAh
= 0,24mAh

Bei einem Akku von 2400mAh

Zyklen = 2400mAh / 0,24mAh = 10000z
Stunden = 10000z / 2,002h/z = 4995h
Tage = 4995h / 24h/Tag = 208Tage

Das sind 203 Tage mehr als der Bester Test somit muss der Hauptverbraucht an andere Stelle liegen.

Für den DHT 11 habe ich ebenfalls Daten gefunden, deshalb möchte ich überprüfen ob diese verantwortlich sein könnte.

  • Standby max 150uA
  • Last 2.5mA

Verbrauch pro Zyklus unter Last
= 10s * 2,5mAh/60(Min)*60(Sec)
= 10s * 2,5mAh/3600
= 10s * 0,000694mAh
= 0,0069 mAh

Verbrauch pro Zyklus in Standby
= 2h * 0,15mAh
= 0,3mAh

Verbrauch gesamt pro Zyklus ESP32 + DHT11
= 0,0069mAh + 0,3mAh + 0,24mAh
= 0,55mAh

Bei einem Akku von 2400mAh

Zyklen = 2400mAh / 0,55mAh = 4.363z
Stunden = 4.363z/ 2,002h/z = 2160h
Tage = 4995h / 24h/Tag = 90Tage

Mit DHT11 Sensor sind es nur noch etwas weniger als die Hälfte der Tage. Um die werde Versuchstechnisch zu bestätigen werde ich an einem der sensoren die Spannungsversorgung des DHT10 abklemmen und an einen Pin löten, den ich vor dem DeepSleep aus schalte. Mal schauen ob das was bring.

Rechnet man die 90 Tage verbleicben minus die Wirklich gemessene Zeit verbleichen 85 Tage die der Boden-Feuchtesensor und die restliche Periphrie verbraucht. Ob und wie man diesen abklemmen kann weiss ich noch nicht aber ich forsche weiter.

#TestPflanzeMeldungGestartet Leer#Messwerte#Tage
1Benjamini30 Min.14.10.2020 11:3019.10.2020 03:40224<5
2Bogen Hanf1 St.16.10.2020 18:1020.10.2020 21:30994
3Areca Palme2 St. 16.10.2020 18:2321.10.2020 04:0052<5
4Benjamini
(DHT umgebaut)
30Min
Übersicht Testzeitraum

Fuzzi Angaben für die Werte des Bodenfeuchte Sensors, gemsessen mit meinem Finger ;). Hier muss ich nochmal die Sensoren mit einander kalibrieren das würde ich nachreichen.

FuzziBenjamini / 30MinBogenhanf / 1hAreca Palme / 2h
Verdammt nass630?
nass610?
feucht602881
leicht feucht540845
leicht trocken
Tocken
Knochen Trocken
Zusammenfassung Messwerte in Sprachlicher Beschreibung (Fuzzi Werte)

Probleme

Hoher Stromverbrauch selbst in Sleep Phase.

Im Netz klagen einige Benutzer über den hohen Stromverbrauch wärend des Tiefschlafs (deep sleep). Ich kann mir das noch nicht so richtig vorstellen. Evtl. verbraten die Sensoren ja auch noch was an Leistung und schlafen nicht. Meine Test laufen aktuelle noch, Siehe Testlog oben.

Einen Anhaltspunkt habe ich noch, wenn man die Sleepzeit zu hoch setzt, geschieht ein Überlauf der int Variablen und er schläft nicht ein. Bitte int durch uint64_t tauschen dann klappts:

// int DEEPSLEEP_SECONDS = 1800; // 30 min // alt
uint64_t DEEPSLEEP_SECONDS = 1800; // 30 min // neu

Sonstiges

3D Modelle fürs Gehäuse

Um den Stock zu verpacken, gibt es einige 3D Modelle bei Thingiverse:

https://www.thingiverse.com/thing:3333221

https://www.thingiverse.com/thing:2791829

https://www.thingiverse.com/thing:3491667

https://www.thingiverse.com/thing:3209270

Letzteres Modell habe ich mal gedruckt. Der Ausdruck erfolgte mit den folgenden Druckparametern:

Der Ausdruck verlief ohne Probleme, das Endprodukt musste ich etwas mit dem Skalpell nachbearbeiten aber nichts was aus dem Rahmen fällt. Den Tropfen Deckel bräuchte ich persönlich nicht und werde ihn weg lassen. Zum Montieren habe ich 4st 2×15 Spax und 1st *2×2,5 Blechschauben verwendet. Das Board selbst passt gut in das Gehäuse. Hier noch ein paar Bilder :

Fazit

Nette Idee mit dem Pflanzensensor. Der ESP32 ist stand der Technik. Der Stock hat ein paar Sensoren also auch ganz nett für Einsteiger. Was mich am Stock ärgert ist die Knöpfchendrückerei beim Programmieren. Da waren wir schon mal weiter. Wenn man den Berichten im Internet glaubt (und das tue ich an dieser Stelle) dann kann der Stock die Nähe von Feuchtigkeit nicht ertragen und die Löpunkte blühen relativ schnell auf. Somit ist an einen Langzeiteinsatz ohne zusätliche Behandlung, zum Beispiel durch Epoxid Harz nicht zu denken. Ein Ausseneinsatz fällt damit auch flach.

Der Spannungsteiler um die Spannung des Akkus zu messen fehlt. Den Lichtsensor solls erst ab Version 2 geben. Der Stock ist eine nette Idee aber nicht besonders gut ausgeführt.

Verwandte Beiträge

Quellen

https://www.diymore.cc/

Beitrag bei IOT Newbie

CK Blog Beitrag zum Sensor

CK Blog Beitrag zur Datenerfassung mit dem Sensor

Github Projekt HiGrowESP32MQTT

Neuauflage des MQTT Projektes

Github weiteres Projekt von lucafabbri

Beitrag auf Flashgamer

Beitrag auf Instructables

Netter Beitrag in Wikipedia zum Spiel HighGrow 😉

Beitrag zu Deep Sleep Time ESP8266

Von sfambach

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.