Эта инструкция не претендует на новизну. Приведенное тут вполне гуглится (правда на английском языке), но я долго искал с чего начать и решил помочь тем, кто встает на путь общения с Sonoff.
Обзоров Sonoff Basic в интернете много в том числе на русском языке, также есть статьи и о том, как подключить его к локальным системам «Умный дом» предварительно перепрошив.
Итак, если у вас нет USB-UART (еще не пришел из Китая), а блок Sonoff уже есть и есть Raspberry Pi, то эта статья для вас.
Здесь, если вы уже пытались найти информацию о том, как прошить этот китайский блок, то поняли, что обойтись без паяльника не получится. Перво наперво, придется припаять гребенку для возможности подключения нашего блока к Raspberry Pi.
Далее, подключаем Sanoff Basic (предварительно отключив от 220В) к Raspberry Pi, так как показано на картинке (Картинку, как и информацию, я взял вот тут, и привожу здесь, соответственно, краткий перевод).
Первое, что нужно сделать, это посмотреть есть ли у вас порт ttyS0.
ls /dev/
Если его нет, а есть ttyAMA0 (как в приведенной статье), то это не значит, что у вас все хорошо (напоминаю, о том, что речь о Raspberry Pi 3 b+), т.к. ttyAMA0 — отвечает за bluetooth. А значит это, что нам нужно зайти в настройки:
sudo raspi-config
и в “Interfacing Options” включить “Serial ”, после чего перезагрузиться.
Далее выполнить подготовку Raspberry:
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service
И отредактировать cmdline.txt, а именно удалить “console=serial0,115200”:
sudo cp /boot/cmdline.txt /boot/cmdline.bak
sudo nano /boot/cmdline.txt
Кроме того, советуют приписать тут же внизу “enable_uart=1” (конечно без кавычек), честно говоря, не знаю, что будет, если этого не сделать.
Далее устанавливаем pip (если нужно) и esptool.py:
sudo apt-get install python-pip
sudo pip install esptool
Перезагружаем Raspberry.
Скачиваем прошивку (я использовал ESPEasy build 120 как стабильный релиз, но вообще все справедливо и для других прошивок):
wget http://www.letscontrolit.com/downloads/ESPEasy_R120.zip
Предварительно убедившись, что вы находитесь в той папке, в которой бы хотели скачать, а потом разархивировать вашу прошивку.
unzip ESPEasy_R120.zip
И должны получить список файлов:
ESPEasy_R120_1024.bin ESPEasy_R120_512.bin esptool.exe Source
ESPEasy_R120_4096.bin ESPEasy_R120.zip flash.cmd
Далее отключаем Sonoff от 3.3V, зажимаем кнопку на плате (кнопка там одна — не перепутаете), подключаем к 3,3V.
Делаем бэкап прошивки (а вдруг нам захочется потом вернуться, а прошивка уникальна для каждого блока).
sudo esptool.py --port /dev/ttyS0 read_flash 0x00000 0x100000 Sonoff_backup_01.bin
Отключаем Sonoff от 3.3V, зажимаем кнопку на плате, подключаем к 3,3V. Стираем память:
sudo esptool.py --port /dev/ttyAMA0 erase_flash
Отключаем Sonoff от 3.3V, зажимаем кнопку на плате, подключаем к 3,3V. Прошиваем (берем прошивку на 1Мб, если вы конечно не перепаивали память вашего блока):
sudo esptool.py --port /dev/ttyS0 write_flash -fm dout 0x0 ESPEasy_R120_1024.bin
Ну, вообщем, и все, вы должны были прошить ваше устройство.
При первоначальном запуске модуля появится wifi сеть «ESP_0», пароль сети “configesp”. К ней нужно подключиться, после чего вы будете автоматически перенаправлены на страницу настроек, где необходимо ввести сведения о Вашей существующей wifi сети, к которой следует подключить sonoff в качестве клиента.
Так же настроить wifi можно командой:
sudo miniterm.py /dev/ttyS0 115200 -e
Необходимо ввести (не обращая внимание на взбесившийся после ввода SSID терминал или подождав 3 секунды, пока Sonoff успокоится):
ssid yourSSID
password yourPassword
Автор: Бог сервера