martedì 8 ottobre 2019

Come programmare ed utilizzare il Sonoff Basic R2 con il firmware Tasmota per Arduino


Wi-Fi smart switch Sonoff
Fig, 1  (qui viene rappresentato il Sonoff all'interno del suo contenitore)

Il seguente articolo descrive come programmare e poi utilizzare il Sonoff Basic R2 caricando nella flash dell'ESP8285 il firmware Tasmota con l'IDE Arduino. 



Prima di iniziare, è bene fare questa nota, ossia che IL CIRCUITO DEL SONOFF DEVE RIMANERE SCOLLEGATO DALLA RETE ELETTRICA FINO ALLA FINE DEL PROCEDIMENTO. LA RETE ELETTRICA NON E' NECESSARIA PER LA PROGRAMMAZIONE DEL SONOFF. SE IL SONOFF E' COLLEGATO ALLA RETE ELETTRICA, SCOLLEGATELO! 

SE NON SIETE ESPERTI NEL CAMPO, QUANDO SARA' NECESSARIO COLLEGARE E/O SCOLLEGARE IL SONOFF ALLA/DALLA RETE ELETTRICA, FATEVI AIUTARE DA UNA PERSONA COMPETENTE

La prima cosa da fare, quindi, è quella di programmare il Sonoff inserendoci il firmware Tasmota utilizzando l'IDE Arduino.
Il primo passo, consiste nel preparare l’hardware, quindi apriamo il Sonoff, rappresentato in Fig. 1, ed estraiamo il circuito dal contenitore, vedi figura 1.1.


Circuito interno del Sonoff
Fig. 1.1
Come si può osservare in figura 1.1, il circuito è predisposto per l’inserimento di una strip 1x4 poli, dove sono presenti i seguenti segnali:

  • negativo GND;
  • TX  (porta seriale TTL);
  • RX  (porta seriale TTL);
  • Positivo di alimentazione 3.3V; 

Il Pin 3.3V ed il Pin GND, sono necessari per l’alimentazione del circuito Sonoff durante la programmazione; i pin RX, TX e GND compongono la seriale TTL da utilizzare per la programmazione o altri utilizzi di comunicazione seriale del Sonoff dopo averlo programmato.
Per poter programmare il Sonoff, dobbiamo saldare una strip 1x4 poli maschio nella posizione indicata in figura 1.1, in modo da potervi collegare, successivamente, un circuito che servirà alla programmazione.
Ora bisogna preparare una strip 1x4 poli maschio, inserirla nell'apposita sede e saldarla.
A questo punto, dobbiamo procurarci un circuito seriale TTL, come ad esempio un FT232R Breakout, per programmare il Sonoff, vedi Fig.2


Scheda FT232R Breakout
Fig.2
Il circuito dedicato alla programmazione del Sonoff è equipaggiato con un chip FT232RL a 3.3V.
Il collegamento, deve essere effettuato come in figura; sono presenti sul mercato varie Breakout board, alcune di queste, hanno una tensione di lavoro fissa a 3.3V, altre, hanno la possibilità di selezionare 3.3V oppure 5V, come quella in figura. Per questo utilizzo, è necessario che la tensione sia impostata a 3.3V, quindi, se si utilizza l'adattatore in figura, bisogna impostare lo switch a 3.3V.
La tensione a 3.3V fornita dalla FT232R Breakout board, alimenterà il Sonoff durante la fase di programmazione. 

Recuperato il circuito per programmare, possiamo saldare, nello spazio predisposto, una strip 1x4 poli maschio in modo da poter connettere questa scheda al Sonoff per programmarlo.

NB. DURANTE LA FASE DI PROGRAMMAZIONE DEL SONOFF L’ALIMENTAZIONE DALLA RETE ELETTRICA  NON E’ NECESSARIA, IL CIRCUITO DEVE RIMANERE SCOLLEGATO DALLA RETE ELETTRICA.


Scheda FT232R Breakout completa di Strip e cavetti
Fig. 2.1
Adesso, dobbiamo connettere l’FT232R  Breakout board, al Sonoff per programmarlo; per fare questa operazione basta collegare i cavetti come elencato di seguito e riportato in figura 2.2. Fare riferimento alla Fig 1.1 per identificare i Pin del Sonoff.

Sonoff                    FT232R Breakout board
GND     -------------  GND
TX        -------------  RX
RX        -------------  TX
3V3      -------------  3V3


Collegamento tra la Scheda Sonoff e la Scheda FT232R Breakout
Fig. 2.2
A questo punto, i due circuiti sono connessi ed il Sonoff è pronto per essere programmato con il Firmware Tasmota.
Adesso iniziamo a predisporre l’IDE di Arduino, in modo che il Sonoff possa essere programmato.
Quindi apriamo il sito della Tasmota su Github e preleviamo la stringa per integrare il chip ESP8266 ed il chip ESP8285 nell’IDE di Arduino.
Propongo di utilizzare l’Arduino IDE Maggiore o uguale alla Versione 1.8.9, personalmente, utilizzo l’ultima versione di Arduino, la 1.8.9.
Apriamo un browser, ad esempio Chrome ed inseriamo il seguente link sulla barra degli indirizzi https://github.com/esp8266/Arduino
una volta aperta la pagina web scorriamo fino alla sezione  
Installing with Boards Manager
e copiamo il “Boards manager link” seguente: https://arduino.esp8266.com/stable/package_esp8266com_index.json
adesso apriamo l’IDE di Arduino, selezionando dal Menu principale la voce File e poi dal menu a tendina la voce impostazioni. A questo punto, si aprirà una finestra per inserire il Boards manager link copiato dal web come in Fig. 3.


Url aggiuntive per il Gestore Schede
Fig. 3
Questo link, va copiato nella text box denominata “Url aggiuntive per il Gestore Schede”, dopo averlo copiato premere il Pulsante OK della dialog in basso a destra.
Adesso sempre dal menu principale, apriamo “Strumenti->Scheda->Gestore Schede” o in inglese “Tools->Boards->Boards Manager”, scrolliamo verso il basso e selezioniamo “esp8266 by ESP8266 Community”, e clicchiamo sul pulsante a lato “Installa”. 


Gestore Schede inizio dell'installazione ESP8266 Community
Fig 3.1
Terminata l’installazione, premiamo il pulsante a destra in basso “Chiudi”.


Gestore Schede fine dell'installazione ESP8266 Community
Fig. 3.2
A questo punto, dobbiamo scaricare il Firmware Tasmota dal seguente link:
https://github.com/arendst/Sonoff-Tasmota
cercare il paragrafo  “Quick Install” e selezionare il link per il download del Firmware Tasmota https://github.com/arendst/Sonoff-Tasmota/releases
selezioniamo la versione “Sonoff-Tasmota v6.4.1” o superiore, poi andiamo in fondo alla pagina, scarichiamo i sorgenti in un path conosciuto, che ci servirà poi aprirlo dall’IDE di Arduino per modificarne la configurazione, compilarlo e caricarlo sul Sonoff.
Successivamente è possibile eseguire l'upgrade del firmware, direttamente dalla pagina web del Sonoff, utilizzando il pulsante “Firmware Upgrade” dal menu Tasmota.
La pagina Wiki Sonoff-Tasmota, dedicata ad Arduino, è raggiungibile al seguente indirizzo: https://github.com/arendst/Sonoff-Tasmota/wiki/Arduino-IDE.

A questo punto scompattiamo il file zip scaricato, apriamo l’IDE di Arduino e dal menu file Apri, ricerchiamo il path del Sonoff-Tasmota-6.4.1 oppure Sonoff-Tasmota-6.6.0, entriamo in questo percorso e poi nella sub-directory Sonoff, selezioniamo il file sonoff.ino e premiamo sul pulsante Apri.

Ci ritroviamo tutto il progetto Sonoff-Tasmota caricato nell’IDE di Arduino.
La prossima operazione consiste nel configurare i parametri wifi che il Sonoff dovrà utilizzare per accedere alla nostra rete di casa o dell’ufficio.
Dalla Tab dell’IDE di Arduino selezioniamo il file “my_user_config.h” scrolliamo fino alla sezione “Wifi”, vedi Fig. 4


Configurazione rete DHCP e parametri di Accesso alla rete Wi-Fi
Fig. 4
In figura 4 è rappresentata la configurazione DHCP che consiste nel farsi assegnare un IP Address dal proprio Access Point Wifi. I campi STA_SSID e STA_PASS1 vanno riempiti inserendo rispettivamente l’SSID e la password del proprio Access Point Wifi.


Configurazione rete IP Address Statico e parametri di Accesso alla rete Wi-Fi
Fig. 4.1
In figura 4.1, è rappresentata la configurazione con l'impostazione di un IP Address Statico personalizzato; il GATEWAY del proprio ROUTER ed il DNS desiderato, nell'esempio il DNS è quello di Google. I campi STA_SSID e STA_PASS1 vanno riempiti inserendo rispettivamente l’SSID e la password del proprio Access Point Wifi.

E’ arrivato il momento di collegare l’FT232 Breakout board con un cavetto USB alla porta del PC nel seguente modo: manteniamo premuto il pulsante del Sonoff, inseriamo il cavetto USB nella porta del PC, rilasciamo il pulsante dopo circa 3 secondi dall'accensione dello stesso Sonoff (il Pulsante è quello indicato in Fig. 1.1).
Per programmare il Sonoff, dobbiamo selezionare la porta dell’FT232R Breakout Board, dal menu dell’IDE Arduino selezioniamo “Strumenti” e poi ”Porta”, nel mio caso nel menu Porta trovo “COM3” e seleziono questa voce.


Selezione Porta dell'FT232 Breakout utilizzata per programmare il Sonoff
Fig. 4.2
Adesso selezioniamo la voce "Scheda:" e dal menu a tendina che si è aperto, selezioniamo "chip Generic ESP8285 Module" vedi Fig 4.2.1


Selezione della scheda ESP8285 da programmare
Fig 4.2.1
Impostiamo tutti i parametri di programmazione del chip ESP8285 dall'IDE di Arduino, e, per far questo, dobbiamo selezionare una ad una le voci interessate dalla modifica e cambiarle. 

Fig. 4.3
L'unica voce da cambiare è “lwIP Variant: v2 Lower Memory” in  “lwIP Variant: v2 Higher Bandwidth”. Vedi Fig. 4.4.

Variazione dei Parametri di Programmazione ESP8285
Fig. 4.4
Prima di compilare l’applicazione e fare l’upload, dobbiamo procurarci tutte le librerie necessarie a questo progetto e caricarle nell'IDE in gestione librerie, in modo che possano essere utilizzate dall'ambiente di compilazione.
La lista di librerie da aggiungere per questo progetto, sono presenti nella directory Tasmota che abbiamo scaricato e scompattato.
...\SONOFF\TASMOTA\Sonoff-Tasmota-6.4.1\lib
All'interno di questo path, sono presenti tutte le librerie necessarie a questo progetto. 

Ci sono vari modi per compilarle e linkarle al proprio progetto, personalmente, ne ho provati due, poi ne ho scelto uno perché mi dava la possibilità di utilizzare queste librerie in altri progetti, avendole copiate all'interno del path relativo del compilatore Arduino seguente: “arduino-1.8.9\libraries”. Prima di copiare le librerie del Tasmota all'interno della cartella libraries di Arduino, ho fatto il backup della directory “libraries” facendone un file .zip in modo tale da poter tornare indietro se in seguito vorrò fare diversamente.

L’altra modalità è descritta all'interno del file ReadMe.txt, contenuto dentro al Path delle Librerie Tasmota ...SONOFF\TASMOTA\Sonoff-Tasmota-6.4.1\lib
Il vostro Path, chiaramente, è quello dove avete scompattato il file .zip del Firmware Tasmota che varia con la versione scaricata: ad esempio, avendo utilizzato sia la versione Tasmota 6.4.1 che la 6.6.0, il mio path relativo è:
Sonoff-Tasmota-6.4.1\lib oppure Sonoff-Tasmota-6.6.0\lib.

Adesso non ci resta che compilare e fare l’upload del Firmware nella flash del Sonoff premendo il tasto Compile and Upload.

Terminata la Programmazione, scollegare il cavo USB e successivamente scollegare i file che connettono l’FT232R al Sonoff.
A questo punto rimettiamo il Sonoff nel proprio contenitore, lo chiudiamo quindi con il contenitore completamente chiuso, colleghiamo alla rete elettrica il Sonoff dal lato etichettato “N INPUT L”.

NB. NON COLLEGARE IL SONOFF ALLA RETE ELETTRICA QUANDO IL CIRCUITO NON E’ ALL’INTERNO DEL SUO CONTENITORE ISOLATO

L’eventuale carico (per il carico rispettare le specifiche della casa del Sonoff), costituito da ciò che vorremo andare a comandare (per es. lampade), si può collegare dall'altro lato del Sonoff, etichettato “N Output L”.
Adesso apriamo un Browser e richiamiamo la pagina web principale del Sonoff digitando, nel mio caso: http://192.168.1.15 (qui va messo l’indirizzo IP Statico che avete impostato in fase di programmazione del Sonoff) poi premiamo invio.

Dall'interfaccia della pagina web del Sonoff, è possibile effettuare moltissime impostazioni, ma già da subito possiamo accendere e spegnere il relè che è a bordo del Sonoff, quindi possiamo ad esempio comandare delle luci di casa.

Dopo aver compilato e caricato il firmware Tasmota, se al Sonoff era stato configurato con un IP Address in precedenza, bisogna accedere con l'IP Address precedente ed effettuare il reset della configurazione dalla pagina web principale. Questa operazione è necessaria affinché il Sonoff memorizzi nella propria flash il nuovo IP Address Assegnato.