Click the image for download the ebook.
Selbst Feinstaub messen
Unter dem Titel „Open Data im Alltag – Selbst Feinstaub messen“ habe ich in der Zeitschrift Elektronik 9/2017 einen Beitrag zur Feinstaubmessung veröffentlicht.
Herz der Feinstaub-Messstation ist der nova PM Sensor SDS011 der chinesischen Fa. Nova Fitness Co. Dieser Sensor misst die Partikelkonzentration für Partikel mit einer Größe zwischen 0.3 und 10 um mit einem relativen Fehler von 15 % oder ± 10 ug/m3.

Die gesamte Messstation besteht aus einem Linux-Device C.H.I.P., an welches der Sensor über einen zum Lieferumfang gehörenden RS232-USB-Converter angeschlossen wird und einem über I2C angeschlossenen SHT31-Modul zur Messung von Temperatur und Luftfeuchtigkeit. Über WLAN können die erhobenen Daten dann ins Netz zur Verfügung gestellt werden.

Auf meiner Website http://www.ckuehnel.ch/ReEnviDa.html können die Daten verfolgt werden.
Installiert man sich die Android App ThingView Full auf seinem Smartphone oder Tablet, dann hat man die Daten auch auf seinem Mobilgerät zur Verfügung.
Das folgende Bild zeigt beispielsweise die ermittelten PM10-Daten zwischen dem 26.08. und 30.08.2017 an meinem Standort.

