Este manual no pretende ser nuevo. Lo anterior es bastante google (aunque en inglés), pero durante mucho tiempo estuve buscando por dónde comenzar y decidí ayudar a aquellos que se embarcan en el camino de la comunicación con Sonoff.
Hay muchas reseñas de Sonoff Basic en Internet, incluso en ruso, también hay artículos sobre cómo conectarlo a los sistemas locales de Smart Home después de actualizarlo.
Entonces, si no tiene USB-UART (aún no proviene de China), y la unidad Sonoff ya está allí y hay una Raspberry Pi, entonces este artículo es para usted.
Aquí, si ya ha intentado encontrar información sobre cómo flashear esta unidad china, entonces se dio cuenta de que no puede hacerlo sin un soldador. Lo primero es lo primero, debe soldar el peine para poder conectar nuestra unidad a la Raspberry Pi.

A continuación, conectamos Sonoff Basic (después de desconectarlo de 220V) a la Raspberry Pi, como se muestra en la imagen (tomé la imagen, así como la información
aquí , y doy aquí, en consecuencia, una breve traducción).

Lo primero que debe hacer es ver si tiene un puerto ttyS0.
ls /dev/
Si no está allí, pero hay ttyAMA0 (como en el artículo anterior), entonces esto no significa que todo esté bien con usted (le recuerdo que estamos hablando de Raspberry Pi 3 b +), porque ttyAMA0: responsable de bluetooth. Esto significa que debemos ir a la configuración:
sudo raspi-config
y en "Opciones de interfaz" active "Serie", luego reinicie.
A continuación, prepare la frambuesa:
sudo systemctl stop serial-getty@ttyS0.service sudo systemctl disable serial-getty@ttyS0.service
Y edite cmdline.txt, es decir, elimine "console = serial0,115200":
sudo cp /boot/cmdline.txt /boot/cmdline.bak sudo nano /boot/cmdline.txt
Además, se recomienda atribuir "enable_uart = 1" justo debajo (por supuesto, sin comillas), para ser honesto, no sé qué sucederá si esto no se hace.
A continuación, instale pip (si es necesario) y esptool.py:
sudo apt-get install python-pip sudo pip install esptool
Reiniciar Raspberry.
Descargue el firmware (utilicé ESPEasy build 120 como una versión estable, pero en general todo es cierto también para otro firmware):
wget http://www.letscontrolit.com/downloads/ESPEasy_R120.zip
Después de asegurarse de estar en la carpeta en la que desea descargar y luego descomprimir su firmware.
unzip ESPEasy_R120.zip
Y debería obtener una lista de archivos:
ESPEasy_R120_1024.bin ESPEasy_R120_512.bin esptool.exe Source ESPEasy_R120_4096.bin ESPEasy_R120.zip flash.cmd
Luego, desconecte Sonoff de 3.3V, mantenga presionado el botón en el tablero (solo hay un botón, no lo mezcle), conéctelo a 3.3V.
Hacemos una copia de seguridad del firmware (y de repente queremos volver más tarde, y el firmware es único para cada bloque).
sudo esptool.py --port /dev/ttyS0 read_flash 0x00000 0x100000 Sonoff_backup_01.bin
Desconecte Sonoff de 3.3V, mantenga presionado el botón en la placa, conéctelo a 3.3V. Borramos la memoria:
sudo esptool.py --port /dev/ttyAMA0 erase_flash
Desconecte Sonoff de 3.3V, mantenga presionado el botón en la placa, conéctelo a 3.3V. Firmware (llevamos el firmware a 1 MB, a menos que, por supuesto, vuelva a soldar la memoria de su bloque):
sudo esptool.py --port /dev/ttyS0 write_flash -fm dout 0x0 ESPEasy_R120_1024.bin
Bueno, en realidad, y eso es todo, tenías que flashear tu dispositivo.
Cuando el módulo se inicia por primera vez, aparecerá la red wifi "ESP_0" y la contraseña de red "configesp". Debe conectarse a él, después de lo cual será redirigido automáticamente a la página de configuración, donde debe ingresar información sobre su red wifi existente, a la que se debe conectar sonoff como cliente.
También puedes configurar wifi con el comando:
sudo miniterm.py /dev/ttyS0 115200 -e
Es necesario ingresar (sin prestar atención a la terminal, que se enfureció después de ingresar el SSID, o después de esperar 3 segundos hasta que Sonoff se calme):
ssid yourSSID password yourPassword