Pull to refresh

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

Reading time 2 min
Views 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 лога контроллера управления.


Спасибо за внимание!
Tags:
Hubs:
+50
Comments 32
Comments Comments 32

Articles