ESP32-Blynk-Applikation

Barometer, Hygrometer, Temperatur und Feinstaub

Bastelprojekt 2018

Zurück

Der Aufbau Die Software


Mit dem Mikrocontroller ESP32 (ESPRESSIF/CHINA) steige ich ein in das Thema „Internet der Dinge“ – im speziellen IoT-Anwendungen (Internet Of Things). Der ESP32 besitzt WLAN (WiFi) und Bluetooth. Über ein Smartphone bzw. Tablet erhält der ESP32 Befehle. Hier kommt „Blynk“ ins Spiel. Die Kommunikation zwischen einer Blynk-App und einem Projekt findet kostenfrei über den Server des Anbieters statt. Die hier vorgestellte Applikation sendet Luftfeuchte-, Luftdruck-, Temperatur- und Feinstaubdaten im Zeitintervall von 30 Sekunden vom ESP32 zum Blynk-Server. Der ESP32 wird mit der Arduino-IDE in C++ programmiert. Eine „Blynk-Library“ sorgt für den Datentransfer zum Server und eine Applikation auf dem Smartphone (Android /iOS) verbindet sich ebenfalls zum Server. Auf dem Smartphone wird nichts programmiert, letztendlich werden vorhandene Widgets (GUI-Elemente) mit Eigenschaften gefüllt und auf die Touchscreen-Fläche platziert. Das obige Bild zeigt die ESP32 Hardware mit den Sensoren (siehe Details im Schaltplan), Bild rechts zeigt die Smartphone-App.

Der Schaltplan

Die Platine


Barometer (MPL115) und Hygrometer (HYT221) liefern Daten zum ESP32 mittels I²C-Bus. Beide Sensoren benötigen 3,3 Volt. Der Feinstaubsensor (SDS011) korrespondiert mit dem ESP32 über eine serielle Schnittstelle (UART). Der Sensor benötigt eine Versorgungsspannung von 5 Volt, ebenfalls der ESP32. Normalerweise wird für ein ordnungsgemäßes Funktionieren des I²C-Buses zwei Pull-Up-Widerstände benötigt. In der obigen Schaltung sind sie „versteckt“ auf der MPL115A2-Platine vorhanden. Der Strombedarf liegt zwischen 96 bis 156 mA. Der maximale Strom von 156 mA kommt dann zum Tragen, wenn der Laser-Dust-Sensor SDS011 Daten liefert. Der Sensor ist so programmiert, dass er eine bestimmt Zeit im Sleep-Modus ist und danach wird für 30 Sekunden der Laser aktiviert.




Der ESP32 Microkontroller wird mit der Arduino-IDE programmiert. Details findest du im Internet. Ich habe mir das Buch „Das ESP32-Praxisbuch“ von Erik Bartmann (ich bin ein Fan von ihm) gekauft. Über die zwei Sensoren Barometer MPL115A2 und Hygrometer HYT221 habe ich bereits einige Dokumentationen geschrieben. Wiederholen möchte ich das hier nicht.
Der Laser Dust Sensor SDS011 ist für mich neu und ich möchte hier einiges darüber sagen. Der SDS011 saugt mit einem Lüfter Luft in eine Kammer. Die Luft wird mit einem Laser beschossen. Anhand der Streuung des zurückgeworfenen Laserlichts wird die Partikelgröße und –menge ermittelt. Die Daten werden über eine serielle Schnittstelle bereitgestellt. Auch hier empfehle ich dir die Spezifikation „Control Protocol V1.3-Nova Fitness Co.,Ltd“ vorher zu lesen. Diese findest du im Internet.
Diese Partikel werden als PM10 bezeichnet (PM steht für paticulate matter = Feststoffpartikel). Zum Vergleich: Ein Haar hat einen Durchmesser von 50 bis 75 Mikrometer. Inzwischen werden auch noch kleinere Partikel mit einer Größe von 2,5 Mikrometer gemessen. Welche Grenzwerte gelten? PM10-Grenzwert im Tagesmittel: 50 µg/m³. PM10 Grenzwert im Jahresmittel: 40 µg/m³. PM25-Grenzwert im Jahresmittel: 25 µg/m³.

Hier die wichtigsten technischen Details zur Meßsoftware: Der Laser hat eine Lebensdauer von 8000 Stunden. Werksseitig sendet der Sensor sekündlich einen Datensatz. Dann ist der Feinstaubsensor nach einem Jahr ausgelutscht und muss ersetzt werden.
Auch muss ich sagen, dass ich mit Feinstaubdaten im Sekundentakt nichts anfangen kann. Der Sensor kann so programmiert werden, dass er eine definierte Zeit in den „Sleep-Modus“ geht. Nach Ablauf dieser Zeit aufgeweckt wird und zirka 30 Sekunden Initialisierungszeit benötigt und dann die Feinstaubwerte sendet. Ich habe den SDS011 Sensor so programmiert, dass er mit einer Intervallzeit von genau 2 Minuten sendet. Mit diesen Eigenschaften kann man von einer Lebensdauer von etwa vier Jahren ausgehen.

Der SDS011-Sensor wird mit einem USB-Seriell-Adapter geliefert. Somit kann man ihn an einem Windows PC anschließen. Es ist keine leichte Kost mit der Arduino-IDE, ohne Debugger, ein Programm zu entwickeln. Vorher habe ich den Sensor mit dem Programmierwerkzeug „QT-C++-Creator“ genau unter die Lupe genommen. Weiter unten in dieser Dokumentation habe ich ein eigenes Kapiten über die QT-SDS011-Applikation angefügt.
Wenn der ESP32 über WiFi und Bluethooth verfügt, dann macht es keinen Sinn, ihn mit einem Display auszurüsten. Für Visualisierung und/oder Befehlsanweisungen kommt dann ein Webserver oder Blynk ins Spiel.
Über Blynk sind die Visualisierung von Daten wirklich beeindruckend, und es bereitet viel Spaß, sich damit auseinanderzusetzen.
Besuche die Seite: https://www.blynk.cc und schau dir die vielen Videos unter YouTube an. Auf den nachfolgenden Seiten habe ich das C++-Programm ausgedruckt. Wenn du dir die Datenblätter der entsprechenden Sensoren vorher verinnerlichst, dann ist es leichter die nachfolgenden Seiten zu verstehen.


Software1 Software2 Software2 Software4 Software5 Software6 Software7 Software8 Software9 Software10 Software11 Software12 Software13 Software14 Software15 Software16
Zurück