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

Механические часы в среде умного дома

Время на прочтение2 мин
Количество просмотров59K

Доброго времени суток! Нет, ну конечно, не совсем механические. Электромеханические. Будет рассмотрена одна из реализаций радиообмена информацией внутри среды т.н. «умного дома», а именно обмен информацией о точном времени. Также изложена идея управления стрелочными часами без участия человека.
В прошлой статье было рассказано о сборе информации о температуре на улице по радиоканалу с применением радиомодуля на базе NRF24L01+. Продолжая развитие инфраструктуры «умного дома» было решено реализовать обмен информацией о точном времени.
Добрые люди подарили вторичные часы «Стрела» — они на КДПВ. Соленоид с приводом были безжалостно ампутированы, вместо них установлен шаговый двигатель от принтера и микроконтроллер msp430g2553 c радиомодулем NRF24L01+.
Вопрос начального определения положения стрелок был решён следующим способом. Под стрелками на циферблате были установлены 2 ИК оптопары таким образом, чтобы оба датчика срабатывали при положении стрелок в 6:00. Один датчик стоит в углу двойки числа 12, второй над знаком качества. Датчики (обведены на картинке) работают на отражение, а внутренняя сторона стрелок глянцевая:

При инициализации происходит т.н. парковка. Микроконтроллер крутит стрелки до тех пор, пока не будут закрыты оба датчика. После чего приняв начальную точку как 6:00 происходит запрос времени по радиоканалу у контроллера «умного дома», и при получении ответа, производится корректировка положения стрелок согласно точному времени. В процессе работы часы с определенной периодичностью делают запрос о времени (в моём случае раз в минуту). Для избежания коллизий в радиоканале, при наличии в доме нескольких подобных часов, каждые отдельно взятые часы имеют уникальный идентификатор, значение которого в секундах определяют задержку запроса в времени с момента наступления новой минуты.
Вот изнанка часов:

Железо «умного дома» за последнее время переехало с ноутбука+FreeBSD9 на TP-Link TL-WR703N+OpenWRT. На нём работает демон синхронизации внутреннего времени ntpd. Общение с оборудованием «умного дома» происходит через UART, к которому через микроконтроллер msp430g2553 подключен радиомодуль NRF24L01+:

Сам контроллер написан на PERL и общается с UART через модуль Device::SerialPort.
Второй разъем на плате контроллера планируется под дополнительный модуль NRF, предназначенный для управления исполнительными устройствами (свет, датчики охраны, жалюзи, прочая автоматика). Обмен через него будет проходить на другом частотном канале с применением шифрования (если руки дойдут).

Исходники проекта для CCS5 и схема часов для ProfiCAD в картинке(сохранить и распаковать winrar-ом):

UPD: Код перлового демона на контроллере.


Видео установки при включении — на мониторе tail лога контроллера управления.


Спасибо за внимание!
Теги:
Хабы:
+50
Комментарии32

Публикации