Arduino

Arduino

Domotica con Blynk

In questo progetto utilizzo per la prima volta la piattaforma Blynk cioè un software che serve per interfacciare gli oggetti IoT con i dispositivi mobili.
Con Blynk si programma il proprio smartphone rendendolo un terminale adatto alla gestione del progetto da cui partono o a cui arrivano dati.
Esso si interfaccia con un gran numero di schede tra le quali la Wemos D1 R1 che è quella con cui eseguirò il progetto.
Non sto qui a spiegarvi come bisogna impostare Blynk poichè esistono in rete tanti tutorial, anche in italiano, che troattano il problema in modo molto esaustivo.
Quello che invece vi mostrerò è come sia facile programmare la scheda e lo smartphone per raggiungere lo scopo che mi sono prefissato.

Il progetto che ho realizzato consente a Blynk di comandare un servomotore simulando l'apertura e chiusura di un passo carraio, di accendere una luce in casa, simulata da un led, di rilevare la temperatura e l'umidità ambientali, di ricevere informazioni relative ad un allarme antintrusione, di accendere le luci notturne per mezzo di una fotoresistenza ed infine di rilevare la distanza di un intruso dal perimetro dell'abitazione.
Il progetto si articola in due fasi: quella della programmazione di Blynk e quella della programmazione della scheda Wemos D1 R1 per mezzo dell'IDE di Arduino.
Partendo da Blynk, si seleziona un nuovo progetto e gli si assegna un nome (nel mio caso Domotica); poi si procede con la realizzazione dell'interfaccia grafica rimanendo attenti ai crediti disponibili (max 2000).

Nel mio caso, ho impiegato due widget Gauge per la temperatura e l'umidità, due pulsanti, uno per comandare il servomotore ed uno per accendere la luce, sei led per segnalare se il carraio e su o giù, per segnalare se la luce è accesa o spenta, per segnalare se le luci notturne sono accese e se c'è stata una intrusione. Infine ho usato un widget Notifica che mi trasmette proprio una notifica quando lo stato dei sensore PIR (antintrusione)  HC-SR04 (distanza) è attivo.
Costruita l'interfaccia si passa al settaggio e all'impostazione dei pin effettivi e di quelli virtuali che saranno necessari.
Per la temperatura e l'umidità uso i pin virtuali V0 e V1, per il servomotore V3, per la luce V8, per i led, V2 e V4 (passo carraio), V6 e V9 (luce), V5 (intrusione), V10 (luci serali) e per la fotoresistenza il pin analogico A0.
Concluse queste operazioni, si apre l'IDE di Arduino per la scrittura del codice da caricare nella scheda.. Vi ricordo che, quando si crea un nuovo progetto su Blynk, i server inviano un token da inserire, insieme alla connessione e alla password, nello sketch.
Nel mio caso, ho modificato un vecchio progetto di prova ed ho mantenuto, così, lo stesso token.
Un'altra cosa che dovete fare è quella di scaricarvi la libreria Blynk che permette di gestire il progetto con il codice tipico di Arduino.

A tale proposito, si può risparmiare tempo andando nella sezione Esempi del menu File, da lì scegliere la voce Blynk e poi Boards WiFi per far comparire un elenco di schede a cui è associato un esempio di codice base.
La scheda Wemos D1 R1 non è mensionata, ma facendo parte della stessa famiglia di NodeMCU, faccio questa scelta e apro il codice corrispondente.
Eliminando tutte le righe commentate, ci si accorge che esso è breve e di una semplicità disarmante.
Su di esso ho costruito lo sketch, implementando le necessarie librerie e tutte le altre istruzioni del caso.
Conclusa la stesura del codice, lo si carica nella scheda e si avvia il progetto Blynk sullo smartphone per testare la comunicazione tra le due piattaforme.

Per la realizzazione del progetto mi sono servito di:
1) una scheda Wemos D1 R1;
2) un servomotore per simulare il passo carraio;
3) un sensore PIR per l'antintrusione;
4) un sensore HC-SR04 per il controllo della distanza;
5) una fotoresistenza per la simulazione del crepuscolare;
6) tre led, uno arancio e due bianchi, che rispettivamente, segnalano il movimento del servomotore e le luci (notturna ed interna)
7) un sensore DHT11 per la rilevazione della temperatura e dell'umidità.

Collegamenti:
a) servomotore
Due terminali all'alimentazione (+5V e GND) ed uno al pin D4;
b) sensore PIR
Due terminali all'alimentazione (+5V e GND) ed uno al pin D2;
c) sensore DHT11
 Due terminali all'alimentazione (+5V e GND) ed uno al pin D3;
d) sensore HC-SR04
 Due terminali all'alimentazione (+5V e GND) gli altri due ai pin D6 (trig) e D7 (echo);
e) fotoresistenza
Collegata al GND tramite una resistenza di 10 Kohm e con l'altro a +3.3V: a monte della resistenza si deriva un contatto che va connesso all'unico pin analogico A0;
f) LED
Collegati  alla scheda direttamente senza resistenza limitatrice vista la bassissima tensione ed il breve utilizzo. Il lato corto al GND mentre il lungo al pin D5 (arancio), D8 (luce) e D9 (luce notturna).

Il codice relativo al progetto è disponibile al seguente link: Blynk_Domotica.



Nessun commento:

Posta un commento