Archiv der Kategorie: Arduino

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

Eine Printausgabe folgt in Kürze.

Advertisements

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

ThingPulse gegründet

In der Maker-Szene bekannt sind Daniel “Squix” Eichhorn und Marcel “frightanic” Stör schon seit längerem.

Daniel ist in der ESP8266-Arduino-Community eine bekannte und respektierte Persönlichkeit. Er verkauft IoT-Kits und hat seit 2015 DIY-Projekte mit beeindruckender Geschwindigkeit realisiert.

Marcel ist seit Sommer 2015 einer von mehreren NodeMCU-Maintainers. NodeMCU ist eine Lua-Firmware für den ESP8266 / ESP32 WiFi SoC. Er hat auch einige Tools für die NodeMCU-Community beigesteuert: NodeMCU Cloud Builder, Docker NodeMCU Build, NodeMCU PyFlasher.

Die von Daniel und Marcel gegründete ThingPulse wird IoT-Hardware und -Software sowohl für Hersteller als auch für Verbraucher entwickeln, fördern und verkaufen. ThingPulse ist die Schnittstelle zwischen IoT-Komponenten und traditionellen Anwendungen. Mehr findet Ihr unter https://thingpulse.com/about/.

Ich wünsche an dieser Stelle einen guten Start und bin vom Erfolg schon heute überzeugt.

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.

Ledunia Benchmarks

Mit dem Beitrag Arduino32: Die jungen Wilden in der Zeitschrift DESIGN&ELEKTRONIK (Online-Version Teil 1Online Version Teil 2) hatte ich 32-Bit Arduinos vorgestellt und an Hand einfacher Benchmarks miteinander verglichen.

Der verbreitete #ESP8266 ist ebenfalls in die Arduino Umgebung integriert und die Verfügbarkeit von #Ledunia als High-End-ESP8266-Modul haben mich veranlasst, diese Tests mit Ledunia zu wiederholen.

Die Programme selbst sind unter GitHub abgelegt, können von da heruntergeladen und in der Arduino IDE ausgeführt werden. Hier sind die Benchmark-Ergebnisse im Vergleich zu verschiedenen klassischen Arduinos:

Board Arduino Uno Arduino M0 Arduino Due Ledunia
CPU ATmega328 ATSAMD21G18
(Cortex-M0+)
AT91SAM3X8E
(Cortex-M3)
ESP8266EX
Clock 16 MHz 48 MHz 84 MHz 80 MHz
Runtime 18267 ms 5180 ms 3451 ms 2189 ms
IO-  Periode 11,60 us 3.24 us 4,32 us 5 us
I/O-Frequenz 86,21 kHz 308,6 kHz 203,3 kHz 200 kHz

Die Leistungsmerkmale der ESP8266-basierten Arduinos können sich sehen lassen und bilden damit eine sehr gute Ergänzung der Arduino-Familie.

Hello World für Ledunia

Ledunia bezeichnet ein leistungsfähiges IoT Entwicklungsboard für das IoT auf Basis des bekannten ESP8266 Mikrocontrollers.

Die Installation in der Arduino IDE ist auf der Ledunia Website im Detail beschrieben. Hier ist ein einfaches Programmbeispiel im „Hello World“-Stil gezeigt, welches die erfolgreiche Inbetriebnahme zeigt.

Der deutlich grössere Speicher im Vergleich zum NodeMCU ist aus den Screenshots ersichtlich.

// Uncomment your board

#define ESP8266_LED 5 // for Ledunia
#define NodeMCU_LED D0 // for NodeMCU

#define LED ESP8266_LED // adapt it

ADC_MODE(ADC_VCC);

byte count = 0;

void setup() 
{
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  delay(4000); // waiting to start the monitor
  Serial.print("Hi there, here is "); 
  Serial.println("Ledunia"); // for Ledunia
//  Serial.println("NodeMCU"); // for NodeMCU
  Serial.print("ESP8266 Chip ID: ");
  Serial.println(ESP.getChipId());
  Serial.print("Flash Chip ID: ");
  Serial.println(ESP.getFlashChipId());
  Serial.print("Flash available [KB]: ");
  Serial.println(ESP.getFlashChipSize()/1024);
  Serial.print("Flash Chip Size [KB]: ");
  Serial.println(ESP.getFlashChipRealSize()/1024);
  Serial.print("Flash frequency [MHz]: ");
  Serial.println(ESP.getFlashChipSpeed()/1000000);
  Serial.print("Free Heap [KB]: ");
  Serial.println(ESP.getFreeHeap()/1024);
  Serial.print("VCC [mV]: ");
  Serial.println(ESP.getVcc());
}

void loop() 
{
  Serial.print(".");
  count++;
  if (count == 25)
  {
    Serial.println();
    count=0;
  }
  digitalWrite(LED, HIGH);
  delay(980);
  digitalWrite(LED, LOW);
  delay(20);
}

LeduniaTest

NodeMCU

Interesse geweckt?