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

  Рет қаралды 6,263

Arduino и прочие питомцы

Arduino и прочие питомцы

Күн бұрын

Пікірлер: 64
@Sashka793
@Sashka793 7 жыл бұрын
Спасибо за вашу работу. отличны идеи для умного дома)). Жаль только, что прекращаете разработку проекта. мне почему-то казалось, что обзор датчика освещенности TSL2561 и расширителя портов STM8 был логическим началом глобального грандиозного проекта. Но, в любом случае, спасибо за вашу работу, всегда с нетерпением ждал ваши новые видео.))
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Вот именно чтобы перейти к глобальному грандиозному проекту и нужно от мелочей отойти. :)
@makmakkam6463
@makmakkam6463 7 жыл бұрын
Я тоже считаю, что из Sonoff много не выжать. Единственное - это повысить универсальность устройства, добавив IR датчик (есть в вашем предыдущем проекте). Для этого есть и место и свободный пин. Ждем чего-то глобального.
@razboinikov10
@razboinikov10 6 жыл бұрын
А у кого нибудь есть опыт привязки реле Sonoff с этим скетчем к domoticz?
@michailyakimov3722
@michailyakimov3722 7 жыл бұрын
Здравствуйте. Спасибо за выполненную работу. Хотел бы попросить Вас о помощи. В общем, применительно к датчику движения, нужно чтобы реле выключалось при появлении движения, выжидало определенное время и если движения нет - включалось. В общем задача обратная той, что вы показывали. У меня если честно на этой прошивке не получилось так настроить реле. Заранее благодарен.
@ВикторАстахов-р5б
@ВикторАстахов-р5б 7 жыл бұрын
Подскажите совсем для чайника, какой файл из архива скейч или надо как то все файлы загружать?
@destroyer2203387
@destroyer2203387 6 жыл бұрын
Великолепно
@СергейЕ-ж8э
@СергейЕ-ж8э 7 жыл бұрын
Добрый день спасибо за труд что вы проделали. Вопрос о применении такой логики пир датчика крайне ограничен. Вы написали что хотите идею расширения. Хотелось бы защиту от ложных (вернее руки моешь а свет выключился) срабатываний было возможность установить время второго срабатывания в период сразу за первым чтоб не махать руками как мы все делаем каждые 15 сек . И желательно выбор что делать с реле после окончания выставленного времени (можно обрабатывать логикой умного дома)!
@alexmorozov73
@alexmorozov73 7 жыл бұрын
А минуту или две установить не пробовали? Чтобы руками не махать. :)
@АлександрАлександров-д9я7д
@АлександрАлександров-д9я7д 5 жыл бұрын
Здравствуйте. Sonoff RF (установленный на улице) подвязался к беспроводным датчикам движения (находящимся внутри дома) и включается - выключается при срабатывании датчиков движения. Цель была другая (включать/выключать освещение на улице). В настройках в приложении не могу найти как это отключить. Подскажите как мне отвязать датчики? Заранее спасибо.
@alexmorozov73
@alexmorozov73 5 жыл бұрын
А почему вы мне этот вопрос задаете? Моя прошивка не для RF, а как работает базовая - я понятия не имею.
@АлександрАлександров-д9я7д
@АлександрАлександров-д9я7д 5 жыл бұрын
Задал вопрос надеясь что вы подскажите... как побороть проблему...
@АлександрАлександров-д9я7д
@АлександрАлександров-д9я7д 5 жыл бұрын
И будет ли вообще работать отдельно от датчиков движения? Можно ли сделать работу не в совокупности? Спасибо
@alexmorozov73
@alexmorozov73 5 жыл бұрын
У меня нет Sonoff RF, так что увы, не подскажу.
@АлександрШевченко-м6я3ж
@АлександрШевченко-м6я3ж 7 жыл бұрын
Все доступно и понятно, спасибо. Вот только вопрос, как можно в Вашем проекте rfid мультиканальный подправить вкладку setup control, чтоб выглядела как в этом проекте.(чтоб pir подвесить) Если не сложно, подскажите пожалуйста. Спасибо.
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Вероятно взять нужный кусок кода из процедуры обработки страницы handleControlConfig.
@АлександрШевченко-м6я3ж
@АлександрШевченко-м6я3ж 7 жыл бұрын
Alex Morozov, спасибо за ответ. попробую разобраться. У Вас замечательные идеи и проекты. Возникает желание отблагодарить Вас финансово за проделанную работу.
@aquaengineering
@aquaengineering 7 жыл бұрын
Это Вы что. в обычное реле Sonoff, не TH, вживили датчик температуры? Можно попросить мастер-класс про это?
@alexmorozov73
@alexmorozov73 7 жыл бұрын
В самом первом видео о прошивке Sonoff kzbin.info/www/bejne/oouyioSJebiigNk
@dens966
@dens966 6 жыл бұрын
Подскажите, пожалуйста, где искать головной файл "DHT.h" в модернизированной кастомной прошивке и в прошивке, поддерживающей датчик PIR? Без него, что очевидно, компиляция скетча не происходит: #include "DHT.h" compilation terminated. ОТВЕТИТЬ
@alexmorozov73
@alexmorozov73 6 жыл бұрын
Установить из репозитория Arduino IDE библиотеки DHT Sensor Library (Adafruit) и Adafruit Unified Sensor.
@dens966
@dens966 6 жыл бұрын
Большое спасибо! Все заработало.
@Imstalcon
@Imstalcon 6 жыл бұрын
У меня три типа разных PIR сенсоров (мини, как у Вас, и один емкостный) все подключаю происходят жуткие беспорядочные ложные срабатывания. За 3 минуты по 50-100 включений. Я думал проблема в питании сенсоров, но нет. Если их подключать к ардуино нано все отрабатывает четко, ложных срабатываний нет. В чем может быть загвоздка?
@alexmorozov73
@alexmorozov73 6 жыл бұрын
Практически все PIR датчики питаются от 5 В и дико глючат на 3.3 В, так что все-таки питание.
@АлексейЛученков-й8ш
@АлексейЛученков-й8ш 7 жыл бұрын
Как привязать на sonoff rf две веспроводные кнопки 433 получилось только одну это что то с прошивкой? Возможно это исправит?
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Это прошивки для Basic версии реле, не для RF!
@Imstalcon
@Imstalcon 6 жыл бұрын
Можно без PIR сенсора сделать wi-fi sniffer, а можно и в связке с ним, тогда будет и по движению реагировать и засекать имеющую мобилку у того кто заходит в зону покрытия wi-fi, а мобильные телефоны с wi-fi сейчас у каждого, затем в журнале логов смотреть кто заходил в зону и с каким телефоном по базе mac адресов, iphone только малину может испортить, но они не у всех имеются :)
@Imstalcon
@Imstalcon 6 жыл бұрын
у iphone есть защита от "нюхача", политика у них такая чтобы их не могли учетные сервисы посетителей в магазинах посчитать.
@krepton85you
@krepton85you 7 жыл бұрын
Так а как же на счет поддержки настенного выключателя, без изменения разводки. В общем я у себя так в люстру сделал: Сам блок управления 3-мя релюшками расположен в люстре. Но я могу выключателем на стене либо включить принудительно свет, либо выключить. Алгоритм такой: - Выключатель всегда находится в состоянии включено (и люстра естественно всегда онлайн) - Если нужно переключить реле, я выключатель перевожу в состояние выключено, затем через секунды 3 включаю и свет включается, - если нужно выключить, то опять щелкаю выключателем свет выключается - выключатель опять в нормальном состоянии включено и т.д. В общем основано за счет EEPROM памяти. Так же предусмотрен режим, аварийного отключения электричества в доме, что бы когда вновь включат электричество, то реле находилось в выключенном состоянии - работает так, если после подачи питания в люстру проходит более 5 секунд, то состояние реле (в ячейку EEPROM) записывается выключено и при следующей перезагрузке по питанию, будет восстановлено из EEPROM состояние реле выключено. Таким образом что бы переключать реле, выключателем нужно щелкать с интервалом между откл . вкл не более 3 секунд. Такая функция есть у многих китайских радио-реле, но в некоторых не предусмотрен режим аварийного отключения электричества и придя домой с работы, можно узнать что отключали электричество в доме, ведь вас будет приветствовать постоянно включенный свет. :) Я понимаю что у вас есть датчик движения сейчас, но иногда есть моменты когда нужно свет включить на постоянной основе, пока сам не выключишь, вот с помощью данной функции можно настенным выключателем переключать режимы (их может быть не только 2, но и более).
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Надо бы реальный EEPROM использовать для таких целей, хотя бы в той же STM8. У него ресурс 300К записей, а у флеша дай Бог 10К. Я правильно понял, что выключатель у Вас обычный проводной? Интересное решение. Но тут народ системами "умного дома" страдает в основном, им "малая механизация" ни к чему, хотя автономность Вашей конструкции в разы выше.
@krepton85you
@krepton85you 7 жыл бұрын
да, самый обычный проводной выключатель, он по дэфолту был установлен в стене. Сначала купил готовый китайский выключатель с датчиком движения и освещенности и думал его вместо этого подключить (кстати он тоже 2-х проводной), но кое кому это не сильно понравилось т.к. необходим был режим "постоянно включено". :) И тут все понеслось - блок управления люстрой на 3 раздельных канала, с датчиком движения, радио-брелком (315Мгц), управлением по mqtt (тут вообще куча режимов, можно выбрать конкретно с каким каналом что бы работал датчик движения, установить время свечения после сработки датчика движения, видно сколько времени прошло с момента последнего движения, раздельное управление каждым каналом). С радио-брелка управление такое: 4 кнопки есть, A,B,C - раздельно управляют 3-мя лампами, режимы переключаются по кругу (1- лампа выключена и датчик движения для ее тоже, 2- лампа включена, датчик движения выключен, 3- режим лампа включена и датчик движения тоже, при активации 3-ого режима мигает 2 раза данной лампой), кнопка D делает тоже самое только одновременно со всеми лампами. Настенный выключатель имеет всего 2 режима у меня: 1-ый все 3 лампы либо выключены, либо управляются датчиком движения (зависит от установок при помощи MQTT или радио-брелка, если управление по датчику то все 3 лампы мигнут 2 раза), 2-ой все 3 лампы включены, датчик движения выключен. При этом настенный выключатель так же синхронизирован с MQTT, ну в смысле видно что лампы принудительно включены и не потухнут сами ни когда, пока их вручную не выключить.
@ЕленаАбрамова-х3я
@ЕленаАбрамова-х3я 7 жыл бұрын
"Хотелка" #2 реализована! Спасибо огромное!!! Теперь вопрос. Что нужно поправить в коде, чтобы в топик помимо 1 публиковался и 0 ( когда движения нет). Значение "0" необходимо, т.к. более сложная логика срабатывания реле идёт через "умный дом".
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Ох уж эти женщины... :) Перекачайте архив со скетчем. Но "0" прилетает буквально через секунду-другую после "1", как датчик импульс завершает.
@ЕленаАбрамова-х3я
@ЕленаАбрамова-х3я 7 жыл бұрын
Alex Morozov Нет предела совершенству ;) Ещё раз огромное спасибо!!! Ждём новых ваших творений.
@dens966
@dens966 6 жыл бұрын
Alex, подскажите, пожалуйста, еще момент: при срабатывании датчика движения его статус публикуется в mqtt, а статус включения реле - нет. Причем, после окончания установленного периода статус выключения реле в mqtt публикуется. Куда что дописать?
@alexmorozov73
@alexmorozov73 6 жыл бұрын
PIR обрабатывается с помощью прерывания, в котором нельзя вызывать код, способный подвесить модуль, коим является публикация в MQTT. Поэтому реле включается согласно настройкам, но его статус не публикуется. А сам статус движения помещается в очередь событий и обрабатывается (публикуется в MQTT) в главном цикле программы.
@dens966
@dens966 6 жыл бұрын
А если статус с задержкой публиковать (например, через 1000 мс), после цикла обработки PIR? Дело в том, что в умном доме при срабатывании датчика движения не обновляются кнопки соответствующих светильников: по факту лампочка горит, а кнопка в системе умного дома находится в выключенном состоянии.
@alexmorozov73
@alexmorozov73 6 жыл бұрын
Проще тогда в ISR только в очередь событий помещать новое событие, а при разборе очереди в основном цикле программы дергать реле. То же самое можно сделать и для кнопки. Но я так не сделал изначально, потому что если модуль будет ждать таймаута, например, MQTT брокера, и в этот момент будет нажата кнопка или сработает PIR, то реакция реле наступит только по окончании таймаута, а не мгновенно как сейчас.
@alexmorozov73
@alexmorozov73 6 жыл бұрын
В .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 6 жыл бұрын
Alex, отлично! Все заработало. Протестил - реле, вроде, не виснет.
@RobotMister
@RobotMister 7 жыл бұрын
Здравствуйте. А где найти такой датчик движения?
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Там же, где и все остальное. На aliexpress и т.п.
@sergtuchkin3832
@sergtuchkin3832 7 жыл бұрын
Алексей, а как добавить датчик освещенности? думаю вместе с датчиком PIR он был бы очень в тему, может прикрутить менюшку вместо (рядом) с DHT?
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Именно LDR никак, ему нужен аналоговый вход, а он не разведен. А цифровой датчик освещенности потребует уже 2 ноги. Можно, конечно, завести I2C на RX и TX, но как-то не канонично... :)
@sergtuchkin3832
@sergtuchkin3832 7 жыл бұрын
нет, айтуси точно будет в ущерб уже имеющемуся функционалу, хочется чтобы PIR срабатывал только в темное время. Будем подумать как прикрутить фотодиод или фоторезистор к PIR :)
@alexmorozov73
@alexmorozov73 7 жыл бұрын
На моих PIR-сенсорах есть штатное посадочное место для LDR, вот только надо будет делитель правильный подобрать для срабатывания при нужном уровне освещенности. Причем и на микроволновых датчиках движения тоже часто место под LDR разведено.
@sergtuchkin3832
@sergtuchkin3832 7 жыл бұрын
а можно ссылочку на ваши PIR, воизбежание так сказать недоразумений, и маркировку ПМ LDP, можно в личку tu4kin@inbox.ru, но думаю народу и здесь будет интересно.
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Я их больше года назад покупал, так что ссылка бесполезна. LDR у меня из комплектов, которые китайцы формируют как Arduino Enhanced Kit, так что точный номинал тоже неизвестен, но это как раз не беда, потому что резистор для делителя все равно по "месту" надо подбирать. Вот вроде товарищ иностранец все расписывает в своем ролике kzbin.info/www/bejne/aJXbmZWOfb54fZI У меня распаян вроде 105 (1 МОм), возможно его придется или заменить или в параллель подстроечник напаять и потом замерить, что именно нужно напаять сверху для коррекции под конкретный LDR и конкретные условия освещения.
@НиколайСтариков-л6б
@НиколайСтариков-л6б 7 жыл бұрын
Заметил ложные срабатывания датчика движения. Настройка чувствительности помогла снизить частоту ложных срабатываний, но на минимальных настройках они все же остались. Как можно побороть данную проблему?
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Вероятно заменой датчика движения! Или вы думаете, что прерывание само ложно вызывается и это ошибка в коде? :) По идее питать PIR нужно от 5 вольт, на них обычно стоит стабилизатор на 3.3, который при 3.3 на входе естественно просаживает напряжение, может быть это влияет на его работу. Но тогда лучше убедиться, что с сигнальной ноги уровень не превышает 3.3, иначе можно спалить вход ESP. Мой датчик под осциллографом вел себя весьма хаотично в плане уровней на сигнальной ноге...
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Во-первых, у нормального PIR нет дребезга на ноге. А во-вторых, дребезг бы и не мешал, датчик же только на включение работает, а дребезг опасен ложными срабатываниями только на переключении вкл-выкл. Хотя если на осциллограмме будут короткие выбросы помимо четкой логической единицы, то тогда можно уйти от прерывания на тикер (как обрабатывается кнопка) и реагировать только на устойчивое состояние сигнальной ноги. В любом случае, надо подключить PIR отдельно и посмотреть на его поведение. И если он глючный, то попробовать другой.
@НиколайСтариков-л6б
@НиколайСтариков-л6б 7 жыл бұрын
Да, скорее всего связано с питанием, но к сожалению нет ноги на плате с 5в. на модуле. Вариант только пайки напрямую. А защита от "дребезга" может помочь или это вообще с другой оперы?
@НиколайСтариков-л6б
@НиколайСтариков-л6б 7 жыл бұрын
Понятно, просто пробовал на нескольких датчиках, ситуация аналогичная.
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Дребезг не мог бы вызвать ложное срабатывание. Можете попробовать подправить в коде процедуру pirISR, добавив в самое ее начало код и проверить вину дребезга: static uint32_t lastChanged; if (millis() - lastChanged < 10) return; lastChanged = millis(); И подключите датчик отдельно и посмотрите, как он себя ведет.
@АндрейМашков-с1э
@АндрейМашков-с1э 7 жыл бұрын
Добрый вечер! Спасибо за труд. Использую данный код немного не по назначению. Буду очень признателен, если будет возможность показать где можно вставить вывод времени и показаний датчика на LCD 16X2 скажем раз в 1 сек. А также если возможно дополнительный клиент MQTT для чтения других показаний на том же MQTT брокере. С уважением Андрей.
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Смотрите ролик про добавление LDR к умному реле, там подобный фреймворк рассмотрен в деталях.
@СергейЕрмаков-ъ5з
@СергейЕрмаков-ъ5з 7 жыл бұрын
Вот бы еще добавить поддержку Sonoff RF - версии. У производителя даже wiki есть по такому модулю: www.itead.cc/wiki/Sonoff_RF www.itead.cc/wiki/433Mhz_RF_receiver
@alexmorozov73
@alexmorozov73 7 жыл бұрын
Я по фотографии не гадаю. :)
@СергейЕрмаков-ъ5з
@СергейЕрмаков-ъ5з 7 жыл бұрын
Там радиомодуль подключен параллельно кнопке на 15 пин. Нопри этом умеет програмироватся для запоминания пульта. Чтобы вогнать его в этот режим (из инструкции www.itead.cc/blog/user-guide-for-sonoff-slampher): 1) Быстро нажмите кнопку «SET» на Sonoff дважды, светодиод на Sonoff моргнет один раз, а затем одну из кнопок пульта один раз зажать на несколько секунд для сопряжения. 2) Чтобы отменить сопряжение, вам нужно быстро нажать кнопку «SET» на Sonoff 3 раза. Так вот если я не ошибаюсь, в вашем коде предусмотрено двойное нажатие - включается нагрузка с автовыключением. При этом возникает некий конфликт: радиомодуль одновременно с этим входит в режим программирования пульта))). Поменять логику радиомодуля не представляется возможным, т.к. за это отвечает EFM8BB10F2G-A-QFN20 на плате со своей собственной отдельной прошивкой. Может имеет смысл както поменять логику включения нагрузки с таймером отключения? Или позволить через web отключать данный режим для Sonoff RF?
Sonoff Relay модернизация кастомной прошивки
10:34
Arduino и прочие питомцы
Рет қаралды 7 М.
Sonoff Relay Controller для Android
13:03
Arduino и прочие питомцы
Рет қаралды 6 М.
Sonoff Relay альтернативная прошивка
31:35
Arduino и прочие питомцы
Рет қаралды 41 М.
05 - Беспилотник на ESP32 - Организация радиоканала
28:50
Беспилотник на ESP32
Рет қаралды 5 М.
Weather station on ESP8266, MQTT and EPaper display
28:50
Home Made
Рет қаралды 34 М.
Уличный термометр для умного дома MajorDoMo
20:06
Электроника в объективе
Рет қаралды 43 М.
Прошивка для Sonoff Basic Relay с поддержкой ДУ
16:30
Arduino и прочие питомцы
Рет қаралды 10 М.