Archiv der Kategorie: Hardware

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.

 

 

 

Advertisements

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

 

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

Hochintegrierter WiFi-Chip

ist der Titel eines in Design & Elektronik 3/2018 erschienenen Beitrag zu Ledunia, einem ESP8266 High-End-Modul.

Die intelligente Analyse bestehender ESP8266 Module hat einen Ansatz geliefert, den verbreiteten ESP8266 Modulen eine Ergänzung beizustellen, die bestehende Beschränkungen aufhebt und neue Merkmale hinzufügt. Dieser Ansatz hat die Teilnehmer der Kickstarter-Kampagne überzeugt und diese zu einem erfolgreichen Abschluss geführt.

Wichtig für den Einsatz einer solchen Baugruppe sind neben der starken Arduino Community auch direkte Ansprechpartner, die bei einem in Deutschland entwickelten Produkt vorhanden sind.

Die vorliegenden Zertifizierungen (CE, FCC) für Ledunia bieten darüber hinaus Sicherheit beim Einsatz der Baugruppen.

HiGrow-Sensor: Daten erfassen und versenden

Im Post HiGrow-Sensor sorgt für das Wohl der Pflanzen hatte ich auf den HiGrow-Sensor hingewiesen, der zur Überwachung der Umweltbedingungen in Pflanzennähe eingesetzt werden kann.

Im Programm HiGrowESP32MQTT.ino werden die Sensordaten des dort eingesetzten DHT11-Sensors zur Messung von Lufttemperatur und Luftfeuchte, sowie die kapazitiv gemessene Bodenfeuchte und die Helligkeit erfasst und entsprechenden Topics von MQTT-Messages zugeordnet. Zu Kontrollzwecken werden diese Daten auch seriell ausgegeben und können durch den internen Monitor der Arduino IDE verfolgt werden. Das Programm  HiGrowESP32MQTT.ino steht auf Github zum Download zur Verfügung.

HiGrow Data

Mit einem MQTT Client können die abonnierten Mitteilungen visualisiert werden.

Screenshot_20180319-140609.png

Bei meinen Test ist mir aufgefallen, dass recht häufig nach dem Programmstart der Brownout Detector getriggert wurde und einen entsprechenden Reset ausgelöst hat.

HiGrow Brounout

Verfolgt man die Diskussion (z.B. hier https://github.com/nkolban/esp32-snippets/issues/168) dann scheint ein hoher Strombedarf während der Initialisierungsphase ein (der?) Grund für das Verhalten zu sein.

Der HiGrow-Sensor weist einen Batteriehalter für eine 18650-LiPo-Batterie auf. Bei meinen Tests war die Batterie nicht bestückt. Möglicherweise puffert eine bestückte Batterie dann diesen kurzzeitigen Strombedarf hinreichend.

 

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.