statistiche web gratis
-Programmare Sonoff basic con Firmware Tasmota usando Arduino UNO

Programmare Sonoff basic con Firmware Tasmota usando Arduino UNO

NOTE: Per la nuova versione dei Sonoff (Sonoff RF R2 POWER V1.0) seguire anche questa guida qui.

In questa guida andreamo a sostituire il firmware origianle del vostro Sonoff Basic con quello Tasmota su GitHub, utilizzando Arduino UNO come programmatore seriale.
Questo servirà per esempio per utilizzare il protollo MQTT per integrarlo in Home-assistant.

Ci serviranno:

Arduino UNO
Sonoff Basic
Saldatore
Fili colorati con pin maschio-maschio

per il software:

Python
ESPtool
Arduino IDE (se il pc non rileva arduino sulla USB)
Firmware Tasmota

per programmare il Sonoff dobbiamo saldare 4 fili come in foto che serviranno per il collegamento ad Arduino il PIO14 serve per provare poi lo switch.
di seuito i collegamenti:

 

 

 

Dobbiamo collegare il reset di Arduino a GND, questo per impedire che eventuali software su Arduino vengano eseguiti e vadano ad interferire sulla seriale.

Installiamo il Python 64bit scaricandolo da qui (32bit per vcchi sistemi):

https://www.python.org/downloads/release/python-371/

oppure i link diretti al file:
64bit
https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64.exe
32bit
https://www.python.org/ftp/python/3.7.1/python-3.7.1.exe

ricordiamoci di selezionare aggiungi Python to Path durante l’installazione.

Installiamo anche il supporto Python per la seriale:
aprite un prompt dei comandi (cmd) e lanciate questo comando

Scarichiamo ESPTool da github con la funzione Clona o Download Zip (Download Zip):
https://github.com/espressif/esptool/releases

Estraiamo il contenuto del pacchetto zip esptool preso da GitHub in C:\

Scarichiamo il firmware del Sonoff, ho preso quello completo (sonoff.bin) perchè alla release attuale quello sonoff-basic.bin mi rimaneva in acquisizione indirizzo ip il client al momento della prima connessione.

https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.3.0/sonoff.bin

copiamo il file sonoff.bin nella cartella di ESPTool.

Andiamo finalmente a caricare il firmware sul nostro Sonoff

per prima cosa colleghiamo arduino al pc e verifichiamo quale porta COM è stata assegnata (nel mio caso la COM2).
potete vederlo da Arduino IDE oppure da gestione periferiche.

Scollegare il pin dei +3,3V
Teniamo pigiato il tasto sul Sonoff tenendolo premuto e colleghiamo il pin dei +3,3V, dopo 2 secondi lasciate il tasto sul Sonoff ora si trova in modalità Flash pronto a ricevere il nuovo firmware.

NOTE: Non collegate mai il +3,3V ai +5V, causa danneggiamento del chip ESP8266.
E non collegate mai la tensione 220V quando è connesso ad Arduino UNO e PC, non ha un isolamento e potreste danneggiare tutto, anche il PC.

Da cmd, andiamo nella cartella dove si trova esptool e lanciamo:

fatto questo stacchiamo tutti i cavetti saldati e colleghiamo il sonoff alla tensione 220v.
Il Sonoff basic non avendo nessuna wifi configurata, partirà come accesspoint, collegatevi sopra e aprite da browser l’indirizzo
http://192.168.4.1
Configuriamo la rete wifi inserendo il nome della vosrta wifi e la password, il vostro sonoff restarterà e si collegherà alla rete wifi principale.

Il Sonoff adesso partirà in DHCP quindi avrà un ip assegnato dal vostro router, per trovarlo, andate nel vostro router e cercatelo tra gli indirizzi assegnati.

Se volete impostare un indirizzo IP statico, una volta riaperta l’interfaccia web del sonoff, andate nella console web e inserite il seguente comando e date invio:

Riavviate il sonoff cliccando su restart.
Il Sonoff ora risponderà all’indirizzo statico appena inserito nella console.

Se volete usare questo Sonoff come interruttore smart dentro una scatola con interruttore classico, andiamo a saldare due fili, uno su GND e uno su GPIO14 dove andrà poi collegato all’interruttore classico a parete.

Nel menu “Module parameters” configuriamo il GPIO14 come “Switch1” e salviamo.

Ora potete usare il vostro sonoff secondo le vostre necessità.

NOTA: se volete utilizzare il vostro Sonoff con dei deviatori, seguite anche questa guida molto importante per eliminare eventuali disturbi sul GPIO14 per evitare il fastidioso problema del lampeggio della luce.

About the Author:

15 Comments

  1. Paolo 4 Maggio 2019 at 18:11 - Reply

    ciao, ho seguito la tua guida passo passo, quando carico il firmware sul sonoff mi appare nel promt la seguente scritta:
    a fatal error occurred: Failed to connect to Espressif device: timed out waiting for packet header

    cosa sbaglio?

    • peppebytes 4 Maggio 2019 at 19:34 - Reply

      Sicuro di non avere invertito rx tx?

      • paolo 5 Maggio 2019 at 11:34 - Reply

        ciao, rifatto il tutto oggi, al momento è fermo alla riga
        esptool.py v2.6
        Serial port COM3
        connecting…..
        Detecting chip type… ESP8266
        Chio is ESP8285
        Features: Wifi, Embedded Flash
        mac: …….
        Uploading stub…..
        Running stub…

        ed è fermo li da un pochino

  2. peppebytes 5 Maggio 2019 at 18:45 - Reply

    Se hai messo bene i collegamenti
    Rx con rx
    Tx con tx
    Hanno le sigle scritte male.
    Riprova con l’accensione.
    Devi lasciare il bottone appena alimenti il sonoff.
    Fai questo appena fai invio da esp tool.

  3. paolo 30 Maggio 2019 at 17:20 - Reply

    Ciao. Alla fine sono riuscito a flashare i vari sonoff Basic. Volevo chiederti, dovrei caricare tasmota su un sonoff th 10. La procedura è la stessa?

  4. peppebytes 31 Maggio 2019 at 14:25 - Reply

    Il th10 non l’ho mai avuto sottomano, ma la procedura è la stessa visto che il chip interno è sempre lo stesso.

  5. paolo 31 Maggio 2019 at 20:09 - Reply

    Fatto, procedura la stessa. Bisogna solo impostare th nelle opzioni e il sensore. Grazie

    • Daniel 4 Giugno 2019 at 23:29 - Reply

      Ciao cosa intendi impostare th nelle opzioni..cos’è da cambiare nella guida?? Grazie

      • peppebytes 5 Giugno 2019 at 14:03 - Reply

        Il metodo per caricare il firmware sul sonoff TH è identico, per impostare TH si intende selezionare sonoff TH anziche Sonoff Basic nel pannello di configurazione “Module Parameter” ma questa è una configurazione da fare una volta aperta l’interfaccia web del sonoff.

        Sonoff TH

  6. Rudy 18 Giugno 2019 at 23:16 - Reply

    ciao, ho provato la tua guida ma mi esce scritta questa cosa:

    c:\>esptool-2.5.1\esptool.py –port com4 write_flash 0x00000 sonoff.bin
    usage: esptool write_flash [-h] [–flash_freq {keep,40m,26m,20m,80m}]
    [–flash_mode {keep,qio,qout,dio,dout}]
    [–flash_size FLASH_SIZE]
    [–spi-connection SPI_CONNECTION] [–no-progress]
    [–verify] [–compress | –no-compress]
    [ …]
    esptool write_flash: error: argument : [Errno 2] No such file or directory: ‘sonoff.bin’

    cosa c’è che non va?
    premetto che io uso un arduino mega 2560, devo cambiare in arduino ide la scheda e mettere “generic esp8266 module”?
    c’è un passaggio che non capisco, creare la cartella sonoff in C e poi mettere il file sonoff.bin in esptool. io ho estratto la cartella esptool-2.5.1.zip in C e vi ho messo sonoff.bin va bene?

    • peppebytes 19 Giugno 2019 at 8:53 - Reply

      Se hai inserito il file sonoff.bin nella stessa folder di ESPtool e da li dentro lanci il comando come hai fatto dovrebbe trovarlo, l’errore che ti da è che non trova il file sonoff.bin, prova magari a dargli il path completo con gli apicetti esempio:

      c:\>esptool-2.5.1\esptool.py –port com4 write_flash 0x00000 “C:\path_completo\sonoff.bin”

      se il file sonoff.bin è nella posizione da dove lanci il comando esptool.py non è necessario.

      per quanto riguarda Arduino Mega o UNO non dovrbbe cambiare nulla, semplicemente perchè in questa procedura viene utilizzato con un adattatore da usb a seriale.

      Grazie della segnalazione, ho corretto l’laricolo togliendo di creare la cartella sonoff in C:

      • Rudy 30 Giugno 2019 at 15:57 - Reply

        CIAO peppebytes, niente da fare ma risolto con atom e arduino da un altra guida. grazie lo stesso della disponibilità ciao.

        • peppebytes 30 Giugno 2019 at 18:49 - Reply

          Sì anche ATOM è ottimo, lo uso anche io, ti permette di compilare al momento e se serve puoi apportare modifiche al codice.

  7. davide 21 Giugno 2019 at 23:49 - Reply

    ciao a me da questo errore
    C:\Users\Filionix>C:\esptool-2.6\esptool.py –port COM1 write_flash 0x00000 “C:\esptool-2.6\sonoff.bin”
    esptool.py v2.6
    Serial port COM1
    Connecting…….._____….._____….._____….._____….._____….._____….._____

    A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header

  8. davide 21 Giugno 2019 at 23:50 - Reply

    ciao a me da questo errore
    C:\Users\Filionix>C:\esptool-2.6\esptool.py –port COM1 write_flash 0x00000 “C:\esptool-2.6\sonoff.bin”
    esptool.py v2.6
    Serial port COM1
    Connecting…….._____….._____….._____….._____….._____….._____….._____

    A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header

Leave A Comment