Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 


Progetti hardware

Basetta sperimentale per ESP8266

Assemblare la basetta sperimentale

Download dei dati necessari per la realizzazione della basetta sperimentale



Informazioni di base:

- Come installare la IDE di Arduino
- Configurazione e piedinatura 
- Caricamento dei programmi
- Come caricare le librerie necessarie



Programmi vari

DHT11/DHT21/DHT22 e RELE'
- Temp. e umidità con un DHT11/21/22
- Temp. e umidità con due DHT11/21/22
- Controllo du un relè con DHT11/21/22


ESP8266 e Bluetooth
- controllo di più led e relè via Bluetooth
- controllo di un led a tre colori
- controllo vocale di più led/relè

Web server e ora esatta
- creare  più web server (3)
- ricevere data e ora esatta (2)

Controllare dei relè via WiFi
- controllo di 1/2/4/5 relè via WiFi (3)

Stazione meteorologica/qualità dell'aria
- staz. meteorologica con BMP280 (3)
- staz. meteorologica con BME280
- staz. meteorol. con OpenWeatherMap
- qualità dell'aria con BME680
- qualità dell'aria con SGP30


Programmi con Telegram

Verificare l'apertura di uno o più porte

Controllo di uno o più relè



Programmi con ThingSpeak

Una stazione meteorologica con BMP680

Monitorare la qualità dell'aria con GSP30



Programmi con il DB Firebase

Gestire alcuni led/relè

Gestire led/relè con Mit App Inventor 2



Programmi con MQTT (Mosquitto)

Inviare /ricevere dati per mezzo di MQTT



Programmi con scheda Bluetooth

Controllo led/relè via terminale

Controllo led/relè con switch

Controllo cromatico di un led

Controllo a mezzo vocale



Programmi con LittleFS





Link utili

Visualizzazione di link utili per ESPxxx








 















ESP8266 - ESP12E
Programmi con Telegram


telegram


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à.



Ecco i programmi disponibili:








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.


sensmagn
Un sensore magnetico



Gli schemi elettrici



1 tel


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.



bt1
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.


ky004
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.


bot1
L'icona di "BotFather"

bot2
Le informazioni di base


bot3
IL nome del nostro bot

bot4
Ecco il nome dell'utente per questo bot.


bot5



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.


bot6
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.


bot8a
Digitare "myidbot"


bot8
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




bot10

I dati da inserire nel programma.



bot11
La porta di connessione del sensore


bot12
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:

bot13

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!


bot14
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



2 tel


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.



2 sc tel
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.


bot



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.


bot10



Il test del programma con due sensori




bpt15


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.



tele3

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.



3rele
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.




bot10

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".



 porte


rele_conf

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è                        

telegram



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






Per contatti: info@ethicaldiy.org