Archiv der Kategorie: Internet of Everything

Maduino GPRS A6

Maduino GPRS A6 ist ein kostengünstiger Netzwerkknoten für das IoT. Der Hersteller
Makerfabs mit Sitz in Shenzhen, China hat auf dem Board einen Mikrocontroller ATmega 328, ein GRRS/GSM-Modul AI-Thinker A6, ein und ein integriertes Power-Management integriert.

Maduino GPRS A6

Das GRPS/GSM-Modul A6 unterstützt Quad-Band 850/900/1800/1900 MHz, das jedes GSM-Netzwerk abdeckt. In Verbindung mit einer SIM-Karte können Daten über GPRS übertragen werden. In meinem Post 2G für IoT Anwendungen hatte ich hierzu entsprechende Hinweise gegeben.

Das Modul kann über die Arduino IDE programmiert werden. Im Wiki sind Hinweise zur Inbetriebnahme und Programmierung enthalten. Hinweise zu einem Firmware Update sind hier zu finden.

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.

2G für IoT-Anwendungen

Bislang schon bereits für tot erklärt und mit Abschaltungsszenarien belegt, stellt das mittlerweile betagte 2G-Netz immer noch eine Alternative zu 3G/4G und 5G dar.

Dass ein schnelles Internet und damit 5G seine Bedeutung haben, ist keineswegs strittig. IoT Anwendungen mit geringem Datenvolumen und mglw. auch geringen Datenraten kommen aber mit deutlich weniger Ressourcen aus.

Vergleicht man die Netzabdeckung der deutschen Telekom, dann bietet auch das 4G-Netz noch Lücken, die das 2G-Netz nicht bietet. Bei den anderen Anbietern sieht das weniger erfreulich aus.

Netzabdeckung 4G Telekom

Kostengünstige GSM-Module sowie preiswerte und flexible IoT-Tarife lassen 2G für IoT-Anwendungen (M2M) durchaus interessant erscheinen.

Ich verwende für einen abgesetzten Temperatursensor einen Arduino Uno und ein SIM800L EVB.

SIM800L EVB am Arduino Uno

Alternativen sind z.B. Maduino GPRS oder das GSM Modul aus der M5Stack-Familie.

Auf die Software selbst möchte ich hier nicht eingehen. Programmbeispiele zum SMS-Versand und HTTP-Zugriff sind auf Github zu finden.

Ich verwende hier den Mobilfunkanbieter ThingsMobile, der sich ausschließlich dem IoT widmet und international aufgestellt ist.

Der SMS-Versand ist einfach und bequem, allerdings kostenmäßig nicht zu empfehlen. Ich sende den Temperaturmesswert über HTTP-GET alle 5 Minuten an den Thingspeak-Server zu Visualisierung. Die erhobenen Messwerte können über die URL abgegriffen werden. Der Sensor selbst liegt auf meinem Arbeitstisch, misst also nur die Raumtemperatur.

Interessant sind die entstehenden Kosten. Aus dem Thingsmobile Report für die vergangene Woche kann man die folgenden Daten entnehmen:

Report für KW15

Der Datenverkehr belief sich auf 2.19 MB, die € 0.22 gekostet haben. Der Auszug aus dem Detailreport gibt einen Überblick über die versendeten Daten. Die Datenpakete sind entweder 980 oder 1950 Byte, was zu 370 KB am Tag führt. Diese 370 KB kosten dann € 0.036.

Auszug aus dem Report für den 15.04.2019

Bei diesen Kosten kann aus meiner Sicht für so oder ähnlich angelegte IoT-Anwendungen bedenkenlos mit dem 2G-Netz gearbeitet werden.

Open-Source Real-Time OS für das IoT

Steht man heute vor der Aufgabe, ein neues Embedded System zu entwickeln, dann wird in den Anforderungen kaum die Anforderung nach einer Netzwerkverbindung fehlen. Dabei spielt es in erster Linie keine Rolle, ob es sich um eine drahtlose oder drahtgebundene Kommunikation handelt, ob die Kommunikation durch die Anwendung genutzt wird oder einen Remote Access für Konfiguration und Service darstellt. Möglicherweise lassen sich diese Dinge auch kaum vernünftig trennen.

Ein Embedded System, welches derartige Anforderungen erfüllen muss, ist mit vernünftigem Entwicklungsaufwand nicht ohne Betriebssystem umsetzbar. Die Suche nach einem für die betreffende Aufgabenstellung geeigneten Betriebssystem umfasst, viele und sehr unterschiedliche Aspekte.

