Berührungslose Temperaturmessung mit M5StickC

Die berührungslose Temperaturmessung ist ein Messverfahren, welche sich in der Industrie schon lange etabliert hat. Die Vorteile des Messverfahrens sind:

  • Messung an sich bewegenden, schwer zugänglichen oder sehr heißen Objekten
  • Sehr kurze Mess- und Ansprechzeiten
  • Rückwirkungsfreie Messung, keine Beeinflussung des Messobjektes
  • Zerstörungsfreie Messung
  • Langlebigkeit der Messstelle, kein Verschleiß
  • Möglichkeit der Messung auch bei hohen Spannungen, elektromagnetischen Feldern oder aggressiven Materialien

Die Grundlagen der berührungslosen Temperaturmessung einschließlich umfangreicher Emissionstabellen sind von microEpsilon detailliert beschrieben.

In der gegenwärtigen Lage rund um Corona und die COVID-19 Pandemie tritt die berührungslose Messung der Körpertemperatur stärker wahrnehmbar in den Vordergrund und das Angebot entsprechender Messgeräte explodiert nahezu.

Die Familie der MLX90614 Infrarot-Temperatursensoren (Thermopile) von Melexis umfasst unterschiedlich ausgestattete Sensoren für die berührungslose Temperaturmessung.

Der IR-empfindliche Thermopile-Sensor MLX81101 und das für die Signalverarbeitung zuständige ASSP MLX90302 (Application-Specific Standard Product) sind in einem TO-39-Gehäuse untergebracht. Dank seines rauscharmen Verstärkers, 17-Bit-ADC und einer leistungsstarken DSP-Einheit werden hohe Genauigkeit und Auflösung des IR-Thermometers erreicht.
Das Thermometer wird werkseitig für einen Emissionsfaktor von Eins kalibriert. Der Emissionsfaktor von Haut beim Menschen beträgt 0,98, so dass der Sensor ohne nachträgliche Kalibrierung zur Messung der Körpertemperatur (z.B. an der Stirn) verwendet werden kann. Das Messergebnis steht als PWM-Signal oder über den I2C-Bus zur Verfügung. Das Datenblatt zum MLX90614 finden Sie hier.

Der MLX90614 Infrarot-Temperatursensor steht in unterschiedlichen Gehäusen zur Verfügung. Hier von Interesse ist der NCIR HAT für den M5StickC. Das nebenstehende Bild zeigt einen M5StickC Mikrocontroller auf Basis eines ESP32. Ein M5StickC NCIR HAT dient der berührungslosen Temperaturmessung. Durch einen M5StickC Akku HAT 18650C wird die Akkulaufzeit verlängert. Im Akku HAT ist ein wiederaufladbarer 18650 Akku verbaut, der über den herausgeführten USB-Typ-C Anschluss aufgeladen werden kann.

Wie im Display des M5StickC zu erkennen ist, werden Objekt- und Umgebungstemperatur in °C gemessen, sowie der Ladezustand des LiPo-Akkus angezeigt.

Thermopiles für die Massenanwendung mit Leseabständen zwischen 1-2 cm gibt es bereits am Markt. Der MLX90614 von Melexis ist ein breit eingeführter Sensor. Die gegenwärtige Lage rund um Corona und die COVID-19 Pandemie erfordert aber weitergehende Lösungen. Das Ziel der Entwicklungsarbeit des CiS Forschungsinstituts für Mikrosensorik in Erfurt ist ein Sensor mit Reichweiten zwischen 0,5 und zwei Metern, wobei die mittlere Distanz bei etwa einem Meter liegen soll. Der kostengünstige Sensor soll eine Genauigkeit von 0,2 °C bei 100 Messpunkten pro Sekunde bieten. Dadurch entsteht eine zeitaufgelöste Messkurve, die eine Temperaturmessung auf der Stirn des Passanten erlaubt, ohne dass dieser in seiner Bewegung eingeschränkt wird.

ObjectCounter mit M5StickC

Das Wissen, wie viele Personen sich an einem bestimmten Ort aufhalten, kann als Steuerungsgröße für sehr unterschiedliche Prozesse dienen.

