2016-12-01

Комнатный контроллер с управлением по Modbus RTU

В прошедшие выходные, наконец, создал новую прошивку для одного из моих комнатных контроллеров, которая позволит управлять светом через Modbus RTU. Почему-то в сети полно статей как это сделать, но мне пока не удалось найти исчерпывающего руководства, чтобы реализовать все что хочется.

Сейчас у меня дома весь свет управляется четырьмя контроллерами собранными на базе Arduino Pro Mini. Один контроллер управляет светом в кухне, гостиной и лоджии. Второй в душе, Третий управляет ванной и коридором, а четвертый управляет светом в двух комнатах и гардеробной, он то и будет моим первым пациентом для перепрошивки. В качестве коммуникационной платы во всех контроллерах используются готовые сборки max485, но их то я пока и не подключил, так что мой умный дом еще достаточно глуп. Чтобы заставить всю систему работать были созданы простые прошивки, не подразумевающие централизованного управления, и вот, наконец, я готов это сделать для одного из контроллеров, который управляет светом в двух комнатах и гардеробной.

В качестве серверного решения будет крутится Openhab. Прошивка позволяет управлять светом в двух комнатах и гардеробной, причем, для гардеробной реализовано плавное включение через ШИМ с регулировкой максимального значения. Яркость можно регулировать на сервере, так-же как включать и выключать свет. Дополнительно, поддерживаются герконы на дверях в комнатах и гардеробной, при этом, герконы на дверях в комнаты просто сигнализирует о своем состоянии на сервер - я еще не придумал сценарии их использования, а геркон на двери гардеробной будет дополнительно включать свет при открытии двери - свет там все-равно нужен всегда. Также подключил датчик температуры и влажности - так как в гардеробная еще и серверная - температуру знать там не повредит. Вот пока и весь функционал, а больше пока и не нужно, все остальное можно реализовать на сервере, если понадобится.

К слову сказать, код контроллера все еще мне не нравится. Это пока еще proof of concept. Есть еще что можно улучшить. Из последних нововведений мне понравилось использовать указатели на функции - их активно используют например, при программировании для Pebble. Это позволяет лучше разбить код на более мелкие, но при этом универсальные блоки, и в отличии, например, от виртуальных функций код не становится медленнее, что важно, если у вас медленный процессор с ограниченными ресурсами.

Прошивку выложил на github - https://github.com/maxistar/Controller03

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

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

 

комментарии:

 

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

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться