Товары из Китая

«Умный дом» из Arduino + немного 1с.



«Умный дом» из Arduino + немного 1с.

Если кратко. Перепробовал три системы «умного дома». Во всех разочаровался. Пришлось сделать свою. Сервер на «Arduino MEGA» + «ESP8266». Реле + розетки + погодная станция + хаб 433 Мгц от «Sonoff», но прошивки в них самодельные. Датчики 433 Мгц от всех подряд.

Предыстория. В 2016 году переехал жить из города в деревню. В первую зиму вылезла серьезная проблема: отопление у меня электрическое, а подстанция в селе очень древняя, она первую половину дня может выдавать 130 вольт, вторую половину дня 280. Всю бытовую электронику защитил фильтрами «Штиль ИнСтаб 3500», повесив три штуки рядом с электрощитом.

Фото стабилизаторов.
«Умный дом» из Arduino + немного 1с.

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

Реле напряжения
«Умный дом» из Arduino + немного 1с.

Осталась одна не решенная задача. Если после отъезда всех домашних на работу, защита по напряжению отключит все обогреватели и не будет их включать до самого вечера, то во первых дом будет заморожен, во вторых если еще и замерзнет вода, то попадаем на замену всей системы водоснабжения.

Выход из ситуации: дом должен предупредить, что он замерзает, а я уже созвонюсь с соседями, они принесут и запустят в доме портативный газовый обогреватель.

Обдумав все это, решил, что мне нужна система типа «умный дом».

Для начала заказал в Китае комплект умного дома от «BroadLink».

Итог: система не подошла, подарил.

О системе «BroadLink»
«Умный дом» из Arduino + немного 1с.

Достоинства:

1) Качество изготовления просто шикарное, пластик, печатные платы, качество пайки, все на высочайшем уровне.

2) Может управлять почти всем, есть радиореле, умные розетки, станции эмулирующие инфракрасные пульты управления, работа с датчиками 433 Мгц.

Мелкий недостаток: логика работы с мобильным приложением, похоже, заточена на китайский склад ума, многие вещи сделаны неявно или выглядят нелогично.

Серьезный недостаток: система безмозглая, совсем. Все настройки, сценарии и т.д. хранятся на серверах в Китае. Если интернета нет или скорость недостаточная, то ничего не работает. Плюс сами китайцы иногда что-то ломают на серверах и потом долго исправляют.

По совокупности достоинств и недостатков решил, что мне эта система не подходит и подарил ее знакомым.

Следующим был комплект «Rubetek» купленный в «Лерой Мерлен».

Итог: система не подошла, оставил на запчасти.

О системе «Rubetek»
«Умный дом» из Arduino + немного 1с.

Достоинства:

1) Есть центр управления, который работает автономно и может выполнять настроенные сценарии без подключения к интернету.

2) Способен управлять видеокамерами, делать пересылать в приложении снимки, сохранять видео в «облако».

3) Самое удобное (из виденных мною) мобильное приложение.

Мелкие и средние недостатки:

1) Небольшой радиус действия реле управления, у меня примерно 5 метров в деревянном доме.

2) Пропадают из приложения подключенные устройства, перезапуск приложения все исправляет.

3) Иногда все перестает работать, помогает полный сброс и прописывание всех сценариев заново (бесит).

Серьезные недостатки:

1) Конский ценник на все элементы системы. Для примера компоненты «BroadLink», что в Китае, что у официальных дилеров в России стоят примерно одинаково. Компоненты «Sonoff» у нас по сравнению с Китаем примерно в 1.5-2 раза дороже. У «Rubetek» цены по сравнению с перечисленными конкурентами выше от 3 до 8 раз и я не смог для себя найти причины, почему нужно на это тратить столько денег.

2) Нет форумов по этой системе вообще. Был один, в официальной группе «Вконтакте», где можно было почитать о достоинствах и недостатках, но однажды его вычистили полностью. Есть вероятность, что производитель специально не допускает появления подобных веток на форумах, или как вариант эта система никому не нужна, поэтому ее и не обсуждают.

Резюме: не прошла отбор по цене и периодическим глюкам, оставил на запчасти.

Третья попытка, комплект оборудования от «Sonoff».

Итог: система не подошла, оставил на запчасти.

О системе «Sonoff»
Здесь фото не будет, их много дальше, по ходу текста.

Достоинства: самый не дорогой вариант.

Недостаток: в мобильном приложении так и не смог разобраться.

