Как стать автором
Обновить

Проект Колхоз — светлое будущее своими руками

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров12K

Всем привет. В этой статье я хочу рассказать про свой проект посвященный автоматизации всего и вся. В начале будет много технических деталей, а менее занудные вещи начнутся с середины статьи. Осторожно, под катом много траффика!

КДПВ 1
КДПВ 1

Long story short: мы сделали штуку на фото для удобного подключения любых датчиков (а также устройств управления) к ESP32 DOIT Devkit V1. ESP32 это как Arduino, только лучше. Используя любые датчики и любые интерфейсы мы можем автоматизировать что угодно используя мощные фреймворки в виде ESPHome и Home Assistant. Это если совсем вкратце.


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

Почему вообще такой подход? Потому что имея, например, помещение в несколько десятков квадратных метров и желая достоверно измерять параметры воздуха (температуру, влажность), вам потребуется несколько датчиков в разных частях комнаты. Если вы хотите добавить ещё мониторинг кондиционеров, это ещё +4 датчика температуры на каждый кондей.

Итого мы получаем с десяток точек контроля. Можно конечно поставить отдельных WiFi/Zigbee устройств и управлять этим зоопарком, а можно взять одно управляющее устройство, радикально сократив количество геморроя по менеджменту и по цене. А ещё готовые устройства исполняются в законченном корпусе, поэтому воткнуть их в вентиляционную гофру не то что бы легко, в отличии от DS18B20/DHT22/BME280.

столько ног, которые можно заиспользовать! но есть нюансы
столько ног, которые можно заиспользовать! но есть нюансы

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

вместо тысячи слов
вместо тысячи слов

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

  • компиляция собственного набора датчиков в прошивку (ESPHome)

  • использование предварительного скомпилированного тематического бинарника (ESPEasy)

А вот с удобным подключением пришлось повозиться...

Собственно зачем это все?

Суть проблемы такова: с одной стороны у нас есть это

2 макетки, 1 есп
2 макетки, 1 есп

С другой, вот это

DS18B20 собственной персоной
DS18B20 собственной персоной

Результат прямого перемножения приводит вот к этому:

вторая версия шилда на довольно типичном фоне домашнего автоматизатора
вторая версия шилда на довольно типичном фоне домашнего автоматизатора

Кроме очевидно неэстетичного вида, у такого подхода есть минусы:

  • Подобный сетап собирается один раз и его проще собрать заново, чем что-то в нем поменять

  • Работает это только на небольших масштабах (десятки см)

  • Работает с небольшим количеством датчиков (в основном из-за проблем с питанием)

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

Почему это (может быть) лучше китайских устройств?

  • Нет вендорлока (не нравятся наши китайкие датчики, возьмите другие китайские датчики)

  • Открытая прошивка позволяет во-первых дописать те интеграции, которых не хватает, во-вторых, автоматизировать любую логику работы с помощью внутренних скриптов

  • Интерфейсы у HA/ESPHome лучше любых китайских устройств

  • Приватность и отсутствие потребности в облаке: можно собрать полностью автономное устройство работающее только на вас

3 года работы в одном фото
3 года работы в одном фото

На фото выше примерно весь ассортимент того, с чем мы умеем работать, а именно:

  • Интерфейсы OneWire для подключения гирлянд DS18B20 (герметичные датчики температуры, обжаты в RJ11)

  • BME280/DHT22/SCD40 для контроля параметров воздуха

  • Цифровые датчики в виде кнопок, расходомеров и Б-г знает чего ещё

  • Аналоговые датчики (например, датчик влажности почвы)

  • Управление нагрузкой 220В с диммированием и без

  • Управление нагрузкой 12В с ШИМом и без

  • pH и TDS датчики с гальванической развязкой (можно использовать неограниченное количество в одном растворе без побочных эффектов), платы для которых были разработаны лично нами ибо NIH

  • 0-10В управление устройствами

  • UART, ModBus, 4-20мА подключаются через платы адаптеры

схематика
схематика

Что можно собрать с помощью нашего оборудования?

Да в общем-то все

  • Можно обмазать каждый метр вашего дома датчиками температуры и смотреть, как работает котел

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

На фото слева расходомер и два датчика температуры (вход и выход). Добавив теплоемкость теплоносителя можно получить фактическое количество тепла выданное котлом

  • Можно собрать целый растворный узел с датчиками pH, TDS, ультразвуковыми датчиками расстояния для контроля уровня воды и перистальтическими насосами для регуляции удобрений

  • Можно собрать комплект для управления микроклиматом в птичнике, в птичнике, Карл

стандартные задачи, которые мы решаем
стандартные задачи, которые мы решаем
интерфейс готового устройства
интерфейс готового устройства

В качестве сервера HomeAssistant может подойти как компьютер работающий круглосуточно, так обычный tv-box прошитый под Armbian (мы шьем). Home Assistant нужен для хранилища графиков, более сложных автоматизаций и пушей в мобильное приложение.

Для сервера ХА идеально подойдут ноутбуки со 3G свистком или старые телефоны/планшеты. Это заменит ИБП и резервный способ связи для удаленного доступа.

Ещё немного про надежность и философию проекта

Насколько это можно использовать в продакшене?

Мои инсталляции на данный момент работают годами, проблемы возникают только если своими руками что-то сломать.

Там же под капотом китайские датчики за несколько сотен рублей, как вы можете такое серьезно продавать?

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

ESP32 какой-то детский микроконтроллер, не то что STM или что-нибудь из ПЛК

На ESP32 работают миллионы бытовых устройств. Если вы возьмете умную розетку от Tuya/Sonoff там будет та же ESP32. Даже WiFi модули для кондиционеров скорее всего будут на ESP32. Все работает, все счастливы (за исключением конечно пользователей китайских приложений).

Все-таки я хочу взять готовые устройства и объединить их как-нибудь иначе.

Наша платформа позволяет сделать по-настоящему автономные устройства, зависящие только от питания. Никаких облаков, никакого радио. У вас есть датчики, устройства управления и все это завязано внутри одного МК. А значит, что можно сделать действительно реалтаймовые устройства. А WiFi будет использоваться только для сбора данных.

Наши планы

На данный момент мы выпустили версию шилда под номером 3.2, в которой учли все известные ошибки. В четвертой версии хотим добавить поддержку Ethernet, дисплей прямо на шилде, поддержку других девкитов и ещё несколько фич по мелочи.

В софтверной части не хватает сервиса для шеринга и дистрибуции прошивок на ESPHome. Он почти дописан и ждет деплоя.

Также для ESPHome мы делаем динамические лямбды; сейчас для обновлении логики работы автономного устройства необходима перекомпиляция и перепрошивка, удобнее конечно скрипты редактировать в рантайме.

анимированная гифка тут
анимированная гифка тут

Кроме нежной любви к HA/ESPHome, я также питаю слабость к Кликхаусу (они ещё и испольуют оба одинаковый сетевой порт). Стандартно ХА использует SQLite для хранения данных, что честно говоря не то что бы круто. Кликхаус позволит собирать реалтаймовые данные с разрешением в секунды с потрясающей производительностью и сжатием данных. Добавив сюда Redash вы получаете ультимативный комбайн по сбору, хранению и визуализации собранных данных.

гифка
КДПВ 2
КДПВ 2

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

Теги:
Хабы:
+35
Комментарии189

Публикации

Истории

Работа

Data Scientist
46 вакансий

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область