Un SONOFF tutto Italiano ;-)
Indice
Procedimento per la creazione di uno switch domotico DIY utilizzando l’economicissimo microcontrollore ESP01 su cui viene caricato SmartHome come firmware.
SmartHome è un firmware per microcontrollori ESP8266 basato su MQTT, che permette la creazione di moduli domotici a basso costo.
E’ un progetto Italiano realizzato da Andrea Roncoroni.
Componenti utilizzati per la realizzazione del progetto:
- ESP01 da 1 Mb
- Alimentatore 220Volt – 5V (riciclando un alimentatore per telefoni cellulari)
- StepDown per ridurre la tensione da 5v a 3,3V per alimentare ESP01
- Relay per Arduino 1ch 5v – 220 V
- Scatola per interruttore da esterni
- Cavetti Dupont
1. Collegamento con convertitore seriale e programmazione.
Procediamo al download del firmware SmartHome e dopo aver scompattato la cartella selezioniamo la versione del file .bin specifica per ESP01.
Con l’ausilio convertitore seriale carichiamo il firmware su ESP01. (volendo si può acquistare un convertitore specifico per programmare ESP01).
Ecco una guida da sito Filo Connesso si usa il convertitore .
Colleghiamo il Convertitore al ESP01 seguendo il seguente schema :
Convertitore | ESP01 |
---|---|
3.3V | VCC |
GND | GND |
3,3V | CH_PD |
RX | TX |
TX | RX |
GND | GPIO 0 |
Importante per la programmazione della board ESP01 che i pin
CH_PD sia collegato a 3,3v
GPIO 0 sia collegato a GND
Per caricare il firmware abbiamo usato il tool FlashESP8266 prelevabile da qui.
Scompattare i file nella cartella dove sono presenti i file .bin del firmware.
Avviare il file FlashESP8266.exe
- Selezionare la porta COM dalla tendina “COM-Port”
- (Opzionale ma consigliato) Cancellare la memoria del dispositivo: Selezionare dalla tendina “Firmware” il file “blank_XMB.bin” specifico del ESP01
- Premere sul tasto “Flash” ed attendere la fine del processo.
- Selezionare dalla tendina “Firmware” il file “SmartHome_v60xxxxXX.ino.1MB.bin”
- Premere sul tasto “Flash” ed attendere la fine del processo
Non avendo un circuito di reset , per riavviare ESP01 basterà togliere l’alimentazione
Dopo aver caricato con successo il firmware e resettato il dispositivo, al primo avvio SmarHome partirà in modalità “configAP”.
In questa modalità il dispositivo creerà una propria rete Wi-Fi nominata “SmartHome-XXXXXXXXXXXX” (dove “XXXXXXXXXXXX” è il MacAddress del dispositivo); colleghiamoci a questa rete e per configurare il dispositivo appena creato basterà aprire su un browser la pagina “192.168.4.1”
Inseriamo i dati della nostra rete, possiamo cambiare host name che inizialmente avrà come nome il mac address .
Tralasciamo per il momento la sezione MQTT e procediamo alla configurazione hardware, come mostrato di seguito :
GPIO 0 permette di poter mettere in configurazione AP il dispositivo.
GPIO 1 su alcuni modelli di ESP01 corrisponde al pin del led Built-in.
E’ possibile abilitare la resistenza di pull up sulla board evitando di mettere una resistenza fisica di pullup.
Se non si usa la seriale si possono sfruttare i pin GPIO 1 e 2 .
L’opzione Telnet è molto comoda, in quanto permette di poter accedere all’ESP da un dispositivo che si trova nella stessa rete
per verificarne lo stato.
Ora passiamo a definire il Nodo Interruttore che è proprio quello che definisce il nostro switch
Definiremo quindi il numero degli interruttore (nel nostro caso 1) e i GPIO
GPIO 1 è il led di buil-in che indicherà lo stato del dispositivo
GPIO 2 è per il relay
GPIO 3 per interruttore (monostabile)
GPIO 0 serve per mettere in “AP” la board
Nel campo Server inseriremo il broker MQTT , user e password per utente MQTT
Il topic indicherà il messaggio con il quale il client (lo switch DIY in questo caso) vuole comunicare pubblicando un messaggio su un certo argomento (topic) sul broker.
Per usare MQTT ci sono diversi software e possibili soluzioni :
- Installare Mosquitto (open source) come broker di messaggi su una board Raspberry Pi
- Utilizzare un server gestito su cloud comeCloudMQTT
E’ consigliabile installare Mosquitto su un Raspberry PI , in modo che la gestione del dispositivo rimanga sul nostro server casalingo, senza usare cloud o servizi esterni.
Qui trovi approfondimenti su MQTT
Sulla wiki di SmartHome è definito in maniera precisa ogni singolo elemento per la configurazione. https://github.com/roncoa/SmartHome/wiki
2. Assemblaggio dispositivo DIY
Procediamo con con l’assemblare il dispositivo collegando :
alimentatore , stepdown, ESP01, relay,
3. Test del progetto
Possiamo accendere/spegnere lo switch domotico da interruttore fisico
Dal browser web collegandoci all’indirizzo Ip del dispositivo che abbiamo assegnato
La stessa cosa si potrà fare tramite l’App SmartHome per cellulari Android, scaricabile dallo store Google Play (gratuito) :
E’ molto facile integrare il dispositivo nell’HUB Personale Home Assistant , grazie all’autoriconoscimento dell’MQTT, potendolo controllare e automatizzare tramite l’interfaccia.
Il nostro Switch DIY perfettamente integrato in Home Assistant :
E’ possibile comandarlo anche con l’assistente vocale Google Assistant grazie ad integrazione IFTTT
Nella sezione doc di SmatHome è presente un tutorial su come effettuare questa integrazione.
Switch DIY integrato nel mio impianto elettrico mostrato in foto :
Se qualcosa non ti è chiaro, come sempre, usa i commenti! ❤️️
Stay Tuned 🙂
Salve non ho capito come si deve configurare MQTT, ci vuole per forza un Raspberry PI?
E’ possibile usare anche server MQTT su cloud , anche se è’ consigliabile installare il broker MQTT su un server casalingo , in modo che la gestione non sia soggetto a servizi esterni.
Salve bella spiegazione, ma manca una cosa fondamentale la configurazione del smartHome sul telefono, non riesco a farlo funzionare, qualcuno mi delucida per favore?
Ho collegato il server mqtt risulta online ma non compaiono i nodi.
Ok ho risolto non mi ero accorto che dovevo scorrere per vedere i nodi, volevo un’altra info, come faccio a collegarmi da remoto con app SmartHome?
Ciao complimenti per la guida come avevo ribadito tanto tempo fà, ho provato a caricarlo su ESP 8266 – esp 01 ma a fine flash non viene visualizzato nelle rete wireless per configurarlo come mai? mi puoi aiutare?
Interessante perchè spieghi un po di progettazione e programmazione, invece parlando a livello monetario conviene comprarlo già fatto.