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


    Доброго времени суток! Нет, ну конечно, не совсем механические. Электромеханические. Будет рассмотрена одна из реализаций радиообмена информацией внутри среды т.н. «умного дома», а именно обмен информацией о точном времени. Также изложена идея управления стрелочными часами без участия человека.
    В прошлой статье было рассказано о сборе информации о температуре на улице по радиоканалу с применением радиомодуля на базе 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 лога контроллера управления.


    Спасибо за внимание!
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 32

      +2
      Круто. Реально хорошая идея. Как здесь любят говорить: «А вы не думали запустить стартап?»
      Я по крайней мере не встречал часов которые сами синхронизируются)
        +3
        Механические часы все реже и реже используются. Стартап будет обречён.
          0
          А причем здесь механические часы? Просто настенные с синхронизацией.
            +1
            или настольные, напольные и проч :) синхронизацию через GPS давно уже делают.
              +3
              У нас в городе стоят несколько уличных электромеханических часов, синхронизируются через GPS. Поиск дает очень много ссылок про такие часы.
              Различные электронные часы в основном синхронизируются по немецкой радиостанции DCF77.
              • UFO just landed and posted this here
            +1
            Ага, как проигрыватели виниловых пластинок.
            +2
            А разве в России не выпускается часов с синхронизацией по радио? Если нет — то и правда хорошая идея для стартапа. Вот только решение с оптопарой и синхронизацией через интернет может получиться дороговато.
            А я имею в виду вот что — Radio clock.
            В Германии они сплошь и рядом продаются, на них вот такой символ есть:
            image
            Стоят — где-то от 12-15 евро, цифровые ещё дешевле. Всегда правильное время показывают, покуда батарейка не сядет.
            Внутри там просто антенна на ферритовом стержне (понятно, что в некоторых помещениях может работать неустойчиво):

            image
            В случае Украины — чуть сложнее — там, вроде, передатчиков нет.
            Впрочем, возможно, немецкий или московский передатчик и до Киева добьёт.
              0
              интересно, как они изначально положение стрелок определяют без оптопары. До Киева по географии немецкий DCF77 должен добивать.
                +1
                Я полагаю, там пара кулачков на шестерёнках да примитивные контакты. Вечерком попробую внутрь заглянуть, если не забуду.
                  0
                  заранее спасибо
                  0
                  Добивает. Немцы обещают зону уверенного приема в 1500 км, от Майнфлингена до Киева аккурат 1530 км.

                  Глюки с ошибкой на N часов (видимо, как-то связано с таймзоной, не знаю, протокол не разбирал, но ошибается обычно на целое число часов) наблюдаются редко, 2-3 раза в году. Зависит как раз от уровня сигнала — в глубине комнаты часы будут глючить сильнее, чем на балконе, так что важно подобрать им хорошее место. Зависит также от погоды, железных крыш и т.д., радиолюбители тут лучше меня расскажут.

                  А вот наручные часы (некоторые Casio умеют DCF) ловят сигнал заметно хуже. В Киеве почти не синкаются, на Западной Украине — гораздо лучше.
                    0
                    Добивает. Немцы обещают зону уверенного приема в 1500 км, от Майнфлингена до Киева аккурат 1530 км.

                    Как-то тревожно читать эти ваши строки… в отрыве от контекста :)
                  0
                  С тахих часов на самом деле наоборот в домашнюю сетку точное время пусткать! Мне кажется это понадежнее чем NTP по интернету. Наверняка куча техники по ней ориентируется. А еще интересно — насколько она приближена к «великим атомным часам» :)
                    0
                    Это т.н. «вторичные часы», т.е. либо очень неточные, либо вообще не считающие время. Сам же автор дал ссылку на понятие «сеть часофикации»: первичные часы считают время, вторичные его показывают. Нужно время подправить — переводят только первичные часы, и вся сеть перейдёт на нужное время. Другой вопрос, что и первичные у него никакие, отличаются от вторичных только тем, что есть интернет с NTP.
                      0
                      Я бы купил USB GPS ресивер, и получал бы с него достаточно точное время, которое пускал бы в сеть по NTP.
                    0
                    прочем, возможно, немецкий или московский передатчик и до Киева добьёт.

                    Немецкий — «добивал». По крайней мере мои наручные часы (Citizen Skyhawk) прекрасно синхронизировали время.
                  +1
                  Исходники проекта для CCS5 и схема часов для ProfiCAD в картинке(сохранить и распаковать winrar-ом)

                  Вот это магия! Подскажите, пожалуйста, как Вы так сделали?
                    +3
                    дописываем в конец картинки rar-архив. например с помощью TotalCommander
                    +1
                    >Вот это магия! Подскажите, пожалуйста, как Вы так сделали?

                    RARJPEG
                    0
                    Скорее как-то так.
                      0
                      Не освещение и не климат, хотя про умный дом. Круто!
                        0
                        Напомнило часы «умного города» :)
                        На видео — стандартные московские городские часы (помедленнее ваших будут :))

                          0
                          Мне почему-то кажется, что такая медленность вызвана тем, что там большое потреблелие при переключении, и, чтобы переключить стрелку, нужно энергию некоторое время копить.
                          0
                          shtirlitsus, спасибо за интересный пост! Несколько вопросов. Не рассмотрел на фото элементов питания и в тексте нет упоминания. В посте о термометре на этом сделан акцент. Возможно ли использование солнечной энергии при использовании шагового двигателя? Понимаю, что хотели пустить в дело подарок, но может часы с цифровой индикацией более удачный выбор, в случае, если продолжать линейку устройств с автономным питанием для умного дома? Зачем синхронизировать часы так часто(раз в минуту)?
                            +1
                            Ток шагового двигателя при работе довольно большой. Для передвижения стрелки на одну минуту в моем случае нужно 16 шагов двигателя. Чтобы уменьшить потребление — можно максимально сократить задержку между шагами, но упремся в инерцию двигателя и редуктора часов. При питании от солнечной энергии надо посчитать энергию, тратившуюся на минутный шаг, и среднюю энергию, накапливаемую за минуту. Учитывая стороны света, на которые выходят окна комнаты, занавески, пасмурность и время года подозреваю, что площадь солнечных батарей для нормальной работы будет слишком большой.
                            В случае цифровой индикации (светодиодной) расход будет врядли меньше, с учетом того, что они светятся постоянно, а стрелки двигаются раз в минуту. ЖК потребляет меньше, но их ночью не видно. Подсветка при ЖК — возвращает нас на светодиодную индикацию.
                            На счёт синхронизации, согласен, можно реже. Сделал раз в минуту, чтобы в логах набрать статистику потерь пакетов при различных размещениях часов и антенны контроллера управления «умным домом». Да, и потребление энергии на радиобмен значительно меньше, чем на минутный шаг.
                            За сим питаю часы 5-ти вольтовым импульсным БП.
                            0
                            Офигенная идея, спасибо, и никогда не паришься о времени.
                              0
                              Я давно искал некий комплект часов. Скажем часы-база и часы-клиенты. Клиенты бы синхронизировались раз в сутки с базой. А уж за базой я мог бы и сам следить в «ручном режиме», ну или как-то автоматизировать их синхронизацию. И куча проблем пропадет. А то часы в комнате, в кухне, во второй комнате, на тумбочке и все время разное показывают! Раз в месяц занимаешься синхронизацией их с компов в виде бегания с каждыми часами к компу и подвода стрелок ))) Т.е. я бы хотел заиметь не прямо уж глобальную синхронизацию, но локальную и, можно скзать, автономную.
                                0
                                время берется с контроллера «умного дома». Если выключить на нем ntp, можно шутить шутки с часами во всем доме, например как в «Аленьком цветочке»
                                0
                                В main.c у вас CCR0 = 32768, а надо 32767, ибо счётчик от нуля считает.

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

                                Only users with full accounts can post comments. Log in, please.