Im Blogpost Mobile Datenerfassung über LTE-M hatte ich Hard- und Software eines LTE-M-Knotens beschrieben, der GPS-Daten sowie Messwerte von Temperatur- und Luftfeuchtigkeit bereitstellt.
Jetzt bei einer Reise von der CH nach D sollen folgende Punkte getestet werden:
Stationärer Test (CH, D)
Mobiler Test aus dem fahrenden Fahrzeug (Übergang von Funkzelle zu Funkzelle)
Roaming über Ländergrenzen (CH – A – D)
Screenshots MQTT Dashboard (Beschreibung im Bild)
Stationärer Test in der Schweiz
Stationärer Standort CH
Findings:
Ausgabe der Werte für Lat und Lon mit zwei Dezimalstellen ist nicht ausreichend, um den Punkt (z.B. mit Google Maps) zu rekonstruieren
Die Höhenangabe schwankt zwischen 422.5 und 430.4 m (Betrachtung über kurzen Zeitraum). Die zu erwartende Schwankung der GPS-Höhenangaben ist allerdings noch grösser. Zur Genauigkeit der Höhenmessung über GPS sind hier einige Angaben tzu finden: https://support.garmin.com/de-DE/?faq=QPc5x3ZFUv1QyoxITW2vZ6. Zum Vergleich bietet sich die App Genauer Höhenmesser an. Im nebenstehenden Bild sind Höhenangaben durch GPS, standortbezogen und barometrisch gemessen gegenübergestellt. Mit diesen Abweichungen muss also gerechnet werden.
Mobiler Test aus dem fahrenden Fahrzeug
auf dem Weg nach Zürich mit 100 km/h auf der Autobahn
Mobiler Test aus dem fahrenden Fahrzeug in Österreich
auf der Rheintal-Autbahn mit 124.4 km/h
Mobiler Test aus dem fahrenden Fahrzeug in Deutschland
keine Verbindung
Stationärer Test in Deutschland
keine Verbindung
Aktuell kann ich mir den Ausfall beim Roaming mit der 1NCE SIM-Card nicht erklären und werde den Test mit einer SIM-Card von der Telekom wiederholen.
Die Programmierung des hier verwendeten T-Display aus der Arduino IDE erfolgt unter Verwendung der sehr verbreiteten TFT-eSPI Library von Bodmer. Da auf dem Board ein 1.4″ Display eingesetzt ist, bietet sich die Verwendung des LilyGO T-Display Enclosure an.
Um ein Gefühl für die Grafikperformance zu erhalten, habe ich Bodmer’s TFT_eSPI library Test implementiert. Im Listing sind die Resultate gezeigt. Die Werte sind ausgezeichnet, was bei der Grösse des Display zu erwarten war.
Häufig fehlt beim Einsatz von Development Boards eine Gehäuselösung. Für die T-Displays mit 1.14″ TFT bietet LilyGo das T-Display Gehäuse ABS an.
Obwohl als T-Display PICO3 beschrieben passt das Gehäuse sowohl auf das LilyGo T-Display ESP32 16MB als auch auf die LilyGo T-PicoC3 ESP32-C3 RP2040 Dual MCU mit 1.14 “ Display.
Während der Testphase können die Echtzeitdaten über den Link oder den QR-Code eingesehen werden.
Ich habe noch ein RAK1921 OLED zur Anzeige der Momentanwerte ergänzt. Bei der Inbetriebnahme bin ich so nicht mehr auf den seriellen Output angewiesen.
Im Blogbeitrag Solar Power System für IoT-Knoten hatte ich eine Variante mit SuperCap von Voltaic vorgestellt. Das Versenden der Daten im Halb-Stunden-Takt über WiFi in eine InfluxDB-Datenbank zur Visualisierung kam im Winter nach mehreren Wochen mit Nebel und ohne Sonne an seine Grenzen.
Ich führe den Test hier weiter. Allerdings sende ich nur noch im Stundentakt die Daten über Pushover an mein Mobilphone. Die Resultate finden Sie hier.
Beachtlich ist die im Gehäuseinneren durch die direkte Sonnenbestrahlung entstehende Temperatur.
2023-04-26: An der Trendlinie kann eine leicht positive Tendenz abgelesen werden. Das ist bei durchaus durchwachsenem Wetter ein gutes Zeichen. Die Unterbrüche in den Messwerten sind nur durch die manuelle Übertragung bedingt. Der Knoten hat die gesamte Zeit zuverlässig gearbeitet.
2023-04-30: Ich schließe den Test nach der Periode mit den wahrscheinlich weniger günstigen Wetterbedingungen ab.
Es hat sich gezeigt, dass die Versorgung über den solarbetriebenen SuperCap von Voltaicbei hinreichend großem Sendeintervall (zuletzt 1 h) selbst eine WiFi-Übertragung vom IoT-Knoten möglich macht.
WiFi-Übertragung kann dabei als Worts Case einer drahtlosen Übertragung angesehen werden. Eine Reduktion der Stromaufnahme durch ESPnow oder LoRa bietet dann noch mehr Flexibilität für einen komplett autark betriebenen IoT-Knoten.
Der LGT8F328P Mikrocontroller der chinesischen Fa. Logic Green wird als Clone eines ATmega328 bezeichnet und ist bereits seit einigen Jahren am Markt. Von AZ-Delivery wird aktuell auf Basis dieses Mikrocontrollers ein preislich sehr interessanter Arduino Uno Clone angeboten, der meine technische Neugier geweckt hat. Im Bild ist das übersichtliche Design im Arduino Uno Footprint zu sehen.
Die Frage, ob das Ganze legal ist, muss in verschiedenen Ebenen betrachtet werden. Arduino ist Open-Source, also ist seitens der Arduino-Implementierung alles in Ordnung. Was den Mikrocontroller selbst angeht, wird zumindest im Beitrag auf Stackexchange (https://arduino.stackexchange.com/questions/69989/is-the-lgt8f328p-legal) ebenfalls Entwarnung gegeben.
LGT8F328P Board von AZ-Delivery
AZ-Delivery stellt unter http://www.az-arduino.de/package_AZ-Boards_index.json ein eigenes Board Support Package (BSP) zur Verfügung, welches über die Preferences in der Arduino IDE aktiviert und dann über den Boardsmanager installiert werden kann. Die Konfiguration über das Menu Tools sieht dann folgendermaßen aus:
AZ-LGT8F328P Konfiguration
Bei neuer Hardware oder einem neu installierten BSP mache ich meist mit einem „Hello World“-Programm einen ersten Test, ob die Installation und die Hardware lauffähig sind. Das hier verwendete Programm LGT8F_HW.ino zeigt, dass der mit 32 MHz getaktete LGT8F328P schon mal seinen Dienst in der Arduino Umgebung tut. Das Programm, wie auch alle anderen hier vorgestellten, finden Sie auf Github zum Download.
Um die an mehreren Orten angegebenen Performancedaten zu verifizieren, habe ich mit Sieve und Dhrystone zwei Benchmarks bemüht, die ich auch schon auf dem Arduino Uno ausgeführt habe. In den folgenden beiden Screenshots sehen Sie die Ergebnisse. Für einen Coremark Benchmark ist leider die Hardware zu schwach. Die Ergebnisse sind in der Tabelle unten zusammengefasst. Ausserdem habe ich sie in meine Übersicht zu Arduino Benchmarks mit aufgenommen.
Board
Arduino Uno
LGT8F328P AZ-Delivery
CPU
ATmega328p
LGT8F328P
Clock
16 MHz
32 MHz
Sieve Runtime
14012 ms
6172 ms
Dhrystones/s
17229.86
47125.88
VAX MIPS
9.81
26.82
Benchmarks
Wie die Resultate vergleichsweise zeigen, ist der Performancegewinn nicht nur auf die verdoppelte Taktfrequenz zurückzuführen.
Der LGT8F328P weist einen echten 8-Bit DA-Umsetzer (DAC) auf und bietet ausserdem acht 12-Bit AD-Umsetzerkanäle (ADC). Ein einfacher Test des gesamten ADDA-Subsystems erfolgt durch Bereitstellen einer analogen Ausgangsspannung durch den DAC und die anschliessende Erfassung des Spannungswertes durch einen Kanal des ADC. Das Programm LGT8F_ADDA_Test.ino übernimmt das. Aus den Logdaten habe ich die in den folgenden Grafiken gezeigten Darstellungen generiert.
Es zeigt sich ein hinreichend lineares Verhalten des ADDA-Subsystems mit einem leichten Verstärkungsfehler. Bei der Darstellung der Abweichungen kommt das noch besser zum Ausdruck.
Es zeigt sich hier ein Offset von ca. 10 mV und ein Verstärkungsfehler von ca. 50 mV über den gesamten Aussteuerungsbereich. Am oberen Ende des Bereichs erfolgt eine Begrenzung.
Eine Korrektur der Messwerte mit Hilfe der Trendlinie y = 0.0127x + 10.326 führt dann doch zu einer recht brauchbaren Kennlinie für das ADDA-Subsystem des LGT8F328P.
Mit dem LGT8F328P und darauf aufbauenden Boards hat man technisch gesehen eine Alternative zum ATmega328P. Ob man diesen Weg gehen will, werden dabei wohl außerhalb der technischen Daten liegende Aspekte bestimmen.
Primarily, the app is used to test Sensirion’s smart gadgets, which are connected to a mobile device via Bluetooth, in order to be able to visualize the collected measured values. With MyAmbience you can: • View live data from all Sensirion gadgets. • Track their history and export the data. • Compare data from different devices.
But, here the inclusion of self-created sensor nodes is more important. For this purpose, Sensirion offers the Arduino BLE Gadget Library (https://github.com/Sensirion/arduino-ble-gadget), an Arduino library for integrating the data of self-created sensor nodes based on the ESP32 platform.
I have used this library in the application RAK11200_Sensors_BLE.ino. The following screenshots show the visualized data.
The first screenshot shows the dashboard with the values for temperature, relative humidity, and AQI (VOC). The second screenshot shows the AQI before and after ventilation.
If a sensor node is powered by a battery, then knowing the state of charge of this battery is of outstanding importance. Sensirion has announced that it will adapt the MyAmbience app to this end in spring 2023.
In erster Linie dient die App dem Test von Sensirions Smart Gadgets, die über Bluetooth mit einem Mobilgerät verbunden werden, um die erhobenen Messwerte visualisieren zu können. Mit MyAmbience können Sie: • Live-Daten von allen Sensirion Gadgets anzeigen. • Deren Verlauf verfolgen und die Daten exportieren. • Daten verschiedener Geräte vergleichen.
Hier ist aber das Einbeziehen von selbsterstellten Sensorknoten wichtiger. Dafür bietet Sensirion mit der Arduino-BLE-Gadget Library (https://github.com/Sensirion/arduino-ble-gadget) eine Arduino-Library zur Integration der Daten selbst erstellter Sensorknoten auf Basis der ESP32-Plattform an.
Ich habe diese Library in der Anwendung RAK11200_Sensors_BLE.ino verwendet. Die folgenden Screenshots zeigen die visualisierten Daten.
Im ersten Screenshot ist das Dashboard mit den Werten für Temperatur, rel. Luftfeuchte und dem AQI (VOC) gezeigt. Im zweiten Screenshot ist der Verlauf des AQI vor und nach dem Lüften gezeigt.
Wird ein Sensorknoten von Batterie betrieben, dann ist die Kenntnis des Ladezustands dieser Batterie von herausragender Bedeutung. Sensirion hat angekündigt, im Frühjahr 2023 die App MyAmbience dahingehend zu erweitern.
Die Corona-Inzidenzen weisen einen deutlichen Abwärtstrend auf, allerdings halten Erkältungskrankheiten, die saisonale Grippe, das RS-Virus u.a. den Krankenstand hoch. Infektionen in einer aerosolbelasteten Umgebung bleiben als unabhängig von Corona weiterhin aktuell.
Im Blogbeitrag Luftqualität mit NDIR- und MOX-Sensoren messen hatte ich den Einsatz unterschiedlicher Sensorik zur Bestimmung der Luftqualität beschrieben. Der Markt zeigt in rascher Folge Neuentwicklungen im Bereich Sensorik und Luftreinigung. Nicht immer sind die Spezifikationen klar ausgewiesen.
Mit wenig Aufwand können bereits sehr geeignete Messeinrichtungen zur Beurteilung der Luftgüte erstellt werden. Ich zeige Ihnen hier eine sehr kompakte Variante eines Messgeräts zur Erfassung von Temperatur, relativer Luftfeuchte und CO2-Gehalt der Umgebungsluft für den Einsatz in Innenräumen bestehend aus
M5Stack CO2 Unit with Temperature and Humidity Sensor (SCD40)
Beide Komponenten können die in den Bildern gezeigte kompakte Baugruppe bilden. Sensor und Controller sind durch ein kurzes Grove-Kabel verbunden. Die Spannungsversorgung erfolgt über ein USB-TypeC-Kabel aus einem kleinen Steckernetzteil.
CO2: 400 ppm – 1000 ppm
CO2: 1000 ppm – 2000 ppm
CO2: > 2000 ppm
Der SCD40 von Sensirion zeigt für die hier betrachtete Anwendung sehr gute Eigenschaften und mit der M5Stack CO2 Unit ist dieser Sensor auch sehr einfach handhabbar. Als Controller kann jeder nahezu beliebige Controller mit einem I2C-Interface eingesetzt werden. Den leistungsmäßig vollkommen überdimensionierten AtomS3 (Basis ESP32-S3) habe ich wegen der passenden Bauform und des integrierten Displays hier eingesetzt.
Auf dem Display werden CO2-Konzentration sowie Temperatur und relative Luftfeuchte angezeigt. Der Displayhintergrund kennzeichnet farblich die unterschiedlichen Belastungsstufen (Zuordnung unter dem jeweiligen Bild).
Die M5Stack CO2 Unit finden Sie im M5Stack Shop zu $ 33.90 und den M5Stack AtomS3 zu $ 15.50. Einheimische Distributoren werden die Komponenten auch zur Verfügung haben.
Im Blogbeitrag zur ESP-Familie hatte ich die Erweiterungen der ESP32-Familie durch ESP32-S2, ESP32-S3 und ESP32-C3 betrachtet.
Neben dem ESP32-S3-DevKit von Espressif war der Banana Pi BPI-PicoW-S3B ein interessantes Board, das mit dem Wemos Lolin S3 Pro ESP32-S3 WROOM wiederum einen interessanten Companion bekommt. Das Wemos Lolin S3 Pro Entwicklungsboard ist mit 16 MB QSPI-Flash und 8 MB PSRAM ausgestattet und nutzt den ESP32-S3 WROOM von Espressif. Außerdem weist das Board verschiedene I/O sowie ein SPI-Port zur Ansteuerung eines TFT-Displays, einen microSD-Card-Slot und ein LOLIN-I2C-Anschluss auf. Über zwei 16-polige Stiftleisten sind ADC, DAC, I2C, SPI, UART usw. erreichbar. Ein USB-Typ-C-Anschluss dient der Spannungsversorgung, dem Programm-Upload und der seriellen Kommunikation sowie Unterstützung für einen LiPo-Akku mit 500 mA Ladeleistung. Ich habe es von https://arduino-projekte.info/ bezogen.
Die folgenden Bilder zeigen Front- und Rückseite des Wemos Lolin S3 Pro.
Wemos LOLIN ESP32-S3 Pro
Das Board kann mit der Arduino IDE programmiert werden. Im folgenden Bild ist die Konfiguration über das Menu Tools gezeigt.
Konfiguration über das Menu Tools
Beim ESP32-S3 kommt der leistungsstärkere Controller Xtensa 32-bit LX7. Mit dem CoreMark Benchmark habe ich auch für dieses ESP32-Derivate einen Performancetest gemacht. Im Screenshot ist das Ergebnis ablesbar. Mit einem CoreMark von 450 bestätigt er das bereits für das ESP32-S3-DevKitC-1 gewonnene Ergebnis.
Durch die Möglichkeit, über das SPI-Port ein Display und über das I2C-Port sehr einfach externe Sensorik anschließen zu können, ist das Board ein interessanter Kandidat für IoT-Anwendungen.
Vom gleichen Hersteller wird ein 2.4″ TFT mit den folgenden technischen Daten angeboten:
2.4” diagonal LCD TFT display
320 x 240 pixel
TFT Driver IC: ILI9341
Touch Screen controller IC: XPT2046
Compatible with D1 mini, D1 mini Pro, D32 Pro, S3 Pro.
Bei Aliexpress habe ich es für weniger als € 12 kaufen können.
Das Programm für die hier gezeigte Kombination aus LOLIN S3 Pro und LOLIN TFT-2.4 ist auf Github abgelegt.
Interessant am vorgestellten Display ist die Möglichkeit, das LOLIN S3 Pro Board direkt mit einem zum Lieferumfang gehörenden 10-pol. Kabel zu verbinden oder einen Wemos D1 direkt auf der Rückseite einstecken zu können.
Über eine QWIC-Connector und ein ebenfalls zum Lieferumfang gehörendes 4-pol. Kabel lassen sich Sensoren anschließen, wodurch in Handumdrehen ein IoT-Knoten erstellt ist.
Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.