Sogenannte PaxCounter ermitteln die Personenanzahl an einem Ort, indem Sie die Signale von Mobiltelefonen auswerten, die zur Verbindungsaufnahme über WiFi oder BLE gesendet werden. Die Bedingungen für eine näherungsweise korrekt ermittelte Anzahl von Personen sind, dass jede Person ein eingeschaltetes Mobiltelefon mitführt und sich im Empfangsbereich des PaxCounters befindet. Die zu überwachende Fläche ist damit begrenzt durch die WiFi- bzw. BLE-Reichweite. Wie Sie einen PaxCounter selbst herstellen können, zeigt Ihnen diese Bauanleitung.

Kamera-Anwendungen (gekoppelt mit KI) können zur Personenerkennung und -zählung verwendet werden, erfordert aber einen nicht zu vernachlässigenden Aufwand.

Mit den bekannten PIR-Sensoren kann eine Objekt- bzw. Personenzählung über einen gesonderten Zugangs- und Austrittsbereich sehr einfach gestaltet werden.

Die Komponenten der M5Stack-Familie unterstützen ein unkompliziertes Prototyping, wie Ihnen das nebenstehende Bild zeigt. Kern ist der M5StickC Mikrocontroller auf Basis eines ESP32. Ein M5StickC PIR Bewegungsmelder HAT AS312 dient der Objekterkennung. Durch einen M5StickC Akku HAT 18650C wird die Akkulaufzeit verlängert. Im Akku HAT ist ein wiederaufladbarer 18650 Akku verbaut, der über den herausgeführten USB-Typ-C Anschluss aufgeladen werden kann.

Das Display des M5StickC zeigt die erfasste Anzahl von Personen (oder Objekten) sowie den Ladezustand des Akkus an. Ist eine Person erfasst, dann blinkt die interne LED, bis der PIR Sensor wieder mess-bereit ist. Diese Haltezeit kann beim verwendeten Sensor nicht verändert werden. Andere PIR-Sensoren ermöglichen dies allerdings.

Wio Terminal eingetroffen

Nach meiner Bestellung vom März 2020 (Pre Order) ist nun heute das für den 15.04.2020 angekündigte Wio Terminal eingetroffen.

Beim Wio Terminal handelt es sich um einen Mikrocontroller auf Basis eines ATSAMD51 (Cortex-M4F) und drahtloser Konnektivität durch ein Realtek RTL8720DN-Chip. Der CPU-Clock liegt bei 120 MHz (Boost bis zu 200 MHz). Der Realtek RTL8720DN-Chip unterstützt sowohl Bluetooth als auch WiFi und bildet das Rückgrat für IoT-Projekte. Das Wio Terminal ist mit einem 2,4-Zoll-LCD-Bildschirm, einer integrierten IMU (LIS3DHTR), einem Mikrofon, einem Summer, einem microSD-Kartensteckplatz, einem Lichtsensor und einem Infrarot-Emitter (IR 940 nm) ausgestattet. Peripherie-Erweiterungen sind über zwei Grove Stecker (I2C, A0, A1, D0, D1) möglich. Ein USB-C-Anschluss dient der Spannungsversorgung, dem Programm-Upload und als Debud-Schnittstelle. Wio Terminal ist mit Arduino und MicroPython kompatibel.

Die Inbetriebnahme ist unter https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/ detailliert erläutert, weshalb ich hier nicht darauf eingehe.

Die Wio Terminal Hardware ist in einem ansprechenden Gehäuse verbaut. An der Rückseite ist ein 40-polige Buchsenleiste für zusätzliche Erweiterungen vorhanden.

Wio Terminal Front
Wio Terminal Back

Ich habe mit drei Benchmarks untersucht, ob Wio Terminal eine brauchbare Basis für IoT-Projekte ist.

Die folgenden Screenshots zeigen die Ergebnisse der Benchmark. Die Resultate von Whetstone- und Coremark-Benchmark können hier mit anderen Arduinos- resp. Arduino-kompatiblen Mikrocontrollern verglichen werden.

Whetstone Benchmark
CoreMark Benchmark

