Спасибо за вашу работу. отличны идеи для умного дома)). Жаль только, что прекращаете разработку проекта. мне почему-то казалось, что обзор датчика освещенности TSL2561 и расширителя портов STM8 был логическим началом глобального грандиозного проекта. Но, в любом случае, спасибо за вашу работу, всегда с нетерпением ждал ваши новые видео.))
@alexmorozov737 жыл бұрын
Вот именно чтобы перейти к глобальному грандиозному проекту и нужно от мелочей отойти. :)
@makmakkam64637 жыл бұрын
Я тоже считаю, что из Sonoff много не выжать. Единственное - это повысить универсальность устройства, добавив IR датчик (есть в вашем предыдущем проекте). Для этого есть и место и свободный пин. Ждем чего-то глобального.
@razboinikov106 жыл бұрын
А у кого нибудь есть опыт привязки реле Sonoff с этим скетчем к domoticz?
@michailyakimov37227 жыл бұрын
Здравствуйте. Спасибо за выполненную работу. Хотел бы попросить Вас о помощи. В общем, применительно к датчику движения, нужно чтобы реле выключалось при появлении движения, выжидало определенное время и если движения нет - включалось. В общем задача обратная той, что вы показывали. У меня если честно на этой прошивке не получилось так настроить реле. Заранее благодарен.
@ВикторАстахов-р5б7 жыл бұрын
Подскажите совсем для чайника, какой файл из архива скейч или надо как то все файлы загружать?
@destroyer22033876 жыл бұрын
Великолепно
@СергейЕ-ж8э7 жыл бұрын
Добрый день спасибо за труд что вы проделали. Вопрос о применении такой логики пир датчика крайне ограничен. Вы написали что хотите идею расширения. Хотелось бы защиту от ложных (вернее руки моешь а свет выключился) срабатываний было возможность установить время второго срабатывания в период сразу за первым чтоб не махать руками как мы все делаем каждые 15 сек . И желательно выбор что делать с реле после окончания выставленного времени (можно обрабатывать логикой умного дома)!
@alexmorozov737 жыл бұрын
А минуту или две установить не пробовали? Чтобы руками не махать. :)
@АлександрАлександров-д9я7д5 жыл бұрын
Здравствуйте. Sonoff RF (установленный на улице) подвязался к беспроводным датчикам движения (находящимся внутри дома) и включается - выключается при срабатывании датчиков движения. Цель была другая (включать/выключать освещение на улице). В настройках в приложении не могу найти как это отключить. Подскажите как мне отвязать датчики? Заранее спасибо.
@alexmorozov735 жыл бұрын
А почему вы мне этот вопрос задаете? Моя прошивка не для RF, а как работает базовая - я понятия не имею.
@АлександрАлександров-д9я7д5 жыл бұрын
Задал вопрос надеясь что вы подскажите... как побороть проблему...
@АлександрАлександров-д9я7д5 жыл бұрын
И будет ли вообще работать отдельно от датчиков движения? Можно ли сделать работу не в совокупности? Спасибо
@alexmorozov735 жыл бұрын
У меня нет Sonoff RF, так что увы, не подскажу.
@АлександрШевченко-м6я3ж7 жыл бұрын
Все доступно и понятно, спасибо. Вот только вопрос, как можно в Вашем проекте rfid мультиканальный подправить вкладку setup control, чтоб выглядела как в этом проекте.(чтоб pir подвесить) Если не сложно, подскажите пожалуйста. Спасибо.
@alexmorozov737 жыл бұрын
Вероятно взять нужный кусок кода из процедуры обработки страницы handleControlConfig.
@АлександрШевченко-м6я3ж7 жыл бұрын
Alex Morozov, спасибо за ответ. попробую разобраться. У Вас замечательные идеи и проекты. Возникает желание отблагодарить Вас финансово за проделанную работу.
@aquaengineering7 жыл бұрын
Это Вы что. в обычное реле Sonoff, не TH, вживили датчик температуры? Можно попросить мастер-класс про это?
@alexmorozov737 жыл бұрын
В самом первом видео о прошивке Sonoff kzbin.info/www/bejne/oouyioSJebiigNk
@dens9666 жыл бұрын
Подскажите, пожалуйста, где искать головной файл "DHT.h" в модернизированной кастомной прошивке и в прошивке, поддерживающей датчик PIR? Без него, что очевидно, компиляция скетча не происходит: #include "DHT.h" compilation terminated. ОТВЕТИТЬ
@alexmorozov736 жыл бұрын
Установить из репозитория Arduino IDE библиотеки DHT Sensor Library (Adafruit) и Adafruit Unified Sensor.
@dens9666 жыл бұрын
Большое спасибо! Все заработало.
@Imstalcon6 жыл бұрын
У меня три типа разных PIR сенсоров (мини, как у Вас, и один емкостный) все подключаю происходят жуткие беспорядочные ложные срабатывания. За 3 минуты по 50-100 включений. Я думал проблема в питании сенсоров, но нет. Если их подключать к ардуино нано все отрабатывает четко, ложных срабатываний нет. В чем может быть загвоздка?
@alexmorozov736 жыл бұрын
Практически все PIR датчики питаются от 5 В и дико глючат на 3.3 В, так что все-таки питание.
@АлексейЛученков-й8ш7 жыл бұрын
Как привязать на sonoff rf две веспроводные кнопки 433 получилось только одну это что то с прошивкой? Возможно это исправит?
@alexmorozov737 жыл бұрын
Это прошивки для Basic версии реле, не для RF!
@Imstalcon6 жыл бұрын
Можно без PIR сенсора сделать wi-fi sniffer, а можно и в связке с ним, тогда будет и по движению реагировать и засекать имеющую мобилку у того кто заходит в зону покрытия wi-fi, а мобильные телефоны с wi-fi сейчас у каждого, затем в журнале логов смотреть кто заходил в зону и с каким телефоном по базе mac адресов, iphone только малину может испортить, но они не у всех имеются :)
@Imstalcon6 жыл бұрын
у iphone есть защита от "нюхача", политика у них такая чтобы их не могли учетные сервисы посетителей в магазинах посчитать.
@krepton85you7 жыл бұрын
Так а как же на счет поддержки настенного выключателя, без изменения разводки. В общем я у себя так в люстру сделал: Сам блок управления 3-мя релюшками расположен в люстре. Но я могу выключателем на стене либо включить принудительно свет, либо выключить. Алгоритм такой: - Выключатель всегда находится в состоянии включено (и люстра естественно всегда онлайн) - Если нужно переключить реле, я выключатель перевожу в состояние выключено, затем через секунды 3 включаю и свет включается, - если нужно выключить, то опять щелкаю выключателем свет выключается - выключатель опять в нормальном состоянии включено и т.д. В общем основано за счет EEPROM памяти. Так же предусмотрен режим, аварийного отключения электричества в доме, что бы когда вновь включат электричество, то реле находилось в выключенном состоянии - работает так, если после подачи питания в люстру проходит более 5 секунд, то состояние реле (в ячейку EEPROM) записывается выключено и при следующей перезагрузке по питанию, будет восстановлено из EEPROM состояние реле выключено. Таким образом что бы переключать реле, выключателем нужно щелкать с интервалом между откл . вкл не более 3 секунд. Такая функция есть у многих китайских радио-реле, но в некоторых не предусмотрен режим аварийного отключения электричества и придя домой с работы, можно узнать что отключали электричество в доме, ведь вас будет приветствовать постоянно включенный свет. :) Я понимаю что у вас есть датчик движения сейчас, но иногда есть моменты когда нужно свет включить на постоянной основе, пока сам не выключишь, вот с помощью данной функции можно настенным выключателем переключать режимы (их может быть не только 2, но и более).
@alexmorozov737 жыл бұрын
Надо бы реальный EEPROM использовать для таких целей, хотя бы в той же STM8. У него ресурс 300К записей, а у флеша дай Бог 10К. Я правильно понял, что выключатель у Вас обычный проводной? Интересное решение. Но тут народ системами "умного дома" страдает в основном, им "малая механизация" ни к чему, хотя автономность Вашей конструкции в разы выше.
@krepton85you7 жыл бұрын
да, самый обычный проводной выключатель, он по дэфолту был установлен в стене. Сначала купил готовый китайский выключатель с датчиком движения и освещенности и думал его вместо этого подключить (кстати он тоже 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я7 жыл бұрын
"Хотелка" #2 реализована! Спасибо огромное!!! Теперь вопрос. Что нужно поправить в коде, чтобы в топик помимо 1 публиковался и 0 ( когда движения нет). Значение "0" необходимо, т.к. более сложная логика срабатывания реле идёт через "умный дом".
@alexmorozov737 жыл бұрын
Ох уж эти женщины... :) Перекачайте архив со скетчем. Но "0" прилетает буквально через секунду-другую после "1", как датчик импульс завершает.
@ЕленаАбрамова-х3я7 жыл бұрын
Alex Morozov Нет предела совершенству ;) Ещё раз огромное спасибо!!! Ждём новых ваших творений.
@dens9666 жыл бұрын
Alex, подскажите, пожалуйста, еще момент: при срабатывании датчика движения его статус публикуется в mqtt, а статус включения реле - нет. Причем, после окончания установленного периода статус выключения реле в mqtt публикуется. Куда что дописать?
@alexmorozov736 жыл бұрын
PIR обрабатывается с помощью прерывания, в котором нельзя вызывать код, способный подвесить модуль, коим является публикация в MQTT. Поэтому реле включается согласно настройкам, но его статус не публикуется. А сам статус движения помещается в очередь событий и обрабатывается (публикуется в MQTT) в главном цикле программы.
@dens9666 жыл бұрын
А если статус с задержкой публиковать (например, через 1000 мс), после цикла обработки PIR? Дело в том, что в умном доме при срабатывании датчика движения не обновляются кнопки соответствующих светильников: по факту лампочка горит, а кнопка в системе умного дома находится в выключенном состоянии.
@alexmorozov736 жыл бұрын
Проще тогда в ISR только в очередь событий помещать новое событие, а при разборе очереди в основном цикле программы дергать реле. То же самое можно сделать и для кнопки. Но я так не сделал изначально, потому что если модуль будет ждать таймаута, например, MQTT брокера, и в этот момент будет нажата кнопка или сработает PIR, то реакция реле наступит только по окончании таймаута, а не мгновенно как сейчас.
@alexmorozov736 жыл бұрын
В .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);
@dens9666 жыл бұрын
Alex, отлично! Все заработало. Протестил - реле, вроде, не виснет.
@RobotMister7 жыл бұрын
Здравствуйте. А где найти такой датчик движения?
@alexmorozov737 жыл бұрын
Там же, где и все остальное. На aliexpress и т.п.
@sergtuchkin38327 жыл бұрын
Алексей, а как добавить датчик освещенности? думаю вместе с датчиком PIR он был бы очень в тему, может прикрутить менюшку вместо (рядом) с DHT?
@alexmorozov737 жыл бұрын
Именно LDR никак, ему нужен аналоговый вход, а он не разведен. А цифровой датчик освещенности потребует уже 2 ноги. Можно, конечно, завести I2C на RX и TX, но как-то не канонично... :)
@sergtuchkin38327 жыл бұрын
нет, айтуси точно будет в ущерб уже имеющемуся функционалу, хочется чтобы PIR срабатывал только в темное время. Будем подумать как прикрутить фотодиод или фоторезистор к PIR :)
@alexmorozov737 жыл бұрын
На моих PIR-сенсорах есть штатное посадочное место для LDR, вот только надо будет делитель правильный подобрать для срабатывания при нужном уровне освещенности. Причем и на микроволновых датчиках движения тоже часто место под LDR разведено.
@sergtuchkin38327 жыл бұрын
а можно ссылочку на ваши PIR, воизбежание так сказать недоразумений, и маркировку ПМ LDP, можно в личку tu4kin@inbox.ru, но думаю народу и здесь будет интересно.
@alexmorozov737 жыл бұрын
Я их больше года назад покупал, так что ссылка бесполезна. LDR у меня из комплектов, которые китайцы формируют как Arduino Enhanced Kit, так что точный номинал тоже неизвестен, но это как раз не беда, потому что резистор для делителя все равно по "месту" надо подбирать. Вот вроде товарищ иностранец все расписывает в своем ролике kzbin.info/www/bejne/aJXbmZWOfb54fZI У меня распаян вроде 105 (1 МОм), возможно его придется или заменить или в параллель подстроечник напаять и потом замерить, что именно нужно напаять сверху для коррекции под конкретный LDR и конкретные условия освещения.
@НиколайСтариков-л6б7 жыл бұрын
Заметил ложные срабатывания датчика движения. Настройка чувствительности помогла снизить частоту ложных срабатываний, но на минимальных настройках они все же остались. Как можно побороть данную проблему?
@alexmorozov737 жыл бұрын
Вероятно заменой датчика движения! Или вы думаете, что прерывание само ложно вызывается и это ошибка в коде? :) По идее питать PIR нужно от 5 вольт, на них обычно стоит стабилизатор на 3.3, который при 3.3 на входе естественно просаживает напряжение, может быть это влияет на его работу. Но тогда лучше убедиться, что с сигнальной ноги уровень не превышает 3.3, иначе можно спалить вход ESP. Мой датчик под осциллографом вел себя весьма хаотично в плане уровней на сигнальной ноге...
@alexmorozov737 жыл бұрын
Во-первых, у нормального PIR нет дребезга на ноге. А во-вторых, дребезг бы и не мешал, датчик же только на включение работает, а дребезг опасен ложными срабатываниями только на переключении вкл-выкл. Хотя если на осциллограмме будут короткие выбросы помимо четкой логической единицы, то тогда можно уйти от прерывания на тикер (как обрабатывается кнопка) и реагировать только на устойчивое состояние сигнальной ноги. В любом случае, надо подключить PIR отдельно и посмотреть на его поведение. И если он глючный, то попробовать другой.
@НиколайСтариков-л6б7 жыл бұрын
Да, скорее всего связано с питанием, но к сожалению нет ноги на плате с 5в. на модуле. Вариант только пайки напрямую. А защита от "дребезга" может помочь или это вообще с другой оперы?
@НиколайСтариков-л6б7 жыл бұрын
Понятно, просто пробовал на нескольких датчиках, ситуация аналогичная.
@alexmorozov737 жыл бұрын
Дребезг не мог бы вызвать ложное срабатывание. Можете попробовать подправить в коде процедуру pirISR, добавив в самое ее начало код и проверить вину дребезга: static uint32_t lastChanged; if (millis() - lastChanged < 10) return; lastChanged = millis(); И подключите датчик отдельно и посмотрите, как он себя ведет.
@АндрейМашков-с1э7 жыл бұрын
Добрый вечер! Спасибо за труд. Использую данный код немного не по назначению. Буду очень признателен, если будет возможность показать где можно вставить вывод времени и показаний датчика на LCD 16X2 скажем раз в 1 сек. А также если возможно дополнительный клиент MQTT для чтения других показаний на том же MQTT брокере. С уважением Андрей.
@alexmorozov737 жыл бұрын
Смотрите ролик про добавление LDR к умному реле, там подобный фреймворк рассмотрен в деталях.
@СергейЕрмаков-ъ5з7 жыл бұрын
Вот бы еще добавить поддержку Sonoff RF - версии. У производителя даже wiki есть по такому модулю: www.itead.cc/wiki/Sonoff_RF www.itead.cc/wiki/433Mhz_RF_receiver
@alexmorozov737 жыл бұрын
Я по фотографии не гадаю. :)
@СергейЕрмаков-ъ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?