Archiv der Kategorie: Monitoring

Rapid Prototyping mit M5Stack

Wem es bislang an Baugruppen mit einem vernünftigen Gehäuse für die Entwicklung seiner Prototypen gemangelt hat, dem wird mit M5Stack Komponenten eine ansprechende Lösung angeboten.

Hier sind aus dem Angebot von M5Stack zwei Core Module:

Generell weisen beide Core Module einen ESP32 als Controller auf.

Die M5Stack Komponenten werden von zahlreichen Lieferanten angeboten und sind nicht nur bei Bezug aus Fernost sehr preiswert.

KomponenteAliexpress
M5Stack CoreUS$ 27.60
M5StickCUS$ 9.90
ENV UnitUS$ 3.20

Ich habe mit dem M5StickC erste Versuche unternommen, um seine Eignung für ein portables Messgerät zu testen. Der M5StickC ist mit einem 80 mAh LiPo-Akku ausgerüstet, was keine großen Akkulaufzeit erwarten lässt.

Der M5StickC ist mit einem Power System Management Chip AXP192 ausgestattet, der ein USB-kompatibles Ladegerät, DC-DC-Wandler, Low-Dropout-Linearregler, Spannungs- /Strom- /Temperaturüberwachung und Multi-Kanal 12-Bit ADC aufweist. Die Überwachung des Ladezustand des LiPo-Akkus kann über diesen Chip erfolgen.

Der ESP32 weist zwei I2C-Busse auf. Über den ersten werden die internen Chips AXP32 (0x34), BM8563 (0x51) und SH200Q (0x6C) angesteuert. Der zweite I2C-Bus ist am GROVE-Connector verfügbar.

Für einen ersten Test schließe ich eine ENV Unit über den GROVE-Connector an. Dieses Modul beinhaltet einen DHT12 (0x5C) und einem BMP280 (0x76) Sensor und erfasst damit Temperatur, relative Luftfeuchte und barometrischen Druck.

Das Programmbeispiel M5StickC_ENV.ino erfüllt zwei Aufgaben:

  1. Erfassen von Temperatur, relativer Luftfeuchte und barometrischem Druck über die angeschlossene ENV Unit.
  2. Erfassen von Batteriespannung und Ladestrom für den LiPo-Akku

Das Programmbeispiel ist auf Github abgelegt.

Ausgehend von einem voll aufgeladenen LiPo-Akku habe ich die USB-Verbindung getrennt und das angegebene Programmbeispiel batterie-betrieben laufen lassen. Es hat sich folgender Entladevorgang gezeigt.

Nach reichlich 60 Minuten war die Kapazität des Akkus erschöpft und das System schaltete sich ab. Die folgenden Bilder demonstrieren diesen Vorgang.

Beginn mit voll aufgeladenem LiPo-Akku
Entladung nach 10 Minuten
Erneutes Aufladen des LiPo-Akkus

Es soll an dieser Stelle noch ausdrücklich darauf hingewiesen werden, dass für den Betrieb hier keine WiFi-Verbindung genutzt wurde. Eine WiFi-Verbindung erhöht den Stromverbrauch deutlich, so dass wesentlich geringere Laufzeiten erwartet werden müssen.

Erfassen von Wetterdaten – gar nicht so einfach

Mit zahlreichen, heute angebotenen Sensoren zur Erfassung von Wetterdaten, wie Temperatur, relativer Luftfeuchte, Druck u.a.m. können mit etwas Elektronik sehr einfach Wetterdaten erfasst und im Internet bereit gestellt werden.Openweathermap.org bietet beispielsweise ein API an, mit dessen Hilfe diese Daten im Openweathermap Mapping sichtbar werden. Anforderungen an die Messstelle selbst habe ich auf deren Website nicht gefunden.

Temperatur Mapping

Das Temperatur Mapping in meinem Umfeld zeigt am 2.05.2019 bei bedecktem Wetter keine grösseren Abweichungen.

Mich hat das Verhalten der Openweathermap Messstation an meinem Wohnort im Vergleich zu lokalen Wettersensoren interessiert. Ich habe deshalb selbst einen Temperatursensor DS18B20 in einem von direkter Sonneneinstrahlung geschütztem Bereich installiert und vergleiche die beiden Messwerte. Bei großzügiger Betrachtung kann man sagen, dass beide Messwerte einen Offset von 2.5 ° aufweisen. Selbst wenn man diesen Offset eliminiert, gibt es über den Tagesverlauf unerfreuliche Abweichungen.

Da die Messwerte doch rechte Unterschiede auswiesen, habe ich ein weiteres Außenthermometer hinzugenommen, was allerdings in den Morgenstunden durch Sonneneinstrahlung keine brauchbaren Werte liefert. Das Außenthermometer sendet seine Daten nur zwischen 5:00 und 20:00, was für den Vergleich aber unerheblich sein sollte.

