in Sonoff

Come riprogrammare il Sonoff

Se volete riprogrammare, quindi scrivere un nuovo firmware nel vostro Sonoff (se non ce l’avete ancora, lo trovate su Amazon), dovrete prima di tutto acquistare un modulo FTDI (serve per dargli corrente giusta e far passare i dati per riprogrammarlo) e 4 cavetti, se possibile di colore diverso.

Il tutto vi servirà per avere un’interfaccia personalizzata e poter utilizzare il Sonoff come ho utilizzato in questo video con HomeKit. Ovviamente vi servirà il supporto di un browser o di un Raspberry Pi (anche questo, se dovete acquistarlo su Amazon usate questo link) per fare automazioni e poterci accedere anche all’esterno della vostra abitazione.

Sappiate che una volta caricato il nuovo firmware non potrete più reinstallare quello base e ne accedere dall’app eWeLink. Dovrete anche fare attenzione a dargli corrente giusta (vedremo dopo come fare dall’Arduino IDE) altrimenti farete danni irreparabili.
Anche i collegamenti dovrete farli bene altrimenti rischiate di mandare corrente dove in realtà l’ESP866 (sì, il Sonoff ha al suo interno un ESP8266) si aspettava dei dati o viceversa.

Ecco lo schema di collegamento:

Come collegare Sonoff all’FTDI

So che può sembrar confusionario ma prendete il riferimento della terra (GND) e dovrebbe essere semplice. Non state a saldare nulla perché vi servirà giusto 30 secondi, il tempo di caricare tutto.

Ora aspettate a collegarlo al computer (l’FTDI avrà un cavetto USB mini), installate prima Arduino IDE da qua https://www.arduino.cc/en/main/software.
Aggiungete una nuova Board Manager andando su File > Preferences (o ovunque esse siano in base al vostro sistema operativo) e aggiungete:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Come nell’immagine qua sotto:

Confermate e andate su Tools > Board > Board Manager e aggiungete ESP8266:

Cliccate installa e poi selezionate Tools > Board > Generic ESP8266 Module. Collegate l’FTDI con il Sonoff attaccato correttamente e selezionate Tools > Port > COM14 impostando i parametri come nell’immagine qua sotto:

Ora incollate nello script (modificate il nome del Wi-Fi e la password, sappiate che non sarà possibile cambiarlo se non riscrivendo di nuovo il firmware):

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

MDNSResponder mdns;

// Replace with your network credentials
const char* ssid = "yourwifi";
const char* password = "yourpassword";

ESP8266WebServer server(80);

String webPage = "";

int gpio13Led = 13;
int gpio12Relay = 12;

void setup(void){
 webPage += "<h1>SONOFF Web Server</h1><p><a href=\"on\"><button>ON</button></a>&nbsp;<a href=\"off\"><button>OFF</button></a></p>"; 
 // preparing GPIOs
 pinMode(gpio13Led, OUTPUT);
 digitalWrite(gpio13Led, HIGH);
 
 pinMode(gpio12Relay, OUTPUT);
 digitalWrite(gpio12Relay, HIGH);
 
 Serial.begin(115200); 
 delay(5000);
 WiFi.begin(ssid, password);
 Serial.println("");

// Wait for connection
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.print("Connected to ");
 Serial.println(ssid);
 Serial.print("IP address: ");
 Serial.println(WiFi.localIP());
 
 if (mdns.begin("esp8266", WiFi.localIP())) {
 Serial.println("MDNS responder started");
 }
 
 server.on("/", [](){
 server.send(200, "text/html", webPage);
 });
 server.on("/on", [](){
 server.send(200, "text/html", webPage);
 digitalWrite(gpio13Led, LOW);
 digitalWrite(gpio12Relay, HIGH);
 delay(1000);
 });
 server.on("/off", [](){
 server.send(200, "text/html", webPage);
 digitalWrite(gpio13Led, HIGH);
 digitalWrite(gpio12Relay, LOW);
 delay(1000); 
 });
 server.begin();
 Serial.println("HTTP server started");
}
 
void loop(void){
 server.handleClient();
}

Se tutto ok, cliccate upload e aspettate che il codice venga mandato dal vostro computer al Sonoff tramite l’FTDI (l’ho scritto per intero per farvi capire cosa fisicamente sta succedendo) e il gioco è fatto!

La schermata di conferma dovrebbe essere qualcosa del genere:

Conferma avvenuto caricamento del firmware su Sonoff

Ora se tutto ok, staccate tutto e ricollegate il Sonoff alla corrente. Cercate l’indirizzo IP e andate dal vostro browser, dovreste vedere una schermata come questa:

Schermata d’esempio da browser con switch per Sonoff

Potrete anche andare direttamente all’indirizzo http://ipsonoff/off oppure /on per attivare o disattivare velocemente il collegamento della corrente. Utile per fare delle automazioni con Domoticz o con HomeKit.