Напишите ответ

Введите сообщение и нажмите Отправить
Параметры

Назад

Обзор темы (новое вверху)

YK
2020-03-04 21:08:19

Выдалось очередное свободное время и закончил прошивочку для Sonoff под Arduino с нативной интеграцией в Apple Home Kit

Из пред-истории, в виду достаточной дешевизны девайсов и отсутствия времени паять собственные, хотелось использовать линейку
Sonoff по максимуму для умного дома.

Как все знают стандартная прошивка лезет в китайское облако и плюс зависимость от приложения, а у меня все построено на Apple Home kit, поэтому хотелось бы управлять устройствами через одно приложение, да я яблочник smile

Где то полгода назад я уже научился это делать, но только в среде ESP-IDF, воощем целая история...
А для блага общества и самому хотелось сделать это из Arduino.

Ну и вот свершилось сегодня, первый девайс перепрошит и стабильно работает.
Пришлось конечно пойти на разные ухищрения наверное отдельный топик, ну а главное это найти память и процессорную мощность
для криптования и декриптования коммуникаций с Apple через wolfssl

На сегодняшний день из мелких недостатков замечен только процесс спаривания с Apple (выполняется один раз на устройство) бывает не с первого раза, тогда надо опять. Но после никаких глюков не замечено

Вообщем смотрите
библиотека

https://github.com/Yurik72/ESPHap

и собственно скетч

https://github.com/Yurik72/ESPHap/tree/master/examples/Sonoff_basic


Естественно можно поддерживать теперь всю линейку , вопрос распиновки, ну это уже просто и приятно smile


Инструкция:
1. Подготавливаем Arduino для работы c ESP8266, смотрим например здесь https://habr.com/ru/post/371853/
2. Качаем библиотеку  https://github.com/Yurik72/ESPHap и распаковываем в Arduino libraries folder. Для Windows это как правило
C:\Users\<username>\Documents\Arduino\libraries
3. Из вложенного архива https://github.com/Yurik72/ESPHap/tree/master/wolfssl  распаковываем wolfSSL_3_13_0.rar  в ту же папку библиотек Arduino. Лучше назвать ее wolfssl
4. Качаем или устанавливаем библиотеку https://github.com/tzapu/WiFiManager
4.1 Открываем скетч https://github.com/Yurik72/ESPHap/tree/master/examples/Sonoff_basic. Правим если нужно GPIO, у разных моделей и лампочек могут отличаться...

5. Далее готовим Sonoff можно например посмотреть здесь https://mysku.ru/blog/aliexpress/54424.html детально или погуглить
5.1. Паяем гребенку
5.2 Через USB UART переходник подключаем 3.3v->3.3v, GND->GND, RX->TX,TX->RX  . Sonoff должен быть отключен от 220v !
5.3  Подключаем USB UART  к компьютеру. В Arduino выбираем соотв. COM порт и плату ESP8285 (Не ошибся !!!!)
5.4 Если USB UART c кнопкой reset, то Нажимаем загрузить прошивку ждем сообщения о загрузке и жмем и держим кнопку на Sonoff и нажимаем кнопку Reset, ждем начала загрузки, после этого кнопку на Sonoff можно отпустить
Если без кнопки Reset, то вынимаем USB из компьютера , жмем и держим кнопку на Sonoff , вставляем USB и нажимаем "загрузка". После начала загрузки кнопку можно отпустить.
Все это нужно чтобы перевести Sonoff в режим загрузки (GPIO0 на GND в момент включения питания)

6. После завершения загрузки. Sonoff   стартует в режиме Access Point, найдите точку WiFi с именем ES и подключитесь
7. После подключение вероятно будете перенаправлены на стартовую страницу, если нет, в browser вводим 192.168.1.4   и  выбираем вашу Wifi, задаем пароль
8. Устройство перестартует
9. Открываем телефон -> Apple home - > добавить устройство.
10. Выбираем добавить вручную и видим доcтупное что то типа ES....... , выбираем его, соглашаемся конечно что оно не сертифицированное , вводим пароль 11111111 и поехали.....
11. Как правило все пройдет с первого раза и вы тут же увидите его в устройствах и можете включать выключать. Для проверки обратной реакции можно жать на кнопку Sonoff смотреть что статус обновляется..

12. Если что то пошло не так, (Pairing process самый капризный) лучше все удалить с устройства, перепрошить и попробовать опять
На моем опыте у меня было максимум 3 попытки. хотя в большинстве все проходит с первого раза
Для профессионалов, данные Pairing сохраняються в файловой системе SPIFFS  "/pair.dat". может быть что Sonoff уже успел сохранить  а Apple нет. Т.е. чтобы возобновить ошибку Pairing достаточно удалить этот файл и начать сначала.  В принципе можно раскоментировать длинное нажатие кнопки
//  SPIFFS.remove(pair_file_name);  //clean pairing data
         // WiFi.disconnect(true);   //lost saved wifi credentials

тогда при длинном нажатии утсройство забудет все на свете


Ну и все отключаем USB , подключаем Sonoff к 220 и балуемся..

Подвал раздела