Резюме: не смог управлять системой, оставил на запчасти.

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

  1. 1) Вечером сам включается дежурный свет в зале, утром выключается.
  2. 2) Когда кто-то ночью идет в туалет, или на кухню пожрать, пусть свет включается на пути следования человека (чтобы не наступить в темноте на кота).
  3. 3) Когда ночью возвращаюсь домой, включать с брелока (не со смартфона, это долго, а на морозе еще и холодно) свет во дворе и около ворот, чтобы удобно было парковаться.
  4. 4) Сценарии должны обмениваться данными между собой. Например: один сценарий по сигналу брелока включает признак охраны, второй сценарий по этому признаку начинает отслеживать датчики движения.
  5. 5) Некоторые сценарии должны быть перезапускаемые. Например: датчик движения сработал и включил свет в коридоре на 10 минут, прошло 8 минут, датчик снова сработал, отсчет 10 минут должен начаться с нуля.
  6. 6) Что-то еще хотел, не помню точно.

По реализации в «железе» решил следующее:

  1. 1) За основу беру модули устройства от «Sonoff», поскольку их можно перепрошить.
  2. 2) Все исполнительные устройства максимально «тупые», только щелкают реле и передают данные, никаких мозгов, таймеров и т.д.
  3. 3) Без проводов, все через Wi-Fi, с использованием «ESP8266».
  4. 4) Центр управления находиться дома, все сценарии находятся в нем и он управляет всем.
  5. 5) Делаю все на микроконтроллерах «Atmega», поскольку у меня их дофига.
  6. 6) Питание центра управления будет через самодельный «UPS». Идею подсмотрел на сайте «Радио КОТ»: radiokot.ru/lab/hardwork/68/

Чтобы начать осуществлять задуманное пришлось перечитать кучу всего в интернете, полезного было мало, мусора много. Сдвинуться с места помог сайт samopal.pro, с циклом статей про использование модулей «ESP8266» и их связку с «Ардуино». Также с этого сайта взял прошивку для реле «Sonoff» и творчески ее под себя переработал.

Придумал, как осуществлять удаленную связь с центром управления. Для этого купил 10 коммерческих почтовых ящиков на sweb.ru (меньше просто не продают), обошлось около 500 рублей в год. До этого уже был опыт создания автоматики, которая передавала информацию через почту этого хостинга, поэтому решил, что «от бобра бобра не ищут».

О прошивках. Проще всего было с реле и розетками, для них использовал прошивку на базе samopal.pro/sonoff-th1016/, убрав из нее некоторые элементы, которые посчитал ненужными для своей задачи. Сложнее всего было с погодной станцией «Sonoff SC» и хабом «Sonoff RF» для датчиков 433 Мгц. Перебрал кучу готовых вариантов, таких как «Tasmota», «ESPurna» и прочих. Пытался разобраться в коде, решил, что не готов к такому испытанию. Поднял «даташиты» на припаянные микросхемы и датчики, сделал свои прошивки. Получилось кода меньше раз в сто, по сравнению с альтернативными вариантами.

Далее идет инструкция, как все это сделать своими руками, для тех, кто захочет это все повторить.

Пояснения:

  1. • Ниже по тексту будут упоминаться файлы и папки. Все это находиться в архиве, ссылка на него в конце этой статьи.
  2. • Как настроить среду программирования «Ардуино» описано тоже в конце статьи.
  3. • Извиняюсь за качество некоторых изображений.

Схема сервера:

«Умный дом» из Arduino + немного 1с.

Комментарии к схеме:

  1. 1) Все подсоединяется к «Arduino MEGA», на схеме она не показана.
  2. 2) Надписи типа «53 PIN» означают, что подсоединяется к одноименному выводу разъема расположенного по периметру платы «Arduino MEGA».
  3. 3) Надписи типа «1 PIN ICSP» означают, что подсоединяется к одноименному выводу разъема расположенного по центру платы «Arduino MEGA».
  4. 4) Первый модуль «ESP8266» – обмен с мобильным приложением, когда оно в домашней сети.
  5. 5) Второй модуль «ESP8266» – работа с почтой, получение и отправка писем.
  6. 6) Третий модуль «ESP8266» – обмен данными со всеми устройствами (реле, погодная станция, RF мост, умные розетки).
  7. 7) «SD Card reader» — используется для хранения настроек, нужна sd карта небольшой емкости. Я использую на 512 килобайт.
  8. 8) «Real Time Clock RTC» — часы реального времени.
  9. 9) Дисплей (на схеме не показан, но на фото его видно) подключен через «i2c» преобразователь. Выход преобразователя «SDA» к «PIN 20», выход «SCL» к «PIN 21».
  10. 10) При сборке нужно обязательно по питанию ставить блокировочные конденсаторы на 0.1 мкф, чем больше, тем лучше. На схеме они не показаны, но на фото верхней платы их видно, они желтого цвета.
  11. 11) Ни с одним мелким блоком питания, которые есть у меня, (похожи на зарядки от сотовых) схема нормально не заработала. На фото ниже блок питания «Meanwell RS-75-5», понятно, что такой мощности он схеме не нужен, но больше ничего под рукой не было.
  12. 12) Не советую собирать это все на макетной плате типа «breadboard mb102», скорее всего все будет глючить по страшному. Эта плата и ей подобные не обеспечивают надежного контакта, да и соединительные провода своей длинной отрицательно влияют на сигнал.
