Quantcast
Channel: Рождённый с паяльником
Viewing all articles
Browse latest Browse all 2102

Умнодомовый контроллер

$
0
0
Каждый создатель умного дома должен спроектировать как минимум один домотканный контроллер собственной разработки. Я к этому весу подходил трижды, и вот, наконец, оно есть и даже встало в строй парой юнитов. Третий на подходе.

Входящие требования проекта:

1. Закрыть конкретные потребности по входам-выходам и датчикам, а именно:

  • Иметь интерфейс ModBus/TCP + http value request (OpenHab style)

  • Настраиваться через веб-интерфейс.

  • Обслужить несколько (6) шин 1wire по несколько датчиков на шине, вплоть до 32 суммарно, с фиксированным и управляемым отображением датчиков на внутренние идентификаторы умного дома.

  • Иметь аналоговые входы. В одном из модулей - вход измерения переменного тока (внешний шунт).

  • Иметь PWM выходы. В итоге оно есть, но не используется и требует, пожалуй, доработки напильником.

  • Уметь делать туннель tcp-485

  • Конечно, обычные Di/Do с переключением из конфигурации.

  • Поддерживать датчики DHT11 и BMP180 - конфигурируемо (есть/нет на конкретном экземпляре)

  • Уметь сбрасывать выходы в дефолт при отказе связи.

  • Брать время по NNTP (на борту нет батарейки и энергонезависимого таймера) - всё равно сеть нужна обязательно.

2. Влезать в DIN корпус в немаленькой конфигурации.
3. Утилизировать имеющиеся MMNET101 :)

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

Что получилось (один из вариантов компоновки):


01b2b208da7c92b3892cfcb23f983c400043ce7764

Вертикально - модуль детекторов для измерения переменного тока. Правый нижний угол - импульсный преобразователь (основное питание умного дома - +24) до +5 и линейный до +3.3 для BMP180.

01811eba1f2d4a0be4589a2a20c5198156b6768c75

Конкретно этот модуль имеет: DHT11, BMP180, 6 каналов 1Wire (в сумме до 16 датчиков), 6 каналов Ai, 2 канала измерения переменного тока, 4 Di (без развязки, только с защитой по напряжению), 4 Do с буфером (которые потенциально можно использовать как SPI, но прошивка пока не поддерживает).

0109f997a25c8525b3cfffaf79ffa3107a81ed5a48

Монтаж незатейливый. Я никогда не делаю плат, обхожусь монтажками и проводами. "Зато я знаю, где их много". Китай продаёт готовые облуженные проводки, монтажки у меня гениальные (Российского, кстати, производства), никакой серийности всё равно нет. Да и делаю я это, конечно, больше в качестве отдыха, чтобы попаять всласть. :)

01cdb79a1412648af57605f6710e6f11ceb7ae6ef8

У устройства есть 4 светодиодных индикатора:

  • Работа (мигает зелёным когда всё в норме)

  • Отказ связи (мигает если к модулю никто не ходит за данными и горит пока сетевой интерфейс трясёт адрес по DHCP)

  • Перегрузка по +5 вольт для датчиков 1Wire - защищено от КЗ многократным предохранителем, поскольку может идти длинными проводами.

  • Передача по RS485.




Из интересного - MAC адрес для сети я синтезирую из MAC-адреса DS2401, который вместе с бортовой DS18B20 сидит на отдельном внутреннем 1Wire. Это, в частности, обеспечивает привязку IP-адреса к устройству в целом, а не к воткнутому в него процессорному модулю. Поэтому процессорный модуль можно снять и перепрошить без потери IP-адреса. К сожалению, конфигурация модуля уже хранится во внутреннем EEPROM Atmega128, и её приходится перенастраивать, если модуль процессора меняется.

Можно бы было сделать скачивание конфигурации в XML через параметризацию DHCP, но я не счёл. Для тех пяти модулей, что у меня остались - перебор. Тем более, что один-то надо будет оставить как ЗИП.

Ещё вариант - поставить внешнюю I2C EEPROM, но, опять же, овчинка того не стоит, как мне кажется.

Сейчас работают два экземпляра. Один стоит в кухонной вытяжке и обеспеспечивает её дистанционное управление, второй встал в стойку и будет работать tcp-485 туннелем (точнее, уже работает), принимать данные с 1wire датчиков температуры, измерять ток  в определённых потребителях (плита и стиральная машина) и, наверное, принимать некоторые аналоговые сигналы, типа датчиков освещённости на улице.

UPD: забыл сказать - код, конечно, открыт.

PS: Хранителям очага - а может, добавим тег smarthouse?

Viewing all articles
Browse latest Browse all 2102

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>