Archiv der Kategorie: IoT

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.

 

TMP36 LoRa Node

architecture

Die aus einem Arduino Uno und Dragino LoRa Shield V1.2. aufgebaute TMP36 LoRa Node misst die Aussentemperatur und überträgt die Messdaten (drahtlos) an das im Inneren platzierte LoRa Gateway.

Über dieses Gateway ist die TMP36 LoRa Node  in das TTN LoRaWAN integriert. Das LoRa Gateway besteht aus einem Raspberry Pi 3 mit einem Dragino LoRa /GPS HAT.

Dieses einkanalige LoRa Gateway hat nicht die Möglichkeiten eines voll ausgebauten LoRa Gateways, trotzdem ist es für diese einfache Aufgabenstellung geeignet. Das TTN Gateway ist bestellt und wird erwartet.

Die gemessenen Daten werden vom LoRa Gateway via Internet an den TTN Server übertragen. Zugriff auf die Daten ist über die TTN Console möglich.

Um die Daten auch anderen Anwendungen zur verfügung zu stellen, kann auf diese via MQTT zugegriffen werden. Ich verwende Mosquitto auf einem anderen Raspberry Pi, um die Daten zu abonnieren und zur Visualisierung an den Thingspeak Server zu senden. In die Website ckuehnel.ch/TMP36_LoRa_Node.html habe ich diese Grafik eingebunden.

Die für dieses Anwendungsbeispiel verwendete Software ist auf  Github abgelegt.

IoT und Privatsphäre

Mit den Möglichkeiten, die uns das IoT oder besser sogar das IoE (Internet of Everythings) bietet, müssen wir uns über die Interpretationsmöglichkeiten der öffentlich zur Verfügung gestellten Daten im Klaren sein. Eine recht eindrückliche Story mit dem Titel „Burglars invited“ (Einbrecher eingeladen) habe ich auf lucstechblog gefunden.

Einfache Wetterstation für € 20

sht31chip

Mit dem $ 9 C.H.I.P. und einem Grove SHT31 ($ 11.90) kann man schon für € 20 Temperatur und relative Luftfeuchtigkeit erfassen und in der Cloud visualisieren.

Vorbedingung ist die Installation der folgenden Pakete:

sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev

Drei sehr überschaubare Scripte übernehmen die Abfrage des Sensors und das Versenden der Daten.

Mit dem Python Script SHT31.py werden von dem über den I2C-Bus angeschlossene Sensor Temperatur und relative Luftfeuchtigkeit abgefragt und zwischengespeichert. Das Shell Script thingspeak.sh sendet die erhobenen Messwerte an den Thingspeak-Server, während das Shell Script mqtt.sh die gleichen Daten an einen MQTT Broker sendet. Mit dem Script weather.sh werden diese drei Scripte gekapselt und in die Crontab eingetragen.

# m h dom mon dow command
*/5 * * * * /home/weather.sh

Durch diesen Eintrag erfolgt ein Aufruf des Scripts weather.sh alle fünf Minuten.

Die Scripte stehen wieder in meinem CHIP Repository zum Download zur Verfügung. Hier können die Ergebnisse der Messungen verfolgt werden.

Omega2+ eingetroffen

Die Palette der Linux-Devices für weniger als 10 $ ist mit dem Omega2 von Onion um ein interessantes Teil erweitert worden. Hervorgegangen aus einer Kampagne bei Indiegogo wird dieses Devices nun ausgeliefert. Ich habe mein Exemplar heute zusammen mit einem Power Dock erhalten.

20161222_171120

Meine Erfahrungen mit dem Omega2 werde ich in einem eigenen Blog zusammentragen.

LoRa Node sendet Messwerte

Als Grundlage für meine Experimente habe ich von Github das Dragino Programmbeispiel lora_shield_ttn.ino verwendet und mit einer Sensorerweiterung versehen. Zur Erfassung der Umgebungstemperatur habe ich einen Temperatursensor TMP36 mit A0, VCC und GND verbunden.

lora-node-tmp36

Auf die Angabe des Listings des Programms lora_shield_ttn_tempC.ino möchte ich an dieser Stelle aus Platzgründen verzichten und auf Github verweisen. Dort ist das Programm abgelegt und kann von da heruntergeladen werden. Damit sind alle Vorkehrungen für das Versenden der Sensordaten in das LoRaWAN getroffen und es ist nun am Gateway diese Daten auch zu empfangen. Der Consolen Output zeigt die Messages dieser LoRa Node.

lora_shield_ttn_tempc

Die vom TTN LoRa Server empfangenen Messages zeigen hier im Bild Temperaturwerte von 24,71 und 27,64 °C (letzteres nach Auflegen eines Fingers auf den TMP36).

Beim Auruf des TTN LoRa Servers ist etwas Geduld notwendig. Nur alle 10 Minuten wird eine Message vom Gateway gesendet. Historische Daten werden nicht angezeigt.

ttn4

Vom TTN Lora Server werde die Daten via MQTT bereitgestellt und können da mit einem MQTT Viewer (hier habe ich MQTTlens verwendet) dargestellt bzw. über Subscribe in eine Anwendung gezogen werden.

ttn5