Фото в сборе и по отдельности
«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

Выглядит не очень, но это прототип, собранный на макетных платах. В планах на будущее думаю воткнуть в схему еще один «ESP8266» для перехвата видеопотока с камер и отправки фотографий в мобильное приложение. После этого разведу нормальную плату.

Примечание: на верхней плате виден отдельное USB гнездо, оно используется только для питания модулей «ESP8266», через преобразователь «1117», он в середине платы, на радиаторе.

Во всех модулях «Sonoff», которые есть у меня, на плате разведены контактные площадки для замены прошивки, но сами разъемы не запаяны. Пришлось припаивать «штырьки» самостоятельно.

Все разобрал.
«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

Процесс пайки и последующей мойки.
«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

Готовый результат
«Умный дом» из Arduino + немного 1с.

Испытательный стенд:

«Умный дом» из Arduino + немного 1с.

Для прошивки «Sonoff» и «ESP8266» использовал следующую схему:

«Умный дом» из Arduino + немного 1с.

На последующих фото будет видно, как это выглядит вживую.

Прошивка модулей «Sonoff Basic» и «Sonoff POW», розеток.
Этапы:

  1. • Открываем в среде программирования «Ардуино» нужную прошивку, в одной из папок: «Sonoff_Basic», «Sonoff_POW», «Sonoff_S20» или «Sonoff_S26».
  2. • В каждой из этих папок находиться подпапка «Soft_Info», в ней файл «Serup_IDE.png», смотрим в нем как настроить параметры «Плата», «Flash mode» и «Flash size».
  3. • Нужно убедиться, что модуль «Sonoff» отключен от электрической силовой сети. Подсоединяем его к компьютеру, указываем правильный COM порт в настройках среды программирования.
  4. • Нажали кнопку на плате «Sonoff», подали на плату питание 3.3 вольта, отпустили кнопку через секунду.
  5. • Запустили процесс прошивки.

Примеры подключения для прошивки:

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

Прошивка «Sonoff RF»
Этапы:

• Открываем в среде программирования «Ардуино» нужную прошивку, в папке «Sonoff_RF_Bridge».

• В этой папке находиться подпапка «Soft_Info», в ней файл «Serup_IDE.png», смотрим в нем как настроить параметры «Плата», «Flash mode» и «Flash size».

• Переводим переключатель на плате в положение «Off».

• Подсоединяем его к компьютеру, указываем правильный COM порт в настройках среды программирования.

• Нажали кнопку на плате «Sonoff», подали на плату питание 3.3 вольта, отпустили кнопку через секунду.

• Запустили процесс прошивки.

• По окончанию переводим переключатель на плате в положение «On».

В этой прошивке есть один недостаток: не реализован алгоритм определения остатка заряда в элементе питания датчика. Эти данные передаются, но в данный момент я их никак не обрабатываю.

Примеры подключения для прошивки:

«Умный дом» из Arduino + немного 1с.

Прошивка «Sonoff SC»
На плате этого устройства сразу два процессора «Atmega» и «ESP8266». Каждый нужно прошивать отдельно.

Для начала процесса программирования с платы нужно удалить перемычки и потом не забыть их вернуть назад.

В моем случае досталась плата, у которой в процессоре «Atmega» не был зашит bootloader для «Arduino». Проше всего прошить этот bootloader с помощью другой «Arduino», как это сделать описано здесь: robotclass.ru/articles/arduino-handmade-shrimp/

Процесс заливки bootloader:

«Умный дом» из Arduino + немного 1с.

Все необходимое для этой операции находиться в подпапке «optiLoader», внутри папки «Sonoff_SC».

