Sonoff th16 прошивка tuya



Пишем свою прошивку для модулей Sonoff TH10/16

Недавно на 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 мультиплатформенная версия этой библиотеки

Алгоритм опроса датчика берем из примера:

Ну вот, периферия работает. Дальше я использую существующие свои наработки. Полностью всю прошивку можно взять отсюда

Особенности прошивки:

  • Автоматическое определение сенсоров AM2301 и DS18B20
  • Длинное нажатие кнопки — вкл/откл режима точки доступа
  • Короткое нажатие кнопки — вкл/откл реле
  • Синий светодиод горит — соединение установлено, двойная вспышка — нет подключения, одинарное мигание — режим точки доступа
  • Локальный WEB-сервер в режиме точки доступа 192.168.4.1
  • при подключении к WiFi по тому IP адресу который настроен
  • Авторизация доступа по паролю. По умолчанию admin/12345
  • Сохранение параметров на сервер в интернете обычным HTTP запросом. Можно настроить любой сервер, например, народный мониторинг. А можно и локальный без всякого интернета.
  • Сохранение настроек в EEPROM
  • При подключении к интернету установка времени по NTP

Для любителей готовых сервисов. легко прикручивается готовая библиотека MQTT, BLYNK И пр. Но это уже за пределами данной статьи.

SONOFF — это удобная платформа в первую очередь для тех, кто может самостоятельно разрабатывать и дорабатывать управляющие программы.

Тем кто знаком с ESP8266 — Sonoff это экономия на сборке, пайке и деталях, при условии, что вам нужна именно такая конфигурация устройства, как заложена в конкретном модуле Sonoff.

Самый большой недостаток данных модулей то, что часть GPIO не разведены на разъемы. Ну что стоит сделать компании ITEAD гребенку с 8 pin и завести туда все свободные GPIO от ESP. Я думаю, популярность бы таких модулей при существующей цене сильно бы выросла.

Что касается конкретных применений, такой контроллер вполне можно реализовать на модуле Sonoff TH10.

Источник

Sonoff th16 прошивка tuya

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-устройств в условиях мороза и влажности. Для уличного использования рекомендуется помещать устройства в герметичный корпус. Для условий с большой влажности и конденсата, рекомендуется покрыть плату лаком для электроники, чтобы избежать замыкания (пример).

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).

Сообщение отредактировал velikashkin — 03.09.22, 11:29

если ставить через QR-код приложение,то нет «обратной связи».
при отключения электричества на 2.2.8 ,включится в off.
нужно обновить приложение ,тогда и появятся настройки
и выбрать уже нужное.

p.s. если в будущем выпилят, то этот eWeLink превращается для меня в тыкву)))
так как (Е)-это просто воздух.
а 0 можно не заводить на sonoff.
решил проапгрейдить sonoff th10(2017) под твердотелку SSR-40DA,
на стоковом цепляется SSR-40AA .
срезал дорожку Z и подпоялся от контактного реле, подается на его 5V.

теперь и, SSR -40/50/75AA и ,SSR-40/50/75DA.

с кидал в кучу твердотельные реле SSR-40/50/75
думаю из фото всё ясно,куда и как подпаиватся.
+ и — не путайте и все будет работать долго,так как нагрузки на sonoff th10 нет.
на твердотелке можно крутить мощности за 2200W легко .
p.s.для меня очень важно эти 5V ,чтоб реле времени от10сек. цеплять. ▽

Сообщение отредактировал ser.tuner — 16.10.17, 10:38

Ну можно и без перепрошивки, но с заморочками. Уже несколько раз постил эту ссылку с хаком: Sonoff switch complete hack without firmware upgrade

[Добавил в шапку]

Сообщение отредактировал VooDooN2 — 18.09.17, 22:15

Пару недель назад купил несколько Sonoff Basic и довольно быстро осознал, что «работать через облако в приложении eWeLink» — чертовски неудобно.
Возникла идея написать альтернативный сервер для Sonoff’а, которая позволит получать статус устройств и управлять ими, причём с сохранением оригинальной прошивки.

Насколько идея интересна/востребована?
Сейчас альтернативный сервер работает на Raspberry, написан на PHP и уже неплохо работает (баги, есс-но, никто не исключет).
Есть API для управления и запроса статуса, есть WEB страничка (вот прямо сейчас — без кнопок on/off, но скоро и они появятся).
Ссылка на GitHub: https://github.com/vponomarev/Sonoff-Server

