Прошивка tasmota через arduino ide
1) Можно ли перепрошить устройство на стороннюю прошивку?
Да, практически для каждого Sonoff-устройства уже есть сторонние прошивки. См. раздел "Сторонние прошивки".
2) Если "накатить" стороннюю прошивку, будет ли возможность использовать это устройство с eWeLink?
Нет, поддержка eWeLink и Sonoff-облака исчезает. Но появляется поддержка протокола MQTT, что дает возможность использовать устройство в своей домашней эко-системе "умный дом", так как свой "умный дом" контролировать легче, чем китайское "облако".
3) Можно ли написать самому прошивку?
Да, все (?) Sonoff-устройства основаны на чипах ESP8266 или ESP8285. Как создавать прошивки для этих модулей в сети Интернет очень много статей и уроков.
4) Что нужно, чтобы перепрошить Sonoff-устройство?
Обычно достаточно иметь конвертор интерфейса USB в TTL UART типа такого. Часто нужно припаять на плату Sonoff коннектор типа "гребенка", чтобы подключить конвертор USB-TTL UART. Обратите внимание, что есть возможность прошить Sonoff-устройство без паяльника и конвертора, если версия прошивки меньше 1.6 или больше 2.0 и даже имеется личный опыт пользователей форума (см. ниже секцию Полезное).
5) Способны ли Sonoff-устройства работать в морозную погоду или при большой влажности?
Да, практикуется использование Sonoff-устройств в условиях мороза и влажности. Для уличного использования рекомендуется помещать устройства в герметичный корпус. Для условий с большой влажности и конденсата, рекомендуется покрыть плату лаком для электроники, чтобы избежать замыкания (пример).
Если нет инета, надо перепрошивать альтернативными прошивками.
Ну можно и без перепрошивки, но с заморочками. Уже несколько раз постил эту ссылку с хаком: Sonoff switch complete hack without firmware upgrade
Пару недель назад купил несколько Sonoff Basic и довольно быстро осознал, что "работать через облако в приложении eWeLink" - чертовски неудобно.
Возникла идея написать альтернативный сервер для Sonoff'а, которая позволит получать статус устройств и управлять ими, причём с сохранением оригинальной прошивки.
p.s. Работает только с Sonoff Basic, по остальным устройствам нужны логи, чтобы разобраться со структурой данных
p.p.s. Ещё в мыслях - разобраться в логике работы OTA обновления прошивки и научиться менять прошивку на альтернативную без вскрытия устройства.
p.p.p.s. В ближайших планах сделать Dual Control - возможность управления устройством как локальный сервер так и через eWeLink или даже выводить в eWeLink устройства, которые изначально не имеют отношения к Sonoff'у (но это уже на будущее, и, возможно, в виде плагина к Domoticz).
Вчера успешно перешил выключатель Sonoff Touch по этому способу. Из геморроев - необходима установка Python 3.5.x и pip. ОБЯЗАТЕЛЬНО отключить фаерволы и шибко умные(типа internet security) антивири. После запуска скрипта есть подсказки которые не дадут заблудиться или накосячить.
Кратко:
1.Запускаем скрипт и вводим все что он просит: Указываем интерфейс Wi-Fi, имя своей домашней сети и пароль.
2.Переводим Sonoff в режим подключения и подключаем ваш ПК/Ноут к Wi-Fi сети с названием Itead-xxxxxx. Пока вы это делаете скрипт терпеливо ждет и рисует точечки)
3.После подключения к сети itead-xxx начнется первый этап прошивки. Все что отобразится на экране надо в точности записать или запомнить(шутка). Примерно на этом этапе ваш Wi-Fi адаптер получит адрес 192.168.4.2, об этом напишет скрипт и желательно проверить это руками.
4.По окончании первого этапа нужно будет дождаться появления новой Wi-Fi сети с именем FinalStage и подключиться к ней. Начнется финальная прошивка устройства.
5.После окончания прошивки скрипт напишет, что можно его завершить.
6.PROFIT
Вариант увеличения зоны срабатывания сенсора.
Медный скотч (при желании можно наклеить ещё (главное не перекрыть отверстия под светодиоды)), провод на фото сечением 0.22мм, в нижней части наклеил изоленту (белая полоска) чтоб контакты платы не коснулись нашей доработки.
ps У меня сенсор срабатывает 3-6мм - но меня и раньше устраивала чувствительность, целью было расширить зону а не увеличить чувствительность.
Ещё как вариант - подозреваю что может понизиться чувствительность wifi так как его антенна может оказаться под медью.
СПОСОБ №1
Инструкцию скопировал отсюда
1) Распакуйте файл ReadFlash_ESP82XX.zip ( 38.15 КБ )
2) В папке ReadFlash_ESP82XX 2 файла: esp_tool.exe и readflash_esp82xx.bat.
3) Откройте readflash_esp82xx.bat в Блокноте или подобном редакторе.
4) Укажите номер порта присвоенного конвертеру USBUART (-pCOM) (так же, рекомендуется установить скорость порта 115200 бит в секунду: в Диспетчере устройств, в свойствах ком-порта для драйвера "Prolific USB-to-Serial Comm Port (Com <ваш ком порт>)", на вкладке "Параметры порта", выставить значение "Бит в секунду" на 115200).
5) Запускаете readflash_esp82xx.bat (заметка про Sonoff Basic).
6) На экране Connecting . connection established
7) По окончанию считывания 1048576 bytes written to "esp82XX.bin".
8) Файл переименуйте согласно типу устройства, расширение bin не трогаем.
Если еще нет опыта работы с UART и возникают подобные вопросы, то есть ответ.
СПОСОБ №2
В некоторых случаях, 1-й способ не работает почему-то (у меня не получилось сделать бекап с Sonoff T1 EU), но нашелся еще один способ (ENG), который отработал нормально. Этот же способ, но статья на русском.
- Отключаете все файрволлы
- Ставите питон 3.5
- Открываете командную строку от имени администратора для установки зависимостей
- Для установки зависимостей переходите в папку с SonOTA (командой cd) и выполняете:
По моему опыту, самая частая ошибка Windows-пользователей в том, что они выполняют все пункты под копирку, при этом они не обращая внимания, что команды обращаются к файлам, а командная строка у них работает из другой папки. Они получают ошибку о том, что нет такой команды/файл не найден, не вникая в неё, тут же орут на весь форум. Всегда нужно обращать внимание, в какой папке вы работаете из командной строки и есть ли в ней (в этой папке) нужные файлы!
.Вчера успешно перешил выключатель Sonoff Touch по этому способу. Из геморроев - необходима установка Python 3.5.x и pip. ОБЯЗАТЕЛЬНО отключить фаерволы и шибко умные(типа internet security) антивири. После запуска скрипта есть подсказки которые не дадут заблудиться или накосячить.
Не будет работать на устрйоствах с прошивкой 1.6 и выше
Все верно только для неопытных пользователей инструкция неплохо урезана я возьму на себя редактирование вашей инструкции .
Для начала установка python на windows python-3.6.3-amd64.exe ( 30.16 МБ )
после скачивания запускаем открываем вкладку дополнительно и ставим ВЕЗДЕ галочки место установки указываем C:/Python .
Вторым важным пунктом будет установка visual cppvisualcppbuildtools_full.exe ( 3.14 МБ )
установка интуитивно понятная внимания не требует , если не установить будут ошибки
Теперь скачиваем альтернативную прошивку SonOTA SonOTA-master.zip ( 687.75 КБ )
распаковываем на диск C:// прошивка должна лежать C:/SonOTA-master в этой папке должны быть файлы прошивки к примеру sonota.py
1.Запускаем командную строку от имени Администратора пишим первую команду: cd c:/SonOTA-master
Вторая команда: pip3 install --user -r requirements.txt
(если все прошло отлично и нет красочных строк идём дальше)
Третья команда: python sonota.py
(тройку ставить не надо как написано в другой инструкции)
1.1 вводим все что он просит:Выбираем сеть к которой в дальнейшем будет подключатся Sonoff Указываем интерфейс Wi-Fi, имя своей домашней сети и пароль.
2.Включенный в сеть питания 220в Sonoff переводим в режим подключения (Зажимаем кнопку на приборе на 7 секунд должен замигать зелёный светодиод) и подключаем ваш ПК/Ноут к Wi-Fi сети с названием Itead-xxxxxx пароль от сети по умолчанию 12345678. Пока вы это делаете скрипт терпеливо ждет и рисует точечки)
3.После подключения к сети itead-xxx начнется первый этап прошивки. Все что отобразится на экране надо в точности записать или запомнить(шутка). Примерно на этом этапе ваш Wi-Fi адаптер получит адрес 192.168.4.2, об этом напишет скрипт и желательно проверить это руками.
4.По окончании первого этапа нужно будет дождаться появления новой Wi-Fi сети с именем FinalStage и подключиться к ней. Начнется финальная прошивка устройства.
5.После окончания прошивки скрипт напишет, что можно его завершить. Once "FinalStage" has gone away, you can stop this program
6.Готово по адресу 192.168.4.1 доступен Sonoff
7.Далее для установки другой сторонней прошивки перейти в браузере 192.168.4.1/up ( Внимание после установки прошивки 1m smartphone прошится обратно можно будет только через UART переходник ) во второй вкладке выбрать файл для обновления и ставить другую прошивку я ставил прошивку 1m работает через интернет и Lan есть голосовое управление ,как его настроить напишу в теме 1m там есть небольшие заморочки странно что об этом ни кто не написал.
Недавно на Geektimes был обзор про модули ITEAD TH10. Хочу поделиться опытом разработки собственной прошивки для этих устройств.
SONOFF — серия выключателей, розеток и других приборов категории «Интернета вещей» от компании ITEAD. Их характеризует довольно низкая цена, использование «народного WiFi модуля» ESP8266 и работа в собственном сервисе, расположенном в облаке Amazon AWS global server.
Для этих модулей есть сторонние прошивки. Например, MQTT OTA, собираемой с ESP SDK или тоже самое но в среде Arduino IDE
Я хочу поделиться опытом создания собственной прошивки на Sonnoff в среде Ardiono IDE.
Модули Sonoff мне понравились сразу. Начиная от упаковки:
Качественной сборки и пайки:
И заканчивая проработанной схемотехникой, в которой явно не пожалели транзисторов для управления нагрузкой, подтягивающих и согласующих резисторов и кондеров.
Поддержкой же и документацией своих устройств компания ITEAD может заткнуть за пояс многих именитых производителей, не утруждающих себя публикацией технических подробностей на свои железки. Да и список продуктов компании ITEAD вполне впечатляет
По сути своей Sonoof TH10/16- это ESP8266 с сетевым блоком питания, периферией в виде реле, светодиодов, датчиков температуры и влажности, с колодкой подключения и в приличном корпусе.
Я опущу описание, как подключить Sonoff к облачному сервису и управлять приложением eWeLink на смартфоне. На мой взгляд, полностью неприменимо, когда управление контроллерами зависит от интернета и учетной записи в каком то облаке, пусть и на амазоновских серверах. Поэтому оставим приложение eWeLink для демонстрации возможности Sonoff и напишем свою управляющую программу.
Для этого нужно впаять 4-х штырьковый разъем для подключение к USB/TTL конвертеру.
Имея негативный опыт перепрошивки Sonoff POW, очень рекомендую все работы по программированию проводить с отключенной силовой частью Sonoff и питанием через штырек 3.3В.
Последний USB/TTL у меня героически погиб вместе с модулем Sonoff POW, поэтому использую для подключения Arduino UNO с RESETот подтянутым к земле. 3.3-вольтовый стабилизатор Уны отлично справляется с нагрузкой в виде ESP8266 и всей периферии модуля.
Как среду разработки буду использовать Arduino IDE и за легкости установки и обилия готовых библиотек и примеров, хотя как программист со стажем по прежнему считаю, что для разработки программ любой сложности вполне достаточно VI и make ))).
Как устанавливать ESP8266 Cire for Arduiono IDE посвящено много материалов в интернете. От себя хочу рекомендовать версию Arduino IDE 1.6.5, как имеющую меньше всего глюков при работе с ESP.
Так как на плате установлена микросхема памяти на 1Мбайт, выбираем соответствующую конфигурацию при загрузке в Board Manager:
Теперь достаточно нажать кнопку контроллера Sonoff и передернуть питание, устройство переходит в режим загрузки прошивки.
Для того чтобы самому программировать контроллер, нужно понимать, к каким портам что подключено. Для этого можно воспользоваться схемой на сайте ITEAD, ссылку на которую я приводил выше и тестером.
Итак, что мы имеем:
GPIO0 — кнопка (это понятно, когда мы включали бутлоадер)
GPIO12 — красный светодиод и реле
GPIO13 — синий светодиод
GPIO14 и GPIO4 выведены на разъем подключения датчиков.
Причем оба датчика однопроводные и используют GPIO14. GPIO4 еще нужно включить перемычкой на плате.
Да. Не густо, хотя и больше чем у ESP01.
GPIO2 и GPIO15 имеют подтягивающие резисторы на плате, можно подпаяться к ним. GPIO5 и ADC вообще никуда не распаяны и нужно подключаться прямо к микросхеме ESP. Оставим эти четыре вывода в покое и приступим к программированию.
Светодиоды работают в противофазе. Синий загорается, когда на нем низкий уровень. Реле срабатывать не должно из за отсутствия питания 5В. В дальнейшем я буду использовать синий светодиод для отображения различных режимов. Подробно про это я написал в этой статье
На кнопке я подробно останавливаться не буду. Да управления кнопками я написал удобную библиотеку, которая отлавливает длинное и короткое нажатие, автоповторение при длинном нажатии и давит дребезг контактов. Все это я подробно описал в своем блоге.
Теперь сенсоры. Мне прислали датчик температуры/влажности AM2301 и датчик температуры DS18B20 в водонепроницаемом исполнении.
AM2301 совместим с сенсором DHT21. Для его работы нужна библиотека DHT. Форков библиотеки DHT существует великое множество, я рекомендую брать версию от Adafruit в которой есть автонастройка на частоту контроллера и которая корректно работает на ESP8266.
Для подключения DS18B20 нужна библиотека OneWire. Полностью совместима с ESP мультиплатформенная версия этой библиотеки
Алгоритм опроса датчика берем из примера:
Ну вот, периферия работает. Дальше я использую существующие свои наработки. Полностью всю прошивку можно взять отсюда
Для любителей готовых сервисов. легко прикручивается готовая библиотека MQTT, BLYNK И пр. Но это уже за пределами данной статьи.
SONOFF — это удобная платформа в первую очередь для тех, кто может самостоятельно разрабатывать и дорабатывать управляющие программы.
Тем кто знаком с ESP8266 — Sonoff это экономия на сборке, пайке и деталях, при условии, что вам нужна именно такая конфигурация устройства, как заложена в конкретном модуле Sonoff.
Самый большой недостаток данных модулей то, что часть GPIO не разведены на разъемы. Ну что стоит сделать компании ITEAD гребенку с 8 pin и завести туда все свободные GPIO от ESP. Я думаю, популярность бы таких модулей при существующей цене сильно бы выросла.
Что касается конкретных применений, такой контроллер вполне можно реализовать на модуле Sonoff TH10.
Как я прошивал esp32-cam на прошивку Tasmota и что из этого вышло.
Первым делом если появилась такая идея, нужно: esp32-cam, usb-ttl программатор и 5 кабелей мама-мама
Все скачиваем и устанавливаем. Подключаем usb-ttl к ПК вместе с esp32-cam вот по такой схеме:
Обратите внимание, для прошивки надо замкнуть GPIO0 и GND, а так же использовать 3.3V.
После того, как подключили usb-ttl, необходимо нажать кнопку RST на esp32-cam и далее, запускаем flash_download_tool_3.8.5, выставляем параметры как на картинке. Все прошивки должны быть указаны под своими номерами вот так:
0x1000 bootloader_dout_40m.bin
0x8000 partitions.bin
0xe000 boot_app0.bin
0x10000 tasmota32-webcam.bin
Жмем кнопку START и при удачных обстоятельствах ждем когда все прошьется
После этого, размыкаем GPIO0 и GND, а так же подключаем esp32-cam с 3.3v на 5v
Обратите внимание, что на usb-ttl меняется переключатель напряжения. С 3.3v скорее всего esp32-cam не заведется.
После всех манипуляций, esp32-cam должна создать точку доступа у которой настраиваем esp32-cam
И в качестве бонуса. Чтобы включать и отключать вспышку, необходимо в настройках модуля указать в GPIO4 -> Led_1 -> 1
Тогда управлять пином можно через команду "cmnd/cam/LedPower 1 или 0" где cam - название вашей esp32-cam
Предлагаю почитать и посмотреть картинки в обзоре универсального ИК пульта дистанционного управления (далее — шлюз).
Это обзор-приквел, написан по следам другого обзора аналогичного аппарата Gocomma R9 от valendar.
Куплено за свои кровные $7,5 для интеграции в Homeassistant, аппарат после распаковки был незамедлительно вскрыт, обруган (см в тексте) и перепрошит на Tasmota версии ircustom-8.1.0.
В обзоре не рассматривается родное ПО.
Жирным выделил отличия от Gocomma R9.
Инфракрасный пульт дистанционного управления с функцией обучения.
Расстояние: до 10 метров, зона срабатывания — верхняя полусфера.
Частота модуляции ИК: 38КГц.
WiFi: 2,4 ГГц 802.11b/g/n.
Название приложения: Tuya Smart Life, есть для iOS 8 и выше, есть для Android 4.0 и выше.
Поддерживается голосовое управление через Siri, Alexa и Google Home.
Габариты: диаметр 67мм, высота 19 мм (на 10мм тоньше)
Вес продукта: примерно 50-60 грамм, утяжелители в днище отсутствуют.
Упаковка
Помятая коробка, в ней шлюз в тонком пакете, чуть ниже 2х проводной метровый шнур microUSB для питания и инструкция.
Корпус шлюза напоминает глянцевый приплюснутый пончик.
Верхняя часть пластик прозрачный в ИК диапазоне, нижняя — матовый пластик с противоскользящей вставкой из резины.
В этой модели шнур подключается с торца корпуса, напротив гнезда резиновая вставка отформована в толкатель кнопки сброса/сопряжения.
Корпус на защелках, внутри на плате «ромашка» из 7 инфракрасных светодиодов и модуль ИК-приемника.
На нижней стороне платы распаяны: модуль TYWE3S на базе ESP8266 с 2Мб SPI flash, импульсный DC/DC преобразователь 5->3.3 вольт (U1), по входу установлен «многоразовый» предохранитель (PTC) и супрессор (TVS), N-канальный MOSFET управления диодами (N1). Ну и обвязка по мелочи.
В целом схемотехника мне понравилась, в предыдущей модели все было проще.
Ну и как все заметили — нигде нет никаких пятачков и гребенок с надписями 3.3-TX-RX-GND — за это и «спасибо».
Гуглим даташит на TYWE3S и смотрим нужную распиновку.
Попутно нужно вызвонить на какие GPIO заведены: кнопка, светодиод статуса, затвор полевика (IR-OUT) и вход приемника (IR-IN).
Оказалось тут все стандартно, никаких изменений.
Если кому интересно, светодиоды собраны в 3 группы: две по три штуки последовательно E1+E5+E6 и Е2+Е3+Е4 с токоограничивающими резисторами R5=R7=10Ом, и один диод Е7 включен через резистор R10=47Ом.
Любители повозиться могут перепрошить шлюз вообще не вскрывая, через Tuya-convert. Но мне нравится запах канифоли, да и по шнуру проще, кошернее и быстрее.
Паяем хвост 3.3-TX-RX-GND не забывая про GPIO0 (который при прошивке нужно кратковременно притянуть к GND).
На конец хвоста паяем гребенку под косичку USB-TTL конвертера и укладываем все обратно в корпус.
Шился через Flash Download Tool v3.6.7, предварительно сняв дамп утилиткой ReadFlash_ESP82XX
И вот здесь пришлось доставать бубен.
Ибо blank и сама прошивка заливалась без проблем, стартовала в режиме точки доступа и давала внести базовые настройки моей Wifi сети, после перезагрузки подключалась к точке доступа получала IP но не пинговалась по нему и не показывала свою вебморду. Все заработало только после ручной установки параметров и повторной прошивки.
После успешной загрузки устанавливаем тип модуля YTF IR Bridge
В разделе template аналогично (проверяем привязки GPIO)
И последним аккордом в console даем команду включения MQTT Discovery (иначе устройство не подхватит Homeassistant).
Дополнение
В последние сборки Tasmota включили по умолчанию функцию сброса на заводские настройки (навесили ее на один из GPIO, не суть важно какой).
Возникает такой эффект: если этот GPIO висит в воздухе (как например у ESP-01), то после первичной настройки и подключения к вашей вайфай сети через 1 мунуту произойдет сброс модуля на заводские настройки. ESP поднимет свою точку доступа, как после первичной прошивки Tasmota.
Для отключения этой фичи надо при первом подключении через роутер как можно быстрее зайти на модуль и в консоли выполнить две команды:
Интеграция шлюза в систему Homeassistant, чтение пультов
Итак, шлюз прошит и при «обстреливании» пультиком в web интерфейсе (раздел Console) видны какие-то длинные строки. То есть шлюз ловит команды и пытается их раскодировать.
Для интеграции в Homeassistant (НА) необходимо предварительно настроить подключение шлюза к MQTT брокеру, это делается на вкладке Configure MQTT:
Здесь нужно вбить ip адрес MQTT брокера, номер порта и логин+пароль. Как правило брокер ставят на тот же хост где работает НА, в виде дополнения — docker контейнера Mosquitto broker. Настройки ИК шлюза должны совпадать с его конфигом.
По желанию можно изменить имя топика для ИК шлюза. После сохранения конфигурации и перезапуска в консоли ИК шлюза появится запись о подключении к брокеру:
Берем пульты от ваших устройств, открываем блокнот (например Notepad++, Excel и тп), заходим на консоль ИК шлюза, жмем кнопку и копируем в блокнот декодированную команду: ту часть JSON-строки которая начинается с .
Например пульт робота-пылесоса iLife50, кнопка „Старт/Стоп“ пульта в JSON выглядит так:
Соответственно в блокноте(Excel) пишем:
iLife 50
Старт/Стоп
Локальная уборка
Полная уборка
Не нужно полностью копировать все кнопки, для управления хватит „базовых“.
Берем пульт от кондишена, так же жмем базовые кнопки:
Например Старт/Стоп какого-то нонейма выдает две разные команды на запуск и остановку:
Старт
Предлагаю вам самостоятельно понять какой параметр за что здесь отвечает ;)
Пишем в блокнот эти две строки в блок „Кондиционер“.
И так далее…
Создаем виртуальные пульты в Homeassistant
В веб интерфейсе Homeassistant открываем для редактирования или (по желанию) создаем отдельную панель для пультов, на которой будем размещать кнопки. Для примера сделал два пульта: пылесос (4 кнопки) и кондиционер (2 кнопки):
Добавляем карточку пульта, класс горизонтальный или вертикальный стек (для автоматической группировки кнопок):
Настраиваем кнопку под номером 1
Жмем „+“ и настраиваем кнопку 2 (и так далее если у вас много кнопок).
Подобрать иконки на все устройства можно из этого источника.
Перейти из визуального режима в текстовый можно нажатием на „Текстовый редактор“. При настройке многокнопочного пульта в нем намного удобнее работать.
Код пульта кондиционера в виде текста выглядит так:
Код пульта робота-пылесоса выглядит вот так:
При копировании не забывайте менять имя топика tasmota_ХХХХХХ на ваш уникальный!
При написании автоматизаций, выполняющих управление какими-либо устройствами по ИК в пункт „Действие“ вписывается аналогичная пара Topic + Payload.
Например: автоматизация отслеживает уход из дома (BLE сканер фиксирует недоступность смартфона или браслета Miband) и через 5 мин отключает все освещение и кондиционер:
Читайте также: