Archiv der Kategorie: BLE

Oxocard Connect

In meinem Blogbeitrag Vermittlung digitaler Inhalte in der Schule hatte ich die das Informatikinteresse an den Schulen fördernden Mikrocontroller BBC micro:bit, Calliope mini, und Oxocard betrachtet.

Dieser Bereich ist nach wie vor in Bewegung, stellt doch die Digitalisierung in allen Lebensbereichen eine grosse Herausforderung dar.

Mit der Oxocard Mini Serie stellt die Schweizer Oxon AG Computerboards zur Verfügung, die das Eintauchen in Computergrafik und ihre zugrunde liegenden Algorithmen oder Spiele und Animationen mit ihren Quelltexten ermöglichen.

OxoCard (Mini) Science ist eine programmierbare Multisensorplatine, die mit Hilfe von sieben Sensoren die folgenden physikalischen Grössen erfasst: Licht/IR, Temperatur, Geräusche, Feuchte, Druck und flüchtige Kohlenstoffverbindungen (VoC, eCO2 und Ethanol). Auch hier steht der dokumentierte Quelltext zur Verfügung und eigene Experimente können gestartet werden.

Oxocard Science, Oxocard Galaxy & Oxocard Artwork

Das jüngste Kind der Oxocard-Familie ist Oxocard Connect – ein ebenfalls auf dem ESP32 aufbauendes und damit netzwerktaugliches Computermodul mit grafischem TFT-Display und einem Joystick für die Benutzer-Eingaben, welches durch seitlich einsteckbare Cartridges mit peripheren Komponenten, wie Sensoren etc., erweitert werden kann.

Oxocard Connect mit Air Cartridge

Die Programmierung kann wieder über den komfortablen Nanopy-Editor erfolgen. Zahlreiche Programmbeispiele und ausführliche Erläuterungen dienen der Einarbeitung und Auseinandersetzung mit diesem System. Zum näheren Kennenlernen möchte ich Sie auf den Beitrag von David Lee verweisen.

Ich möchte Oxocard Connect nicht mit Python programmieren, sondern diesen sehr ansprechend gestaltetem Controller mit der Arduino-IDE programmieren. Die zahlreichen Libraries ermöglichen die Erweiterung mit Sensoren und die Vernetzung sehr komfortabel. Mit dem Veroboard lassen sich Prototypen sehr einfach erstellen, bevor man mglw. eine anwendungsspezifische Cartridge erstellt.

Oxocard Connect Arduino Test

Für die Hardware-Konstellation habe ich ein Testprogramm erstellt, welches die folgenden Funktionen testet:

  • Ausgabe auf dem farbigen TFT-LCD mit 240 x 240 Pixel LH133T-IG01 mit ST7789VW LCD-Controller
  • Abfrage Joystick
  • LEDs über digitale IO
  • EEPROM über I2C-Bus

Auf der Cartridge stehen neben digitaler und analoger IO und I2C-Bus auch noch SPI zur Verfügung. Ausserdem kann die gesamte Schaltung auch extern mit 5V (VEXT) versorgt werden.

Der Einsatz eines so ansprechend gestalteten Controllers lässt schnell das oft vorhandene Drahtverhau mit seinen unsicheren Verbindungen vergessen.


Oxocard Connect Openweather Station

Oxocard Connect besitzt mit der vorhandenen Hardware alle Möglichkeiten, über das Internet auf Daten zuzugreifen und diese auf dem Display darzustellen.

Ich habe hier durch Abfrage der Wetterdaten von Openweathermap.org eine kleine Wetterstation als Anwendungsbeispiel erstellt.

Openweathermap.org stellt maximal 1000 Aufrufe pro Tag gratis zur Verfügung, weshalb hier der Abfragezyklus auf zwei Minuten eingestellt wurde. Werden die 1000 Aufrufe überschritten, dann kann ein blockierter Account die Folge sein.

Das Programm finden Sie auf GitHub unter https://github.com/ckuehnel/Arduino2023/tree/main/ESP32/Oxocard/Oxocard_OpenWeather


Oxocard Connect MQTT-Client

Simon Kemper beschreibt auf LinkedIn die Verbindung von Datacake und Slack zur Benachrichtigung bei kritischen Zuständen etc.

Unter Verwendung des TTN-internen MQTT-Servers bin ich einen anderen Weg gegangen.

Ich verwende Oxocard Connect als MQTT-Client und filtere nur die für das Monitoring erforderlichen Größen aus den Upload-Messages zur Anzeige auf dem Display.

