Come Controllare Una Ventilatore Con Alexa E La Board-Alex-Control

by HorizonLab in Circuits > Arduino

532 Views, 0 Favorites, 0 Comments

Come Controllare Una Ventilatore Con Alexa E La Board-Alex-Control

IMG_20220823_171535.jpg
Senza titolo.jpg

Questo progetto fa parte di Internet of Tricks ed è un dispositivo che simula in scala ridotta una piccola casa nella quale alcuni apparati IoT si interfacciano con un assistente vocale. La casetta è in grado di aprire e chiudere porte, accendere ventilatori e luci. Questo dispositivo ha degli scopi pedagogici, è pensato per aumentare la consapevolezza dell'utente sui rischi dell'IoT negli ambienti domestici. Ad esempio l'utente ha la possibilità di capire come sia facile scoprire quando in casa non vi sia nessuno se tutto gli apparati sono spenti, oppure l'utente può imparare quanto sia pericoloso se un malintenzionato riuscisse ad accendere gli apparati in assenza di sicurezza. Naturalmente, i vantaggi offerti dall'IoT permettono la semplificazione di molte azioni quotidiane. E' però necessario osservare alcuni accorgimenti perchè le abitudini domestiche non siano pubblicamente accessibili da malintenzionati.

In questo tutorial verrà mostraro come usare i comandi vocali di Alexa per poter accendere o spegnere una lampada. Il tutorial mostra come collegare la board sviluppata nel tutorial ad un ventilatore e come programmarlo perché riceva comandi attraverso protocollo MQTT provenienti da Alexa.

Cosa Ci Serve

Innanzitutto è necessario procurarsi:

  1. Un Dispositivo Alexa collegato ad internet(va bene anche solo uno smartphone sul quale è installata l'app Alexa)
  2. Jumpers
  3. Breadbord
  4. Laptop collegato ad internet
  5. Router wifi
  6. LED e una resistenza da 100Ohm ;
  7. ESP32 Microcontroller;

Schema Dei Collegamenti

Senza titolo.png

L'immagine mostra la connessione tra l'ESP32 e il LED.

Il PIN positivo del LED deve essere consesso al PIN 33 tramite la resistenza

Il Servo motore viene controllato collegando il PIN13 al PIN di controllo del Servo

Node-RED

image (5).png
image (6).png
Senza titolo 1.jpg
image (7).png
image (8).png
image (9).png

Per installare Node-RED sul laptop, dai uno sguardo a questa guida.

Questo schema Nore-RED si occupa di ricevere i comandi da Alexa e tradurli in comandi per l'ESP32, nello specifico va a gestire l'accensione e lo spegnimento del LED collegato all'ESP32 e salva un logo degli eventi.

Step by Step

  1. Da Node-Red installiamo da Manage Palette "node-red-contrib-alexa-home-skill", "node-red-contrib-moment" e "node-red-dashboard";
  2. Prendiamo il Nodo alexa-home e nel menù help a destra di node-red apriamo il link per la configurazione dei device "https://alexa-node-red.bm.hardill.me.uk/" ;
  3. Una volta registrati al sito andiamo in device e premiamo add device, Nel menù che viene mostrato per gestire una luce scegliamo l' Actions "ON e OFF" e come Application "Type Light" ;
  4. In Node-Red nelle proprietà del nodo Alexa Home inseriamo l'username e password scelte al punto 2;
  5. Una volta collegato l'account nel menù device del nodo Alexa troviamo il nuovo device selezionabile;
  6. Colleghiamo l'uscita del nodo Alexa Home all'ingresso del Nodo "mqtt in";
  7. Nelle proprietà del nodo "mqtt in" inseriamo le informazioni del broker (nel nostro caso broker.hivemq.com porta 1883);

Downloads

Alexa Skill - Comandi Vocali

F4BIHVGL76F9ZIC.jpg
FGGHVVOL8K7MALM.jpg
F5YLV1FL8K7MALR.jpg
FR2D38QL8K7MALH.jpg
FGRXR8NL8K7MALS.jpg

Gli screenshot allegati mostrano come installare la skill Alexa per poter gestire con comandi vocali l'invio delle richieste a Nod-RED. I passi per settare la skilla alexa sono i seguenti:

  1. In Altro-> "Skill e giochi" cerchiamo e installiamo la skill "Node-Red" come da foto;
  2. Abilitare la Skill e inserire la Username e Password;
  3. Alexa automaticamente cercherà i nuovi dispositivi, in alternativa in "Dispositivi"->"Tuoi Dispositivi" è possibile trovare e aggiungere i nuovi dispositivi creati su "https://alexa-node-red.bm.hardill.me.uk/";
  4. Possiamo cambiare il comando di attivazione o disattivazione di un dispositivo andando in Altro-> Routine;
  5. In Routine aggiungerne una nuova assegnando un nome, un comando di attivazione nel menù Voce e un azione; nel menù azione selezioniamo "casa intelligente " e il dispositivo.


Firmware

image (10).png
FY5G6HHL8K7MAVA.png
FZNA19IL7G7B7VR.png

Il firmware allegato va flashato sull'ESP32 perchè possa collegarsi al broker MQTT, ricevere i comandi, attuarli e rispondere con un feedback.

Nel caso stessimo gestendo più case e necessario avere dei nomi diversi per ogni casa per il

WiFiClient espClientHori2;

PubSubClient client(espClientHori2);

Dashboard

image.png
F04XT40L8NE94PD.png
FG6ZDU5L8NE94O4.png
FD7ITS6L8NE94N7.png
FZ0FAYLL76F9ZFS.png

Node-Red permette di realizzare una Dashboard a partire dalle informazione che scorrono nei flussi realizzati negli step precedenti. Nel nostro caso, per monitorare le abitudini domestiche, è necessario inserire dei widget per tenere traccia degli eventi (come l'accensione di una lampada). Per realizzare la Dashboard è necessario:

  1. Inserire come primo nodo "mqtt out" con le informazioni relative al topic da leggere (come da immagine);
  2. All'uscita del nodo "mqtt out" collegare un nodo "Text" per stampare lo stato della luce e i blocchetti per la stampa del timestemp ("trigger", "Data/Time Format" e " Text");
  3. Per la Dashboard vera e proprio andiamo a creare un nuovo "tab" e all'interno del Tab un gruppo per ogni casetta;
  4. Possiamo poi collegare il nodo text al singolo gruppo andando a selezionare il gruppo nelle proprietà del nodo Text;
  5. La sezione layout nel Tab ci permette di modificare la grafica della nostra Dashboard.


Let's Play!

Aspetto nei file allegati trovi anche il progetto della casa per la stampa in 3D

Disclaim

This tutorial was developed as part of the Internet of Tricks project, co-financed by the Erasmus + program of the European Union. Project n°: 2021-1-SE02-KA220-YOU-000028971


The content of this publication does not reflect the official opinion of the European Union. Responsibility for the information and views expressed therein lies entirely with

The authors.


For more details contact info@horizonlab.eu