Impressionen findest Du hier.
Archiv des Autors: ckuehnel
Anzeige von ThingSpeak-Daten mit ThingView
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.

Enviro pHAT am Raspberry Pi (Zero)
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:
- LSM303D accelerometer/magnetometer sensor (I2C Slave Addr 0x1d)
- TCS3472 light and RGB colour sensor (I2C Slave Addr 0x29)
- ADS1015 4-channel 3.3v, analog to digital sensor (ADC) (I2C Slave Addr 0x48)
- BMP280 temperature/pressure sensor (I2C Slave Addr 0x77)
- Two LEDs for illumination (GPIO4)

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
SONOFF über MQTT steuern
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.
#NanoPi NEO eingetroffen
Nun ist auch der NanoPi NEO von #FriendlyARM eingetroffen. Ein weiteres Linux-Device zum Preis von unter 10 $ mit einem #Allwinner H3 SoC und 512 MB RAM. Tests folgen.
Orange Pi One hat ein Gehäuse
Nun hat meine Orange Pi One auch ein Gehäuse.

Orange Pi One mit 512 MB $ 9.99 und Orange Pi One Case $ 4.00 bei aliexpress.com
Orange Pi Monitoring
Monitoring #Orange #Pi #One mit dem #RPi-Monitor, installiertes OS ist #ARMbian (Link)
Installation: sudo armbianmonitor -r
Aufruf: <IP-Adresse>:8888
Anzeige SoC-Temperatur und CPU-Last (während der Lastphase läuft der UNIXBench)

Anzeige CPU-Last (während der Lastphase läuft der UNIXBench)

C.H.I.P. kam heute mit der Post
Inbetriebnahme ist denkbar einfach. Tastatur und Maus über einen USB-Hub am C.H.I.P. anschließen. Den TRRS-Anschluss über ein „mini to RCA A/V” Kabel mit einem Monitor verbinden und das Board über ein kräftiges USB-Steckernetzteil mit Spannung versorgen.
Über DHCP bezieht das Board eine IP-Adresse, die mit
ip addr show dev wlan0
abgefragt werden kann. Dann kann man bei Verwendung als headless System über SSH auf den C.H.I.P. zugreifen und über die Kommandozeile das System erkunden.
Nach der Installation zeigt
chip@chip:~$ uname -a Linux chip 4.3.0-ntc #1 SMP Fri Feb 19 09:37:25 PST 2016 armv7l GNU/Linux
Informationen zum eingesetzten Kernel an. Nach
sudo apt-get update && sudo apt-get upgrade
mussten aber weitere Installationen vorgenommen werden:
sudo apt-get install gcc sudo apt-get install make sudo apt-get install git
Erst danach konnten erste Benchmarks erfolgen.
C.H.I.P. ist unterwegs

Jetzt wird es ernst. C.H.I.P. ist unterwegs aus Hongkong und ich bin gespannt, das Board zu testen. Weitere Infos unter https://getchip.com/pages/chip.
Raspberry Pi 3 Speichererweiterung durch WD PiDrive 314 GB
Erweitert man den Speicher des Raspberry Pi 3 durch die WD PiDrive Harddisk mit 314 GB, dann hat man für viele Anwendungen erst mal ausreichend externen Speicher zu Verfügung. Von Interesse sind aber außerdem die Zugriffszeiten auf dieses Medium.
Für den Banana Pi mit SATA-Interface hatte ich das bereits untersucht. Die Ergebnisse sind hier zu finden.
Die Vorbereitung der WD PiDrive Harddisk erfolgte nach den Vorgaben aus dem WD Forum.
Den erweiterten Raspberry Pi 3 mit Raspbian Jessie habe ich dem gleichen Test unterzogen und die folgenden Ergebnisse erzielt:

Verglichen zum Banana Pi präsentieren sich die Ergebnisse wie folgt:
| Timing cached reads | Timing buffered disk reads | Timing O_DIRECT cached reads | Timing O_DIRECT buffered disk reads | ||
|---|---|---|---|---|---|
| Banana Pi USB-HD 1 TB |
252.63 | 27.55 | 28.79 | 28.24 | MB/sec |
| Banana Pi SSD 32 GB |
280.69 | 81.72 | 127.53 | 132.77 | MB/sec |
| Raspberry Pi WD PiDrive 314 GB |
483.04 | 29.67 | 26.62 | 25.82 | MB/sec |