Konkret überwache ich die Batteriekapazität eines solar-gepufferten SensorHubs von RAKwireless. Gerade jetzt in der dunklen Jahreszeit möchte ich den Ladezustand der Batterie überwachen, um die Nachladung tagsüber zu verifizieren.

Der SensorHub sendet die erfassten Umweltdaten zum TTS (CE) LNS, der diese an ein Datacake Dashboard zur Visualisierung weiterleitet. Sie finden dieses Dashboard über diesen Public Link.

Der Oxocard Connect MQTT-Client „subscribed“ die Upload-Messages des SensorHubs, filtert die Batteriekapazität aus der umfangreichen Upload-Message und bringt sie auf dem Display zur Anzeige. Die Aktualisierung des Displayinhalts erfolgt mit jeder neuen Upload-Message vom SensorHub.

Ein Screenshot des Consolen Outputs zeigt die empfangene Payload vor und nach der Filterung und die Extraktion der Daten. Auf dem Display wird aber nur die aktuelle Batteriekapazität angezeigt.

Consolen Output

2023-12-01/CK

Proyectos IoT para Makers

La edición española ya está disponible en Amazon.es


2023-10-26/CK

ESP32-C3 – RV32IMC von Espressif

Ende letzten Jahres kündigte Espressif bereits den ESP32-C3 an – einen kostengünstigen, RISC-V-basierten Mikrocontroller mit Wi-Fi- und Bluetooth 5 (LE)-Konnektivität für sichere IoT-Anwendungen.

Der ESP32-C3 ist eine 32-Bit-Single-Core-MCU auf RISC-V-Basis (RV32IMC) mit 400 KB SRAM, die mit bis zu 160 MHz getaktet werden kann. Neben integriertem 2,4-GHz-WiFi und Bluetooth 5 (LE) mit Long-Range-Unterstützung verfügt der ESP32-C3 über 22 GPIOs mit Unterstützung für ADC, SPI, UART, I2C, I2S, RMT, TWAI und PWM. Das ausführliche ESP32-C3-Datenblatt finden Sie hier.

Nun ist seit November reichlich Zeit vergangen und Module auf Basis des ESP32-C3 sind jetzt bestellbar.

Bei Schukat habe ich ein ESP32-C3-DEVKITM-1 und ein ESP32-C3-DEVKITC02 zu je € 9.65 bestellt. Andere Distributoren hatten wesentlich längere Lieferzeiten.

Beide DevKits unterscheiden sich nur durch das jeweils eingesetzte ESP32-C3-Modul und die resultierende Pinbelegung.

Das im ESP32-C3-DevKitM-1 eingesetzte ESP32-C3-MINI-1 ist ein universelles Wi-Fi- und Bluetooth LE-Kombimodul mit einer PCB-Antenne. Kern des Moduls ist ESP32-C3FN4 mit 4 MB embedded Flash Memory. Da das Flash Memory im ESP32-C3FN4-Chip verpackt ist hat das ESP32-C3-MINI-1 ein kompakteres Gehäuse.

ESP32-C3-DevKitM-1 Pin Mapping

Das im ESP32-C3-DevKitC-02 eingesetzte ESP32-C3-WROOM-02 ist ebenfalls ein universelles Wi-Fi- und Bluetooth LE-Kombimodul mit einer PCB-Antenne. Das Flash Memory ist ein externes 4 MB SPI-Flash.

ESP32-C3-DevKitC-02 Pin Mapping

Sollten Sie noch nicht mit RISC-V konfrontiert worden sein, dann hilft Ihnen vielleicht die in der Zeitschrift Design&Elektronik veröffentlichte Übersicht weiter:

Neustart mit RISC-V Design & Elektronik 1/2020, S. 29-35
https://www.elektroniknet.de/design-elektronik/halbleiter/neustart-mit-risc-v-173910.html

Wenn meiner Bestellung von Schukat eintrifft , werde ich erste Tests und Benchmarks in der mittlerweile ebenfalls vorhandenen Arduino-Umgebung vornehmen und darüber berichten.

In der Zwischenzeit kann ich Ihnen den folgenden Beitrag von Elliot Williams empfehlen: HANDS-ON: THE RISC-V ESP32-C3 WILL BE YOUR NEW ESP8266.

Den dort enthaltenen Benchmark habe ich in meine Benchmark-Übersicht mit aufgenommen.

Aus Sicht des Anwenders möchte ich seinem Schlussgedanken zustimmen:

