Pull to refresh

Comments 11

«Научить» одно устройство передавать данные на разных частотах можно, а вот приемники настроены на фиксированное значение, так что возможно их потребуется несколько.

Я изучал этот вопрос и могу ответственно заявить, что на расстоянии до полуметра приемники — универсальны. Например, 38-килогерцовый прекрасно чувствует 30-40 килогерцовую несущую. Передатчик WiFi->IR можно сделать даже на модуле ESP8266 с прошивкой nodeMCU — скорости ногодрыгания интерпретатора Lua как раз хватает для формирования несущей до 40 килогерц.
Можете порекомендовать какой-нибудь хороший источник, где можно почитать про передатчик WiFi->IR на ESP8266? Можно ли на данном модуле реализовать еще и прием?
Lua или С? Я рассматривал с точки зрения реализации на Lua.
Моя разработка передатчика дальше работающего прототипа не пошла (оказалось, что то, чем я планировал управлять, не годится для разрабатываемого устройства).

Вот такой получится Lua-код Ir-передатчика (протокол NEC):
return
function( pin, addr, data )
    local tone = function( t )
        local write = gpio.write
        local i = t
        while i > 0 do
            write(pin, 0)
            write(pin, 1)
            _ = i * 1 * 1 - 1 - 1 - 1 -- magic delay :)
            i = i - 1
        end
    end
-- prepare    
    local a = bit.band( addr, 0xff )
--    print( string.format("%x",a) )
    local an = bit.band( bit.bnot(addr), 0xff )
--    print( string.format("%x",an) )
    local d = bit.band( data, 0xff )
--    print( string.format("%x",d) )
    local dn = bit.band( bit.bnot(data), 0xff )
--    print( string.format("%x",dn) )
    local m = bit.bor( bit.lshift( dn, 24 ), bit.lshift( d, 16), bit.lshift( an, 8 ), a )
--    print( string.format("%x",m) )
    local delay = tmr.delay
    local isset = bit.isset
    gpio.mode( pin, gpio.OUTPUT )
-- send
    tone( 340 ) -- 9000ms*38kHz/1000000
    delay( 4325 ); -- 4500mcs - 175mcs (call time)
    for i = 0, 31 do
      tone( 21 ) -- 9000ms*38kHz/1000000
      delay( isset(m, i) and 1515 or 392 ) -- 1685/562mcs one/zero pause - 170mcs (call and cycle time)
    end
    tone( 21 ) -- 9000ms*38kHz/1000000 
end

Протокол NEC очень распространен и про него можно почитать например тут.

Опыты по приему показали, что на Lua вполне можно и приемник сделать, но с пост-декодированием сигнала, то есть сначала сохранить моменты переходов 0->1->0, а затем определить переданные данные.

На С, уверен, задача решается много эффективнее, примеры гуглятся — только выбирай:
site:github.com esp8266 ir remote

И еще, разбираться с протоколами очень удобно используя анализатор «USB Saleae» — это однозначный мастхев )
Я в свое время решил проблему просто купив запасной пульт, добыв из него плату контроллера (без корпса самого пульта она совсем небольшая) и припаяв прямо к нужным контактам-кнопкам на ней линии от микроконтроллера. Фактически МК просто «нажимает» кнопки физического пульта. Получилось быстро и просто, как раз то, что было нужно для weekend project. Да, некошерно и «грязный хак», зато быстро и работает с тех пор безукоризненно.
UFO just landed and posted this here
Как минимум, есть клапаны на горячую воду. Можно управлять «батареей» в ШИМ-режиме.
Что именно Вас интересует про управление отоплением?

Кондиционирование. Наверное самое простое это управление по ИК. Любая команда это отдельный код ИК. Хоть на пульте и есть кнопки увеличения/уменьшения температуры, на самом деле отправляется команда не на увеличение/уменьшение значения температуры, а команда на установку конкретного значения. Таким образом, в принципе, можно избежать неудобства с отсутствием обратной связи, например отправляя команду дважды. Другие способы это внутренние интерфейсы кондиционера и даже ModBUS.

Батареи отопления — существуют термостаты с возможностью их управления как по проводам, так и беспроводные. Мне понравилось беспроводное решение от Danfoss — LC-13. Зимой в квартире при любой температуре за бортом всегда одна и та же температура в комнатах.

Теплые полы — пока присматриваюсь к решению от Heatit.

Котлы отопления — очень много моделей с возможностью внешнего управления.

Есть даже интересное решение для проветривания помещений Aeropac wave, работающее по протоколу z-wave.

А по поводу «моргания лампочками» зря Вы так. Очень удобно при использовании сценариев. Хотя если рассматривать в отрыве от остальных систем умного дома это действительно не так интересно.
UFO just landed and posted this here
Вы описали набор Ваших исполнительных устройств варианты управления которыми я описал выше. Далее необходимо понять, что именно Вы хотите от них в плане автоматизации.

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

Это только то, что быстро вспомнилось из реально работающего в квартире. Надо оно вам или нет решает каждый сам для себя. Для меня это очень удобно. Мое общение с выключателями сведено к минимуму.
UFO just landed and posted this here
Можно. Но сможет ли Ваш пульт не включать кондиционер если Вы вдруг решили задержаться на работе или наоборот сделать температуру похолоднее пока дома только Вы, а жены нет? Мой может. Хотя у него и нет такого пульта.
Sign up to leave a comment.