Betrachtet man die Langlebigkeit von Investitionsgütern, dann erscheint schon aus strategischen Gründen der Einsatz eines OS-RTOS zwingend. Einer ersatzlosen Abkündigung eines etablierten, proprietären RTOS kann auf diese Weise der Schrecken genommen werden. In einer gewissen Klasse von Embedded Systems bis hin zu Supercomputern gibt es mit Linux ein ausgezeichnetes Beispiel für ein solches Open Source Betriebssystem.

Damit ist Linux heute ein mächtiges Betriebssystem, welches aber auch gewisser Ressourcen bedarf und für Systeme mit kleinem Footprint, geringen Ressourcen und möglichst für Batteriebetrieb angepasstem Stromverbrauch weniger geeignet ist.

Analysiert man aus Github Daten für Code Frequency, Commits und Contributions für Contiki, RIOT und Zephyr, dann kann deutlich eine größere Aktivität der Community beim Zephyr OS gegenüber den anderen beiden RTOS verzeichnet werden. Natürlich ist das Zephyr OS auch ein „junges“ RTOS, was nicht in allen Bereichen bereits ausgereift sein kann.

Das Zephyr Project (https://www.zephyrproject.org/what-is-zephyr) ist ein von der Linux Foundation gehostetes Collaboration-Projekt, eine Open Source Zusammenarbeit, die führende Kräfte aus der gesamten Branche zusammenbringt, um mit dem Zephyr OS ein skalierbares Echtzeit-Betriebssystem (RTOS) für mehrere Architekturen ressourcenbeschränkter Geräte zu entwickeln.

Der in der Zeitschrift Design & Elektronik erschienen Beitrag mit dem o.a. Titel (Design & Elektronik 3/2019, S. 42-48  ) soll Einblicke in das Zephyr OS und die Zephyr Entwicklungsumgebung geben. An Hand einiger einfacher und nachvollziehbarer Programmbeispiele wird die Vorgehensweise bei der Programmierung von Anwendungen und der Build Prozess dokumentiert. Die Programmbeispiele selbst sowie dazugehörige Screenshots sind auf Github unter https://github.com/ckuehnel/zephyrtests abgelegt.

Das Zephyr OS ist ein Open Source RTOS, welches durch das von der Linux Foundation gehostete Zephyr Project und die Nähe zu Linux das Potential hat, bei Embedded Systems mit kleinem Footprint in Zukunft vergleichbar erfolgreich zu werden, wie es Linux bei Systemen mit mehr Performance schon länger ist. Der Erfolg wird sicher stark durch die Community geprägt. Ausdauer und Kraft sind der Community zu wünschen. Die zentrale Mailinglist des Zephyr Projects [ https://lists.zephyrproject.org/g/main ] gibt aktuell Auskunft über die laufenden Aktivitäten.

Arduino-Sensorknoten

Auf der Basis eines ESP8266-Mikrocontrollers von Espressif hatte ich gezeigt, dass man einen WiFi-tauglichen IoT-Knoten zu sehr geringen Kosten (es waren 15 US$) aufbauen kann [Building an IoT Node for less than 15 $: NodeMCU & ESP8266].

Dass WiFi auf Grund der geringen Reichweite und des doch recht hohen Stromverbrauchs für einen batteriebetriebenen IoT-Knoten allerdings nur unter bestimmten Bedingungen geeignet ist, war auch durch eigene Untersuchungen gezeigt worden [IoT Button (5th)].

Der hier betrachtete Sensorknoten soll deshalb neben der Anbindung verschiedener Sensoren auch unterschiedliche Kommunikationsmöglichkeiten (WiFi, LoRaWAN, BLE, GSM) aufweisen. Damit wird es möglich werden, einen konkreten IoT-Sensor baukastenartig zusammenstellen.

Sensorknoten

Der Beitrag „Arduino-Sensorknoten“ wird im Sammelwerk „Messen, Steuern, Regeln mit IBM-kompatiblen PCs“ des Weka-Verlags veröffentlicht.

ISBN 978-3824549009

Die Programmbeispiele werden auf Github abgelegt und stehen zum Donload zur Verfügung.

Der erste Teil des Beitrags ist in der Ausgabe 170 im Februar 2019 erschienen.

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.