„Aber es ist schön, RISC-V-Kerne in mehr Geräten zu sehen, nicht zuletzt, weil die standardisierte Befehlssatzarchitektur – die im Wesentlichen einem Standardsatz von maschinensprachlichen Befehlen gleichkommt – das Schreiben von optimierenden Compilern einfacher und schneller macht. Für den Endbenutzer ist das nicht so wichtig, aber wenn es Espressif durch das Einsparen von IP-Lizenzgebühren ermöglicht, ein moderneres Peripherieset zum ESP8266-Preis hinzuzufügen, dann sind wir alle dafür.“

An manchen Stellen wird der ESP32-C3 schon als ESP8266-Killer bezeichnet. Das bleibt abzuwarten, noch muss sich dieser neue Mikrocontroller erst behaupten.

Vermittlung digitaler Inhalte in der Schule

Schon heute setzen wir uns mit zunehmender Tendenz mit automatisierten Abläufen, Algorithmen und vernetzten Gegenständen im Alltag auseinander. Künstliche Intelligenz wird Prozesse unterstützen und möglicherweise auch irgendwann autonom übernehmen.

Auf diese Entwicklungen vorbereitet zu sein, um sie zu beherrschen, zu gestalten und weiter zu entwickeln bedarf es mehr als einen IT-Grundkurs im Gymnasium oder Studium. Wichtig ist es, die Chance zu haben, in diese Welt und das damit verbundene Denken hineinzuwachsen.

In einigen Ländern wurde das frühzeitig erkannt und durch entsprechende Initiativen gefördert. Die Idee ist, jedes Kind zu inspirieren, seine digitale Zukunft zu gestalten und die Maker-Bewegung in den Unterricht zu bringen.

