in Sonoff

Come riprogrammare il Sonoff

Se volete riprogrammare, quindi scrivere un nuovo firmware nel vostro Sonoff, 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 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.

Scrivi un commento

Commento