Die Grafik zeigt deutlich, dass ohne Sonnenbestrahlung die Ergebnisse der Openweathermap Wetterstation ausreichend gut repräsentiert werden.

Die Wahl der entsprechenden Messbedingungen entscheidet also erwartungsgemäß über das Ergebnis

Die Situation der im Internet zugänglichen Messstellen kann aber auch ganz anders aussehen. J. Kachelmann zeigt das in seinem Blog im Tagesanzeiger mit dem Titel „Das ideale Geschenk zur Konf“ und wirbt für die gute alte Wetterhütte, die immer noch nicht an Bedeutung verloren hat und für zuverlässige Messwerte die Grundlage schafft.

Sonoff SC – Home Air Quality

Sonoff SC ist ein WiFi Luftgüte-Monitor für den Einsatz in Innenräumen.  Es werden Temperatur und Luftfeuchtigkeit, Lichtstärke, Feinstaub und Geräuschpegel erfasst. Die erfassten Daten werden direkt an die iOS/Android App EWeLink geschickt. Die Spannungsversorgung erfolgt über microUSB mit 5 V.

Sonoff SC ist „hacker-friendly“. Ein ATMega328p erfasst die Sensordaten mit Hilfe eines Arduino-Programms und ein ESP8266 dient der WiFi Kommunikation. Sonoff SC Schaltplan und Arduino Code sind im Wiki des Herstellers zu finden.

Wie die folgende Abbildung zeigt, besteht Sonoff SC aus Komponenten, die dem Maker weitgehend bekannt sein dürften.

sonoff_sc_2

Die Feinstaub-Belastung wird mit dem Sharp Dust Sensor GP2Y1010AU0F gemessen. Zur Messung von Temperatur und rel. Luftfeuchtigkeit dient der verbreitete DHT11 Sensor. Ein Elektret-Mikrofon erfasst die Umgebungsgeräusche und ein Fotowiderstand das Umgebungslicht.

Nach Installation der Android App eWeLink (für iOS gibt es eine entsprechende App) kann Sonoff Sc mit dieser App verbunden werden, die dann die erfassten Messgrößen auf dem Smartphone anzeigt.

Screenshot_20181201-143318_eWeLink

Sonoff Sc ist kein professionelles Messinstrument. Das zeigen schon die eingesetzten Low-Cost-Komponenten. Fast viel wichtiger ist es, diesen Sensor als Grundlage für eigene Experimente aufzufassen. Dazu sind alle Informationen, wie Schaltplan und Quellcode, offen gelegt und bei einem Preis von aktuell unter USD 20,- kann man da nichts falsch machen.

Website des Herstellers und Bezugsmöglichkeit: https://www.itead.cc/sonoff-sc.html
Weitere Bezugsmöglichkeiten: Aliexpress, Amazon

Thinger.io IoT Platform

Zahlreiche IoT Plattformen werben um die Gunst potentieller Kunden. Ich bin auf Thinger.io gestoßen, da von dieser Plattform mit dem ClimaStick auch eigene Hardware zur Erfassung von Umweltdaten angeboten wird. Hackster bietet auf dieser Basis auch gleich eine IoT Meteorological Station an.

Interessant ist diese Plattform allemal, da das Verbinden und Verwalten des eigenen IoT-Devices innerhalb weniger Minuten möglich ist.

Die folgenden Merkmale erscheinen mir besonders erwähnenswert:

  • Open Source
    Der Server kann in der eigenen Cloud (z.B. auf einem Raspberry Pi) installiert werden.
  • Flexible Hardware
    Arduino, ESP8266, ESP32, Raspberry Pi, Intel Edison – alles kann problemlos angeschlossen werden.
  • Cloud-Plattform
    Die gehostete Cloud-Infrastruktur mit einer benutzerfreundlichen Administrationskonsole ermöglicht Skalierbarkeit, Geschwindigkeit und Sicherheit.
  • Einfache Codierung
    Um ein Licht aus dem Internet einzuschalten oder einen Sensorwert zu lesen, ist eine einzige Codezeile auf der MCU erforderlich. Aber das ist nicht alles.
  • Für Maker
    Interessenten können sich für einen kostenlosen Account registrieren, um innerhalb weniger Minuten unter Nutzung der Cloud-Infrastruktur mit der Erstellung des ersten IoT-Projekts zu beginnen.

Im Bild zum Beitrag ist ein aus NodeMCU und DHT22 bestehendes IoT-Device mit der Cloud-Infrastruktur verbunden, die die erhobenen Daten visualisiert.

 