Im Schweizer Lehrplan 21 wird der heutigen Lebenswelt von Kindern und Jugendlichen entsprochen, die „durchdrungen (ist) von traditionellen und digitalen Medien sowie von Werkzeugen und Geräten, die auf Informations- und Kommunikationstechnologien basieren und die durch ihre Omnipräsenz neue Handlungsmöglichkeiten und neue soziale Realitäten schaffen“ (https://v-fe.lehrplan.ch/index.php?code=e|10|2). Abgestimmt mit dem Lehrplan 21 steht mit der Oxocard ein mit WiFi ausgestatteter Computer zur Verfügung, der auch bereits über den Browser programmiert werden kann. Auch in Deutschland und Grossbritannien werden solche Aktivitäten durch Hard- und Software für den Einsatz in der Schule unterstützt.

„Unser Anspruch ist, dass jeder Schüler und jede Schülerin in der dritten Klasse in Deutschland so ein Ding in die Hände bekommt“, sagt Stephan Noller, einer der Gesellschafter von Calliope. „Es soll nicht irgendein Leuchtturmprojekt in Berlin-Wedding werden, sondern wir wollen in die Fläche – und zwar jedes Jahr von Neuem.“

Ob man mit dem Calliope mini die vielleicht größtmögliche Umwälzung des deutschen Schulsystems in der Hand hält, wie Patrick Beuth in der Zeit im Beitrag „Dieser Computer kann unser Schulsystem revolutionieren“(http://www.zeit.de/digital/internet/2016-10/calliope-mikrocontroller-grundschule-dritte-klasse) schreibt, kann ich nicht beurteilen.

So unterschiedlich die Angebote sind, eines haben sie gemeinsam: Sie werden von Menschen organisiert, die mit großer Begeisterung ihr Wissen rund um Programmierung und digitale Themen an Kinder und Jugendliche weitergeben. Bei den Machern um BBC micro:bit, Calliope mini und Oxocard ist diese Begeisterung zu spüren.

Dass solche Projekte, wie so oft, nicht widerstandsarm umsetzbar sind, zeigen Diskussionen wie sie im Interview „An Calliope scheiden sich die Geister“ (https://www.deutschlandfunk.de/minicomputer-im-klassenzimmer-an-calliope-scheiden-sich-die.680.de.html?dram:article_id=399302) aufgeworfen werden.

Ich möchte mich hier auf den technischen Bereich beschränken. Für ideologische Auseinandersetzungen sind andere besser geeignet.

Die folgende Tabelle zeigt eine Gegenüberstellung der technischen Merkmale der drei hier betrachteten Mikrocontrollerboards.

Mikrocontroller
Board
BBC micro:bitCalliope miniOxocard
HerkunftUKDCH
HauptmerkmaleNordic nRF52833, BLE, Radio
Motion Sensor (ST LSM303AGR)
5×5 LED Matrix Display (rot)
2 Taster
19 GPIO
Piezo-Lautsprecher
MEMS Mikrofon
USB Micro B Anschluss
(Programmierung und Stromversorgung)
JST Batterieanschluss (3.3V)
Temperatursensor (on-chip NRF52)
Nordic nRF51822, BLE, Radio
Motion Sensor (Bosch BMX055)
5×5 LED Matrix Display (rot)
DC Motortreiber (TI DRV8837)
Piezo-Lautsprecher
MEMS Mikrofon
Neopixel (WS2812b)
2 Taster
8-11 GPIOs, PWM, 4 x analog
UART + SPI + I2C
USB Micro B Anschluss
(Programmierung und Stromversorgung)
JST Batterieanschluss (3.3V)
2 Grove Stecker (I2C + Seriell/Analog)
Espressif ESP32, BLE, WiFi
Motion Sensor (ST LIS3DE)
8×8 Neopixel Matrix
Kopfhörerbuchse für 8bit-Audioausgabe (mono)
Mikrofon (PDM)
NeoPixel Data-Out
6 Taster
6 GPIOs
UART + SPI + I2C
USB Micro B Anschluss
(Programmierung und Stromversorgung)
LiPo-Akku
Anschluss für Grove I2C-Hub
Temperatursensor (on-chip LIS3DE)

Programmier-
umgebungen
MakeCode, MicroPython,
JavaScript
MakeCode, Swift,
abbozza! Calliope (basiert auf Blockly),
C/C++ (Segger), MicropPython
Blockly, Oxoscript,
Arduino (C/C++), MicroPython. 
BBC micro:bit, Calliope mini, Oxocard – im Vergleich

Wie aus den Hauptmerkmalen abzuleiten ist, stellen alle drei Boards eine vergleichbare Infrastruktur bereit. Auf markante Unterschiede will ich im Folgenden eingehen. Eine Betrachtung der Ausgangsversionen von BBC micro:bit und Calliope mini hatte ich in einer früheren Veröffentlichung (https://www.elektroniknet.de/embedded/hardware/mikrocontroller-nicht-nur-fuer-die-schule.150415.html) bereits vorgenommen.

Herausstechendes Merkmal beim BBC micro:bit ist seine an der Unterkante des Boards befindliche als Goldfinger bezeichnete Anschlussleiste. Hier können zahlreiche Erweiterungsboard direkt angeschlossen werden. Einen guten Überblick zu diesen Erweiterungen finden Sie unter https://shop.pimoroni.com/collections/micro-bit-uk.

BBC mirco:bit v2

Beim Calliope mini wollte man den Goldfinger nicht übernehmen, da wegen der viel zu eng liegenden Kontakte im Schuleinsatz mit ständigen Kurzschlüssen durch die Schüler gerechnet werden müsste. Es wurden auf dem Board Erweiterungen, wie RGB-LED (Neopixel) und Motortreiber (H-Brücke) u.a., vorgesehen. Zusätzlich stellen die beiden Grove-Connectoren einen I2C-Bus, einen UART-Anschluss sowie einen analogen Eingang zur Kontaktierung von Sensoren oder Aktoren des umfangreichen Grove-Systems zur Verfügung. Eine gute Übersicht zum Grove-System bietet ein Grove Wiki von Seeedstudio (https://wiki.seeedstudio.com/Grove_System/).

Calliope mini v2

Die Oxocard geht einen etwas anderen Weg. Die elektronischen Interna sind gut verpackt in einem Kartongehäuse. Durch den Einsatz eines ESP-32 steht neben BLE auch WiFi zur Verfügung, wodurch Internet-Konnektivität gegeben ist. Durch diese Option ist es möglich IoT-Projekte zu realisieren. Der LiPo-Akku sorgt dann für einen gewissen Zeitraum sogar für autonome Einsatzmöglichkeiten ohne externe Spannungsversorgung.

Nach außen hin stehen die sechs Taster und die 8×8 Neopixel Matrix für Experimente zur Verfügung. Durch die Verwendung der internen Sensoren kommt der Anwender erstmal vollkommen ohne elektrische Verbindungen nach außen aus.

Kommuniziere Meldungen zwischen Oxocards, hol dir Daten aus dem Internet oder stelle deine Karte als Sensor anderen zur Verfügung. All das ist ohne Erweiterungen möglich.

Oxocard mit Kartongehäuse

Für den Maker von Interesse sind natürlich die Erweiterungsmöglichkeiten. Ergänzend zum Lieferumfang der Oxocard ist der OXOCARD i2C-Hub-Erweiterungsport verfügbar.

Lieferumfang Oxocard

Der Oxocard I2C Hub ist ein kleiner Bausatz, um der Oxocard relativ einfach das Anschließen von beliebigen I2C-Grove- Komponenten zu ermöglichen. Mit diesem I2C-Hub können Sie die Oxocard mit zusätzlichen GROVE-kompatiblen Sensoren und Aktoren erweitern. Außerdem kann über eine Buchsenleiste der SPI-Port nach außen geführt werden.

SPI- und I2C-Bus an der Oxocard

Mit diesen Erweiterungsmöglichkeiten ist die Oxocard ein für den Schulbetrieb geeigneter, komplett ausgestatteter und erweiterbarer Mikrocontroller, der als einziger Internet-Zugriff aufweist.

Allen drei vorgestellten Boards gemeinsam ist neben der grafischen Programmierung in MakeCode resp. Blockly die Programmierung in MicroPython.

In meinem MicroPython Blog https://ckmicropython.wordpress.com sind MicroPython Programmbeispiele für die Oxocard zu finden.


2021-04-05/ck

Massgeschneidert für IoT Anwendungen

Espressif’s ESP32 ist aus IoT Anwendungen kaum noch wegzudenken. Geringe Stromaufnahme, eine leistungsfähige CPU und WiFi- bzw. BLE-Connectivity sind der Schlüssel für den Erfolg in diesem Bereich.

Eine Vielzahl dieser Anwendungen setzt das ESP-WROOM-32x-Modul von Espressiff ein.

Die ESP32-WROVER Serie besticht durch einige Modifikationen der ESP32-WROOM-32x-Module, die unter anderem ein zusätzliches 8-MB-SPI-PSRAM (Pseudo Static RAM) enthalten.

Das zusätzliche PSRAM kann für Geräte mit einem Display sehr nützlich sein. Wenn der Grafiktreiber einen Framebuffer verwendet, können so mehr Farben unterstützt werden.

Für das maschinelle Lernen bietet TensorFlow Lite alle Tools, die Sie zum Konvertieren und Ausführen von TensorFlow-Modellen auf Mobil-, Embedded- und IoT-Geräten benötigen. Genügend Speicher sollte aber vorhanden sein und den kann ein ESP32-Wrover nun bieten (siehe Tabelle).

Zu Tensorflow Lite auf dem ESP32 finden Sie weitere Informationen unter https://towardsdatascience.com/tensorflow-meet-the-esp32-3ac36d7f32c7

ModuleChipFlash, MBPSRAM, MBAnt.Dimensions, mm
ESP32-WROOM-32ESP32-D0WDQ64MIFA18 × 25.5 × 3.1
ESP32-WROOM-32DESP32-D0WD4, 8, or 16MIFA18 × 25.5 × 3.1
ESP32-WROOM-32UESP32-D0WD4, 8, or 16U.FL18 × 19.2 × 3.1
ESP32-SOLO-1ESP32-S0WD4MIFA18 × 25.5 × 3.1
ESP32-WROVER (PCB)ESP32-D0WDQ648MIFA18 × 31.4 × 3.3
ESP32-WROVER (IPEX)ESP32-D0WDQ648U.FL18 × 31.4 × 3.3
ESP32-WROVER-BESP32-D0WD4, 8, or 168MIFA18 × 31.4 × 3.3
ESP32-WROVER-IBESP32-D0WD4, 8, or 168U.FL18 × 31.4 × 3.3
Key characteristics of ESP32 Modules (https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html)

Aus Fernost werden mittlerweile unterschiedlich ausgestattet Module mit ESP32-WROVER-B angeboten.

Ein gerade für IoT-Anwendungen optimal angepasstes Board wird mit dem ESP32 ePulse Dev Board von der Schweizer Firma Thingpulse angeboten.

Das Board ist für geringen Stromverbrauch und einen breiten Eingangsspannungsbereich optimiert. Weitere technische Aspekte finden Sie im Beitrag Designing the ESP32 Dev Board I always wanted.

Der VIN-Pin akzeptiert Spannungen zwischen 3.3 V und 12 V DC. Wenn sich das Board im Tiefschlaf befindet, verbraucht es nur zwischen 25 uA (bei 3.3 V) und 35 uA (bei 12 V). Die meisten ESP32-Boards verbrauchen etwa 100 – 130 uA.

Thingpulse bietet das Board für $ 16.90 an https://thingpulse.com/product/epulse-thingpulse-esp32-devboard/. Early Birds bekommen es noch für $ 12.70.

bpi:bit – Mehr Power im micro:bit Universum

In meinem Beitrag Mikrocontroller nicht nur für die Schule! (Design & Elektronik 01/2018, MF40-44) hatte ich BBC micro:bit und Calliope mini, beides für die Grundschul-Ausbildung konzipierte Mikrocontroller-Boards, vorgestellt und deren Erweiterungsmöglichkeiten betrachtet.

Befördert durch den Edge-Connector des BBC micro:bit werden mittlerweile zunehmend Peripherieerweiterungen für den BBC micro:bit angeboten, die diesen Controller auch für Maker interessant machen.

Einen Überblick über vorhandene Erweiterungen kann man sich beispielsweise bei Reichelt oder den folgenden Adressen holen:

Durch den im BBC micro:bit eingesetzten Mikrocontroller nRF51822 gerät man aber auch schnell an Grenzen. Will man beispielsweise seinen BBC micro:bit über WiFi vernetzen, dann ist dafür bereits ein Zusatzmodul erforderlich. Auch vom Speicherausbau her sind Grenzen gesetzt, die den Wunsch nach einem Mikrocontroller mit mehr Performance aufkommen lassen.

Mit dem bpi:bit des Banana-Pi Herstellers SinoVoip gibt es einen solchen Mikrocontroller auf Basis eines ESP32. Warum bei heise der bpi:bit als kuriose Kopie abgetan wird, ist für mich nur schwer nachvollziehbar. Die nachfolgende Tabelle zeigt die Merkmale von bpi:bit und micro:bit im Vergleich.

Wer bislang seinen BBC micro:bit bereits mit MicroPython oder der Arduino IDE programmiert hat, bekommt mit dem bpi:bit eine leistungsstarken Controller incl. WiFi für seine micro:bit Umgebung.

Nutzt man alle WS2812, dann kommt man um eine Fremdspeisung des Moduls nicht umhin, denn der Strombedarf übersteigt das, was ein USB-Anschluss zur Verfügung stellt.

Modulbpi:birmmicro:bit
CPUESP32 nRF51822
RAM520 KB256 KB
ROM448 KBN/A
Flash512 KB16 KB
WiFi 802,11 b/g/n/e/ich N/A
Bluetooth BT4.2 BR/EDR und BLE BLE
Sensoren2 Fototransistoren,
Thermistor,
MPU-2950
LED-Matrix,
On-Chip Temperatursensor,
LSM303GR
SummerSummerN/A
LEDs 25 Neopixel-LEDs (WS2812 ) 25 rote LEDs
GPIOEdge-Connector (Goldfinger)Edge-Connector (Goldfinger)
Tasten2 programmierbare Tasten 2 programmierbare Tasten
USBmicro-USB (UART)micro-USB
Software Webduino, Arduino,
MicroPython, Scratch X
Microsoft MakeCode, Arduino
MicroPython, Scratch X
Grösse5 x 5 cm5 x 4 cm

Arduino-Sensorknoten

Auf der Basis eines ESP8266-Mikrocontrollers von Espressif hatte ich gezeigt, dass man einen WiFi-tauglichen IoT-Knoten zu sehr geringen Kosten (es waren 15 US$) aufbauen kann [Building an IoT Node for less than 15 $: NodeMCU & ESP8266].

Dass WiFi auf Grund der geringen Reichweite und des doch recht hohen Stromverbrauchs für einen batteriebetriebenen IoT-Knoten allerdings nur unter bestimmten Bedingungen geeignet ist, war auch durch eigene Untersuchungen gezeigt worden [IoT Button (5th)].

Der hier betrachtete Sensorknoten soll deshalb neben der Anbindung verschiedener Sensoren auch unterschiedliche Kommunikationsmöglichkeiten (WiFi, LoRaWAN, BLE, GSM) aufweisen. Damit wird es möglich werden, einen konkreten IoT-Sensor baukastenartig zusammenstellen.

Sensorknoten

Der Beitrag „Arduino-Sensorknoten“ wird im Sammelwerk „Messen, Steuern, Regeln mit IBM-kompatiblen PCs“ des Weka-Verlags veröffentlicht.

ISBN 978-3824549009

Die Programmbeispiele werden auf Github abgelegt und stehen zum Donload zur Verfügung.

Der erste Teil des Beitrags ist in der Ausgabe 170 im Februar 2019 erschienen.

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.

 

Beacons im Physical Web

Allgemeine Übersicht

Im Physical Web werden Objekten diese Objekte kennzeichnende URLs (= Uniform Resource Locator) zugeordnet. Das bedeutet nichts anderes, als das unter der betreffenden URL im Allgemeinen eine Website zu finden ist, die objektrelevante Daten zur Verfügung stellt.

Die zu erkennenden URLs werden von Objekten in der Umgebung gesendet, so dass dadurch die Objektbezogenheit sichergestellt ist. Jedes Objekt kann mit einem Bluetooth Low Energy (BLE) Beacon, einem leistungsstarken, batteriebetriebenen Gerät, versehen werden, das die betreffenden Inhalte über Bluetooth sendet.

Beacons, die die Eddystone-Protokollspezifikation unterstützen, können URLs und weitere Formate übertragen. Dienste auf dem Mobilgerät des Nutzers, wie Google Chrome oder Nearby Messages, können nach der Übergabe dieser URLs nach diesen suchen und diese anzeigen.

Das Physical Web sorgt unter anderem dafür, dass Nutzer nicht ständig neue Apps auf ihren Mobilgeräten installieren müssen, sondern die Nachrichten auf einer einheitlichen Oberfläche betrachten können. Es lässt sich in nahezu allen Fällen einsetzen, in denen Nutzer an Informationen über ihre Umgebung interessiert sind oder in denen eine Interaktion zwischen ihnen und smarten Objekten nötig ist.

Ausgangspunkt für die Entwicklung der Beacon-Technologie war im Jahr 2013 die Fa. Estimote mit dem ersten BLE Beacon, gefolgt von Apple, die ihre Implementierung iBeacon benannt haben. Diese Beacons senden eine BLE Advertising Message aus, deren Inhalt von einer Empfänger-App dekodiert werden und davon abgeleitet Aktionen auslösen kann

Google ist im Jahr 2015 mit seinem Physical Web Projekt in diese Thematik eingestiegen und erweitert die von den Beacons gesendeten Informationen, so dass zur Aufbereitung der gesendeten Informationen nicht zwangsläufig eine zugeordnete App erforderlich ist.

Im Alltag begegnen uns oft Situationen in denen der Einsatz von Beacons sehr von Vorteil ist.

Nicht jeder Nutzer des öffentlichen Personen-Nahverkehrs kann Informationen zur aktuellen Situation seiner gewünschten Verbindung über dynamische Fahrgastinformations-Anzeiger beziehen. In den Innenstädten werden diese zunehmend eingesetzt.

1024px-Dresden_Hauptbahnhof_-_Haltestelle_der_Straßenbahn_(7033568319)

Autor: IngolfBLN

Auf dem Land werden wohl noch weitere Zeit die traditionellen Haltestellenschilder zu sehen sein.

Haltestellenschild_Jungfernstieg_retouched

Autor: MissyWegner

Bein einem solchen Haltestellenschild, was auch im innerstädtischen Bereich durchaus noch gesehen wird, kann ein installierter Beacon die gewünschten Informationen beispielsweise über eine dynamisch aktualisierte Website mit Fahrplaninformationen bieten.

Neben diesen Anwendungen haben die Marketing-Strategen die Mächtigkeit dieser Beacon-Lösungen schon lange erkannt. So kann beispielsweise beim Betreten eines Supermarktes gezielt auf Sonderangebote hingewiesen und das Kaufverhalten beeinflusst werden.

Nach diesen eher anwendungsorientierten Bemerkungen kann sich jeder selbst Gedanken über den Einsatz von Beacons machen.

Kommerzielle Beacons

In den kommerziellen Angeboten findet man zahlreiche Beacons, bei denen leider nicht immer klar hervorgeht, ob sie auch das Eddystone Profile unterstützen. Ich habe mit zwei Beacons der chinesischen Fa. AprilBrother experimentiert.

CardBeacon

Kern des CardBeacons ist ein DA14580 SoC der Fa. Dialog – ein Cortex-M0 mit einem BLE Core. Es wird die zumindest doppelte Batterielebensdauer gegenüber den als Standard geltenden Nordic nrf51822 Chips versprochen und soll mit den Default-Einstellungen drei Jahre betragen. Eine Batterie CR3032 (500mAh) ist im CardBeacon integriert.

CardBeacon ist iBeacon-zertifiziert und unterstützt damit alle iBeacon-Funktionen. UUID, Major, Minor und das Advertising Intervall sind konfigurierbar.

cardbeacon1

CardBeacon im Scheckkartenformat

Dieser CardBeacon hat die Grundfläche einer Kreditkarte. Die Dicke der Karte beträgt allerdings 5.8 mm. Hier sind die technischen Daten des CardBeacons nachzulesen.

AprilBeacon 202

Der AprilBeacon 202 kann wie bereits der CardBeacon im iBeacon-, Eddystone-UID- oder Eddystone-URL-Mode betrieben werden.

AprilBeacon

AprilBeacon mit dem Abmessungen 40 mm x 40 mm x 15 mm

AprilBeacon App

Die AprilBeacon App ist ein herstellerspezifisches Tool zur Konfiguration der von diesem Hersteller angebotenen Beacons. Auf der Website des Herstellers findet man die Links zu Apples App Store und zu Googles Playstore.

Beacon Tools

Zur Inbetriebnahme bzw. zur Konfiguration von Beacons bedarf es in der Regel spezieller Tools, die meist herstellerspezifisch sind. Die AprilBaecon App war ein solches Tool.

Ansonsten ist es hilfreich mindestens einen BLE Scanner und die Physical Web App auf seinem Smartphone zu installieren, die für Android in Google’s Playstore zu finden sind.

In Googles Playstore findet man ausserdem zahlreiche BLE Scanner. Ich habe die Tools von Bluepixel Technology und Nordic Semiconductor ausgesucht und verwendet. Mit der Physical Web App kann man schließlich die übertragenen URL einfach sichtbar machen.

BLE Implementierungen

Es gibt derzeit ein recht breites Spektrum an Hardware, bei der bereits ein BLE Modul installiert ist. Das Spektrum reicht dabei von einfachen Mikrocontrollern bis hin zu leistungsfähigen Linux-Devices. Zu nennen sind u.a. BBC micro:bit & Calliope mini, pycom WiPy und Linux Devices , wie Raspberry Pi 3, Raspberry Pi Zero W und C.H.I.P.

Dieser Abschnitt zeigt für BBC micro:bit & Calliope mini die erforderliche Software-Installation, um einen Eddystone-URL Beacon zu erstellen. Das Ergebnis ist für alle Implementierungen identisch – eine über BLE übertragene URL, die von einem Smartphone, Tablet oder anderem BLE-tauglichen Equipment empfangen und ausgewertet werden kann.

Seit einem Jahr ist der BBC micro:bit genannte Mikrocontroller der BBC verfügbar und unter Schülern und Lehrer in Großbritannien recht verbreitet. In Deutschland hat sich die gemeinnützigen Calliope GmbH das Ziel gesteckt, mit dem Calliope mini einen für die Anforderungen der Grundschule geeigneten Mikrocontroller bereit zu stellen, wobei sich dieser am BBC micro:bit orientiert.

Beide Mikrocontroller-Boards sind technisch vergleichbar ausgestattet und weisen als Kern einen nRF51822 Mikrocontroller von Nordic Semiconductors auf.

Preise und Bezugsmöglichkeiten sind in der nachfolgenden Tabelle gelistet.

Mikrocontroller BBC micro:bit Calliope mini
Preis EUR 16,85 EUR 35,00
Lieferant http://www.exp-tech.de

Zur Programmierung der beiden Mikrocontroller-Boards stehen ein JavaScript Blocks Editor und MicroPython zur Verfügung. Will man BLE nutzen, dann steht MicroPython leider nicht zur Verfügung da der BLE-Stack zu viel RAM benötigt.

Unser micro:bit (oder Calliope mini) Beacon soll nun eine URL aussenden, die auf die verwendete Programmierumgebung, den Java Script Blocks Editor, verweist. Die URL lautet im Original https://makecode.microbit.org/ und verkürzt https://goo.gl/8Hcntr.

Die folgende Abbildung zeigt die vom Java Script Blocks Editor verwendeten Blöcke.

microbit - Eddystone URL senden

Um BLE zur Verfügung zu haben, muss über Add Package zu Beginn noch das BLE Paket nachinstalliert werden.

Da hier mit einer sicheren Webseite gearbeitet wurde, ist die versendete URL auch als (weitere) Nearby Message sichtbar und kann vom Smartphone direkt aufgerufen werden.

Nearby4