Если еще один нюанс с процессором «Atmega», прошить его можно только через адаптер «COM – USB», который имеет выход «Reset». В настройках для прошивки я выбирал плату «Arduino UNO».

Пример подключения:

«Умный дом» из Arduino + немного 1с.

Процессор «ESP8266», прошивается по стандартной схеме:

  1. • Открываем в среде программирования «Ардуино» нужную прошивку, в папке «Sonoff_SC».
  2. • В этой папке находиться подпапка «Soft_Info», в ней файл «Serup_IDE.png», смотрим в нем как настроить параметры «Плата», «Flash mode» и «Flash size».
  3. • Подсоединяем его к компьютеру, указываем правильный COM порт в настройках среды программирования.
  4. • Нажали кнопку на плате «Sonoff», подали на плату питание 3.3 вольта, отпустили кнопку через секунду.
  5. • Запустили процесс прошивки.

Фото процесса:

«Умный дом» из Arduino + немного 1с.

Дополнительно я заменил на плате датчик «DHT11» на «DHT22». Смотреть, как меняется температура с дискретностью 5 градусов, было выше моих сил. Фото:

«Умный дом» из Arduino + немного 1с.

Прошивка сервера.
«Arduino MEGA» прошивается стандартным способом, через среду программирования. Прошивка лежит в папке «ATMEGA_Main», внутри папки «Server».

Прошивка модулей «ESP8266»:

  1. • Открываем в среде программирования «Ардуино» нужную прошивку. В папке «Server» есть подпапки «ESP_DevicesSRV», «ESP_ExchangeSRV» и «ESP_MailSRV».
  2. • В подпапке «Soft_Info» файл «Serup_IDE.png», смотрим в нем как настроить параметры «Плата», «Flash mode» и «Flash size».
  3. • Подали на плату питание 3.3 вольта.
  4. • Подтянули к земле выводы «GP0» и «Reset».
  5. • Отпустили «Reset», через секунду отпустили «GP0».
  6. • Запустили процесс прошивки.

Фото процесса:

«Умный дом» из Arduino + немного 1с.

Однажды я устал каждый раз подсоединять проводки к контактам «ESP8266» и сделал небольшую макетную плату, в который модуль просто вставляется. Контакты «CH_PD» и «Reset» замываю переключателем в правом верхнем углу платы. Фото этой платы с обеих сторон есть в архиве, схемы нет, не рисовал. Внизу справа это стабилизатор «1117», синие платки это конвертеры сигналов 3.3 – 5 вольт.

Как настраивать модули после замены прошивки.
Последовательность действий:

  1. 1) Подключаем к питанию, ждем примерно секунд 5, пока пройдет внутренняя инициализация.
  2. 2) Нажимаем кнопку, ждем, пока не загорится светодиод.
  3. 3) Проверяем доступные сети Wi-Fi, появилась новая точка доступа, адрес сайта с настройками в ее названии.
  4. 4) Подключаемся к этой сети Wi-Fi (она без пароля), открываем сайт по адресу, делаем настройки, нажимаем «Сохранить».
  5. 5) Нажимаем кнопку, ждем пока погаснет светодиод. Или можно питание отключить и заново его подать.

На этом все, модуль настроен.

Картинки:

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

Пока занимался всем этим, из Китая приехали датчики 433 Мгц.

«Умный дом» из Arduino + немного 1с.

На фото:

Датчики дыма: aliexpress.com/item/433MHz-Portable-Alarm-Sensors-Wireless-Fire-Smoke-Detector/32593947430.html

Датчики воды: aliexpress.com/item/2pcs-lot-433MHz-Wireless-Water-Intrusion-Detector-Leak-Sensor-Work-With-GSM-PSTN-SMS-Home-House/32682205421.html

Звонок (на фото его нет): aliexpress.com/item/KERUI-WaterProof-Touch-Doorbell-Button-Wireless-32-Songs-Optional-Door-Bell-Kits-EU-US-UK-plug/32818601228.html

Брелок: aliexpress.com/item/Orignal-Sonoff-RF-433MHz-Wireless-4-Buttons-Push-Cover-RF-Remote-Control-Sensor-For-Sonoff-RF/32822167249.html

Датчик открытия + детектор движения: aliexpress.com/store/product/Sonoff-RF-Bridge-433MHZ-Wifi-Wireless-Signal-Converter-PIR-2-Sensor-DW1-Door-Window-Alarm-Sensor/3063001_32839429527.html

