Sonoff Relay добавление поддержки датчика движения

Sdílet
Vložit
  • čas přidán 27. 08. 2024
  • Скетч для реле Sonoff обзавелся поддержкой датчика движения.
    Все подробности остального функционала скетча, а также его первичной загрузки, смотрите в предыдущих 2-х роликах серии "Sonoff Relay".
    Код из видео: drive.google.c...
    Если у вас после прошивки модуль не работает, то в конфигурации платы в Arduino IDE измените Flash Мode на "DOUT" и прошейте модуль еще раз (спасибо за решение Сергею Тучкину).
    Актуальная версия скетча в ролике • Прошивка для Sonoff Ba...

Komentáře • 64

  • @makmakkam6463
    @makmakkam6463 Před 7 lety

    Я тоже считаю, что из Sonoff много не выжать. Единственное - это повысить универсальность устройства, добавив IR датчик (есть в вашем предыдущем проекте). Для этого есть и место и свободный пин. Ждем чего-то глобального.

  • @Sashka793
    @Sashka793 Před 7 lety

    Спасибо за вашу работу. отличны идеи для умного дома)). Жаль только, что прекращаете разработку проекта. мне почему-то казалось, что обзор датчика освещенности TSL2561 и расширителя портов STM8 был логическим началом глобального грандиозного проекта. Но, в любом случае, спасибо за вашу работу, всегда с нетерпением ждал ваши новые видео.))

    • @alexmorozov73
      @alexmorozov73  Před 7 lety +1

      Вот именно чтобы перейти к глобальному грандиозному проекту и нужно от мелочей отойти. :)

  • @Imstalcon
    @Imstalcon Před 6 lety

    Можно без PIR сенсора сделать wi-fi sniffer, а можно и в связке с ним, тогда будет и по движению реагировать и засекать имеющую мобилку у того кто заходит в зону покрытия wi-fi, а мобильные телефоны с wi-fi сейчас у каждого, затем в журнале логов смотреть кто заходил в зону и с каким телефоном по базе mac адресов, iphone только малину может испортить, но они не у всех имеются :)

    • @Imstalcon
      @Imstalcon Před 6 lety

      у iphone есть защита от "нюхача", политика у них такая чтобы их не могли учетные сервисы посетителей в магазинах посчитать.

  • @destroyer2203387
    @destroyer2203387 Před 6 lety

    Великолепно

  • @user-gu4rh2om5l
    @user-gu4rh2om5l Před 6 lety

    Добрый день спасибо за труд что вы проделали. Вопрос о применении такой логики пир датчика крайне ограничен. Вы написали что хотите идею расширения. Хотелось бы защиту от ложных (вернее руки моешь а свет выключился) срабатываний было возможность установить время второго срабатывания в период сразу за первым чтоб не махать руками как мы все делаем каждые 15 сек . И желательно выбор что делать с реле после окончания выставленного времени (можно обрабатывать логикой умного дома)!

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      А минуту или две установить не пробовали? Чтобы руками не махать. :)

  • @user-pc5ps8du7n
    @user-pc5ps8du7n Před 6 lety

    Подскажите совсем для чайника, какой файл из архива скейч или надо как то все файлы загружать?

  • @user-ls2gh2dk6j
    @user-ls2gh2dk6j Před 7 lety

    "Хотелка" #2 реализована! Спасибо огромное!!! Теперь вопрос. Что нужно поправить в коде, чтобы в топик помимо 1 публиковался и 0 ( когда движения нет). Значение "0" необходимо, т.к. более сложная логика срабатывания реле идёт через "умный дом".

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Ох уж эти женщины... :)
      Перекачайте архив со скетчем.
      Но "0" прилетает буквально через секунду-другую после "1", как датчик импульс завершает.

    • @user-ls2gh2dk6j
      @user-ls2gh2dk6j Před 7 lety

      Alex Morozov Нет предела совершенству ;) Ещё раз огромное спасибо!!! Ждём новых ваших творений.

  • @aquaengineering
    @aquaengineering Před 7 lety +1

    Это Вы что. в обычное реле Sonoff, не TH, вживили датчик температуры? Можно попросить мастер-класс про это?

    • @alexmorozov73
      @alexmorozov73  Před 7 lety +1

      В самом первом видео о прошивке Sonoff czcams.com/video/lZOYQSDSoJw/video.html

  • @user-hv7me5kw4o
    @user-hv7me5kw4o Před 7 lety

    Все доступно и понятно, спасибо. Вот только вопрос, как можно в Вашем проекте rfid мультиканальный подправить вкладку setup control, чтоб выглядела как в этом проекте.(чтоб pir подвесить) Если не сложно, подскажите пожалуйста. Спасибо.

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Вероятно взять нужный кусок кода из процедуры обработки страницы handleControlConfig.

    • @user-hv7me5kw4o
      @user-hv7me5kw4o Před 7 lety

      Alex Morozov, спасибо за ответ. попробую разобраться. У Вас замечательные идеи и проекты. Возникает желание отблагодарить Вас финансово за проделанную работу.

  • @user-yk2rh3ig4k
    @user-yk2rh3ig4k Před 4 lety

    Здравствуйте. Sonoff RF (установленный на улице) подвязался к беспроводным датчикам движения (находящимся внутри дома) и включается - выключается при срабатывании датчиков движения. Цель была другая (включать/выключать освещение на улице). В настройках в приложении не могу найти как это отключить. Подскажите как мне отвязать датчики? Заранее спасибо.

    • @alexmorozov73
      @alexmorozov73  Před 4 lety

      А почему вы мне этот вопрос задаете? Моя прошивка не для RF, а как работает базовая - я понятия не имею.

    • @user-yk2rh3ig4k
      @user-yk2rh3ig4k Před 4 lety

      Задал вопрос надеясь что вы подскажите... как побороть проблему...

    • @user-yk2rh3ig4k
      @user-yk2rh3ig4k Před 4 lety

      И будет ли вообще работать отдельно от датчиков движения? Можно ли сделать работу не в совокупности? Спасибо

    • @alexmorozov73
      @alexmorozov73  Před 4 lety

      У меня нет Sonoff RF, так что увы, не подскажу.

  • @dens966
    @dens966 Před 6 lety

    Подскажите, пожалуйста, где искать головной файл "DHT.h" в модернизированной кастомной прошивке и в прошивке, поддерживающей датчик PIR? Без него, что очевидно, компиляция скетча не происходит: #include "DHT.h" compilation terminated.
    ОТВЕТИТЬ

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      Установить из репозитория Arduino IDE библиотеки DHT Sensor Library (Adafruit) и Adafruit Unified Sensor.

    • @dens966
      @dens966 Před 6 lety

      Большое спасибо! Все заработало.

  • @michailyakimov3722
    @michailyakimov3722 Před 6 lety

    Здравствуйте. Спасибо за выполненную работу. Хотел бы попросить Вас о помощи. В общем, применительно к датчику движения, нужно чтобы реле выключалось при появлении движения, выжидало определенное время и если движения нет - включалось. В общем задача обратная той, что вы показывали. У меня если честно на этой прошивке не получилось так настроить реле. Заранее благодарен.

  • @krepton85you
    @krepton85you Před 7 lety

    Так а как же на счет поддержки настенного выключателя, без изменения разводки.
    В общем я у себя так в люстру сделал:
    Сам блок управления 3-мя релюшками расположен в люстре.
    Но я могу выключателем на стене либо включить принудительно свет, либо выключить.
    Алгоритм такой:
    - Выключатель всегда находится в состоянии включено (и люстра естественно всегда онлайн)
    - Если нужно переключить реле, я выключатель перевожу в состояние выключено, затем через секунды 3 включаю и свет включается,
    - если нужно выключить, то опять щелкаю выключателем свет выключается - выключатель опять в нормальном состоянии включено и т.д.
    В общем основано за счет EEPROM памяти. Так же предусмотрен режим, аварийного отключения электричества в доме, что бы когда вновь включат электричество, то реле находилось в выключенном состоянии - работает так, если после подачи питания в люстру проходит более 5 секунд, то состояние реле (в ячейку EEPROM) записывается выключено и при следующей перезагрузке по питанию, будет восстановлено из EEPROM состояние реле выключено.
    Таким образом что бы переключать реле, выключателем нужно щелкать с интервалом между откл . вкл не более 3 секунд.
    Такая функция есть у многих китайских радио-реле, но в некоторых не предусмотрен режим аварийного отключения электричества и придя домой с работы, можно узнать что отключали электричество в доме, ведь вас будет приветствовать постоянно включенный свет. :)
    Я понимаю что у вас есть датчик движения сейчас, но иногда есть моменты когда нужно свет включить на постоянной основе, пока сам не выключишь, вот с помощью данной функции можно настенным выключателем переключать режимы (их может быть не только 2, но и более).

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Надо бы реальный EEPROM использовать для таких целей, хотя бы в той же STM8. У него ресурс 300К записей, а у флеша дай Бог 10К.
      Я правильно понял, что выключатель у Вас обычный проводной? Интересное решение. Но тут народ системами "умного дома" страдает в основном, им "малая механизация" ни к чему, хотя автономность Вашей конструкции в разы выше.

    • @krepton85you
      @krepton85you Před 7 lety

      да, самый обычный проводной выключатель, он по дэфолту был установлен в стене.
      Сначала купил готовый китайский выключатель с датчиком движения и освещенности и думал его вместо этого подключить (кстати он тоже 2-х проводной), но кое кому это не сильно понравилось т.к. необходим был режим "постоянно включено". :)
      И тут все понеслось - блок управления люстрой на 3 раздельных канала, с датчиком движения, радио-брелком (315Мгц), управлением по mqtt (тут вообще куча режимов, можно выбрать конкретно с каким каналом что бы работал датчик движения, установить время свечения после сработки датчика движения, видно сколько времени прошло с момента последнего движения, раздельное управление каждым каналом).
      С радио-брелка управление такое: 4 кнопки есть, A,B,C - раздельно управляют 3-мя лампами, режимы переключаются по кругу (1- лампа выключена и датчик движения для ее тоже, 2- лампа включена, датчик движения выключен, 3- режим лампа включена и датчик движения тоже, при активации 3-ого режима мигает 2 раза данной лампой), кнопка D делает тоже самое только одновременно со всеми лампами.
      Настенный выключатель имеет всего 2 режима у меня: 1-ый все 3 лампы либо выключены, либо управляются датчиком движения (зависит от установок при помощи MQTT или радио-брелка, если управление по датчику то все 3 лампы мигнут 2 раза), 2-ой все 3 лампы включены, датчик движения выключен. При этом настенный выключатель так же синхронизирован с MQTT, ну в смысле видно что лампы принудительно включены и не потухнут сами ни когда, пока их вручную не выключить.

  • @user-ow2rv5tb7k
    @user-ow2rv5tb7k Před 7 lety

    Вот бы еще добавить поддержку Sonoff RF - версии.
    У производителя даже wiki есть по такому модулю:
    www.itead.cc/wiki/Sonoff_RF
    www.itead.cc/wiki/433Mhz_RF_receiver

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Я по фотографии не гадаю. :)

    • @user-ow2rv5tb7k
      @user-ow2rv5tb7k Před 7 lety +1

      Там радиомодуль подключен параллельно кнопке на 15 пин. Нопри этом умеет програмироватся для запоминания пульта.
      Чтобы вогнать его в этот режим (из инструкции www.itead.cc/blog/user-guide-for-sonoff-slampher):
      1) Быстро нажмите кнопку «SET» на Sonoff дважды, светодиод на Sonoff моргнет один раз, а затем одну из кнопок пульта один раз зажать на несколько секунд для сопряжения.
      2) Чтобы отменить сопряжение, вам нужно быстро нажать кнопку «SET» на Sonoff 3 раза.
      Так вот если я не ошибаюсь, в вашем коде предусмотрено двойное нажатие - включается нагрузка с автовыключением. При этом возникает некий конфликт: радиомодуль одновременно с этим входит в режим программирования пульта))).
      Поменять логику радиомодуля не представляется возможным, т.к. за это отвечает EFM8BB10F2G-A-QFN20 на плате со своей собственной отдельной прошивкой.
      Может имеет смысл както поменять логику включения нагрузки с таймером отключения?
      Или позволить через web отключать данный режим для Sonoff RF?

  • @dens966
    @dens966 Před 6 lety

    Alex, подскажите, пожалуйста, еще момент: при срабатывании датчика движения его статус публикуется в mqtt, а статус включения реле - нет. Причем, после окончания установленного периода статус выключения реле в mqtt публикуется. Куда что дописать?

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      PIR обрабатывается с помощью прерывания, в котором нельзя вызывать код, способный подвесить модуль, коим является публикация в MQTT. Поэтому реле включается согласно настройкам, но его статус не публикуется. А сам статус движения помещается в очередь событий и обрабатывается (публикуется в MQTT) в главном цикле программы.

    • @dens966
      @dens966 Před 6 lety

      А если статус с задержкой публиковать (например, через 1000 мс), после цикла обработки PIR? Дело в том, что в умном доме при срабатывании датчика движения не обновляются кнопки соответствующих светильников: по факту лампочка горит, а кнопка в системе умного дома находится в выключенном состоянии.

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      Проще тогда в ISR только в очередь событий помещать новое событие, а при разборе очереди в основном цикле программы дергать реле. То же самое можно сделать и для кнопки. Но я так не сделал изначально, потому что если модуль будет ждать таймаута, например, MQTT брокера, и в этот момент будет нажата кнопка или сработает PIR, то реакция реле наступит только по окончании таймаута, а не мгновенно как сейчас.

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      В .ino-файле в начале метода loopExtra в цикле обработки событий ("while (Events::event_t *evt = events->getEvent())..." добавить publishRelay() перед publishMotion(), т.е.
      } else if (evt->type == Events::EVT_MOTION) {
      publishMotion(evt->data);
      станет
      } else if (evt->type == Events::EVT_MOTION) {
      publishRelay();
      publishMotion(evt->data);

    • @dens966
      @dens966 Před 6 lety

      Alex, отлично! Все заработало. Протестил - реле, вроде, не виснет.

  • @Imstalcon
    @Imstalcon Před 6 lety

    У меня три типа разных PIR сенсоров (мини, как у Вас, и один емкостный) все подключаю происходят жуткие беспорядочные ложные срабатывания. За 3 минуты по 50-100 включений. Я думал проблема в питании сенсоров, но нет. Если их подключать к ардуино нано все отрабатывает четко, ложных срабатываний нет. В чем может быть загвоздка?

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      Практически все PIR датчики питаются от 5 В и дико глючат на 3.3 В, так что все-таки питание.

  • @razboinikov10
    @razboinikov10 Před 6 lety

    А у кого нибудь есть опыт привязки реле Sonoff с этим скетчем к domoticz?

  • @user-ne3ye9gx3x
    @user-ne3ye9gx3x Před 6 lety

    Как привязать на sonoff rf две веспроводные кнопки 433 получилось только одну это что то с прошивкой? Возможно это исправит?

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      Это прошивки для Basic версии реле, не для RF!

  • @sergtuchkin3832
    @sergtuchkin3832 Před 7 lety

    Алексей, а как добавить датчик освещенности? думаю вместе с датчиком PIR он был бы очень в тему, может прикрутить менюшку вместо (рядом) с DHT?

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Именно LDR никак, ему нужен аналоговый вход, а он не разведен. А цифровой датчик освещенности потребует уже 2 ноги. Можно, конечно, завести I2C на RX и TX, но как-то не канонично... :)

    • @sergtuchkin3832
      @sergtuchkin3832 Před 7 lety

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

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      На моих PIR-сенсорах есть штатное посадочное место для LDR, вот только надо будет делитель правильный подобрать для срабатывания при нужном уровне освещенности. Причем и на микроволновых датчиках движения тоже часто место под LDR разведено.

    • @sergtuchkin3832
      @sergtuchkin3832 Před 7 lety

      а можно ссылочку на ваши PIR, воизбежание так сказать недоразумений, и маркировку ПМ LDP, можно в личку tu4kin@inbox.ru, но думаю народу и здесь будет интересно.

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Я их больше года назад покупал, так что ссылка бесполезна. LDR у меня из комплектов, которые китайцы формируют как Arduino Enhanced Kit, так что точный номинал тоже неизвестен, но это как раз не беда, потому что резистор для делителя все равно по "месту" надо подбирать.
      Вот вроде товарищ иностранец все расписывает в своем ролике czcams.com/video/2dxhbXHYEG0/video.html
      У меня распаян вроде 105 (1 МОм), возможно его придется или заменить или в параллель подстроечник напаять и потом замерить, что именно нужно напаять сверху для коррекции под конкретный LDR и конкретные условия освещения.

  • @user-rk6zw8xm3e
    @user-rk6zw8xm3e Před 6 lety

    Добрый вечер! Спасибо за труд. Использую данный код немного не по назначению. Буду очень признателен, если будет возможность показать где можно вставить вывод времени и показаний датчика на LCD 16X2 скажем раз в 1 сек. А также если возможно дополнительный клиент MQTT для чтения других показаний на том же MQTT брокере. С уважением Андрей.

    • @alexmorozov73
      @alexmorozov73  Před 6 lety

      Смотрите ролик про добавление LDR к умному реле, там подобный фреймворк рассмотрен в деталях.

  • @RobotMister
    @RobotMister Před 7 lety

    Здравствуйте. А где найти такой датчик движения?

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Там же, где и все остальное. На aliexpress и т.п.

  • @user-hp5bb9id8w
    @user-hp5bb9id8w Před 7 lety

    Заметил ложные срабатывания датчика движения. Настройка чувствительности помогла снизить частоту ложных срабатываний, но на минимальных настройках они все же остались. Как можно побороть данную проблему?

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Вероятно заменой датчика движения!
      Или вы думаете, что прерывание само ложно вызывается и это ошибка в коде? :)
      По идее питать PIR нужно от 5 вольт, на них обычно стоит стабилизатор на 3.3, который при 3.3 на входе естественно просаживает напряжение, может быть это влияет на его работу. Но тогда лучше убедиться, что с сигнальной ноги уровень не превышает 3.3, иначе можно спалить вход ESP. Мой датчик под осциллографом вел себя весьма хаотично в плане уровней на сигнальной ноге...

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Во-первых, у нормального PIR нет дребезга на ноге. А во-вторых, дребезг бы и не мешал, датчик же только на включение работает, а дребезг опасен ложными срабатываниями только на переключении вкл-выкл. Хотя если на осциллограмме будут короткие выбросы помимо четкой логической единицы, то тогда можно уйти от прерывания на тикер (как обрабатывается кнопка) и реагировать только на устойчивое состояние сигнальной ноги.
      В любом случае, надо подключить PIR отдельно и посмотреть на его поведение. И если он глючный, то попробовать другой.

    • @user-hp5bb9id8w
      @user-hp5bb9id8w Před 7 lety

      Да, скорее всего связано с питанием, но к сожалению нет ноги на плате с 5в. на модуле. Вариант только пайки напрямую. А защита от "дребезга" может помочь или это вообще с другой оперы?

    • @user-hp5bb9id8w
      @user-hp5bb9id8w Před 7 lety

      Понятно, просто пробовал на нескольких датчиках, ситуация аналогичная.

    • @alexmorozov73
      @alexmorozov73  Před 7 lety

      Дребезг не мог бы вызвать ложное срабатывание.
      Можете попробовать подправить в коде процедуру pirISR, добавив в самое ее начало код и проверить вину дребезга:
      static uint32_t lastChanged;
      if (millis() - lastChanged < 10)
      return;
      lastChanged = millis();
      И подключите датчик отдельно и посмотрите, как он себя ведет.