Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

NodeMCU Dev Kit mit Amazon Alexa steuern

Posted on 14. September 20208. März 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen wie einfach es ist das NodeMCU Dev Kit mit einem Amazon Alexa Echot Dot per Sprachbefehl zu steuern.

NodeMCU Dev Kit mit ESP8266 Chip von AI-Thinker
NodeMCU Dev Kit mit ESP8266 Chip von AI-Thinker
Amazon Echo Dot
Amazon Echo Dot 3. Generation

Natürlich kannst du auch jeden anderen Microcontroller mit einem ESP8266 / ESP32 Chip verwenden. Ich verwende das NodeMCU Dev Kit da dieses bereits einige LEDs verbaut hat und somit eine zusätzliche Schaltung entfällt.

  • benötigte Resourcen
  • Bibliotheken
  • Programmieren
    • Laden eines Beispieles aus der „faumoESP“ Bibliothek
    • Quellcode
      • Anpassungen an dem Beispiel „fauxmoESP_Basic“
      • gesamter Quellcode / das fertige Sketch
    • Download
  • Einrichten des Amazon Echo Dot
  • Upload des Sketches und Einrichten des Echo Dots
  • Video

benötigte Resourcen

Für den nachbau dieses Projektes benötigst du:

  • einen Microcontroller mit ESP8266 Chip*,
    • USB Datenkabel
  • einen Amazon Echo Dot*,

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Den Amazon Echo Dot findest du natürlich auf amazon.de, es gibt zu gewissen Tagen besonderes niedrige Preise oder du schaust einfach bei ebay.de* nach einem gebrauchten Gerät. Für dieses Projekt verwende ich einen Amazon Echo Dot in der 3. Generation und in der 1. Generation, bei beiden hat dieses Beispiel funktioniert.

Bibliotheken

Wie du einen Mikrocontroller mit ESPx Chip in ein bestehendes WiFi Netzwerk einbindest, habe ich bereits in diversen Beiträgen auf diesem Blog gezeigt (zbsp. im Beitrag NodeMCU Dev Kit mit ESP8266 Chip von Paradisetronic zum NodeMCU Dev Kit).

Du benötigst die Bibliotheken:

  • me-no-dev/ESPAsyncTCP
  • me-no-dev/ESPAsyncWebServer
  • fauxmoESP

Ich habe dir jeweils die *.zip Dateien in der Liste hinterlegt. Diese musst du zunächst herunterladen und danach in die Arduino IDE hinzufügen.

Programmieren

Der Bibliothek „fauxmoESP“ liegt ein lauffähiges Beispiel bei, welches verschiedenen farbige LEDs / Lampen steuern soll. Dieses schreiben wir im Weiteren verlauf um so, das wir die BUILDIN_LED des ESP8266 aktivieren bzw. deaktivieren.
Zum Aktivieren der LED wird der Befehl „Alexa, aktiviere blaue Lampe“ und zum Deaktivieren „Alexa, deaktiviere blaue Lampe“ gesagt. ABER bevor du das machen kannst, musst du deinen Mikrocontroller entsprechend programmieren und deinen Echo Dot einrichten. Wie du dieses machst, erfährst du in diesem Kapitel.

Laden eines Beispieles aus der „faumoESP“ Bibliothek

Laden wir zunächst das Beispiel Sketch aus „Datei“ > „Beispiele“ > „fauxmoESP“ > „fauxmoESP_Basic“.

Beispiel "faumoESP_Basic" für den Amazon Echo Dot
Beispiel „faumoESP_Basic“ für den Amazon Echo Doto

Bevor wir das Sketch auf den ESP speichern müssen wir die Datei „credentials.sample.h“ in „credentials.h“ umbenennen, dazu speichern wir zunächst das Beispiel in einen beliebigen Ordner und betätigen danach die Tastenkombination Strg+K. Es sollte sich nun der Ordner öffnen in welchem wir das Sketch gespeichert haben. Nachdem dieses erledigt ist geben wir in der *.h Datei die  SSID sowie das Passwort für das WLAN Netzwerk ein.

In dem nachfolgenden Video zeige ich dir nun wie du dieses in der Arduino IDE machst.

Quellcode

Wie erwähnt, verwenden wir ein Beispiel aus der mitgelieferten Bibliothek somit müssen wir nur ein paar kleine Änderungen durchführen.

Anpassungen an dem Beispiel „fauxmoESP_Basic“

//definieren der BUILDIN_LED
#define BLUE_LED 2
#define ID_BLUE_LED "blaue lampe"

//hinzufügen des Gerätes "blaue lampe"
void setup(){
  ...
  fauxmo.addDevice(ID_BLUE_LED);
  ...
  //Wenn der Sprachbefehl zum aktivieren / deaktiviern gegeben wird dann... 
  if (strcmp(device_name, ID_BLUE_LED)==0) {
    digitalWrite(BLUE_LED, state ? LOW : HIGH);
  }
}

gesamter Quellcode / das fertige Sketch

Hier nun der Quellcode um die BUILD_IN LED des ESP8266 über den Sprachbefehl „Alexa, schalte die blaue Lampe ein“ zu aktivieren bzw. über „Alexa, schalte die blaue Lampe aus“ zu deaktivieren.

