Amazon Alexa SmartHome domotica fai da te

Hai acquistato o vorresti acquistare un Echo della famiglia Amazon…? E desideri che la tua casa si trasformi in una SmartHome completamente personalizzata…?

In commercio esistono già parecchi dispositivi che potreste acquistare tra Sonoff , Presa Intelligente , Lampadina LED 60W , ma se scegliamo una o tutte queste soluzioni a volte dovremo giostrarci su diverse APP e per un buon prodotto dovremo sborsare molti soldi altimetri ci ritroveremo con lampadine di scarsa luminosità o prese che sopportino carachiri poco efficienti e con  rischio che si brucino.

Grazie alla nostra guida sarai in grado di progettare in completa autonomia la tua casa domotica..

Un dispositivo che può offrirci una assidua gamma di soluzioni e NodeMCU, una scheda di sviluppo programmabile con Arduino con una WIFI Interna ESP8266 che ci permetterà di comunicare con i nostri dispositivi Echo e non solo.



Ma prima di cominciare avrai bisogno di procurarti alcuni componenti sia HARDWARE che SOFTWARE.

HARDWARE

Un Echo Dot (3ª generazione) oppure un Echo Plus (2ª generazione) dove dovrai istallare Amazon Alexa Skills (Sinric)Un NodeMCU ESP8266Un Modulo Relé 5V  da 2/4/8 Canali dipende da ciò che vogliate realizzareUn AC 220V Per DC 5V o un vecchio carica batterie da cellulare (per alimentare il nostro dispositivo)SOFTWAREArduino IDE da scaricare sul pc per programmare il NodeMCUSinric.com dove dovrai registrarti e creare delle chiavi (API) di accesso personali che vedremo più avanti.E poi accedere a sua volta su Amazon Alexa Skills (Sinric)INIZIAMOPer interfacciare NodeMCU e Amazon Alexa, useremo un Skills Amazon chiamata Sinric

    • Prima di tutto, è necessario creare un account in Sinric  dal pc . “Sinric è un sito Web che consente di collegare le schede di sviluppo come RaspberryPi, ESP8226, ESP32 o Arduino con Amazon Alexa”.
    • Una volta creato l’account, accedi ad esso. Quindi fare clic sul pulsante ( Add ) della sessione ( Smart Home Device) che ti permetterà di aggiungere un dispositivo Smart Home potrai scrivere un nome vocale che il tuo Echo Dot riconoscerà al momento della sua pronuncia, potrai in oltre scrivere una breve descrizione per il suo utilizzo in modo che gli utenti che interagiscano con esso sappiano di cosa si tratta.
    • Sentitevi liberi di creare tutti i dispositivi che volete controllare. Nel mio caso, ho creato 4 ( Smart Home Device ). ad ognuno di esso e associato un ( Device ID : 5xxxxxxxxxxxxxxxxxxxxxxx ) unico, che vedremo più avanti come utilizzarlo.

Per questo progetto, useremo il modulo wifi NodeMCU ESP8266.

      • Quindi per programmare la scheda useremo Arduino IDE  poi sarà necessario scaricare alcune schede aggiuntive per interfacciare la nostra scheda al software di Arduino IDE.
      • Ho creato un video dove vi mostro come farlo con pochi semplici passaggi
    Programmare NodeMCU ESP8266 con Arduino IDE