Der TFT-Benchmark ist controller- und library-spezifisch. Aus den einzelnen Zeiten wird aber deutlich, dass Display und zugehörige Library eine sehr ordentliche Performance in dieser Leistungsklasse aufweisen. Um eine bessere Vorstellung zu bekommen, zeigt das Video weiter unten die Bildinhalte des TFT-Benchmarks.

TFT Benchmark

Fazit:

Neben den ESP32-basierten M5Stack- und M5StickC-Controllern haben Sie mit Wio Terminal einen starken Cortex-M4F-Mikrocontroller, der zwar nicht ganz die Performance-Daten des M5Stack Core (ESP32) aber dennoch genug Leistung für die üblichen IoT-Projekte aufweist. Das Display ist grösser und es stehen mehr Eingabeelemente zur Verfügung. Die jeweilige Anwendung wird wohl darüber entscheiden, welcher Controller zum Einsatz kommen wird.

Nachtrag:

Über Twitter habe ich einen Hinweis zu meinem Beitrag bekommen, den ich gerne weiterleite.

Die LovyanGFX Library ist eine SPI LCD Graphics Library für Mikrocontroller auf Basis ESP32 und SAMD51. Die Library unterstützt damit M5Stack / M5StickC / TTG T-Watch / ODROID-GO / ESP-WROVER-KIT & WioTerminal. Die Ergebnisse sind beachtlich. Sie können die Zahlen vergleichen.

Schau doch mal ins Postfach…

Das Läuten des Telefons nicht gehört oder das Handy an der Ladestation vergessen? Das kennt jeder, der seine Eltern oder Großeltern nicht in der Nähe hat und auf digitale Kommunikation angewiesen ist.
Wäre es da nicht von Vorteil eine sichtbare Signalisierung zu haben, die anzeigt, dass eine neue Mitteilung über Whatsapp gekommen ist oder eine neue eMail im Postfach darauf wartet gelesen und beantwortet zu werden.


Für die Türklingel, die vielleicht nur schlecht gehört wird, oder das Telefon gibt es Einrichtungen, die durch das Leuchten einer Lampe Aufmerksamkeit erzeugen. Wie wäre es also, eine kleine ferngesteuerte Lampe an geeigneter Stelle zu positionieren und diese dann ferngesteuert ein- und auszuschalten. Wollen Sie an eine unbeantwortete Whatsapp erinnern, dann lassen Sie die Lampe beispielsweise einfach Grün leuchten, bei einer unbeantworteten eMail könnte das dann Gelb sein.

neue Whatsapp versendet

Ein seitlich angebrachter Knopf kann die Lampe dann ausschalten. Sie können auch dafür sorgen, dass während einer festgelegten Ruhezeit, die Lampe ausgeschaltet bleibt. So könnte beispielsweise die farbige Signalisierung aussehen.

| | | | | |

Die hier von mir gezeigte Lampe ist mit dem Internet verbunden und empfängt ihre Steuersignale über MQTT. Sie können vom Mobiltelefon die Benachrichtigungen absenden, d.h. die Farbe des Licht der Lampe und seine Helligkeit steuern. Die Lampe sendet ihrerseits eine Benachrichtigung bei der Betätigung einer seitlich angebrachten Taste, d.h. als Quittung beim Ausschalten. Das ist also der einzige Knopf der an der Lampe zu bedienen ist.


Was braucht es neben der Lampe noch an Infrastruktur?

Die Lampe wird über ein Steckernetzteil, dass Sie vom Mobiltelefon her kennen, mit Spannung versorgt und der heimische WLAN-Router verbindet die Lampe über WLAN mit dem Internet.

Ein MQTT-Broker ist die Schaltzentrale zwischen Mobiltelefon, Tablet oder PC auf dem ein MQTT-Client installiert wird. Am Einfachsten ist das Versenden der Benachrichtigung vom Mobiltelefon aus, denn damit können Sie neben der eigentlichen Kommunikation auch unmittelbar die D1Lamp erreichen.


Umsetzung

Mit der LED-Außenwandleuchte Lutec TELIN 5197002125, die bei zahlreichen Onlinehändlern und Baumärkten erhältlich ist, hat man ein Gehäuse, welches auch für den Außeneinsatz in Frage käme (IP54). Die vorhandene weiße LED könnte mit einem Relais vom Controller geschaltet werden. Ich verwende diese nicht, da ich zur Signalisierung farbiges Licht verwenden möchte.

