Chipperb. Простейший контроллер для проводной домашней автоматизации на esp32

15 апреля 2019, 08:47

Привет, ребят. Тут сразу пара дисклеймеров: 

1) эта статья о пока еще незавершенном устройстве, которое пилится для личного пользования. Как на спруте сделать проект, я еще не понял, но позже разберусь и, видимо, перенесу туда. Сейчас хочется понять, нужен ли девайс с описанными ниже характеристиками кому-то еще и если да, то учесть, по возможности, пожелания и замечания.

 2) адептам беспроводных технологий, которые уже приготовились сказать: "эээ, ты чего попукал? Какие провода - за зигби и двор стреляю в упор!". Зигби дома - круто, а если у вас гектаровый участок, то и лора - вообще офигенно. Но в нашем случае речь пойдет о контроллере (гейте, хабе) с проводным подключением датчиков и исполнительных элементов, потому что:

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

Покончив с реверансами, приступаем к теме. Итак, как я вообще докатился до идеи создания простого контроллера и почему esp32, я описывал на своем телеграмном канале, а тут будем без лирики. Только для людей со стороны поясню, зачем такой девайс вообще понадобился. 

Допустим, вы захотели автоматизировать типичные домашние сценарии (выключение света при уходе, управление влажностью, температурой, замками, сигнализацией, протечками-утечками, закрывание штор, имитация присутствия... over9000 их) при помощи проводных сенсоров. У вас есть 2 логических компонента: 1) сами датчики и управляющие реле 2) программная платформа (софт), в которой заложена логика взаимодействия всего этого барахла. Этот софт в diy проектах чаще всего крутится на выделенном небольшом компе - подключить к нему датчики и релюхи напрямую нельзя, их просто некуда втыкать. Тогда появляется третий логический компонент - контроллер, к которому мы и подсоединяем все наше множество устройств, а он в свою очередь будет подключен к сети по ethernet или wifi и связывать нашу программную систему автоматизации с сенсорами и всем остальным. Во всяких зигби-решениях такой девайс чаще всего называется гейтом или хабом.

В итоге, у нас есть esp32, свободное время и желание помастерить. А что теперь нужно? Конечно, мир во всем мире! А точнее: 

  • коробку, чтобы можно было крепить устройство либо на din-рейку, либо на стену, в зависимости от конкретной ситуации 
  • чтобы не искать экзотические источники питания, хотим запитывать девайс от 12В - очень распространенный безгеморный вольтаж 
  • нужно много входов и выходов для минимизации необходимого количества контроллеров при масштабной автоматизации. Для полива одного каштана - это не сильно необходимо, а вот если нам захочется реализовать все задумки и прям вот так по-взрослому заавтоматизировать, то по моим примерным подсчетам получилось: 50 кнопок, 15-20 групп розеток, 25 групп светильников, 10-15 двигательных механизмов, 50 сенсоров (температуры, движения, влажности, открытия, освещения и т.д.), так что излишне плодить наши контроллеры-гейты неохота
  • еще нюанс: часто внешние реле в качестве управляющего напряжения принимают 5 вольт , а у esp32 на выходе - 3.3. Поэтому если ничего не делать, то придется устраивать возню с конвертерами уровней, что явно не веселит. Значит придется встроить такие конвертеры внутрь. А еще мало ли, вдруг нам понадобятся 12в сигналы - учтем и это. 
  • аналогично на вход - продумать, чтоб научиться принимать разный вольтаж в пределах разумного. Для проверки гипотезы нужности такой возможности я глянул типичные массовые датчики и не обнаружил цифровых, которые не работают на 3.3в. А вот среди аналоговых такое вполне встречается. Поэтому выходит, что, как минимум, для аналоговых придется точно позаботиться о приеме разного напряжения
  • полет моей мысли также привел меня еще к идее облегчения запитывания слаботочных датчиков от самой коробки, чтобы не искать дополнительных адаптеров. И опять напряжение их питания может быть разным, значит и поддержать нужно разное
  • дисплей! несмотря на то, что  устройство подразумевает автономную работу, обновление на лету и управление через веб-интерфейс, все-таки вывод человекочитаемой информации на корпус в случае нештатных ситуаций еще никому не мешал - не надо никаких миганий или азбуков Морзе, чтобы понять, что же пошло не так   
  • ну и как же без этого! ESP32 имеет только wifi - и хотя меня это в целом устраивает, но мы же тут гуманисты и о людях думаем, поэтому про старый добрый и надежный ethernet тоже не будем забывать (как и про себестоимость будущего творения при реализации наших пожеланий) 

Сразу подыщем какую-нить готовую коробку, более-менее удовлетворяющую требованиям. Поймем, сколько места у нас есть, и сформируем заявленные характеристики. В результате недолгого копошения нашлась такая прибамбасина:

 

Не мелкая, но и не избыточная для имеющегося количества ног в ESP и наших требований.

Дальше примерно прикинем, какие ноги у нас куда пойдут.  В этом нам поможет помимо датащита такая полезная табличка:


Ааа, и еще. Концепция предполагает, что мы наделяем пользователя умом и он сам выбирает, какие реле использовать, т.к цели могут быть разными, нагрузки тоже, надежность варьируется от кейса к кейсу: кто-то любит постоянно что-то чинить и исправлять последствия залипших контактов, а кто-то хочет один раз настроить и забыть, поэтому встраивать релюхи в девайс, занимая клеммы - не мой путь. Следовательно, оставляем для каждого внешнего реле только сигнальную клемму. А будет ли она виртуально нормально закрытой или нормально отрытой, определим программной настройкой. 