Датчик открытия: rubetek.com/product/datchik-otkrytiya-okna-dveri

Детектор движения: rubetek.com/motion-sensor

Отдельно надо сказать про датчики движения. Они приходят настроенные на среднюю или низкую чувствительность. Выражается это в большой задержке срабатывания. Поменять чувствительность можно джамперами на плате датчика.

Управляющую программу в данный момент реализовал на 1С. Знаю, что это звучит странно, но пока я сильно ограничен в свободном времени, а нужно было сделать ее быстро, пусть и в ущерб внешнему виду. Чтобы посмотреть на нее скачивать пиратские версии 1С нет необходимости. Можно скачать у производителя версию для обучения программированию, она прекрасно для этого подойдет. Ссылка: online.1c.ru/catalog/free/learning.php

Также можно перекомпилировать эту программу в мобильное приложение, для этого дополнительно нужно установить сервер «Apache». Но сразу предупреждаю, на экране телефона это больно видеть. Скорее всего, будет нормально смотреться на экране планшета, но проверить не могу, за неимением оного.

Картинки из программы
«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

Как у меня сейчас все работает:

  1. • Программа управления установлена на компьютере и в ней делаю все необходимые настройки.
  2. • На смартфоне прописан почтовый аккаунт, при поступлении писем от центра управления, появляются уведомления на экране телефона.

Ссылка на архив: cloud.mail.ru/public/p7YA/GtZ8JDrRp

Что в архиве:

  1. 1) Все прошивки, описанные в статье.
  2. 2) Принципиальные схемы устройств.
  3. 3) Оригиналы фото из этой статьи.
  4. 4) Несколько программ для работы с COM портом.
  5. 5) Копия моей программы управления (на базе 1с).

Планы на будущее:

  1. • Разобраться с протоколами работы IP камер, сделать перехват и отправку фото.
  2. • Переписать программу управления под Android.
  3. • Доработать прошивку для «Sonoff RF», чтобы она передавала данные о состоянии батареек датчиков 433 Мгц.
  4. • Спаять сторожевой таймер, чтобы в случае проблем отключал питание и заново его подключал (жесткий резет).
Различные мудрости
Программировать лучше всего в среде ардуино версии 1.6.5 (не знаю почему, пробовал в других версиях, итоговые прошивки работают одинаково). Не будем нарушать традицию.

Для того, чтобы среда начала работать с модулями «ESP8266» нужно прописать строку «http://arduino.esp8266.com/stable/package_esp8266com_index.json» в настройках.

«Умный дом» из Arduino + немного 1с.

После этого в «Boards Manager» можно будет загрузить все необходимое для «ESP8266».

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

«Умный дом» из Arduino + немного 1с.

При прошивке платы «ESP8266» важно правильно выставить «Flash mode» и «Flash size», иначе прошивка загрузиться в плату, но работать не будет. Остальные настройки я никогда не менял. В архивах с прошивками, приложенными к этой статье, есть папки «Soft_Info», в них фото правильных настроек для каждого модуля.

Если ничего не помогает, прошивка не работает, тогда, чтобы выяснить какие настройки правильные, для начала заливайте прошивку, которая моргает светодиодом («blink»), с различными настройками «Flash mode» и «Flash size», пока светодиод на плате не начнет мигать.

«Умный дом» из Arduino + немного 1с.

Не пытайтесь запитать «ESP8266» от источника питания 3.3 вольта платы «Ардуино», плата дает 30ма, «ESP8266» в пике может потреблять 0.5 ампера. Во-первых, все будет глючить, во вторых контроллер 3.3 вольта платы «Ардуино» самостоятельно отпаяется от платы и уползет в строну, замкнув при этом что-нибудь. Питать его от USB порта компьютера тоже не вариант, используйте отдельный блок питания.

Если «ESP8266» перестал прошиваться, но при этом прекрасно работает, проверьте напряжение питания, возможно оно снизилось до 3.2 вольта, или еще ниже.

Чтобы перевести «ESP8266» в режим прошивки нужно выполнить следующую последовательность (при подключенном питании):

1) Замкнуть на землю вывод «GP0».

2) Замкнуть на землю вывод «Reset».

3) Разомкнуть вывод «Reset».

4) Через секунду разомкнуть вывод «GP0».

Для всех модулей «Sonoff» последовательность проще:

1) Нажать кнопку на плате.

2) Подать питание (не 220, а 3.3 вольта).

3) Через секунду отпустить кнопку.


СМОТРИ ТАКЖЕ