LED-Außenwandleuchte Lutec TELIN 5197002125
LED-Außenwandleuchte Lutec TELIN 5197002125

Die Lutec-Leuchte hat genügend freien Bauraum um einen Wemos D1 mini Controller mit aufgestecktem LOLIN RGB LED Shield unterzubringen.

Der Wemos D1 mini ist ein ESP8266 mit 4 MB Flash (NodeMCU) und integrierter WLAN-Antenne und ist für derartige IoT-Projekte vollkommen ausreichend. Das LOLIN RGB LED Shield weist sieben Neopixel-LEDs (WS2812B-mini) auf. Zur Ansteuerung der Neopixel-LEDs wird nur eine Leitung benötigt. Die Stromversorgung für beide Boards erfolgt über ein Steckernetzteil, welches an den microUSB-Anschluss des Wemos D1 mini angeschlossen wird. Das Programm ESP8266_D1Lamp.ino ist auf Github abgelegt.


Variante mit M5Stack ATOM

Wer die vorgeschlagene Lösung mit einem Lampengehäuse zu sperrig empfindet und lieber eine kompakte Variante bevorzugt, die vielleicht einfach mit doppelseitigem Klebeband beispielsweise an ein Regal geklebt wird, der kann einen M5Stack ATOM Controller mit einer Größe von nur 24 * 24 mm einsetzen. Die Spannungsversorgung erfolgt wieder über den USB-Anschluss durch ein Steckernetzteil.

M5Stack ATOM

Die Signalisierung erfolgt wieder durch farbig leuchtende oder blinkende LEDs, wobei ausgewählt werden kann, ob nur eine LED, mehrere oder, wie hier im Bild gezeigt, alle LEDs eingesetzt werden. Ein Druck auf die Frontscheibe der Anzeige betätigt einen Taster und das Display kann ausgeschaltet werden.

Signalisierung durch farbiges Blinken
Blinkende LED-Matrix

Die Steuerung des Displays über MQTT ist identisch zur vorherigen Lösung und ist für den Anwender der Anzeige ohnehin verborgen.

Variante mit Wemos D1 mini und LEDs

Abgeleitet aus der Variante mit Wemos D1 mini und LOLIN RGB LED Shield habe ich noch eine einfache Variante mit 4 farbigen LEDs ausgebaut. Den Farben können passende Inhalte zugeordnet werden. Hier signalisiert die grüne LED eine neu angekommene WhatsApp Mitteilung.

Grüne LED signalisiert neue WhatsApp Message

Die gelbe LED signalisiert hier beispielsweise eine neue eMail. Durch Druck auf den Knopf oben kann das quittiert werden, was durch die blinkende blaue LED auch angezeigt wird. Danach sind alle LEDs ausgeschaltet.

eMail ist angekommen – Mitteilung wird quittiert

Solar-betriebener LoRaWAN-Sensorknoten mit Heltec CubeCell

Heltec CubeCell besitzt die komplette Infrastruktur zum Aufbau eines solar-betriebenen LoRaWAN-Knotens on-board.

Solar-betriebener LoRaWAN-Sensorknoten mit Heltec CubeCell

Sensor-Erweiterungen können über den I2C-Bus erfolgen. Es sind beim CubeCell keine PullUp-Widerstände vorhanden. Diese sind extern zu berücksichtigen, was ohnehin meist bei Einsatz eines Breakout Boards der Fall ist. Die PullUp-Widerstände sollten nicht mit VDD sondern mit Vext verbunden werden. Vext kann aktiviert werden bevor der I2C-Bus aktiv ist und kann nach dem I2C-Bus-Transfer wieder abgeschaltet werden.

pinMode(Vext, OUTPUT);
digitalWrite(Vext, LOW); // switches Vext on
delay(500); // allow Vext to settle