Предварительно получаем такие заявленные характеристики нашего создания: 

  1. Питание 12в
  2. Подключение к сети через WiFi или Ethernet (опционально)
  3. 7 цифровых или аналоговых входов на 3.3в (программно конфигурируются)
  4. 4 аналоговых входа 0.5-12в
  5. 3 I2C входа
  6. 18 выходов для подключения реле или других управляющих элементов. Напряжение управления на выходе конфигурируются 3.3в-5в-12в
  7. Отдельные выходы 12в, 5в, 3.3в для подключения сплиттеров для питания подключаемых устройств
  8. Информационный дисплей с выбором отображаемой информации
  9. Размер 9 DIN или крепление на стену
  10. Конфигурирование через веб-интерфейс
  11. Интеграция с популярными системами управления автоматизацией (типа HomeAssistant, Domoticz, OpenHAB и др.) по MQTT или HTTP с целью передачи данных от сенсоров и приема управляющих сигналов

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

Потом я проснулся и, не теряя времени, нашел (не с первого раза) толкового фрилансера на бирже, который запилил 3d модельку по моему тз. Теперь фантазии обрели форму!

Улыбочка

И еще разок

Дальше нас ждут некоторые кишочки в выборе необходимых компонентов для платы, ее последующее проектирование и изготовление, доработка PoC прошивки до нормального вида и заветный запуск. А пока на этом все! Было бы очень круто узнать от тебя, дорогой читатель, потративший свое драгоценное время на эту статью, полезно ли лично тебе это устройство в таком виде? Если кажется, что можно чуть его допилить, чтобы было более удобным и сбалансированным, или есть еще какие-то предложения, укладывающиеся в концепцию простого и дешевого и решающие реальные проблемы, то прям комментируй по полной! Состав еще не набрал скорость - кое-что можно подправить.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 4 месяца назад

    + один подписчик, ждём развития проекта.

  2. Вячеслав Фетисов (Ziracul)
    Вячеслав Фетисов (Ziracul) отредактировано 4 месяца назад

    Очень интересно, жду развития, уже даже придумал куда применить его

  3. (savenko_egor)
    (savenko_egor) отредактировано 4 месяца назад

    "ESP32 имеет только wifi" - а Bluetooth куда делся?) Или тут имелось ввиду именно подключение к сети?

    • Джейсон Киняев (kolibrikan@gmail.com)

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

  4. (DenisZagitov)
    (DenisZagitov) 4 месяца назад

    Почему не малина!?

    • Джейсон Киняев (kolibrikan@gmail.com)
      Джейсон Киняев (kolibrikan@gmail.com) отредактировано 4 месяца назад

      Модеры ссылку на тележный канал удалили - там больше подробностей. Но если кратко:  

      1. малина - оверкилл по мощностям и прожорливости. У меня была идея еще встроить аккумулятор для случаев перебоев с электричеством и малина бы держалась гораздо меньше по времени. Хотя я временно отказался от батареи, но в голове все равно это держу
      2. официальной поддержки какой-нить реалтаймовой ОС, типа freertos, в ней нет и чувство прекрасного во мне из-за этого страдает
      3. занимает больше места - а сколько мне его может понадобиться, я пока не знаю
      4. просто дороже 
  5. Дмитрий kontur (kontur)
    Дмитрий kontur (kontur) 4 месяца назад

    Отличная идея, если решение проводное то Ethernet точно нужен. А если еще и нативный Homekit то цены ей не будет)))

  6. . . (Bonefolder)
    . . (Bonefolder) отредактировано 4 месяца назад

    Не зная цену девайса на выходе, сложное судить. 3хI2C против 18 «релейных» выходов (про ещё 7 входов я помню) не слишком сбалансированное решение. При отсутствии релюх внутри корпуса, 9дин многовато. Я понимаю, что это основывается на необходимости размещения большого количества клем . Рассмотрите вариант размещения клем в 2 этажа. Также, «не силовые» клемы можно выбрать меньшего размера, а не под 4 квадрата. Если вы планируете сей девайс на Дин рейку, то размещать входы/выходы сбоку - плохая идея.

    А так, решение, безусловно, интересное. И возможно найдёт своих последователей. Удачи в начинании.

    • Джейсон Киняев (kolibrikan@gmail.com)

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

  7. Дмитрий kontur (kontur)
    Дмитрий kontur (kontur) 4 месяца назад

    Да, если на Дин рейку посмотрите корпуса допустим D6MG а 9 дин это очень много.


  8. (shvedoffsky)
    (shvedoffsky) 4 месяца назад
    С удовольствием буду следить за темой!

  9. Serge Kushnarov (Sergek)
    Serge Kushnarov (Sergek) 4 месяца назад
    Шикарное решение!!
    Буду следить за развитием!
    если нужна будет поддержка - поддержу!

    p.s.
    тут много народу с Homey - было бы неплохо сделать интеграцию и там )

  10. (Farlake)
    (Farlake) 4 месяца назад

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

    Совершенно аналогичное устройство (ну или очень похожее+аппаратные интерфейсы DMX для Света, 1-wire и modbus) под названием Lighthub мы запилили под ARM (SAM)+Wiznet5500.. и вот только недавно портировал прошивку на ESP32, собираясь сделать железный вариант под ESP

    В последней версии железки минимизировали кол-во клеммников, заменив их разъёмами IDC26 и выносными колодками на DIN рейку. 

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

    Вообщем, присоединяйтесь, прошива опенсорсная. 

    http://lazyhome.ru

К списку статей

Скидки для сообщества

УЮТНЫЙ ДОМ

+7 495 797-21-74
Промокод:
SPRUT
Размер скидки:
5%

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
22 октября 2018, 19:00
Сборка DIY Лабораторного блока питания из китайских модулей
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.