
Olimex bietet ein ESP32-DevKitC an, mit dem der Einstieg gestartet werden kann.
Die technischen Ressourcen sind hier zu finden.

Olimex bietet ein ESP32-DevKitC an, mit dem der Einstieg gestartet werden kann.
Die technischen Ressourcen sind hier zu finden.
Vor einigen Tagen hatte ich eine Umfrage zu den eingesetzten resp. erwünschten Programmiersprachen/Programmierumgebungen für die beiden Prozessoren von Espressif lanciert.
Hier sind nun die (nicht repräsentativen) Resultate der 65 Rückmeldungen. Mehrfach-Nennungen waren möglich.


Die Verteilung ist für beide Prozessoren praktisch identisch, woraus der Schluss gezogen werden kann, dass man gern die beim ESP8266 eingesetzte Umgebung auch für den ESP32 verwenden möchte.

Pycom ist eine in MicroPython programmierbare IoT Plattform auf der Basis von Espressif’s ESP32 mit WiFi & Bluetooth.
Zur Programmierung steht mit PyMakr eine komfortable IDE zur Verfügung.


Wie programmiert Ihr heute den ESP8266 und wie würdet Ihr gern seinen Nachfolger den ESP32 programmieren. Hier geht es zu einer kleinen Umfrage.
Auf der Basis von NodeMCU/ESP-8266 war es recht einfach einen IoT-Knoten zu erstellen, der über WiFi ins Heimnetz integriert werden konnte. Problematisch waren dabei immer Reichweite und Energiebedarf.
Mit dem radino32 SX1272 der Dresdner Fa. in-circuit.de kann eine Funkübertragung mit einer Reichweite von mehr als 30 Kilometern erreicht werden. Der radino32 SX1272 kombiniert einen STM32L151 Controller von STMicroelectronics mit dem SX1272 LoRa Funkchip von SemTech zum kompakten radino Formfaktor.
Mit dem radino Spider, einem low-cost Entwicklungsboard für alle radino/radino32 Funkmodule mit RP-SMA Buchse, hat man eine für den Breadboard-Aufbau geeignete Plattform. Alle Pins des radino Moduls sind auf zwei Stifleisten im 2.54mm Raster geführt.
Im Bild gezeigt ist ein radiono Spider hier allerdings mit aufgesetztem radinoWiFi-Modul.