Im Batteriebetrieb wird die Stromaufnahme von unter 4 uA im Deep Sleep nicht erreicht. Im Batteriebetrieb sind Ladeschaltung und LDO aktiv, wodurch sich der Strom im Deep Sleep entsprechend erhöht. Hierzu wurden die folgenden Werte veröffentlicht (https://github.com/Securethingsuk/Heltec_CubeCell/blob/master/HelTec%20CubeCell%20Information%20sheet.pdf).

Heltec CubeCell Stromaufnahme

Den oben gezeigten LoRaWAN-Knoten betreibe ich derzeit im Test noch ohne Nachladung durch die Solarzelle. Wenn sich der erwartete Strombedarf zeigt, dann schließt sich dieser Test an.

ePulse ESP32 – das Warten hat sich gelohnt

Das ePulse ESP32-Entwicklungsboard der Schweizer Fa. ThingPulse ist für geringen Stromverbrauch optimiert. Der VIN-Pin akzeptiert Spannungen zwischen 3V3 und 12V. Im Deep Sleep (Tiefschlaf) verbraucht das Board nach Herstellerangaben zwischen 25 uA (bei 3V3) und 35uA (bei 12V). Die meisten ESP32- und ESP8266-Boards verbrauchen etwa 100 – 130 uA.
Meine Messung ergab für 5 V an VIN einen Strom von 23.5 uA.

ePulse Stromaufnahme bei VIN = 5 V

Der grundsätzliche Zyklus für eine IoT-Device ist, dass das Gerät aufwacht, eine Netzwerk-Verbindung herstellt, einen Befehl über einen Dienst zu einem Server sendet und wieder in den Ruhezustand geht, bis dass das nächste WakeUp folgt. Der Stromverbrauch in der Operation-Phase wird durch die Netzwerkverbindung definiert und ist nur durch die Wahl des Mediums zu beeinflussen. Beim ESP32 tritt bei einer WiFi-Verbindung kurzzeitig eine Stromaufnahme von bis zu 140 mA auf [1].

Grundsätzlich gilt zur Reduzierung des Stromverbrauchs insgesamt, die Sleep Phasen lang genug zu machen. Das ist natürlich von der Anwendung stark abhängig.

Geht man für eine WiFi-Verbindung von einer Stromaufnahme von 140 mA für 12 s aus und schickt nach Versenden der Mitteilung den ESP32 in den Deep Sleep Zustand, dann reduziert sich die mittlere Stromaufnahme bei einem Call/Stunde bereits auf ca. 0.5 mA. Seltenere Aufrufe reduzieren die Stromaufnahme weiter und zeigen dann auch die Unterschiede zwischen ESP32 und ePulse. Der Haupteinfluss durch die WiFi-Verbindung ist natürlich nicht wegzudiskutieren. Interessant dürften Untersuchungen mit weiteren Netzwerk-Technologien, wie LoRa oder NB-IoT sein.

[1] Ultra-Low-Power-Management des ESP32 für WiFi-IoT-Module nutzen

mikroe Click Boards am Arduino

Mikroe bietet eine Vielzahl von Sensoren, Aktoren, Displays und mehr im Click-Board-Format an.
Diese Click Boards können auf dem Arduino mit dem Arduino Uno Click Shield verwendet werden. Die Schnittstelle zum eingesetzten Mikrocontroller ist das standardisierte mikroBUS-Interface.

mikroBUS-Interface

Im Bild sind ein Air Quality Click mit MQ-135 Sensor und ein BarGraph Click aufgesteckt auf ein Arduino Uno Click Shield zu sehen. Mit dieser Anordnung kann über den MQ-136 Sensor die Luftqualität gemessen und mit dem BarGraph Display qualitativ angezeigt werden. Hierzu wird der Messwert auf die möglichen Anzeigewerte gemappt.

undefined

Beim BarGraph Click Shield muss die verwendete Spannung des Arduino Boards per Jumper selektiert werden. Die folgenden Komponenten werden verwendet
– Luftqualitätsklick (PID: MIKROE-1630)
– BarGraph Klicken Sie auf (PID: MIKROE-1423)
– Arduino UNO Click Shield (PID: MIKROE-1581)

Durch die Verwendung der Click Boards von mikroe kann sehr einfach die beim Einsatz mit dem Arduino verwendete Hardware erweitert werden.

Links:

mikroe Website
MikroBUS-Spezifikationen
Arduino Libraries für Click Boards von Lextronics (F)