Покончив с реверансами, приступаем к теме. Итак, как я вообще докатился до идеи создания простого контроллера и почему esp32, я описывал на своем телеграмном канале, а тут будем без лирики. Только для людей со стороны поясню, зачем такой девайс вообще понадобился.
В итоге, у нас есть esp32, свободное время и желание помастерить. А что теперь нужно? Конечно, мир во всем мире! А точнее:
- коробку, чтобы можно было крепить устройство либо на din-рейку, либо на стену, в зависимости от конкретной ситуации
- чтобы не искать экзотические источники питания, хотим запитывать девайс от 12В - очень распространенный безгеморный вольтаж
- нужно много входов и выходов для минимизации необходимого количества контроллеров при масштабной автоматизации. Для полива одного каштана - это не сильно необходимо, а вот если нам захочется реализовать все задумки и прям вот так по-взрослому заавтоматизировать, то по моим примерным подсчетам получилось: 50 кнопок, 15-20 групп розеток, 25 групп светильников, 10-15 двигательных механизмов, 50 сенсоров (температуры, движения, влажности, открытия, освещения и т.д.), так что излишне плодить наши контроллеры-гейты неохота
- еще нюанс: часто внешние реле в качестве управляющего напряжения принимают 5 вольт , а у esp32 на выходе - 3.3. Поэтому если ничего не делать, то придется устраивать возню с конвертерами уровней, что явно не веселит. Значит придется встроить такие конвертеры внутрь. А еще мало ли, вдруг нам понадобятся 12в сигналы - учтем и это.
- аналогично на вход - продумать, чтоб научиться принимать разный вольтаж в пределах разумного. Для проверки гипотезы нужности такой возможности я глянул типичные массовые датчики и не обнаружил цифровых, которые не работают на 3.3в. А вот среди аналоговых такое вполне встречается. Поэтому выходит, что, как минимум, для аналоговых придется точно позаботиться о приеме разного напряжения
- полет моей мысли также привел меня еще к идее облегчения запитывания слаботочных датчиков от самой коробки, чтобы не искать дополнительных адаптеров. И опять напряжение их питания может быть разным, значит и поддержать нужно разное
- дисплей! несмотря на то, что устройство подразумевает автономную работу, обновление на лету и управление через веб-интерфейс, все-таки вывод человекочитаемой информации на корпус в случае нештатных ситуаций еще никому не мешал - не надо никаких миганий или азбуков Морзе, чтобы понять, что же пошло не так
- ну и как же без этого! ESP32 имеет только wifi - и хотя меня это в целом устраивает, но мы же тут гуманисты и о людях думаем, поэтому про старый добрый и надежный ethernet тоже не будем забывать (как и про себестоимость будущего творения при реализации наших пожеланий)
Сразу подыщем какую-нить готовую коробку, более-менее удовлетворяющую требованиям. Поймем, сколько места у нас есть, и сформируем заявленные характеристики. В результате недолгого копошения нашлась такая прибамбасина:
Не мелкая, но и не избыточная для имеющегося количества ног в ESP и наших требований.
Дальше примерно прикинем, какие ноги у нас куда пойдут. В этом нам поможет помимо датащита такая полезная табличка:
Ааа, и еще. Концепция предполагает, что мы наделяем пользователя умом и он сам выбирает, какие реле использовать, т.к цели могут быть разными, нагрузки тоже, надежность варьируется от кейса к кейсу: кто-то любит постоянно что-то чинить и исправлять последствия залипших контактов, а кто-то хочет один раз настроить и забыть, поэтому встраивать релюхи в девайс, занимая клеммы - не мой путь. Следовательно, оставляем для каждого внешнего реле только сигнальную клемму. А будет ли она виртуально нормально закрытой или нормально отрытой, определим программной настройкой.
Предварительно получаем такие заявленные характеристики нашего создания:
- Питание 12в
- Подключение к сети через WiFi или Ethernet (опционально)
- 7 цифровых или аналоговых входов на 3.3в (программно конфигурируются)
- 4 аналоговых входа 0.5-12в
- 3 I2C входа
- 18 выходов для подключения реле или других управляющих элементов. Напряжение управления на выходе конфигурируются 3.3в-5в-12в
- Отдельные выходы 12в, 5в, 3.3в для подключения сплиттеров для питания подключаемых устройств
- Информационный дисплей с выбором отображаемой информации
- Размер 9 DIN или крепление на стену
- Конфигурирование через веб-интерфейс
- Интеграция с популярными системами управления автоматизацией (типа HomeAssistant, Domoticz, OpenHAB и др.) по MQTT или HTTP с целью передачи данных от сенсоров и приема управляющих сигналов
А! Тут еще в день космонавтики меня настигла мысль, что я тоже вношу свою лепту в дело освоения космоса. И настанет момент, когда мы будем автоматизировать домашнее хозяйство в созвездии Ориона.
Потом я проснулся и, не теряя времени, нашел (не с первого раза) толкового фрилансера на бирже, который запилил 3d модельку по моему тз. Теперь фантазии обрели форму!
Дальше нас ждут некоторые кишочки в выборе необходимых компонентов для платы, ее последующее проектирование и изготовление, доработка PoC прошивки до нормального вида и заветный запуск. А пока на этом все! Было бы очень круто узнать от тебя, дорогой читатель, потративший свое драгоценное время на эту статью, полезно ли лично тебе это устройство в таком виде? Если кажется, что можно чуть его допилить, чтобы было более удобным и сбалансированным, или есть еще какие-то предложения, укладывающиеся в концепцию простого и дешевого и решающие реальные проблемы, то прям комментируй по полной! Состав еще не набрал скорость - кое-что можно подправить.