Kerlink Wirnet iFemtoCell – Kleines LoRaWAN Indoor Gateway mit großer Leistung

Der Ausbau landesweit erreichbarer Funknetze auf LoRa-Basis ist in einigen Ländern, wie der Schweiz (Swisscom), den Niederlanden (KPN) und Süd-Korea (SK Telecom), bereits erfolgreich umgesetzt. Andere Service Provider stellen ebenfalls die erforderliche Infrastruktur zur Verfügung. Neben kommerziellen Angeboten gibt es auch Services, die kostenfrei genutzt werden können.

Ein LoRaWAN-Gateway verbindet die über Funk kommunizierenden LoRaWAN-Nodes über das Internet mit einem LoRaWAN-Server. Weil hier in erster Linie Stabilität und Sicherheit gefordert sind, betrachte ich für diesen Einsatz nur kommerzielle LoRaWAN-Gateways.

Im Smartmakers Newsletter gehe ich speziell auf das Wirnet iFemtoCell LoRaWAN Gateway ein, welches perfekt für die Erweiterung in Gebäuden (zusätzliche Abdeckung in Gebäuden zur Verdichtung öffentlicher Verfügbarkeit und Kontinuität des Dienstes) oder für die private Abdeckung von Standorten geeignet ist, die kontinuierliche Konnektivität für ihre IoT-Anwendungen erfordern.

Betrachtet werden die folgenden Schwerpunkte

  • Unboxing
  • Inbetriebnahme
  • SSH-Verbindung
  • Firmware Update
  • Integration ins The Things Network (TTN)
  • Integration ins LORIOT-Netzwerk
  • Programmierung von Anwendungen auf dem Gateway

 

 

HiGrow-Sensor: Daten erfassen und versenden

Im Post HiGrow-Sensor sorgt für das Wohl der Pflanzen hatte ich auf den HiGrow-Sensor hingewiesen, der zur Überwachung der Umweltbedingungen in Pflanzennähe eingesetzt werden kann.

Im Programm HiGrowESP32MQTT.ino werden die Sensordaten des dort eingesetzten DHT11-Sensors zur Messung von Lufttemperatur und Luftfeuchte, sowie die kapazitiv gemessene Bodenfeuchte und die Helligkeit erfasst und entsprechenden Topics von MQTT-Messages zugeordnet. Zu Kontrollzwecken werden diese Daten auch seriell ausgegeben und können durch den internen Monitor der Arduino IDE verfolgt werden. Das Programm  HiGrowESP32MQTT.ino steht auf Github zum Download zur Verfügung.

HiGrow Data

Mit einem MQTT Client können die abonnierten Mitteilungen visualisiert werden.

Screenshot_20180319-140609.png

Bei meinen Test ist mir aufgefallen, dass recht häufig nach dem Programmstart der Brownout Detector getriggert wurde und einen entsprechenden Reset ausgelöst hat.

HiGrow Brounout

Verfolgt man die Diskussion (z.B. hier https://github.com/nkolban/esp32-snippets/issues/168) dann scheint ein hoher Strombedarf während der Initialisierungsphase ein (der?) Grund für das Verhalten zu sein.

Der HiGrow-Sensor weist einen Batteriehalter für eine 18650-LiPo-Batterie auf. Bei meinen Tests war die Batterie nicht bestückt. Möglicherweise puffert eine bestückte Batterie dann diesen kurzzeitigen Strombedarf hinreichend.

 

C.H.I.P. als Sensor-Knoten

Wegen seiner Kompaktheit kann C.H.I.P.  dann sehr gut als Sensor-Knoten eingesetzt werden, wenn es nicht auf minimalen Stromverbrauch ankommt.

Für erste Tests habe ich mit dem Program chiplog.py  die CPU-Last, den verfügbaren Speicher und die Boardtemperatur abgefragt und über Thingspeak visualisiert. Ausserdem wird beim Überschreiten der Temperatur eine Push-Message versendet. Mit dem Programm stress habe ich die CPU-Last erhöht, um die Auswirkungen auf die Boardtemperatur zur verdeutlichen.

CPU_Load

Mem_avail

PMU_Temp

Um einen externen Sensor abfragen zu können, bedarf es nur noch weniger zusätzlicher Zeile Code, die für einen Temperatur- und Feuchtigkeitssensor SHT31 noch folgen.

Das Programm BatStatus.py zeigt den Status der Batterie in den ersten Minuten nach dem Anschliessen an den C.H.I.P.  Controller.

BatStatus

Die Programme chiplog.py und BatStatus.py sind auf Github abgelegt. Im Wiki sind Installationshinweise nach einem Flashen des Betriebssystems und dem erforderlichen Python-Setup aufgeführt.