In der Folge möchte ich meine Erfahrungen mit dem radino32 SX1272 LoRa-Funkmodul mitteilen und dessen Eignung für einen IoT-Knoten untersuchen.
ownCloud als Universal File Access Plattform hat nicht nur für Unternehmen eine starke Verbreitung gefunden und kann sowohl auf eigenen Servern als auch in externen Rechenzentren gehostet werden. Ein Überblick über die Möglichkeiten und die Architekture von ownCloud ist hier zu finden.
Zu den Hintergründen, warum es nun Nextcloud und ownCloud gibt, möchte ich auf einen Beitrag im Linux-Magazin verweisen.
Will man sich nicht die Mühe machen, ownCloud auf einem eigenen System zu installieren, dann bieten sich externe Anbieter an, die Transparenz und Datensicherheit garantieren.
Für erste Test bietet u.a. der Schweizer Anbieter woelkli.com einen Gratiszugang mit 500 MB an. Die zur Verfügung stehenden Pakete und die Features sind detailliert beschrieben. Für alle möglichen Geräte sind ownCloud Clients vorhanden.
Der Zugriff auf die Daten kann aber auch über ein Webinterface oder WebDAV erfolgen.
Auf einem Linux-Device (hier ein Raspberry Pi 3) ist dazu das WebDAV Filesystem zu installieren und ein Directory für das Mounting einzurichten:
apt-get install davfs2 mkdir /mnt/DAV mount -t davfs cloud.woelkli.com/remote.php/webdav /mnt/DAV
Alle ins Directory /mnt/DAV geschriebenen Dateien werden dann auf dem ownCloud-Server und den mit ihm synchronisierten Clients zur Verfügung stehen.
Wie man Dropbox, Box und 4share einbinden kann, ist hier beschrieben.
Mit der Nextcloud Box steht nun auch eine vorbereitete Hardware zur Verfügung.
Impressionen findest Du hier.
ThingSpeak ist eine Open Source IoT-Anwendung und API zum Speichern und Abrufen von Daten von IoT-Nodes über HTTP über das Internet oder über ein Local Area Network (https://github.com/iobridge/thingspeak, http://www.thingspeak.com).
Zusätzlich zum Speichern und Abrufen von numerischen und/oder alpha-numerischen Daten erlaubt die ThingSpeak-API auch numerische Datenverarbeitung wie Time-Scaling, Bildung von Mittelwert und Medianwert, Summation und Rundung u.a.m. Jeder ThingSpeak-Kanal unterstützt Dateneinträge von bis zu 8 Datenfeldern, Breitengrad, Längengrad, Höhe und Status. Die Abfrageergebnisse stehen als JSON-, XML- und CSV-Formate für die Integration in Anwendungen zur Verfügung.
Mit ThingView können ThingSpeak-Kanäle auf einfache Weise auf dem Smartphone oder Tablet sichtbar gemacht werden. Es reicht die Kanal-ID einzugeben und die Daten können angezeigt werden. Die App kann von Google Play als Gratis-Version (mit Werbung) oder kostenpflichtig heruntergeladen werden.
Das folgende Bild zeigt die Darstellung meiner lokalen Wetterdaten im Browser und Screenshots der Darstellung über ThingView auf dem Smartphone.

Die englische Firma Pimoroni bietet sogenannte pHATs (HAT = Hardware at Top) für den Raspberry Pi an. Von den Abmessungen her orientieren sich diese am Raspberry Pi Zero. Das Interface ist aber durch den 40-poligen GPIO-Stecker definiert, so dass ein solches pHAT auf jeden, diesen Stecker aufweisenden Raspberry Pi installiert werden kann.
Enviro pHAT umfasst vier unterschiedliche Sensoren, die die Messung von Temperatur und Druck, Licht und Farben (RGB), Bewegung in drei Achsen, Ausrichtung des Magnetfelds (Compass) und Gleichspannung über vier Analog-Eingänge ermöglichen. Ausserdem befinden sich zu Beleuchtungszwecken zwei weisse LEDs auf diesem pHAT.
Enviro pHAT Features:

Eine Python Library unterstützt eine komfortable Programmierung in Python. Installation und Inbetriebnahme sind im Dokument „Getting started with Enviro pHAT“ beschrieben.
Bei der Inbetriebnahme blieben die LEDs dunkel. Es muss sicher gestellt sein, dass GPIO4 frei zur Verfügung steht und das Script setup.py gestartet wurde. Danach sollte alles problemlos laufen.
Mit dem Script test_all.py kann nun jede Funktion des Enviro pHAT getestet werden. Der Screenshot zeigt die Ausgabe über die Console.

#!/usr/bin/env python
import sys
import time
import datetime
from envirophat import light, weather, motion, analog, leds
def write(line):
sys.stdout.write(line)
sys.stdout.flush()
write("--- Enviro pHAT Monitoring ---")
try:
while True:
leds.on()
time.sleep(0.02)
leds.off()
rgb = light.rgb()
analog_values = analog.read_all()
output = """
Date : {n}
Temperature: {t} grd C
Pressure : {p} hPa
Light : {c}
RGB : {r}, {g}, {b}
Heading : {h}
Analog : 0: {a0}, 1: {a1}, 2: {a2}, 3: {a3}
""".format(
n = datetime.datetime.now(),
t = round(weather.temperature(),2),
p = round(weather.pressure(),2),
c = light.light(),
r = rgb[0],
g = rgb[1],
b = rgb[2],
h = motion.heading(),
a0 = analog_values[0],
a1 = analog_values[1],
a2 = analog_values[2],
a3 = analog_values[3]
)
output = output.replace("\n","\n\033[K")
write(output)
lines = len(output.split("\n"))
write("\033[{}A".format(lines - 1))
time.sleep(10)
except KeyboardInterrupt:
pass
Im Blogbeitrag Sonoff Wifi Smart Switch mit NODEMCU Firmware hatte ich die vorbereitenden Arbeiten beschrieben, um den Sonoff Smart Switch mit einer eigenen Firmware auszustatten. Ziel ist, den Sonoff Smart Switch von einem MQTT Client aus zu steuern. Das kann ein beliebiges Linux-Device, wie ein Raspberry Pi o.ä. sein, oder ein MQTT Client auf dem Smartphone.
Das grundsätzliche Vorgehen zum Start eines Anwendungsprogramms (credentials.lua, init.lua, sonoff.lua) auf dem ESP8266/NodeMCU wird hier als bekannt vorausgesetzt. In meinem Buch zu NodeMCU ist das im Detail beschrieben.
Ich verwende hier MyMQTT aus dem Google Play Store auf einem Android Smartphone. Es gibt Alternativen sowohl für Android als auch für iOS.
Um sich an den Datenaustausch über das MQTT-Protokoll heranzutasten, bietet sich die Verwendung eines freien Broker-Dienstes als Spielwiese an. Der CloudMQTT-Broker der schwedischen Firma 84codes AB ist eine solche Möglichkeit. CloudMQTT sind Mosquitto Server in der Cloud.
Zum Erstellen einer CloudMQTT-Instanz ist es erforderlich, unter http://www.cloudmqtt.com/ ein Konto einzurichten und sich für einen Kunden-Plan zu entscheiden. Als Testfeld nutze ich den freien Plan Cute Cat.
Die Anmeldung eines Kundenkontos erfolgt über eine eMail-Adresse, an die ein Link zur
Freischaltung verschickt wird. Nach dem Erzeugen einer CloudMQTT-Instanz werden die Informationen zur erzeugten Instanz angezeigt. Alle in der folgenden Abbildung gezeigten Daten werden vom System zugewiesen. Das trifft auch für den Usernamen und das Password zu.

Ist die brokerseitige Einrichtung abgeschlossen, dann kann der MQTT Client MyMQTT eingerichtet werden.Die folgenden Screenshots zeigen die von MyMQTT abonierten Mitteilungen (Subscribe), das Versenden von Mitteilungen zum Schalten des Sonoff Smart Switches und die Protokollierung auf dem Dashboard.

Mein MQTT Client abonniert durch die Angaben SONOFF/+/# alle gesendeten Sonoff-Mitteilungen. Zusätzlich sind alle Mitteilungen aus einem Netzwerk von Temperatursensoren abonniert (DHT11/+/#).

Gesendet wird von diesem MQTT-Client hier nur der Topic SONOFF/ESP8266-1878840/state mit 0 (Ausschalten) oder 1 (Einschalten) als Dateninhalt.

Im Dashboard können nun die abonnierten Mitteilungen verfolgt werden.
Der eingesetzte Sonoff Smart Switch meldet sich mit einer Client-ID in seinem Topic, die automatisch durch dessen Chip-ID erzeugt wird. Die Adressierung ist damit eindeutig.
Im wesentlichen kann der durch die versendeten Mitteilungen beeinflusste Schaltzustand verfolgt werden.
Gelegentlich wird dieser Vorgang durch eine periodische gesendete Mitteilung eines Sensors für Temperatur und Luftfeuchtigkeit unterbrochen.