Weil ich mit den Angaben zur Wassertemperatur der Ostsee während eines zurückliegenden Ferienaufenthaltes nicht so recht zufrieden war, hatte ich mit M5Stack-Komponenten und einem abgesetzten Temperatursensor ein Thermometer aufgebaut und in einem Blogpost vorgestellt. Mit dem abgesetzten DS18B20-Temperatursensor habe ich die Wassertemperatur in einem Meter Tiefe gemessen.
Nun rücken die Ferien wieder näher und die Meldung vom BSH zeigt Ende Mai immer noch sehr kühles Wasser an.
Um der Entwicklung der Wassertemperatur zu folgen und vor größeren Überraschungen gefeit zu sein, habe ich das vorgestellte Thermometer etwas erweitert.
Wegen des etwas größeren Displays habe ich den M5StickC durch einen M5StickC+ ersetzt und verwende einen M5StickC 18650C, um die Batteriekapazität zu vergrößern. Hinzu kommt, dass das Thermometer wesentlich besser gehandhabt werde kann.
Damit ich die Messwerte auf meinem Mobilphone zur Verfügung habe, nutze ich es als mobilen Hotspot und sende die Messwerte vom M5StickC+ über WiFi an das Mobilphone, welches dann die Daten an den Pushover Server sendet. Von da werden die Daten dann an die gewählten Endgeräte verteilt.
Die folgenden beiden Bilder zeigen die Messeinrichtung und eine über Pushover versendete Message auf dem Mobilphone. Auf GitHub ist das betreffende Programm zu finden.
Ich werde mit dieser Einrichtung die Wassertemperatur nicht beeinflussen, kann sie aber schriftlich festhalten. Und wenn es so kalt bleibt, dann kann ich mein Heldentum dokumentieren.
WisBlock ist eine modulare Open-Source-IoT-Entwicklungsplattform, die von RAKwireless entwickelt wurde. Sie wurde entwickelt, um eine schnelle und einfache Möglichkeit zur Entwicklung von IoT-Produkten zu bieten, und kann zur Erstellung verschiedener Arten von IoT-Produkten wie Smart Home, Industrie- und medizinische Geräte verwendet werden. WisBlock Core sind Mikrocontroller-Module mit integrierter WiFi-, BLE-, LoRaWAN- bzw. NFC-Konnektivität und bieten verschiedenen I/O-Optionen. WisBlock Base ist das Basisboard für Block Core und die WisBlock Module. Die Module können miteinander verbunden werden, um ein komplettes IoT-System zu erstellen.
WisBlock is a modular open-source IoT development platform developed by RAKwireless. It is designed to provide a fast and easy way to develop IoT products and can be used to create various types of IoT products such as smart home, industrial and medical devices. WisBlock Core are microcontroller modules with integrated WiFi, BLE, LoRaWAN, or NFC connectivity and offer various I/O options. WisBlock Base is the baseboard for WisBlock Core and the WisBlock modules. The modules can be connected together to create a complete IoT system.
IoT-Projekte für Maker ist ein eBook mit dem Sie Wisblock von RAKwireless an Hand praktischer Anwendungen kennenlernen können.
Das eBook ist so angelegt, dass es bei neuen Anforderungen oder neuen Komponenten im WisBlock System erweitert wird.
Haben Sie sich für den Kauf dieses eBook entschieden, dann erhalten Sie die Updates nach Registrierung kostenlos. Die in der Arduino IDE erstellten Anwendungsbeispiele finden Sie auf GitHub.
Eine englische Version ist von RAKwireless in Vorbereitung.
IoT Projects for Makers is an eBook with which you can learn Wisblock from RAKwireless using practical applications.
The eBook is designed to expand as new requirements or components are added to the WisBlock system.
If you have decided to purchase this eBook, you will receive free updates after registration. The application examples created in the Arduino IDE can be found on GitHub.
An English version is in preparation by RAKwireless.
MINT steht als Synonym für Mathematik, Informatik, Naturwissenschaft und Technik. Die MINT-Fachbereiche bilden den zentralen wirtschaftlichen Innovationssektor. Die Digitalisierung ist im Kern die Grundlage für unser aller Zukunft.
In der IoT2-Werkstatt ist kürzlich das folgende Büchlein erschienen, wo die dortigen MINT-Aktivitäten sehr anschaulich beschrieben werden.
Das vorliegende Büchlein zeigt, wie MINT die Resilienz der Gesellschaft stärken kann. Als herausragende Anwendung hat sich dabei die auf dem Octopus-Mikrocontroller basierende IoT-CO2-Ampel erwiesen. Hunderte Schulen in Deutschland haben zu Beginn der Pandemie ihre Ampeln gemeinsam selbst gebaut. In tausenden Klassenräumen helfen sie seither beim nachhaltigen Lüften.
Angesichts weltweit weiter zu erwartender Infektionen gibt es aber erheblichen Nachholbedarf bei der Raumluftqualität. Da ist es schon etwas deutlich Anderes, ob ein gekaufter Sensor an der Wand hängt, oder ob ein selbstgebautes und durchschautes System an die MINT-Hintergründe der Lüftungsregeln erinnert.
Neben der Messung der Raumluftqualität sind im Büchlein Anwendungen zur Messung des Energieverbrauchs, zum Balkonkraftwerk (genehmigungsfreie Stecker-Solaranlage) und zur Messung des Starkregenpegels zu finden.
In der Vergangenheit habe ich mich mehrfach mit der Überwachung der Luftqualität in Innenräumen befasst.
Die Informationen zur Bewertung der Luftqualität habe ich in einer Sammlung von Beiträgen zusammengestellt, die Ihnen gerade in einer Zeit erhöhter Belastung durch über Aerosole übertragene Infektionskrankheiten den Zusammenhang von CO2-Konzentration und Infektionsrisiko vor Augen führen soll.
Geeignete Sensorik stelle ich Ihnen vor und vergleiche deren Resultate. Praktische Anwendungsbeispiele runden den messtechnischen Teil ab.
Mit dem hier vermittelten Wissen und den zur Verfügung stehenden Elektronikkomponenten (Sensoren, Mikrocontroller) kann der Maker leicht eigene Lösungen zur Überwachung der Luftqualität implementieren.
Wegen der starken Verbreitung in der Maker-Szene habe ich hier auf Arduino oder Arduino-kompatible Mikrocontroller gesetzt.
Elektromagnetische Anzeigetechnologien ermöglichen die Anzeige von Informationen ohne Strom und deren Sichtbarkeit bei sehr unterschiedlichen Lichtverhältnissen.
Ich möchte hier nicht auf die eher betagten Anzeigen im Flughafen eingehen, sondern speziell auf Statusanzeigen (Flip Dot Status Indicators) eingehen, die sich auf Grund des nur während des Umschaltens auftretenden Strombedarfs auch für IoT-Anwendungen eignen.
Den hier eingesetzten Flip Dot Status Indikator hat mir die Fa. Alfa-Zeta Ltd. aus Łódź (PL) zur Verfügung gestellt.
Jede Scheibe enthält einen Permanentmagneten, der mit einem Elektromagneten zusammenwirkt. Ein kurzer Stromimpuls aktiviert eine Umkehr des im Elektromagneten induzierten Magnetfelds, die bestimmt, ob das Segment freigelegt (set) oder zurückgezogen (reset) wird.
Die für die Ansteuerung des Flip Dots notwendigen technischen Daten sind in der folgenden Tabelle zusammengestellt:
Merkmal
Wert
Pulsdauer Schaltvorgang
1,5 ms
Strom für Schaltvorgang (min)
250 mA
Strom nach erfolgtem Schaltvorgang
0
Spannung
4,5 V – 125 V
Spulenwiderstand (@20°C)
12 Ohm
Technische Spezifikation Flip Dot Status Indikator
Beim hier verwendeten, zweipoligen Flip Dot wird das Umschalten des Status durch Richtungsänderung des kurzen Stromimpulses durch die Magnetisierungsspule erreicht. Über eine H-Brücke kann die Umschaltung der Stromrichtung im einfachsten Fall vorgenommen werden.
Ansteuerung Flip Dot Status Indikator
Durch Verwendung eines H-Brücken-Moduls ergibt sich die folgende Ansteuerung durch einen Mikrocontroller (hier ein Arduino Uno).
Die beiden Steuerausgänge müssen für einen Stromimpuls immer gegeneinander invertierte Signale führen, wie das leicht am einfachen Ansteuerprogramm zu erkennen ist. Das Programm selbst finden Sie wieder auf Github unter https://github.com/ckuehnel/Arduino2020/tree/master/Generic/FlipDot.
Ansteuerung Flip Dot Status Indicator über H-Brücke
Schon heute setzen wir uns mit zunehmender Tendenz mit automatisierten Abläufen, Algorithmen und vernetzten Gegenständen im Alltag auseinander. Künstliche Intelligenz wird Prozesse unterstützen und möglicherweise auch irgendwann autonom übernehmen.
Auf diese Entwicklungen vorbereitet zu sein, um sie zu beherrschen, zu gestalten und weiter zu entwickeln bedarf es mehr als einen IT-Grundkurs im Gymnasium oder Studium. Wichtig ist es, die Chance zu haben, in diese Welt und das damit verbundene Denken hineinzuwachsen.
In einigen Ländern wurde das frühzeitig erkannt und durch entsprechende Initiativen gefördert. Die Idee ist, jedes Kind zu inspirieren, seine digitale Zukunft zu gestalten und die Maker-Bewegung in den Unterricht zu bringen.
Im Schweizer Lehrplan 21 wird der heutigen Lebenswelt von Kindern und Jugendlichen entsprochen, die „durchdrungen (ist) von traditionellen und digitalen Medien sowie von Werkzeugen und Geräten, die auf Informations- und Kommunikationstechnologien basieren und die durch ihre Omnipräsenz neue Handlungsmöglichkeiten und neue soziale Realitäten schaffen“ (https://v-fe.lehrplan.ch/index.php?code=e|10|2). Abgestimmt mit dem Lehrplan 21 steht mit der Oxocard ein mit WiFi ausgestatteter Computer zur Verfügung, der auch bereits über den Browser programmiert werden kann. Auch in Deutschland und Grossbritannien werden solche Aktivitäten durch Hard- und Software für den Einsatz in der Schule unterstützt.
„Unser Anspruch ist, dass jeder Schüler und jede Schülerin in der dritten Klasse in Deutschland so ein Ding in die Hände bekommt“, sagt Stephan Noller, einer der Gesellschafter von Calliope. „Es soll nicht irgendein Leuchtturmprojekt in Berlin-Wedding werden, sondern wir wollen in die Fläche – und zwar jedes Jahr von Neuem.“
So unterschiedlich die Angebote sind, eines haben sie gemeinsam: Sie werden von Menschen organisiert, die mit großer Begeisterung ihr Wissen rund um Programmierung und digitale Themen an Kinder und Jugendliche weitergeben. Bei den Machern um BBC micro:bit, Calliope mini und Oxocard ist diese Begeisterung zu spüren.
Ich möchte mich hier auf den technischen Bereich beschränken. Für ideologische Auseinandersetzungen sind andere besser geeignet.
Die folgende Tabelle zeigt eine Gegenüberstellung der technischen Merkmale der drei hier betrachteten Mikrocontrollerboards.
Mikrocontroller Board
BBC micro:bit
Calliope mini
Oxocard
Herkunft
UK
D
CH
Hauptmerkmale
Nordic nRF52833, BLE, Radio Motion Sensor (ST LSM303AGR) 5×5 LED Matrix Display (rot) 2 Taster 19 GPIO Piezo-Lautsprecher MEMS Mikrofon USB Micro B Anschluss (Programmierung und Stromversorgung) JST Batterieanschluss (3.3V) Temperatursensor (on-chip NRF52)
Nordic nRF51822, BLE, Radio Motion Sensor (Bosch BMX055) 5×5 LED Matrix Display (rot) DC Motortreiber (TI DRV8837) Piezo-Lautsprecher MEMS Mikrofon Neopixel (WS2812b) 2 Taster 8-11 GPIOs, PWM, 4 x analog UART + SPI + I2C USB Micro B Anschluss (Programmierung und Stromversorgung) JST Batterieanschluss (3.3V) 2 Grove Stecker (I2C + Seriell/Analog)
Espressif ESP32, BLE, WiFi Motion Sensor (ST LIS3DE) 8×8 Neopixel Matrix Kopfhörerbuchse für 8bit-Audioausgabe (mono) Mikrofon (PDM) NeoPixel Data-Out 6 Taster 6 GPIOs UART + SPI + I2C USB Micro B Anschluss (Programmierung und Stromversorgung) LiPo-Akku Anschluss für Grove I2C-Hub Temperatursensor (on-chip LIS3DE)
Programmier- umgebungen
MakeCode, MicroPython, JavaScript
MakeCode, Swift, abbozza! Calliope (basiert auf Blockly), C/C++ (Segger), MicropPython
Blockly, Oxoscript, Arduino (C/C++), MicroPython.
BBC micro:bit, Calliope mini, Oxocard – im Vergleich
Wie aus den Hauptmerkmalen abzuleiten ist, stellen alle drei Boards eine vergleichbare Infrastruktur bereit. Auf markante Unterschiede will ich im Folgenden eingehen. Eine Betrachtung der Ausgangsversionen von BBC micro:bit und Calliope mini hatte ich in einer früheren Veröffentlichung (https://www.elektroniknet.de/embedded/hardware/mikrocontroller-nicht-nur-fuer-die-schule.150415.html) bereits vorgenommen.
Herausstechendes Merkmal beim BBC micro:bit ist seine an der Unterkante des Boards befindliche als Goldfinger bezeichnete Anschlussleiste. Hier können zahlreiche Erweiterungsboard direkt angeschlossen werden. Einen guten Überblick zu diesen Erweiterungen finden Sie unter https://shop.pimoroni.com/collections/micro-bit-uk.
BBC mirco:bit v2
Beim Calliope mini wollte man den Goldfinger nicht übernehmen, da wegen der viel zu eng liegenden Kontakte im Schuleinsatz mit ständigen Kurzschlüssen durch die Schüler gerechnet werden müsste. Es wurden auf dem Board Erweiterungen, wie RGB-LED (Neopixel) und Motortreiber (H-Brücke) u.a., vorgesehen. Zusätzlich stellen die beiden Grove-Connectoren einen I2C-Bus, einen UART-Anschluss sowie einen analogen Eingang zur Kontaktierung von Sensoren oder Aktoren des umfangreichen Grove-Systems zur Verfügung. Eine gute Übersicht zum Grove-System bietet ein Grove Wiki von Seeedstudio (https://wiki.seeedstudio.com/Grove_System/).
Calliope mini v2
Die Oxocard geht einen etwas anderen Weg. Die elektronischen Interna sind gut verpackt in einem Kartongehäuse. Durch den Einsatz eines ESP-32 steht neben BLE auch WiFi zur Verfügung, wodurch Internet-Konnektivität gegeben ist. Durch diese Option ist es möglich IoT-Projekte zu realisieren. Der LiPo-Akku sorgt dann für einen gewissen Zeitraum sogar für autonome Einsatzmöglichkeiten ohne externe Spannungsversorgung.
Nach aussen hin stehen die sechs Taster und die 8×8 Neopixel Matrix für Experimente zur Verfügung. Durch die Verwendung der internen Sensoren kommt der Anwender erstmal vollkommen ohne elektrische Verbindungen nach aussen aus.
Kommuniziere Meldungen zwischen Oxocards, hol dir Daten aus dem Internet oder stelle dein Karte als Sensor anderen zur Verfügung. All das ist ohne Erweiterungen möglich.
Oxocard mit Kartongehäuse
Für den Maker von Interesse sind natürlich die Erweiterungsmöglichkeiten. Ergänzend zum Lieferumfang der Oxocard ist der OXOCARD i2C-Hub-Erweiterungsport verfügbar.
Lieferumfang Oxocard
Der Oxocard I2C Hub ist ein kleiner Bausatz, um der Oxocard relativ einfach das Anschliessen von beliebigen I2C-Grove- Komponenten zu ermöglichen. Mit diesen I2C-Hub können Sie die Oxocard mit zusätzlichen GROVE-kompatiblen Sensoren und Aktoren erweitern. Ausserdem kann über eine Buchsenleiste der SPI-Port nach aussen geführt werden.
SPI- und I2C-Bus an der Oxocard
Mit diesen Erweiterungsmöglichkeiten ist die Oxocard ein für den Schulbetrieb geeigneter, komplett ausgestatteter und erweiterbarer Mikrocontroller, der als einziger Internet-Zugriff aufweist.
Allen drei vorgestellten Boards gemeinsam ist neben der grafischen Programmierung in MakeCode resp. Blockly die Programmierung in MicroPython.
Seeeduino XIAO ist das kleinste Arduino-kompatible Board in der Seeeduino-Familie. Basis des XIAO ist ein Microchip-SAMD21 (ARM Cortex-M0+ CPU (SAMD21G18)). Der Controller weist 256 KB Flash Memory und 32 KB RAM auf und wird mit 48 MHz getaktet.
Aus dem Pinout des Seeeduino XIAO ist die Ausstattung des kleinen Boards mit Schnittstellen ersichtlich. Durch den mit 48 MHz getakteten Cortex-M0+ weist das kleine Board eine gute Performance auf. Der Dhrystone Benchmark liefert einen Wert von 41589 Dhrystone/sec und das VAX MIPS Rating beträgt 23.67. Für raumsparende Aufbauten und Wearables ist das Board sehr geeignet, wenn auch die On-Board LEDs und die Stromaufnahme von ca. 350 uA im Sleep Mode weniger optimal sind.
Espressif’s ESP32 ist aus IoT Anwendungen kaum noch wegzudenken. Geringe Stromaufnahme, eine leistungsfähige CPU und WiFi- bzw. BLE-Connectivity sind der Schlüssel für den Erfolg in diesem Bereich.
Eine Vielzahl dieser Anwendungen setzt das ESP-WROOM-32x-Modul von Espressiff ein.
Die ESP32-WROVER Serie besticht durch einige Modifikationen der ESP32-WROOM-32x-Module, die unter anderem ein zusätzliches 8-MB-SPI-PSRAM (Pseudo Static RAM) enthalten.
Das zusätzliche PSRAM kann für Geräte mit einem Display sehr nützlich sein. Wenn der Grafiktreiber einen Framebuffer verwendet, können so mehr Farben unterstützt werden.
Für das maschinelle Lernen bietet TensorFlow Lite alle Tools, die Sie zum Konvertieren und Ausführen von TensorFlow-Modellen auf Mobil-, Embedded- und IoT-Geräten benötigen. Genügend Speicher sollte aber vorhanden sein und den kann ein ESP32-Wrover nun bieten (siehe Tabelle).
Aus Fernost werden mittlerweile unterschiedlich ausgestattet Module mit ESP32-WROVER-B angeboten.
Ein gerade für IoT-Anwendungen optimal angepasstes Board wird mit dem ESP32 ePulse Dev Board von der Schweizer Firma Thingpulse angeboten.
Das Board ist für geringen Stromverbrauch und einen breiten Eingangsspannungsbereich optimiert. Weitere technische Aspekte finden Sie im Beitrag Designing the ESP32 Dev Board I always wanted.
Der VIN-Pin akzeptiert Spannungen zwischen 3.3 V und 12 V DC. Wenn sich das Board im Tiefschlaf befindet, verbraucht es nur zwischen 25 uA (bei 3.3 V) und 35 uA (bei 12 V). Die meisten ESP32-Boards verbrauchen etwa 100 – 130 uA.
Der M5StickC hat einen internen LiPo-Akku mit einer Kapazität von 80 mAh, der dem mobilen Einsatz dann doch gewisse Grenzen setzt. Bei meinen Experimenten zur Messung der Wassertemperatur hatte ich das zu berücksichtigen.
Kurz vor dem Jahresende 2019 kam Post aus Shenzen mit dem 18650C HAT, einem Batterieteil für den M5SticKC mit integriertem wiederaufladbaren LiPo-Akku 18650 mit einer Kapazität von 2000 mAh.
Das Batterieteil ist mit den Steckern der HAT-Serie ausgestattet, mit denen eine zuverlässige Verbindung zum M5StickC hergestellt werden kann. Die Unterseite ist mit einer USB-Ladeschnittstelle ausgestattet. Der USB-C-Anschluss des Batterieteils wird nur als Ladeschnittstelle verwendet und hat keine UART-Funktion. Auf der Rückseite des Batterieteils befinden sich zahlreiche Befestigungslöcher, die eine einfache Befestigung des gesamten Devices ermöglicht.
Handheld-Thermometer
Ich habe mit dem ENV Hat und dem M5StickC ein Handheld-Thermometer aufgebaut.
Über den BMP280 im ENV Hat werden Temperatur, relative Luftfeuchte und barometrischer Druck gemessen und im Sekundentakt auf dem M5StickC Display zur Anzeige gebracht.
Ich werde die Laufzeit einer Batterieladung in der Folge testen und hier berichten.
Überwachungsmassnahmen für den Batteriezustand sind nicht implementiert.
Im Blogbeitrag Rapid Prototyping mit M5Stack hatte ich die M5Stack Family als interessante Prototyping Platform vorgestellt.
Dieser Beitrag zeigt an Hand einer einfachen Wetterstation als Beispiel einer nahezu beliebigen IoT-Anwendung, wie mit M5Stack Komponenten schnell ein ansehnlicher Prototyp erstellt werden kann
Mit einem M5Stack Basic Core und einer ENV Unit zur Erfassung von Temperatur, rel. Luftfeuchte und Luftdruck sowie einem SIM800L Module zum Versenden der Daten über GPRS hat man schnell eine abgesetzte Wetterstation aufgebaut, die auch ohne WLAN Zugang autonom funktionieren kann.
Der M5Stack Core besitzt in seinem Unterteil nur einen 150 mAh. Will man die Akkuleistung, beispielsweise zur Pufferung, erhöhen, dann kann ein M5GO/FIRE Battery Bottom Charging Base als Unterteil eingesetzt werden.
M5Stack Basic Core
Die ENV Unit ist ein Umgebungssensor, der zur Messung von Temperatur, relativer Luftfeuchtigkeit und Luftdruck verwendet werden kann. Intern werden die Sensoren DHT12 und BMP280 verwendet.
Der DHT12 ist eine Weiterentwicklung des bekannten DHT11 Sensors, der nun präziser und mit einer I2C-Schnittstelle ausgestattet ist. Der BMP280 ist ein barometrischer Drucksensor, der speziell für mobile Anwendungen entwickelt wurde.
Kontaktiert wird die ENV Unit über den an der linken Seite des M5Stack Basic Core angeordneten Grove-PortA (i2C).
ENV Unit with Temperature Humidity Pressure Sensor (DHT12+BMP280)
SIM800L ist ein Mobiltelefonmodul auf Basis des SIM800L GSM / GPRS-Modul von SIMCOM,
GSM Module SIM800L with MIC & Headphone Jack
Mit diesen drei Komponenten wird die Wetterstation aufgebaut. Die Kosten der ansprechenden Anordnung belaufen sich dabei auf:
Komponente
Preis
M5Stack Basic Core
$ 27.95
ENV Unit
$ 3.39
GSM Module SIM800L with MIC & Headphone Jack
$ 9.95
Summe
$ 41.29
Die folgenden Bilder zeigen den Ablauf vom Programmstart bis zum Abschluss der Übertragung des Temperaturmesswertes, der hier für die Evaluierung ausreichend erschient.
Initialisierung nach Programmstart
Messwerte erfasst – Versenden zum Thingspeak Server
Messwerte versendet
Der Quelltext für das Programm M5Stack_DHT12_Thingspeak ist auf Github unter https://github.com/ckuehnel/M5Stack/tree/master/M5Stack/M5Stack_DHT12_Thingspeak abgelegt. Anpassungen auf weitere Parameter und andere Displayausgaben können nach dem Download leicht vorgenommen werden. Programmiert wurde mit der Arduino IDE v1.8.9.
Das Ergebnis der abendlichen Abkühlung ist im folgenden Bild zu sehen.
Temperaturverlauf 6.08.2019 abends
Ein Wort noch zur Stromversorgung. Der SIM800L ist bekannt dafür, dass er in Spitzen bis zu 2 A Stromaufnahme verzeichnet. Die Spannungsversorgung kann beim M5Stack aber vernünftig nur über den USB-Anschluss erfolgen. Dadurch ist der zur Verfügung stehende Strom limitiert.
Ich habe einen D-Link DUB-H4 USB-Hub verwendet, der vier Downstream-USB-Anschlüsse Typ A (Buchse) inklusive Schnellladeanschluss besitzt und durch ein externes Netzteil gespeist wird.
Der fürs iPad u.a. stromhungrige Verbraucher gedachte Schnellladeanschluss dient hier zur Stromversorgung und die sporadischen Brown Out-Resets des ESP32 sind Vergangenheit.