Tornando al nostro progetto ora dovrai:

    • Scarica il codice di programmazione che dovrai a sua volta caricare sulla scheda ( NodeMCU ESP8266 ) ti ricordo che e un codice di esempio quindi dovremo completarlo per poi utilizzarlo; troverai il codice di programmazione sul sito di Github creato da kakopappa presso questo          link =”  https://github.com/kakopappa/sinric  ” dopo averlo scaricato ed estratto il file dal formato zip al suo interno troverai diverse soluzioni che potrai creare; ma noi per questo progetto ci soffermeremo sulla cartella chiamata  “arduino_examples”  e a sua volta aprire il codice denominato “switch_example

    • Ora apri  l’esempio switch_example.ino dal file scaricato

    Ora non ci resterà che effettuare le seguenti modifiche nel codice.

    Trova nel codice la stringa

    #define MyApiKey ""

    E inserisci tra le virgolette il codice API fornito dopo esserti registrato su Sinric

     

    Ora individua la stringa

    #define MySSID ""

    Inserisci qui il tuo nome di rete wifi (sensibile al maiuscolo / minuscolo), il tuo dispositivo Amazon echodovrebbe trovarsi nella stessa rete.
    Continua con individuare la stringa

    #define MyWifiPassword ""

    per poi Inserire la password della rete wifi (sensibile al maiuscolo / minuscolo).

    E ora individua la stringa

    void turnOn(String deviceId)
    {
      if (deviceId == "xxxxxxxxxx") // Device ID of device 1
      { 
        Serial.print("Turnevice id: ");
        Serial.println(deviceId);
        digitalWrite(device1, HIGH);
      }

    Ed inserivi Device ID creato precedentemente su Sinric e continua ad oltranza con gli altri dispositivi creati; fai attenzione tra

    void turnOn(String deviceId)
     void turnOff(String deviceId)

    altrimenti non funzioneranno ( ovvio che sia i “Device ID” ON che OFF devono essere identici )

    Ora non resta che indicare al nostro codice i PIN di riferimento che assegneremo al modulo wifi NodeMCU ESP8266 ( per poi effettuare i collegamenti che vi illustrerò più avanti ) per semplificare il processo, copia e incolla l’intero codice e poi effettuate le modifiche personali sopra indicate il codice e gia corto per usare due rele su un D1 mini se usate un altro dispositivo vi basterà indicare correttamente i pin gusti che andrete ad utilizzare (disattiva  la traduzione automatica del vostro browser altrimenti nel copia e incolla il codice verra distorto)


    #include <Arduino.h>
    #include <ESP8266WiFi.h>
    #include <ESP8266WiFiMulti.h>
    #include <WebSocketsClient.h> // https://github.com/kakopappa/sinric/wiki/How-to-add-dependency-libraries
    #include <ArduinoJson.h> // https://github.com/kakopappa/sinric/wiki/How-to-add-dependency-libraries (use the correct version)
    #include <StreamString.h>

    ESP8266WiFiMulti WiFiMulti;
    WebSocketsClient webSocket;
    WiFiClient client;

    #define HEARTBEAT_INTERVAL 300000 // 5 Minutes

    uint64_t heartbeatTimestamp = 0;
    bool isConnected = false;

    #define MyApiKey “d0634ff5-b934-4764-a1ac-cd3axxxxxxx” // TODO: Change to your sinric API Key. Your API Key is displayed on sinric.com dashboard
    #define MySSID “CiakiShow” // TODO: Change to your Wifi network SSID
    #define MyWifiPassword “A8xxxx91C” // TODO: Change to your Wifi network password

    #define DEVICE1 “6122ac5e34b6bxxxxx” //TODO: Device ID of first device
    #define DEVICE2 “6122acd334b6bxxxxx” //TODO: Device ID of second device

    const int relayPin1 = 5; // TODO: inserire il pin relativo al tuo disposto D1 mini sul pinD1 e uguale al 5 di arduino
    const int relayPin2 = 4; // TODO: inserire il pin relativo al tuo disposto D1 mini sul pinD2 e uguale al 4 di arduino

    // deviceId is the ID assgined to your smart-home-device in sinric.com dashboard. Copy it from dashboard and paste it here

    void turnOn(String deviceId) {
    if (deviceId == DEVICE1)
    {
    Serial.print(“Turn on device id: “);
    Serial.println(deviceId);

    digitalWrite(relayPin1, LOW); // inverti i valori HIGH in LOW se usi un rele
    }
    else if (deviceId == DEVICE2)
    {
    Serial.print(“Turn on device id: “);
    Serial.println(deviceId);

    digitalWrite(relayPin2, LOW); // inverti i valori HIGH in LOW se usi un rele
    }
    else {
    Serial.print(“Turn on for unknown device id: “);
    Serial.println(deviceId);
    }
    }

    void turnOff(String deviceId) {
    if (deviceId == DEVICE1)
    {
    Serial.print(“Turn off Device ID: “);
    Serial.println(deviceId);

    digitalWrite(relayPin1, HIGH); // inverti i valori LOW in HIGH se usi un rele
    }
    else if (deviceId == DEVICE2)
    {
    Serial.print(“Turn off Device ID: “);
    Serial.println(relayPin2);

    digitalWrite(relayPin2, HIGH); // inverti i valori LOW in HIGH se usi un rele
    }
    else {
    Serial.print(“Turn off for unknown device id: “);
    Serial.println(deviceId);
    }
    }

  • }


    
    

    Una volta concluso seleziona la ( scheda corretta e la porta COM ) sulla sezione strumenti del software di Arduino IDA e carica lo schizzo.

    • Il NodeMCU si connetterà automaticamente alla rete wifi.
      Assicurati che il tuo wifi sia acceso e che il tuo dispositivo Echo sia connesso alla medesima rete wifi.
    • Accedi all’APP Alexa dal tuo smartphone.
    • Vai alla sezione Skills e giochi e cerca l’abilità Sinric e abilitala.
    • Ora cerca i dispositivi o chiedi ad ” Alexa, scopri i dispositivi “
    • Mostrerà il numero di dispositivi disponibili

    ELETTRONICA
    Il circuito è molto semplice, ma fai attenzione mentre colleghi il carico AC al relè.
    Abbassa l’interruttore generale della tua rete domestica prima di aprire qualsiasi centralina o cassetta di derivazione.

    Ora che tutto è stato collegato non ti resterà altro che comandare il tuo Echo.

    Sentiti come Tony Stark; )

    Ti ricordo che solo grazie alle tue condivisioni e donazioni viviamo un sincero abbraccio da www.ciakishow.it