#include <Arduino.h>
#ifdef ESP32
    #include <WiFi.h>
#else
    #include <ESP8266WiFi.h>
#endif
#include "fauxmoESP.h"

#include "credentials.h"

//#define WIFI_SSID "..."
//#define WIFI_PASS "..."
fauxmoESP fauxmo;

#define SERIAL_BAUDRATE     115200

#define BLUE_LED          2

#define ID_BLUE_LED           "blaue lampe"

void wifiSetup() {
    WiFi.mode(WIFI_STA);
    Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
    WiFi.begin(WIFI_SSID, WIFI_PASS);
    while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(100);
    }
    Serial.println();
    Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}

void setup() {
    Serial.begin(SERIAL_BAUDRATE);
    Serial.println();
    Serial.println();

    pinMode(BLUE_LED, OUTPUT);

    wifiSetup();
    fauxmo.createServer(true); // not needed, this is the default value
    fauxmo.setPort(80); // This is required for gen3 devices
    fauxmo.enable(true);
    fauxmo.addDevice(ID_BLUE_LED);
    
    fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {       
        Serial.printf("[MAIN] Device #%d (%s) state: %s value: %d\n", device_id, device_name, state ? "ON" : "OFF", value);
        if (strcmp(device_name, ID_BLUE_LED)==0) {
            digitalWrite(BLUE_LED, state ? LOW : HIGH);
        } 
    });
}

void loop() {
    fauxmo.handle();
    static unsigned long last = millis();
    if (millis() - last > 5000) {
        last = millis();
        Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap());
    }
}

Download

Hier nun der Quellcode zum bequemen download.

NodeMCU Dev Kit mit Amazon Alexa steuernHerunterladen

Einrichten des Amazon Echo Dot

Die Einrichtung des Echo Dot ist sehr einfach, in meinem Fall musste ich nur „Alexa, suche neue Geräte“ sagen und es wurde der Microcontroller gefunden und automatisch unter der Bezeichnung „blaue lampe“ eingerichtet.

Alexa App - Gerät "blaue lampe"
Alexa App – Gerät „blaue lampe“

Alternativ kann man auch über die Alexa App aus dem Google PlayStore nach Geräte suchen.

Upload des Sketches und Einrichten des Echo Dots

Im nachfolgenden Video zeige ich dir wie das Sketch auf den ESP8266 (in diesem Fall das NodeMCU Dev Kit) gespeichert und der Echo Dot eingerichtet wird.

Amazon Echo Dot zum steuern eines ESP8266
Dieses Video auf YouTube ansehen.

Video

In diesem Video zeige ich dir nun die einfache Funktion zum steuern der BUILD_IN LED am ESP8266 welche am GPIO 2 angeschlossen ist. Da das NodeMCU Dev Kit über zusätzliche SMD LEDs verfügt wird noch die SMD LED 1 aktiviert bzw. deaktiviert.

4 thoughts on “NodeMCU Dev Kit mit Amazon Alexa steuern”

  1. Gersch sagt:
    7. Dezember 2020 um 08:49 Uhr

    Hallo Stefan!
    Ich wollte mit deiner Anleitung versuchen, meinen Esp8266 über die Android Alexa-App zu steuern. Habe dazu die 3 Zip-Bibliotheken geladen, das zip deines gesamten Programmes und mein Wlan eingetragen. Nach dem Hochladen läuft auch wie in deinem Video der serielle Monitor, nur mein Alexa App findet kein Gerät.
    Ich habe jetzt gelesen, das bei Fauxmo das Protokoll ab Version 2.4 geändert wurde. Kann es eventuell daran liegen?
    Welche Version hast du?
    Oder hast du noch einen anderen Tipp für mich?

    LG Gersch

    Antworten
    1. Stefan Draeger sagt:
      7. Dezember 2020 um 08:53 Uhr

      Hi,

      hast du bereits ein Gerät mit der gleichen Bezeichnung in der Alexa App eingerichtet?
      Siehst du den Microcontroller in deinem Router (bei der FritzBox! in der Übersichtsseite zbsp.)

      Gruß,

      Stefan Draeger

      Antworten
  2. Gersch sagt:
    7. Dezember 2020 um 15:11 Uhr

    Hallo Jürgen
    Der ESP taucht in meiner Fritzbox auf. In der Alexa app habe ich sonst nur meine Shelly dimmer drinnen. Brauche ich dafür eventuell einen eigenen Skill?

    lg Gersch

    Antworten
    1. Stefan Draeger sagt:
      8. Dezember 2020 um 08:56 Uhr

      Hi,

      einen zusätzlichen Skill für Alexa brauchst du nicht.
      Ich habe das ganze mit der Alexa 1. Generation & 3. Generation getestet und es funktioniert.
      Kannst du mir mal deinen Code sowie die Versionsnummern der verwendeten Bibliotheken zusenden? Dann vergleiche ich das mal.

      Gruß,

      Stefan

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen
Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

link zu Fabook
link zu LinkedIn
link zu YouTube
link zu TikTok
link zu Pinterest
link zu Instagram
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}