Archiv der Kategorie: Software

M5Stack Prototyping Platform

Im Blogbeitrag Rapid Prototyping mit M5Stack hatte ich die M5Stack Family als interessante Prototyping Platform vorgestellt.

Dieser Beitrag zeigt an Hand einer einfachen Wetterstation als Beispiel einer nahezu beliebigen IoT-Anwendung, wie mit M5Stack Komponenten schnell ein ansehnlicher Prototyp erstellt werden kann

Mit einem M5Stack Basic Core und einer ENV Unit zur Erfassung von Temperatur, rel. Luftfeuchte und Luftdruck sowie einem SIM800L Module zum Versenden der Daten über GPRS hat man schnell eine abgesetzte Wetterstation aufgebaut, die auch ohne WLAN Zugang autonom funktionieren kann.

Der M5Stack Core besitzt in seinem Unterteil nur einen 150 mAh. Will man die Akkuleistung, beispielsweise zur Pufferung, erhöhen, dann kann ein M5GO/FIRE Battery Bottom Charging Base als Unterteil eingesetzt werden.

M5Stack Basic Core

Die ENV Unit ist ein Umgebungssensor, der zur Messung von Temperatur, relativer Luftfeuchtigkeit und Luftdruck verwendet werden kann. Intern werden die Sensoren DHT12 und BMP280 verwendet.

Der DHT12 ist eine Weiterentwicklung des bekannten DHT11 Sensors, der nun präziser und mit einer I2C-Schnittstelle ausgestattet ist. Der BMP280 ist ein barometrischer Drucksensor, der speziell für mobile Anwendungen entwickelt wurde.

Kontaktiert wird die ENV Unit über den an der linken Seite des M5Stack Basic Core angeordneten Grove-PortA (i2C).

ENV Unit with Temperature Humidity Pressure Sensor (DHT12+BMP280)

SIM800L ist ein Mobiltelefonmodul auf Basis des SIM800L GSM / GPRS-Modul von SIMCOM,

GSM Module SIM800L with MIC & Headphone Jack

Mit diesen drei Komponenten wird die Wetterstation aufgebaut. Die Kosten der ansprechenden Anordnung belaufen sich dabei auf:

KomponentePreis
M5Stack Basic Core$ 27.95
ENV Unit$ 3.39
GSM Module SIM800L with MIC & Headphone Jack $ 9.95
Summe$ 41.29

Die folgenden Bilder zeigen den Ablauf vom Programmstart bis zum Abschluss der Übertragung des Temperaturmesswertes, der hier für die Evaluierung ausreichend erschient.

Initialisierung nach Programmstart
Messwerte erfasst – Versenden zum Thingspeak Server
Messwerte versendet

Der Quelltext für das Programm M5Stack_DHT12_Thingspeak ist auf Github unter https://github.com/ckuehnel/M5Stack/tree/master/M5Stack/M5Stack_DHT12_Thingspeak abgelegt. Anpassungen auf weitere Parameter und andere Displayausgaben können nach dem Download leicht vorgenommen werden. Programmiert wurde mit der Arduino IDE v1.8.9.

Das Ergebnis der abendlichen Abkühlung ist im folgenden Bild zu sehen.

Temperaturverlauf 6.08.2019 abends

Ein Wort noch zur Stromversorgung. Der SIM800L ist bekannt dafür, dass er in Spitzen bis zu 2 A Stromaufnahme verzeichnet. Die Spannungsversorgung kann beim M5Stack aber vernünftig nur über den USB-Anschluss erfolgen. Dadurch ist der zur Verfügung stehende Strom limitiert.

Ich habe einen D-Link DUB-H4 USB-Hub verwendet, der vier Downstream-USB-Anschlüsse Typ A (Buchse) inklusive Schnellladeanschluss besitzt und durch ein externes Netzteil gespeist wird.

Der fürs iPad u.a. stromhungrige Verbraucher gedachte Schnellladeanschluss dient hier zur Stromversorgung und die sporadischen Brown Out-Resets des ESP32 sind Vergangenheit.

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.

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

 

 

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

 

 

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

 

AVR Timer Interrupts Calculator

Arduino_Logo.svg
Timers for

  • ATmega328P used in Arduino Uno & Arduino Pro Mini
  • ATmega2560 used in Arduino Mega 2560 and
  • ATtiny85

are calculated in CTC mode. Select requested frequency, MCU and timer. Click Calculate. Copy result into the clipboard. Paste code into Arduino IDE. Ready. Click here for this easy to use tool.

It’s a good addition to my book Arduino Interrupts – Speed up your Arduino to be responsive.