Arduino, ESP8266 Lua, Raspberry Pi 2 && OpenHab. Умный дом: азы управления.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 12 май 2015.

  1. ua1zap

    ua1zap Нуб

    У меня в Raspberry GSM-свисток
    rule:
    rule "iphone_katrin"
    when
    Item iphone_katrin changed from OFF to ON
    then
    var String cmd = "/usr/bin/gammu sendsms TEXT +7921xxxxxxx -text Welcome_Katya"
    executeCommandLine(cmd)
    end

    для отладки и записи конфига gammu, запускаем sudo -u openhabian gammu-config
     
  2. ИгорьК

    ИгорьК Оракул Модератор

    55. nooLite MTRF-64.
    Начал большую публикацию по nooLite MTRF-64 и силовым блокам нового поколения. Велкам, все описания и разъяснения: https://igorkandaurov.com/tag/noolite/

    Если кратко - это очень правильная штука, и устройство управления получилось невероятно простым: ESP-8266, MTRF-64, пара сопротивлений и пара проводков. А возможности у этой железки позволяют закрыть все потребности управления светом, на мой взгляд.
    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]
    [​IMG]

    Кино, как это работает:

     
    Последнее редактирование: 11 май 2017
    SergeiL нравится это.
  3. ИгорьК

    ИгорьК Оракул Модератор

    55.1. nooLite MTRF-64. Коды из проекта

    Коды. Разбор как это делается: Здесь.

    Код (Lua):
    do
    sendRAW = {} -- Таблица быть должна, она там, внизу, проверяется

    -- Или таблица что ниже - отправляем RAW байты в модуль.
    -- Всего - 15 штук. 16й (будет посчитан) и 17й будут дописаны.

    -- Яркость на канал 0
    -- sendRAW = {171,0,0,0,0,6,1,100,0,0,0,0,0,0,0}

    -- Пинг-понг с самим MTRF-64
    -- sendRAW = {171,4,0,0,0,0,0,0,0,0,0,0,0,0,0}

    answer = {} -- сюда закачивается стринг ответа от модуля
    crcR = 0 -- для подсчета crc
    gotRAW = {} -- таблица принятых байт от MTRF
    counter = 1 -- (см. перевод)
    startUART = false -- Флаг, размахиваем!

    function ptrANSW() -- Печать результатов с замедлением
    -- ESP нужно время чтобы перенастроить порт
        tmr.create():alarm(1000, 0, function()
            print(answer.raw) -- Печать стринга
            table.foreach(gotRAW, print) -- печать таблицы
        end)
    end
    -- Это главное в нашей жизни
    function gotMTRF()
        -- Я же говорил - не пользуйтесь ESP-1!!!
        uart.alt(1)
        uart.setup(0, 9600, 8, uart.PARITY_NONE, uart.STOPBITS_1, 0)
        uart.on("data",1,
            function(data)
                local bt = string.byte(data, 1) or 0
                if startUART == true or (startUART == false and bt == 0xAD) then
                startUART = true
                table.insert(gotRAW, bt)
                if counter < 16 then
                    crcR = crcR + bt
                end
                counter = counter + 1
            end

            if counter == 18 then
                if gotRAW[1] == 0xAD and gotRAW[17] == 0xAE and (gotRAW[16]) == bit.band(crcR, 0xFF) then
                    local s = ""
                    for _, v in pairs(gotRAW) do
                        s = s.."$"..string.format("%02X", v)
                    end
                    answer.raw = s
                     uart.alt(0)
                    uart.setup(0, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1)
                    ptrANSW()
                end
            end
        end, 0)
        -- Если  в таблице sendRAW забито 15 байт - они будут отправлены в моудль
        if #sendRAW == 15 then
            -- Считаем 16 байт
            local cr = 0
            for i = 1, 15 do
                cr = cr + sendRAW[i]
            end
            cr = bit.band(cr, 0xFF)
            -- Пишем 16 и 17 байт в таблицу
            sendRAW[16] = cr
            sendRAW[17] = 172
            -- Отправляем в модуль MTRF-64
            for i=1,17 do
                uart.write(0, sendRAW[i])
            end
         end
    end
    gotMTRF()

    --
    -- Вам на все 15 секунд, после чего порт возвратится в исходное состояние.
    tmr.create():alarm(15000, 0, function()
        uart.on("data")
        uart.alt(0)
        uart.setup(0, 115200, 8, uart.PARITY_NONE, uart.STOPBITS_1, 1)

    end)
    --]]
    end

    В приложении - полный комплект файлов устройства - 11 штук.

    [​IMG]
    testMTRF.lua к устройству не относится, это самостоятельный файл для тестирования.

    UPD 26/04/2017 - getmqtt.lua - обновлен и приложен отдельно.
    Далее все обновления будут на GitHub.
     

    Вложения:

    • MTRF64.zip
      Размер файла:
      5,6 КБ
      Просмотров:
      91
    • getmqtt.zip
      Размер файла:
      572 байт
      Просмотров:
      115
    Последнее редактирование: 11 май 2017
    SergeiL нравится это.
  4. alp69

    alp69 Гик

    Если я правильно понял - адрес москита в приложенном файле из архива "iot.eclipse.org"?
     
  5. ИгорьК

    ИгорьК Оракул Модератор

    Вряд ли я оставил адрес своего брокера.
     
  6. Securbond

    Securbond Гуру

    Всем привет. Майские праздники перестают быть томными. Осталось сгонять и купить данные железки )). Как я понимаю состояние старых модулей всё равно опросить не получиться ?
     
  7. ИгорьК

    ИгорьК Оракул Модератор

    Опросить не получится. Но есть хинт - отвязать старые силовые блоки от пультов.
    Пульты и блоки привязать к MTRF-64 и все общение вести через него.
    Можно с участием ОН, но я хочу допилить устройство, чтобы управление шло лишь силами MTRF-64. Так что часть 55.2 будет :)
     
    Последнее редактирование: 30 апр 2017
    SergeiL и Securbond нравится это.
  8. SergeiL

    SergeiL Гуру

    Действительно, штука интересная. Прикольно, что двухсторонний обмен с модулями появился.
    В свое тоже думал на тему бриджей c mqtt на силовые модули и выключатели 433MHz, с прослушкой переданных с пультов команд. Остановило, именно отсутствие двухстороннего обмена и ненадежность переключения в условиях моей квартиры.

    Взвесив все за и против, все-таки решил остановился на своем модуле для освещения, на ESP-07.
    (Двухканальный, с опросом состояния настенных выключателей, подключенный по mqtt к OpenHAB.)

    Сам модуль:
    board.png


    А это, замененное одноканальное исполнительное устройство 433MHz (справа) и новый двухканальный модуль на ESP(слева):
    board_old_new.png

    Схема подключения:
    Схема1.png
     
    Последнее редактирование: 2 май 2017
    KindMan, alp69 и ИгорьК нравится это.
  9. ИгорьК

    ИгорьК Оракул Модератор

    Вот эти два вопроса и попробую решить.
     
  10. alp69

    alp69 Гик

    Как реализовано питание ESP?
     
  11. SergeiL

    SergeiL Гуру

    Так практически, как и у Вас, в схеме с импульсными реле:
    AC-DC преобразователь на 5В + LM1117IMP-3.3
    Вот схема, она простейшая:
    схема принцип.png

    Давно планирую все это выложить в отдельную тему, но руки не доходят причесать скетч к нормально читаемому виду. Прототип на макетке работает с ноября, в январе малость переписал скетч, с марта, не спеша, меняю старые модули, на новые. Сейчас еще появилась идея, добавить потолочные датчики движения (PIR) и подключить их к этим модулям в помещениях коридоров...
     
    Последнее редактирование: 2 май 2017
    alp69, ZAZ-965 и ИгорьК нравится это.
  12. alp69

    alp69 Гик

    Платы заказывали? ПодЕлитесь где?
     
  13. SergeiL

    SergeiL Гуру

    Друга просил развести, в Резоните заказывал.
    SMD компоненты конечно мелковаты, паял в очках... тяжеловато...
     
    Последнее редактирование: 2 май 2017
  14. ИгорьК

    ИгорьК Оракул Модератор

    На Али находил БП на плату на 3.3 вольта.
     
  15. SergeiL

    SergeiL Гуру

    У меня силовые реле на 5В. Плюс, сейчас, планирую подключить еще и датчики движения. А они в основном со стабилизатором на 5В.
     
  16. ИгорьК

    ИгорьК Оракул Модератор

    Датчики движения всегда трехвольтовые. На них на самих стабилизатор стоит. Его можно отрезать.
     
  17. SergeiL

    SergeiL Гуру

    Сегодня поехал, купил охранный, потолочный, пассивный, ИК датчик движения «Астра-7 исп. Б».
    Он на стандартные 12В (по тех. описанию 8-15В).

    Открыл, провел исследование, напряжение после стабилизатора (на процессоре) 5В.
    Буду ставить, экспериментировать.

    Еще была мысль, и пожарный датчик прикрутить на эти же ESP.
    Чтобы уж сразу, и все, и ставить удобно, оба рядом с люстрой, и проводов больше не нужно.
    На данный момент, дома во всех помещениях стоят автономные извещатели от строителей, с питанием от «кроны», но без батарей :).

    Сейчас разбираюсь как с них лучше снять сигналы...
     
  18. ИгорьК

    ИгорьК Оракул Модератор

    ИМХО, количество ESP-8266 в сети тоже не безгранично. Я все таки за noolite. Железо у них хорошее. В логике его применения ошибки, но это решаемо.
     
  19. ИгорьК

    ИгорьК Оракул Модератор

    ИК датчики Что в ардуиностроении - 100% 3.3в.
     
  20. SergeiL

    SergeiL Гуру

    Ну, у меня основной опыт был с "охранными" под сухой контакт.
    Они все на 12В, а из диапазона 8-15В, напрашивалось, как мне казалось, что внутреннее 5В.

    Да и с корпусом у охранных, все, в общем-то, в порядке.
    «Астра» выглядит очень даже прилично, дома не стыдно на потолок повесить. Да и цена приемлемая.