[Из песочницы] Sonoff Basic прошивка через Raspberry Pi

Эта инструкция не претендует на новизну. Приведенное тут вполне гуглится (правда на английском языке), но я долго искал с чего начать и решил помочь тем, кто встает на путь общения с Sonoff.

Обзоров Sonoff Basic в интернете много в том числе на русском языке, также есть статьи и о том, как подключить его к локальным системам «Умный дом» предварительно перепрошив.
Итак, если у вас нет USB-UART (еще не пришел из Китая), а блок Sonoff уже есть и есть Raspberry Pi, то эта статья для вас.
Здесь, если вы уже пытались найти информацию о том, как прошить этот китайский блок, то поняли, что обойтись без паяльника не получится. Перво наперво, придется припаять гребенку для возможности подключения нашего блока к Raspberry Pi.

nsps7adgmpsmog1pnffryghrhew.jpeg

Далее, подключаем Sanoff Basic (предварительно отключив от 220В) к Raspberry Pi, так как показано на картинке (Картинку, как и информацию, я взял вот тут, и привожу здесь, соответственно, краткий перевод).

surnxficlfyovyppipif8z-d1ji.jpeg

Первое, что нужно сделать, это посмотреть есть ли у вас порт 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

© Habrahabr.ru