Arduino for the Cloud
This eBook describes the Arduino Yún configured for cloud applications.
Due to the combination of microcontroller and Linux device you can separate effectively real-time tasks from tasks that need network access.
Further explanations to Arduino Yún and the Arduino Yún shield as an addon for a conventional Arduino can be found in my book, Arduino for the Cloud.
Have fun with Arduino Yún!
#Calliope mini als #BLE #Beacon
Das Physical Web ist ein offener Ansatz, der von Google entwickelt wurde, um schnelle und nahtlose webbasierte Interaktionen mit physischen Objekten und Orten zu ermöglichen. Das Physical Web nutzt Bluetooth Low Energy (BLE) wegen seiner Verfügbarkeit auf mobilen Geräten und basiert auf dem Eddystone-URL-Format.
Dienste auf Ihrem Mobilgerät wie Google Chrome oder Nearby Messages können nach Übergabe der URL nach diesen suchen und diese anzeigen. Jedes Objekt kann mit einem Bluetooth Low Energy (BLE) Beacon, einem leistungsstarken, batteriebetriebenen Gerät, verknüpft werden.
Calliope mini kann sehr einfach als Eddystone Beacon eingesetzt werden. Zur Programmierung musste allerdings der JavaScript Blocks Editor des BBC micro:bit verwendet werden, da der betreffende Calliope Editor diese BLE Features (noch) nicht aufweist.
Im BBC micro:bit JavaScript Blocks Editor (https://makecode.microbit.org/) ist das Bluetooth Paket nach zu installieren. Es ersetzt dann das Radio Paket. Der folgende Code muss eingegeben und dann auf dem Calliope mini installiert werden..

Beim Programmstart wird das Bluetooth Advertisement mit der gewünschten URL gestartet. In der Endlosschleife wird die mittlere LED der 5×5-LED-Matrix periodisch kurz eingeschaltet, um von der laufenden Applikation ein Lebenszeichen zu erhalten.
Die folgenden beiden Bilder zeigen den detektierten Beacon mit der übergebenen URL http://calliope.cc im BLE Scanner sowie die sich nach einem Klick auf den Link OPEN URL öffnende Website.


Da das Programmbeispiel mit dem JavaScript Blocks Editor des BBC micro:bit erstellt wurde, ist es sicher kaum verwunderlich, dass das Programm auf dem BBC micro:bit gleiches Verhalten zeigt.
Mit den Tools Show.io und locly gibt es komfortable Tools, die die Anwendung von Beacons sehr komfortabel gestalten.
Dezentrale Temperaturerfassung mit Calliope mini in Python
Auf Grund der abweichenden Pinbelegungen zwischen BBC micro:bit und Calliope mini ist die Programmierung in Python gerade für I/O-Operationen nicht immer ohne Probleme. Die folgende Tabelle zeigt die Unterschiede:
| nRF51822 | micro:bit | Calliope mini |
| P0.00 | SCL | P0 |
| P0.01 | P2 | P1 |
| P0.02 | P1 | P2 |
| P0.03 | P0 | P3 (MIC) |
| P0.04 | COL1 | P4 (LED_C1) |
| P0.05 | COL2 | P5 (LED_C2) |
| P0.06 | COL3 | P6 (LED_C3) |
| P0.07 | COL4 | P7 (LED_C4) |
| P0.08 | COL5 | P8 (LED_C5) |
| P0.09 | COL6 | P9 (LED_C6) |
| P0.10 | COL7 | P10 (LED_C7) |
| P0.11 | COL8 | P11 (LED_C8) |
| P0.12 | COL9 | P12 (LEDC_9) |
| P0.13 | ROW1 | P13 (LED_R1) |
| P0.14 | ROW2 | P14 (LED_R2) |
| P0.15 | ROW3 | P15 (LED_R3) |
| P0.16 | P16 | P16 (TAST_B) |
| P0.17 | BTN A | P17 (TAST_A) |
| P0.18 | P18 | P18 (RGB LED) |
| P0.19 | TGT nRST | P19 (SCL) |
| P0.20 | P20 | P20 (SDA) |
| P0.21 | MOSI | P21 (BMX055 INT) |
| P0.22 | MISO | P22 |
| P0.23 | SCK | P23 |
| P0.24 | TGT TxD | P24 (TxD) |
| P0.25 | TGT RxD | P25 (RxD) |
| P0.26 | BTN B | P26 (Rx) |
| P0.27 | ACC INT2 | P27 (Tx) |
| P0.28 | ACC INT1 | P28 |
| P0.29 | MAG INT1 | P29 |
| P0.30 | SDA | P30 |

Dezentrale Temperaturerfassung mit Calliope
Ein abgesetzter Calliope mini wird über ein Steckernetzteil am USB-Anschluss mit Spannung versorgt. Ein Temperatursensor LM35 erfasst die Temperatur im Bereich von 0 bis 150 °C. Hat man eine LM35 nicht zur Verfügung, dann kann anfangs auch mit dem internen Temperatursensor der CPU gearbeitet werden. Der Sensor sendet über die Radio-Verbindung die erfasste Temperatur an einen zweiten Calliope mini, der über USB mit einem PC verbunden ist.
Auf dem PC läuft ein Terminalprogramm (z.B. PuTTY) und erfasst die hier mit 9600 Baud seriell übertragenen Daten und bringt diese zur Anzeige.
Die beiden Calliope mini sind mit den folgenden Programmen zu flashen.
Sender:
# Measuring chip temperature on CPU & output to console # works unchanged for micro:bit & Calliope mini from microbit import * import radio # The radio won't work unless it's switched on. radio.on() while True: temp = temperature() - 3 # offset to ambient temperature display.scroll(str(temp)+" *C") radio.send(str(temp)) sleep(60000) # sleep a minute
Bei Einsatz eines LM35 Temperatursensors ist das Erfassen der Temperatur anzupassen:
temp = pin1.read_analog() * 330 / 1024
Der Ausgang des LM35 ist, wie in der Abbildung gezeigt, mit P2 am Calliope mini zu verbinden (sh. auch in der Tabelle oben).
Empfänger:
# Receiving chip temperature from a second board & output to console
# works unchanged for micro:bit & Calliope mini
from microbit import *
import os
import radio
uart.init()
uart.write(os.uname().machine + "\r\nGet chip temperature by radio connection\r\n")
# The radio won't work unless it's switched on.
radio.on()
while True:
# Read any incoming messages.
temp = radio.receive()
if str(temp) != "None":
display.scroll(str(temp)+" *C")
uart.write("Received chip temperature = "+str(temp)+" *C\r\n")
sleep(1000)
Die Reichweite der Radio Verbindung des Calliope mini liegt bei ca. 20 m, so dass dem Test im Wohnraum wenig Grenzen gesetzt sind.
So statten Sie ein Raspberry Pi mit Echtzeiteigenschaften aus
Lesen Sie hierzu in der Elektronikpraxis Online.
Calliope in Python programmieren
Will man den Calliope mini nicht im Schulkontext verwenden, dann bietet sich, wie beim micro:bit, die Programmierung in Micro-Python an.
Einen Editor findet man beispielsweise unter http://python.microbit.org/editor.html. In diesen Editor pastet man dann einfach den Python-Quelltext, wie z.B. das folgende Programmbeispiel zur Temperaturmessung.
# Measuring chip temperature on Calliope mini & output to console
from microbit import *
import os
uart.init()
uart.write(os.uname().machine +" measuring chip temperature\r\n")
while True:
temp = temperature() - 3 # offset to ambient temperature
display.scroll(str(temp)+" C")
uart.write("Calliope mini chip temperature = "+str(temp)+" C\r\n")
sleep(5000)
Nach dem Compilieren kann das erstellte File microbit.hex einfach in das Laufwerk kopiert werden, als das sich der Calliope mini beim Anschluss über USB meldet.
Zum Beobachten der seriellen Ausgaben kann bspw. mit PuTTY auf das betreffende COM-Port zugegriffen werden. Die Baudrate beträgt hier 9600 Bd. Die LED-Matrix zeigt die Ausgabe als Laufschrift an.

Zugang zu den verschiedenen Ressourcen des eingesetzten Mikrocontrollers erhält man über die micro:bit Python API.
Calliope mini eingetroffen
Im Lieferumfang ist alles, was man für den Start benötigt:

Inbetriebnahme mit erstem Programmbeispiel folgt.
Linux-Rechner für unter 20 €

Leistungsstark, industrietauglich und preisoptimiert sind das phyCORE-i.MX 6UL SOM und der phyBOARD-Segin SBC von phytec. Mehr in der Elektronikpaxis.
LoRaWAN für Maker und Entwickler
The Things Network (TTN) ist ein globales, offenes, freies und dezentrales Internet der Dinge (IoT). Indem das TTN eine Infrastruktur für das IoT bereitstellt, soll der Prozess der Innovationsförderung rund um das IoT unterstützt werden.
Das TTN ist ein Low Power Wide Area Network (LPWAN) auf Basis von LoRaWAN und Bluetooth LE. Der in der Zeitschrift DESIGN & ELEKTRONIK erschienene Beitrag verfolgt das Ziel, die Grundlagen zu LoRaWAN zu vermitteln und die durch das TTN gegebenen Möglichkeiten aufzuzeigen und zu nutzen.
DESIGN & ELEKTRONIK 06/2017, S. 8 – 13

