Schlagwort-Archive: ESP8266

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 Test 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.

Advertisements

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?

Ledunia

Gratulation zur erfolgreichen Kickstarter-Kampagne. 

b869c7b701372a7d631d0ef86ba71c33_original

Ich freue mich, meine Programmbeispiele (https://www.amazon.de/Building-IoT-Node-less-than-ebook/dp/B018J1OVC4/) auf der neuen Plattform zu testen.

Auf den erweiterten Speicher und die Vorkehrungen für die Deep Sleep Option bin ich gespannt. Die RGB-LEDs sind eine gelungene Erweiterung in Verbindung mit dem semi-transparenten Gehäuse.

 

 

SONOFF über MQTT steuern

Im Blogbeitrag Sonoff Wifi Smart Switch mit NODEMCU Firmware hatte ich die vorbereitenden Arbeiten beschrieben, um den Sonoff Smart Switch mit einer eigenen Firmware auszustatten. Ziel ist, den Sonoff Smart Switch von einem MQTT Client aus zu steuern. Das kann ein beliebiges Linux-Device, wie ein Raspberry Pi o.ä. sein, oder ein MQTT Client auf dem Smartphone.

Das grundsätzliche Vorgehen zum Start eines Anwendungsprogramms (credentials.lua, init.lua, sonoff.lua) auf dem ESP8266/NodeMCU wird hier als bekannt vorausgesetzt. In meinem Buch zu NodeMCU ist das im Detail beschrieben.

MyMQTTIch verwende hier MyMQTT aus dem Google Play Store auf einem Android Smartphone. Es gibt Alternativen sowohl für Android als auch für iOS.

Um sich an den Datenaustausch über das MQTT-Protokoll heranzutasten, bietet sich die Verwendung eines freien Broker-Dienstes als Spielwiese an. Der CloudMQTT-Broker der schwedischen Firma 84codes AB ist eine solche Möglichkeit. CloudMQTT sind Mosquitto Server in der Cloud.

Zum Erstellen einer CloudMQTT-Instanz ist es erforderlich, unter http://www.cloudmqtt.com/ ein Konto einzurichten und sich für einen Kunden-Plan zu entscheiden. Als Testfeld nutze ich den freien Plan Cute Cat.
Die Anmeldung eines Kundenkontos erfolgt über eine eMail-Adresse, an die ein Link zur
Freischaltung verschickt wird. Nach dem Erzeugen einer CloudMQTT-Instanz werden die Informationen zur erzeugten Instanz angezeigt. Alle in der folgenden Abbildung gezeigten Daten werden vom System zugewiesen. Das trifft auch für den Usernamen und das Password zu.

cloudmqtt

Ist die brokerseitige Einrichtung abgeschlossen, dann kann der MQTT Client MyMQTT eingerichtet werden.Die folgenden Screenshots zeigen die von MyMQTT abonierten Mitteilungen (Subscribe), das Versenden von Mitteilungen zum Schalten des Sonoff Smart Switches und die Protokollierung auf dem Dashboard.
subscribe

Mein MQTT Client abonniert durch die Angaben SONOFF/+/# alle gesendeten Sonoff-Mitteilungen. Zusätzlich sind alle Mitteilungen aus einem Netzwerk von Temperatursensoren abonniert (DHT11/+/#).

 

 

 

 

Publish

 

Gesendet wird von diesem MQTT-Client hier nur der Topic SONOFF/ESP8266-1878840/state mit 0 (Ausschalten) oder 1 (Einschalten) als Dateninhalt.

 

 

 

dashboard

 

 

Im Dashboard können nun die abonnierten Mitteilungen verfolgt werden.

Der eingesetzte Sonoff Smart Switch meldet sich mit einer Client-ID in seinem Topic, die automatisch durch dessen Chip-ID erzeugt wird. Die Adressierung ist damit eindeutig.

Im wesentlichen kann der durch die versendeten Mitteilungen beeinflusste Schaltzustand verfolgt werden.

Gelegentlich wird dieser Vorgang durch eine periodische  gesendete Mitteilung eines Sensors für Temperatur und Luftfeuchtigkeit unterbrochen.

 

Weiterlesen