p.s. Работает только с Sonoff Basic, по остальным устройствам нужны логи, чтобы разобраться со структурой данных
p.p.s. Ещё в мыслях — разобраться в логике работы OTA обновления прошивки и научиться менять прошивку на альтернативную без вскрытия устройства.
p.p.p.s. В ближайших планах сделать Dual Control — возможность управления устройством как локальный сервер так и через eWeLink или даже выводить в eWeLink устройства, которые изначально не имеют отношения к Sonoff’у (но это уже на будущее, и, возможно, в виде плагина к Domoticz).

Сообщение отредактировал v0xd — 02.10.17, 15:10

Вариант увеличения зоны срабатывания сенсора.

Медный скотч (при желании можно наклеить ещё (главное не перекрыть отверстия под светодиоды)), провод на фото сечением 0.22мм, в нижней части наклеил изоленту (белая полоска) чтоб контакты платы не коснулись нашей доработки.

ps У меня сенсор срабатывает 3-6мм — но меня и раньше устраивала чувствительность, целью было расширить зону а не увеличить чувствительность.
Ещё как вариант — подозреваю что может понизиться чувствительность wifi так как его антенна может оказаться под медью.

Сообщение отредактировал vovikkip — 13.10.17, 18:34


СПОСОБ №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), который отработал нормально. Этот же способ, но статья на русском.

Сообщение отредактировал VooDooN2 — 25.01.19, 12:50

1. Качаем Arduino IDE https://www.arduino.cc/en/Main/Software
2. В проге нажимаем Файл — Настройки и там в окошко Дополнительные ссылки для менеджера плат вставляем линк http://arduino.esp8266…_esp8266com_index.json Ставим все что напишет.
3. Потом в Инструменты выбираем плата на ESP8266. Flash mode DOUT. Flash Size 1M. Скорость 115200. Port — тот куда подключен USB TTL
4. Качаем прошивку тут https://github.com/let…rolit/ESPEasy/releases — тут новые версии v2.0.0 — нужно качать Source code
5. Распаковать надо и там внутри есть файлик что куда перекинуть в Arduino IDE, папку lib
6. Загружаем в Arduino IDE файлик \Source\src\ESPEasy
7. На первой закладке будут в текстовом виде все изменяемые параметры (настойка Wi-Fi, IP адреса и прочее). С зажатой кнопкой включаем Sonoff (чтобы устройство перешло в режим прошивки), потом можно отпустить кнопку.
8. Жмем кнопку в Arduino IDE Загрузить и ждем, после 100% можно передернуть питание Sonoff.
9. Нажимаем монитор порта (скорость 115200), при удачной прошивке в мониторе будет видно что произошло подключение к Wi-Fi сети.
10. Дальше уже можно заходить через web на Sonoff и там уже настраивать дальше. Чтобы работала кнопка (выключала реле) надо ее добавлять в Device и писать Rules — https://dan.bemowski.i…with-espeasy-and-vera/ — тут есть как это сделать.

И слушаетесь его указаниям

В линуксе это все сокращается до трех шагов, поскольку питон зачастую из коробки.

По моему опыту, самая частая ошибка Windows-пользователей в том, что они выполняют все пункты под копирку, при этом они не обращая внимания, что команды обращаются к файлам, а командная строка у них работает из другой папки. Они получают ошибку о том, что нет такой команды/файл не найден, не вникая в неё, тут же орут на весь форум. Всегда нужно обращать внимание, в какой папке вы работаете из командной строки и есть ли в ней (в этой папке) нужные файлы!

Сообщение отредактировал ilya-fedin — 14.11.17, 13:19

Все верно только для неопытных пользователей инструкция неплохо урезана я возьму на себя редактирование вашей инструкции .
Для начала установка 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 там есть небольшие заморочки странно что об этом ни кто не написал.

Сообщение отредактировал jmyrik28 — 08.01.18, 09:43

Швейный цех открыт :) Всех приветствую в теме.

Сегодня получил 4х канальный Sonoff 4ch который не pro (без RF). Буду прошивать EspEasy — как оно будет напишу.
Также пришли датчики температура-влажность adsong AM2301 (https://ru.aliexpress.…0s.9042311.0.0.VAtqzS), которые без штекера а просто проводки, цена в 3 раза дешевле чем у sonoff :)

Сообщение отредактировал Vanosss — 24.11.17, 00:15

Источник