Zwei Jahre Calliope mini

Herzlichen Glückwunsch zum Geburtstag zu zwei Jahren Calliope mini.

Für mich die frohe Botschaft dabei ist die Unterstützung für MicroPython. Nun ist der Calliope mini ist wieder kompatibel zu MicroPython.

Der Lagesensor, B-Taster, die RGB-LED und der Lautsprecher sind nun ansprechbar. Die Calliope mini Bibliothek steht nach der Installation durch die Eingabe

import calliope_mini *

zur Verfügung.

Link zum GitHub Repository: https://github.com/calliope-mini/calliope-mini-micropython

Die Betaversion des beliebten MicroPython Editors Mu  wurde angepasst und ist ebenfalls online verfügbar. Für Dezember ist die offizielle Version angekündigt.
Mu 10

Kerlink Wirnet iFemtoCell – Kleines LoRaWAN Indoor Gateway mit großer Leistung

Der Ausbau landesweit erreichbarer Funknetze auf LoRa-Basis ist in einigen Ländern, wie der Schweiz (Swisscom), den Niederlanden (KPN) und Süd-Korea (SK Telecom), bereits erfolgreich umgesetzt. Andere Service Provider stellen ebenfalls die erforderliche Infrastruktur zur Verfügung. Neben kommerziellen Angeboten gibt es auch Services, die kostenfrei genutzt werden können.

Ein LoRaWAN-Gateway verbindet die über Funk kommunizierenden LoRaWAN-Nodes über das Internet mit einem LoRaWAN-Server. Weil hier in erster Linie Stabilität und Sicherheit gefordert sind, betrachte ich für diesen Einsatz nur kommerzielle LoRaWAN-Gateways.

Im Smartmakers Newsletter gehe ich speziell auf das Wirnet iFemtoCell LoRaWAN Gateway ein, welches perfekt für die Erweiterung in Gebäuden (zusätzliche Abdeckung in Gebäuden zur Verdichtung öffentlicher Verfügbarkeit und Kontinuität des Dienstes) oder für die private Abdeckung von Standorten geeignet ist, die kontinuierliche Konnektivität für ihre IoT-Anwendungen erfordern.

Betrachtet werden die folgenden Schwerpunkte

  • Unboxing
  • Inbetriebnahme
  • SSH-Verbindung
  • Firmware Update
  • Integration ins The Things Network (TTN)
  • Integration ins LORIOT-Netzwerk
  • Programmierung von Anwendungen auf dem Gateway

 

 

ESP32 – Erweiterung der Arduino Familie

Nachdem der verbreitete ESP8266 in die Arduino Umgebung integriert wurde und Ledunia als High-End-ESP8266-Modul (http://ledunia.de/) verfügbar ist, steht mit dem ESP32 der chinesischen Firma Espressif ein weiteres Upgrade der Arduino Familie bereit.

Ich hatte die Benchmarks aus dem Beitrag  „Arduino32: Die jungen Wilden“ [1] mit denen des ESP8266/Ledunia ergänzt [2] und will den deutlich mehr Performance versprechenden ESP32 ebenfalls diesen Tests unterziehen.

Sowohl der ESP8266 als auch der ESP32 Mikrocontroller von Espressif sind in zahlreiche Mikrocontroller-Module eingegangen und heute gerade wegen ihrer WiFi-Eigenschaften oft Bestandteil von Entwicklungen in der Maker-Szene. Beim ESP32 kommt nun auch noch die Bluetooth LE-Konnektivität (BLE) hinzu.

In der Zeitschrift Design & Elektronik Heft 11/2018 ist ein Artikel mit dem gleichnamigen Titel erschienen, der den ESP32 als Erweiterung der Arduino und dessen Features betrachtet.

[1]        Arduino32: Die jungen Wilden (Teil 2).  DESIGN & ELEKTRONIK 06/2016 S.14-17

http://www.elektroniknet.de/embedded/arduino32-die-jungen-wilden-131502.html

[2]        Ledunia – ESP8266 High-End-Modul. DESIGN & ELEKTRONIK  3/2018 S. 16-21

http://www.elektroniknet.de/design-elektronik/embedded/einer-der-hoechstintegrierten-wifi-chips-der-branche-152310.html

 

Mit phyWave-Modulen ins IoT

Daten von Sensoren im Netz oder zu Aktoren aus dem Netz verfügbar zu machen ist die Aufgabe von peripherienahen, meist drahtlos kommunizierenden IoT Devices.

Mit den phyWAVE© Modulen stellt Phytec mehrere solcher IoT Module her, die in eigene Anwendungen integriert werden können. Das phyWAVE-CC2650 ist eins der insgesamt drei von Phytec angebotenen phyWAVE Module. Kern ist das TI CC2650 SoC.

csm_phyWAVE-CC2650_95013e94a2

Das TI CC2650 SoC enthält einen 32-Bit-ARM Cortex-M3-Prozessor, der als Hauptprozessor mit 48 MHz betrieben wird. Der Sensor-Controller ist ideal für die Anbindung externer Sensoren und für die autonome Erfassung von analogen und digitalen Daten, während sich der Rest des Systems im Schlafmodus befinden kann.

Der BLE-Controller und der IEEE 802.15.4 MAC sind in ROM eingebettet und laufen teilweise auf einem separaten ARM Cortex-M0-Prozessor. Diese Architektur verbessert die Gesamtsystemleistung und den Stromverbrauch und stellt den Flash-Speicher für die Anwendung frei. Bluetooth- und ZigBee-Stacks sind kostenlos von TI erhältlich.

phyWAVE-CC26xx-block-diagram

Das phyNODE Sensor-Board stellt die Peripherie für den Betrieb des phyWAVE-CC2650 bereit. Am Rande des Boards sind eine Reihe von Sensoren angeordnet.

BLE hat die Möglichkeit, Daten in zwei verschiedenen Modes auszutauschen. Es werden der Advertising Mode und der Connected Mode unterschieden.

Nach einem Reset des phyWAVE Sensor-Boards befindet sich dieses im Advertising Mode und gibt seine MAC-Adresse aus. BLE Devices weisen eine einzigartige 6-Byte BLE- oder MAC-Adresse auf, die mit Hilfe des Kommandos sudo hcitool lescan vom als BLE Client dienenden Raspberry Pi abgefragt werden kann.

KommunikationNach dem Verbindungsaufbau werden alle Farben der RGB-LED nacheinander aktiviert bis schließlich am Ende die weiße LED eingeschaltet bleibt. Daran anschließend folgen Abfragen der einzelnen Sensoren bis hin zum Farbsensor und die Ausgabe der ermittelten Werte. Die Abfrage der Sensoren erfolgt in einer Endlosschleife.

Mit Hilfe eines Python-Scripts werden die übermittelten Sensordaten ausgewertet und einem Shell-Script zur Übermittlung an einen Server zur Visualisierung gesendet.

Der komplette Beitrag ist in der Design&Elektronik 10/2018 veröffentlicht. Der OnLine-Beitrag ist unter https://www.elektroniknet.de/design-elektronik/embedded/mit-phywave-modulen-ins-iot-158755.html zu finden. Die Software steht auf Github zum Download bereit.

 

enviro:bit add-on für micro:bit

enviro:bit ist eine Erweiterung für den micro:bit Mikrocontroller zur Erfassung von Temperatur, relativer Feuchte und Druck über einen BME280 Sensor, Licht und Farbe über einen TCS3472 Sensor sowie Geräuschen über ein MEMS Mikrofon. Ein Steckverbinder zum Kontaktieren eines micro:bit Mikrocontrollers ist vorhanden.

enviro-bit

Die Programmierung in MicroPython wird durch eine Library unterstützt. Unter Verwendung der Library bme280.py kann das folgende Programm zur Erfassung von Temperatur und relativer Feuchte erstellt werden. Die serielle Ausgabe zeigt der folgende Screenshot.

from microbit import *
import os
import bme280
bme = bme280.bme280()

CYCLE = 5000

uart.init(baudrate=115200)
uart.write("\r\n" + os.uname().machine + " measuring environmental data by BME280\r\n")
uart.write("Cycle time is " + str(CYCLE) + " msec\r\n\r\n")

while True:
    temp = round(bme.temperature(),1)
    display.scroll(str(temp)+" *C")
    uart.write("BME280 temperature = "+str(temp)+" *C\r\n")
    humi = round(bme.humidity())
    uart.write("BME280 humidity = "+str(humi)+" %\r\n\r\n")
    sleep(CYCLE)

BME280 Output

Im Beitrag LIGHT AND COLOR MEASUREMENTS WITH THE PIMORONI ENVIRO:BIT FOR THE MICRO:BIT werden verschiedene Auswertungen der Signale des TCS3472 Sensors beschrieben.

Mit Hilfe von Klatschgeräuschen können Schaltvorgänge ausgelöst werden. Der Beitrag Build a clap-activated light with micro:bit! zeigt eine solche Anwendung.

 

 

 

Einfache LoRaWAN-Knoten für das IoT

Low Power Wide Area Network (LPWAN) steht als Oberbegriff für viele unterschiedliche Protokolle. Neben dem hier betrachteten LoRa stehen Sigfox, LTE-M, Weightless, Symphony Link und einige andere im Wettbewerb.

Im Gegensatz zu einigen anderen Protokollen ist der LoRa-Standard Open Source und nicht proprietär. Das ist ein Grund für das rasante Wachstum von LoRaWAN-Netzwerken über ganze Länder, beginnend in den Ballungszentren.

Im Kindle eBook mit dem Titel „Einfache LoRaWAN-Knoten für das IoT“ beschreibe ich, wie mit sehr einfachen Mitteln und zu niedrigen Kosten LoRaWAN-Sensorknoten ohne Lötarbeiten selbst entwickelt werden können, die ihre Daten dann an einen LoRaWAN-Server senden.

Im Bild sind die betreffenden LoRaWAN-Knoten zu sehen:Nodes-1

Vom LoRaWAN-Server sind die Daten abrufbar und in eine beliebige Anwendung integrierbar. The Things Network (TTN) stellt mit seinem dezentrale Open-Source-Netzwerk die erforderliche Infrastruktur bereit.

Die folgende Abbildung zeigt, wie durch eine Subscription des Topics elsys_nodes/devices/+/up/#  alle zum LoRaWAN-Server hochgeladenen Messages von in der Application elsys_nodes registrierten Devices vom MQTT-Client MQTTlens empfangen werden.

Abbildung 57

Zum aktuellen Zeitpunkt, das war der 15.09.2018 11:38:39, betrug die Temperatur 19.4 °C bei einer relativen Luftfeuchtigkeit vom 71%. Die Batteriespannung lag bei 3.532 V.

Ein andere Möglichkeit der weiteren Verarbeitung der über mittelten Daten besteht darin, dass beispielsweise ein MQTT-Client auf einem Linux-Device, wie z.B. Raspberry Pi, diesen MQTT-Topic abonniert und daraus weitere Informationen respektive Aktionen ableitet. Das könnte dann z.B. eingebunden in eine Website so aussehen:

Abbildung 58

Wer bislang mit einem Arduino erste Erfahrungen sammeln konnte, der ist bestens auf diese zukunftsträchtige Aufgabenstellung vorbereitet und kann erste praktische Erfahrungen im Internet of Things sammeln.

Die Quelltexte zu den behandelten LoRaWAN-Knoten sind auf Github abgelegt.

Link zum eBook: https://www.amazon.de/dp/B07HDP62K3
Link zur Printausgabe: https://www.amazon.de/dp/3907857356

 

Mit Arduino-kompatiblen Modulen Radarsensoren flexibel aufbauen

radino_radar_45_640Unter der Titel „Mit Arduino-kompatiblen Modulen Radarsensoren flexibel aufbauen“ ist in der Elektronikpraxis ein Beitrag zum flexiblen Einsatz der radino/radino32 Funkmodule der Dresdner Fa. In-Circuit erschienen. (Print EP 14/2018, S. 14, Online Link oben)

Dabei kann der Einsatz der Module mit nahezu beliebigen Sensoren erfolgen und ist nicht auf die hier verwendeten Radarsensoren beschränkt.

Omega2 als LoRaWAN Node

Mit dem Code aus diesem Projekt  können Sie ein LoRa-Radio, wie den SX1276 oder SX1272 (oder einen Klone wie den HopeRF RFM95) mit dem Omeag2 verbinden und Daten über LoRa an das Things Network (TTN) senden.

Das Projekt beinhaltet eigentlich zwei Dinge:

  • Arduino-LMIC Port für den Omega2
  • Omega2 I2C Treiber für die NXP SC18IS602B I²C-SPI-Bridge

 

 

Arduino MKR1000

Mit dem Arduino MKR1000 steht ein WLAN-fähiger Arduino für IoT-Projekte zur Verfügung. Das Board basiert auf einem ATSAMW25 von Microchip/Atmel mit einem ARM-Cortex-M0+-Prozessor (Atmel SAMD21) und einem WLAN-Modul, welches nach IEEE 802.11 b/g/n im 2,4 GHz-Netz arbeitet.

Der Atmel SAMD21 ist mit 48 MHz getaktet und verfügt über 256 KB Flash und 32 KB RAM.  Damit entspricht die Performance einem Arduino M0, wie mit den im Beitrag „Arduino32 – Die jungen Wilden“ verwendeten Benchmarks gezeigt werden kann.

Arduino32: Die jungen Wilden
DESIGN&ELEKTRONIK 5/2016 (Teil 1), 6/2016 (Teil 2)
Teil 1 http://www.elektroniknet.de/embedded/entwicklungstools/artikel/130493
Teil 2 http://www.elektroniknet.de/embedded/entwicklungstools/artikel/131502/

Die betreffenden Benchmarks sind unter Sieve und IOLoop zu finden.

Sieve of Eratosthenes - Arduino MKR1000
5000 iterations
303 primes.
Runtime = 5209 ms
I/O Loop - Arduino MKR1000
Measure IO frequency on Pin 2
Runtime = 5 us

Der Arduino MKR1000 kann über einen LiPo-Akku oder eine externe 5V-Spannungsquelle betrieben werden. Beim Anschluss einer externen Spannungsquelle ist das Laden des Akkus möglich. Der LiPo-Akku sollte mindestens 700 mAh besitzen, so dass auch mobile Projekte über längeren Zeitraum ohne externe Spannungsquelle betrieben werden können

Raspberry Pi 3 Model B vs. 3 B+

Hier ist ein interessanter Vergleich zwischen Raspberry Pi 3 Model B und Raspberry Pi 3 Model B +.

Fazit des Autors Andrew Back:
Leistungssteigerungen sind immer willkommen. Während es immer jemanden gibt, der auf der Suche nach zusätzlicher Rechenleistung oder grösserem Netzwerkdurchsatz ist, ist Power-over-Ethernet mit ziemlicher Sicherheit das heißeste Feature des Raspberry Pi 3 Model B +. Der Vorteil, ein Gerät mit Netzwerk und Stromversorgung über ein einziges Kabel betreiben zu können – und zwar ohne eine Unordnung von Netzteilen und Stromkabeln – ist nicht zu unterschätzen.