In questa pagina si trovano due programmi piuttosto interessanti: il primo permette il controllo dello stato di una porta (o di una finestra) su Telegram; il secondo che ne è un'evoluzione, e permette di controllare contemporaneamente e in modo indipendente lo stato di due accessi. Il progetto originale usa uno (o due) sensori magnetici, ma possono essere sostituiti da qualsiasi switch digitale,come interruttori, sensori magnetici, di prossimità, a bolla di mercurio, sensori di movimento, temperatura, tilt, radar o laser... ovvero tutti i sensori con un livello di soglia digitale. Con ESP8266, avendo più porte a disposizione, si possono tenere sotto controllo fino a sette porte/finestre, trasformando questo progetto in un piccolo antifurto, ma anche per segnalare malfunzionamenti, o allarmi di vario tipo. Dipende semplicemente dalla nostra fantasia. Perché usare Telegram? Telegram permette, oltre agli scambi di messaggi tra persone, anche di inviare delle segnalazioni automatiche a un account stabilito. E noi useremo proprio questa opportunità. |
|
Primo
progetto: verifica l'apertura di una porta (o finestra) |
Il nostro primo progetto invierà un messaggio al nostro account quando si verificherà un evento, per esempio quando si apre o si chiude una porta. Questa semplice segnalazione può diventare la base di un piccolo allarme autocostruito. Poichè nel progetto originale si legge il cambio di stato di un sensore magnetico, che a tutti gli effetti si comporta come un semplice interruttore, al suo posto potremo sostituire qualsiasi sensore che invii un segnale digitale pari a "1" o "0". Il nostro programma lo intercetterà e ci invierà un messaggio di segnalazione. Il secondo progetto è molto simile al precedente, l'unica differenza è che gestisce due sensori, invece che uno, aumentando le possibilità di controllo. |
Un sensore magnetico |
Gli
schemi elettrici |
Questo è lo schema elettrico per il collegamento diretto tra ESP8266 e il sensore magnetico, che si comporta come un interruttore, ed è piuttosto semplice. In alcuni progetti i due cavi di uscita sono collegati, in modo un po' semplicistico, il primo allla porta digitale dell'ESP8266 e il secondo al positivo (o al negativo, a seconda dello sketch). Ho preferito un collegamento "canonico", inserendo una resistenza che lo rende adatto a tutti i casi. |
La
basetta sperimentale con il collegamento al sensore.
Affinchè rientrasse nella pagina, è in formato leggermente ridotto rispetto all'originale. Come si vede, su DG2 è inserito uno switch KY-004, che può essere in fase di test sia
alternativo che complementare al sensore magnetico.
La
porta usata è GPIO2
|
Come si
vede dagli schemi, una resistenza da 10 KOhm (10.000 Ohm)
è stata inserita tra il cavo di segnale (cavo verde)
e il negativo ("-" o Gnd). Per un test in locale, si può utlizzare qualsiasi sensore che si comporti come uno switch, con funzione sia alternativa che complementare al sensore magnetico. A titolo di esempio, è possibile usare il pulsante KY-004, Tap module KY-031, lo shock sensor KY-002, il photo interrupt KY-010, l'interruttore a mercurio KY-017, il sensore a effetto Hall (magnetico) KY-035, un sensore magnetico KY-021, ecc. Ognuno di questi sensori può essere inserito sullo zoccolo "DG2", che si collega alla porta GPIO2 di ESP8266. Fare attenzione a collegare correttamente i sensori allo zoccolo. |
Lo
switch KY-004
|
La configurazione di Telegram |
Naturalmente, prima di tutto, è necessario avere installato Telegram, operazione che diamo per scontata. Aprire Telegram e inserisci nello spazio di ricerca "BotFather". Si aprirà una finestra simile a questa: Nello spazio inferiore, quello dedicato ai messaggi, digitare: "/newbot". Verrà chiesto il nome. In questo test., l'ho chiamato "door_control" Ora dobbiamo inserire il nome per l'utente che utilizzerà questo bot. E' necessario che il nome sia formalmente esatto e libero. A volte sarà neceasario qualche tentativo. Ho usato "RicDoorbot". Abbiamo trovato un nome formalmente corretto e disponibile e il bot è stato creato. Salvare con cura il token API evidenziato nel riquadro rosso. Dovrà essere inserito nel programma per poter accedere al proprio bot. |
|
Come inviare un messaggio al proprio Bot |
Il prossimo passaggio è molto importante, non tralasciarlo! Altrimenti il progetto non funzionerà! E' necessario inviare un messaggio al tuo Bot dal tuo account Telegram, prima che esso possa inviare a te i messaggi automatici. Tornare alla schermata iniziale di telegram, e nel campo di ricerca, inserire il nome del proprio utente per il bot appena creato, dare invio e premere il tasto START. |
Inserire il nome del proprio utente per il bot |
Come ottenere il proprio "user ID" |
Per inviare del messaggi automatici al proprio account Telegram, è necessario conoscere il proprio "user ID". Nel proprio account Telegram, inserire "myidbot" nel campo di ricerca di Telegram. Selezionare l'icona corrispondente a "IDBot". Nella nuova finestra che si apre, digitare "/getid". Salvare il proprio userId, servirà nella compilazione del programma. |
Digitare "myidbot" Salvare il proprio "user ID" |
Il programma |
Come prima cosa, è necessario verificare se si sono installate tutte le librerie necessarie. Verificando o lanciando la compilazione del programma, verranno visualizzate quelle eventualmente mancanti. In questo caso, provare prima di tutto a scaricarle attraverso la Ide di Arduino. Nel caso non si trovassero tutte, scaricarle dalla finestra che appare sulla destra. Nel caso di dubbio, controllare la pagina relativa alla gestione delle librerie |
ESP8266WiFi.h UniversalTelegramBot.h ArduinoJson.h |
I dati da inserire nel programma. |
La porta di connessione del sensore ESP01 si è connesso alla rete |
Il test del programma su Telegram |
Dopo aver connesso il nostro a ESP8266 al sensore e all'alimentazione, nuovamente il modulo si collegherà alla rete WiFi e quindi anche a Internet. Se si apre la app di Telegram e si avvia premendo "Start" sul nome del bot (in questo caso) door_control, apparirà questo messaggio, indicando che si è stabilito il contatto: |
Si è stabilito il contatto con ESP8266 |
Ed ecco finalmente la segnalazione della porta aperta (riquadro rosso ) e della porta richiusa (riquadro verde). Viene indicata anche l'ora in cui l'evento si è manifestato. E questo in ogni parte del mondo, con un ritardo di pochi secondi, in modo del tutto gratuito! |
Ecco i segnali del cambio di stato del sensore. |
Clicca
qui per visualizzare il programma. Clicca qui per scaricare il programma in formato ".zip" |
|
Secondo progetto: verifica l'apertura di due porte (o finestre) |
Il secondo progetto è del tutto simmetrico al primo; semplicemente è stato aggiornato in modo di poter gestire due sensori invece che uno, dando la possibilità di espandere il controllo, per esempio gestendo una porta e una finestra, o due finestre, ecc. |
Lo schema elettrico |
Ecco lo schema elettrico generale per il collegamento di due sensori a un ESP8266. Il secondo sensore verrà collegato alla porta digitale GPIO0, utilizzando sempre una resistenza di pull up da 10 KOhm. |
La
basetta sperimentale con il collegamento ai sensori.
Affinchè rientrasse nella pagina, è in formato leggermente ridotto rispetto all'originale. Come si vede, sia su DG1 che DG2 su DG2 sono inseriti gli switch KY-004, che in fase di test possono essere sia
alternativi che complementari al sensore magnetico.
Le porte usate sono GPIO0 e GPIO2 |
La configurazione di Telegram |
La configurazione di Telegram è esattamente identica a quella con un solo sensore. E' consigliabile aprire un nuovo bot, in modo tale che i due progetti siano del tutto indipendenti. Se si crea un nuovo bot, è necessario salvare il token API, mandare un messaggio e recuperare lo "userID". Per tutte queste operazioni, vedere quanto illustrato diffusamente per il programma con un singolo sensore. |
Il programma con due sensori |
Anche per quel che riguarda il programma, è del tutto simile al precedente, naturalmente sono state aggiunte delle routine per gestire i due sensori magnetiche ed effettuato qualche piccola variazione. Sarà necessario inserire idati relativi alla rete e al nuovo bot. |
Il test del programma con due sensori |
Ed ecco il test del programma: come si vede al cambiamento dello stato della porta (door) e della finestra (window), il programma invia in pochi secondi un messaggio di aletr al nostro account di Telegram |
Clicca
qui per vedere il programma. Clicca qui per scaricare il programma in formato ".zip" Nota: seguendo le modifiche effettuate per passare dal programma che gestisce una porta a quello che ne gestisce due, è possibile modificare quest'ultimo, aggiungendo variabili, porte e linee di programma, fino a poter gestire teoricamente il controllo di sette accessi diversi, utilizzando le ulteriori porte libere, ovvero GPIO4, GPIO5, GPIO12, GPIO13 e GPIO14. |
Puoi
trovare il progetto originale a questo link (esterno al
sito di EthicalDiy), a cui ancora una volta va la mia gratitudine: https://randomnerdtutorials.com/esp8266-nodemcu-door-status-telegram/ |
|
Il terzo progetto: controllo di tre led (o
relè) con Telegram |
Nei
primi due progetti era la nostra scheda che inviava lo stato
dei sensori a Telegram, e quindi ottenevamo delle
informazioni, mentre questo progetto è l'esatto opposto: ora
siamo noi, che attraverso Telegram inviamo dei messaggi alla
nostra basetta sperimentale, accendendo (o spegnendo) uno o
più led, oppure attivando/disattivando delle periferiche
collegate ai relè: per esempio, una lampada, un
condizionatore, il riscaldamento, ecc. Il vantaggio di questi progetti è che potremo inviare o ottenere informazioni da qualsiasi parte del mondo, nel caso ci sia una connessione a Internet; lo svantaggio - spesso non grave - è che dovremo attendere qualche secondo affinchè le informazioni raggiungano il nostro smartphone, tablet, Pc, ecc. |
Lo
schema eletrico, rappresentato sia con i relè che con i led. Le porte utilizzate sono: GPIO0, GPIO2, GPIO5. I led si collegano all'alimentazione con una resistenza da 220/330 Ohm. I relè devono essere collegati a una fonte esterna di alimentazione a 5v. |
Il rendering della basetta sperimentale in formato reale. I tre relè sono collegati rispettivamente sugli zoccoli DG2, DG1, I2C3 (rotazione in senso orario). I tre led inseriti sulla basetta sono collegati alle stesse porte dei relè, dalla presa "AUX" Led1 si collega su GPIO5; Led2 su GPIO0 e Led3 su GPIO2. |
I
dati da inserire nel programma, rispettivamente: - il nome (SSID) della rete WiFi; - la password di rete; - token fornito da Telegram del tipo: "7155246681:PPLIlQklq91b9Qd32Rnk6PzP6CslUBXXYZR"; - il codice del proprio canale Telegram (10 caratteri numerici), del tipo "0123456789". |
|
Le
porte utilizzate dal programma: GPIO5, GPIO0, GPIO2. La variabile "ledxStatus" indica lo stato delle porte all'accensione; quando è = "1", la porta è un stato "HIGH"; quando è = "0", la porta è in stato "LOW". Come già analizzato in altri programmi che utilizzano sia led che relè, essi si comportano a volte in modo opposto. I led e i relè singoli KY-019 sono spenti quando ledxStatus = "0" e accesi quando ledxStatus = "1"; abitualmente i relè su schede (4, 6, 8 relè) si comportano in modo opposto. Nel caso durante l'uso del programma si riscontrino comportamenti diversi da ciò che ci si aspetta, bisogna entrare nelle varie routine e invertire "HIGH" con "LOW" e viceversa (vedi immagine a sinistra). Nel caso si usino dei relè al posto dei led, sostituire anche i messaggi, da "Led1 is ON" con "Relay1 is ON", ecc. |
Pe
quel che riguarda la creazione di un Bot su Telegram, vedi
il programma
con un singolo sensore Clicca qui per visualizzare il programma Clicca qui per scaricare il programma in formato ".zip" Attenzione: se all'uscita dei relè si collegano delle periferiche connesse alla rete elettrica a 230 V, rivolgersi sempre a un professionista qualificato. La tensione di rete può essere molto pericolosa, addirittura mortale. |
I
comandi disponibili:
- ledon- ledoff - led1on - led1off - led2on - led2off - led3on - led3off - help - status |
accende tutti i relè/led spegne tutti i relè/led accende il relè/led n.1 spegne il relè/led n.1 accende il relè/led n.2 spegne il relè/led n.2 accende il relè/led n.3 spegne il relè/led n.3 mostra la lista dei comandi mostra lo stato dei relè |
Per
maggiori informazioni sui programmi relativi a Telegram: - controllo aperture porte/finestre: https://randomnerdtutorials.com/esp8266-nodemcu-door-status-telegram/ - accensione led/relè: https://www.youtube.com/watch?v=-IC-Z78aTOs |
|