Как и многих гаджетоманов, меня не обошел тренд домашней автоматизации. Будучи автоматчиком по образованию и призванию, я постоянно возвращаюсь к работе с микроконтроллерами в качестве хобби.
Проживая в трехкомнатной квартире, со временем все больше и больше места стали занимать члены моей семьи, и все меньше нетронутых заповедных уголков оставалось мне для просмотра телевизора или работы на ноутбуке. Каждый член семьи непременно должен был что-то поискать в комнате при свете, и независимо от исхода поисков, уйти не погасив свет. Социальная инженерия не помогала, и было принято волевое решение — свой досуг потратить на данную задачу. А конкретно, было решено сделать дистанционное отключение света.
Уважая время читателей Хабра, сообщу, что содержание поста для узкой аудитории тех, у кого чешутся DIY руки, и он не содержит познавательного контента в других областях.
Техническое задание от второго главного члена семьи было однозначным — стены не штробить, батареек не использовать. Таким образом, основную сложность составляла не очень продуманная проводка, глубоко запрятанная под ремонтом. Потому как, в проводке на люстрах отсутствовал второй некоммутируемый провод питания (была или только фаза или только ноль).
Путем анализа возможных комплектующих и выбора доступной номенклатуры, были выбраны дешевые микроконтроллеры NRF24le1 со встроенным проприетарным радиоинтерфейсом. Несмотря на частоту 2.4.ГГц, они были несовместимы ни с WiFi ни с Bluetooth.
Первые же эксперименты показали, что потребление контроллера превышает токи утечки через нагрузку типа лампы накаливания и тем более светодиодной лампы. Лампы загорались.
Я ходил в раздумьях о решении данной задачи пару недель, как М.Фарадей, носивший моток проволоки и магнит в кармане, пока не открыл явление электромагнитной индукции.
Одновременно решался вопрос способа питания от 220В. Так как контролер однозначно располагался в чашке люстры, то емкостной параметрический источник питания был признан достаточно простым и безопасным для применения. Вчитываясь в даташит на NRF24le1 была подмечена возможность котроллера работать в большом диапазоне напряжений при этом с шагом 0,2В определять текущее напряжение питания, а также… ФОРМИРОВАТЬ прерывание по программному порогу при изменении напряжения на входе. Это сейчас, по прошествии значительного времени, мне кажется, что 2+2 сложились, а тогда мне пришлось еще ночь переспать, пока решение мне не «приснилось».
Как водиться, утром мне пришла идея: «что если дернуть напряжением на входе контроллера, чтобы сообщить ему активность на выключателе в стене». При этом параметрический емкостной делить спокойно транслировал изменение напряжения на своем входе на выход к контролеру, Стабилитрон обрезал только то, что превышало допустимое значение по даташиту контроллера, а в снижение не вмешивался.
Проведя дополнительные эксперименты, было определено, что уверенное и достаточное изменение напряжения на выходе делителя происходит при удвоении емкости. Далее тут же было решено питание на контроллер подавать непрерывно, выключатель должен быть в состоянии нормально замкнут, а кратковременное размыкание направляло ток через дополнительную к делителю емкость, тем самым снижая напряжение на время размыкания выключателя.
На КДПВ приведена итоговая схема работы для проводки с одним некоммутируемым проводом питания на люстре.
Под качель выключателя была подложена пружинка из шариковой ручки, возвращающая выключатель в положение включено. По непонятной причине кнопки отсутствовали в продаже, а заказные были неадекватно дороги.
Все, что описано выше, само по себе еще ни привело, ни к какому удобству, но открыло путь к автоматизации света. Так как контроллер теперь был постоянно «запитан», а управление по месту сохранено.
Далее, в микроконтроллер была залита программа, которая обучала его кнопке с ИК-пульта телевизора. Мне понравилась зеленая кнопка телетекста… спокойный цвет, легко ищется в темноте на ощупь, и не используется в большинстве режимов работы ТВ.
На базе примера протокола производителя описанного в nan-18 был разработан свой расширенный протокол.
nAN-18 Application Note.fm — Nordic Infocenter
Расширенный протокол предоставлял возможность построения домашней сети с выделенным концентратором и шлюзом в сеть WiFi (связка NRF-ESP). Доработанное ПО снабдило контроллер в люстре следующими функциями:
— обновление прошивки по воздуху;
— Plug&Play новых клиентов в сети, а также восстановление работоспособности клиентов при нештатном отключении питания и последующем включении;
— инвертирование состояния нагрузки с выключателя (удержание до 3 с) и кнопки ИК-пульта;
— обучение кнопке ИК-пульта;
— ввод идентификационной строки в конфиг клиента по воздуху (типа свет в зале, свет в спальне и т.д.). Потребовалось из-за специфики работы P&P, построенного на выделении динамических адресов новым клиентам. Поэтому клиент впоследствии должен был сам представляться где он/что он;
— вход в режим обучение с кнопки пульта по удержанию выключателя от 3-6 с
— вход в режим программирования по воздуху по удержанию выключателя от 6-9 с);
— перезагрузка с выключателя при удержании более 9 с;
Индикация реакций на срабатывание служебных режимов выполняется путем моргания люстрой.
Также была разработана служебная программа на Csharp для отладки и ввода наименований клиентов по мере их установки в разных комнатах.
Была успешная попытка управлять голосом через Siri посредством проекта HAP-NodeJS.
Все работало. Система в эксплуатации семьи уже более 5 лет. Но, управление с компьютера или Siri сошло на нет, практически, после первых показательных выступление перед домочадцами и друзьями. После пусконаладки под нагрузкой, в течение недели, перепрошивка по воздуху также перестала быть востребованной. Работоспособность клиента от выключателя и пульта ИК не зависит от наличия концентратора в сети и вхождения клиента в сеть.
Следует отметить, что решение на ESP перенести не удалось, т.к. емкостной параметрический делитель не тянет пиковые токи ESP (до 300мА).
ПО не выкладываю в массы, так как оно не содержит ничего интересного, перегружено избыточной функциональность, которая на практике используется только на 20%. По требованию, могу индивидуально передать по принципу «как есть», а также дополнительные фотоматериалы по компоновке элементов на плате с контроллером (придется разобрать люстру).
Основной презентацией статьи можно считать принцип интерфейса между выключателем и контроллером NRF по линии питания.
Удобство управлять светом с пульта ТВ сложно описать, оно стало настолько естественно воспринимающимся, что вспоминаешь об этом, только когда оно не срабатывает, из-за батареек в пульте )).
На этом всё! Всем добра!
Мои предыдущие статьи:
Самодельный гироскутер
Подставка DIY для ноутбука и ленивых
Проживая в трехкомнатной квартире, со временем все больше и больше места стали занимать члены моей семьи, и все меньше нетронутых заповедных уголков оставалось мне для просмотра телевизора или работы на ноутбуке. Каждый член семьи непременно должен был что-то поискать в комнате при свете, и независимо от исхода поисков, уйти не погасив свет. Социальная инженерия не помогала, и было принято волевое решение — свой досуг потратить на данную задачу. А конкретно, было решено сделать дистанционное отключение света.
Уважая время читателей Хабра, сообщу, что содержание поста для узкой аудитории тех, у кого чешутся DIY руки, и он не содержит познавательного контента в других областях.
Техническое задание от второго главного члена семьи было однозначным — стены не штробить, батареек не использовать. Таким образом, основную сложность составляла не очень продуманная проводка, глубоко запрятанная под ремонтом. Потому как, в проводке на люстрах отсутствовал второй некоммутируемый провод питания (была или только фаза или только ноль).
Путем анализа возможных комплектующих и выбора доступной номенклатуры, были выбраны дешевые микроконтроллеры NRF24le1 со встроенным проприетарным радиоинтерфейсом. Несмотря на частоту 2.4.ГГц, они были несовместимы ни с WiFi ни с Bluetooth.
Первые же эксперименты показали, что потребление контроллера превышает токи утечки через нагрузку типа лампы накаливания и тем более светодиодной лампы. Лампы загорались.
Я ходил в раздумьях о решении данной задачи пару недель, как М.Фарадей, носивший моток проволоки и магнит в кармане, пока не открыл явление электромагнитной индукции.
Одновременно решался вопрос способа питания от 220В. Так как контролер однозначно располагался в чашке люстры, то емкостной параметрический источник питания был признан достаточно простым и безопасным для применения. Вчитываясь в даташит на NRF24le1 была подмечена возможность котроллера работать в большом диапазоне напряжений при этом с шагом 0,2В определять текущее напряжение питания, а также… ФОРМИРОВАТЬ прерывание по программному порогу при изменении напряжения на входе. Это сейчас, по прошествии значительного времени, мне кажется, что 2+2 сложились, а тогда мне пришлось еще ночь переспать, пока решение мне не «приснилось».
Как водиться, утром мне пришла идея: «что если дернуть напряжением на входе контроллера, чтобы сообщить ему активность на выключателе в стене». При этом параметрический емкостной делить спокойно транслировал изменение напряжения на своем входе на выход к контролеру, Стабилитрон обрезал только то, что превышало допустимое значение по даташиту контроллера, а в снижение не вмешивался.
Проведя дополнительные эксперименты, было определено, что уверенное и достаточное изменение напряжения на выходе делителя происходит при удвоении емкости. Далее тут же было решено питание на контроллер подавать непрерывно, выключатель должен быть в состоянии нормально замкнут, а кратковременное размыкание направляло ток через дополнительную к делителю емкость, тем самым снижая напряжение на время размыкания выключателя.
На КДПВ приведена итоговая схема работы для проводки с одним некоммутируемым проводом питания на люстре.
Под качель выключателя была подложена пружинка из шариковой ручки, возвращающая выключатель в положение включено. По непонятной причине кнопки отсутствовали в продаже, а заказные были неадекватно дороги.
Все, что описано выше, само по себе еще ни привело, ни к какому удобству, но открыло путь к автоматизации света. Так как контроллер теперь был постоянно «запитан», а управление по месту сохранено.
Далее, в микроконтроллер была залита программа, которая обучала его кнопке с ИК-пульта телевизора. Мне понравилась зеленая кнопка телетекста… спокойный цвет, легко ищется в темноте на ощупь, и не используется в большинстве режимов работы ТВ.
На базе примера протокола производителя описанного в nan-18 был разработан свой расширенный протокол.
nAN-18 Application Note.fm — Nordic Infocenter
Расширенный протокол предоставлял возможность построения домашней сети с выделенным концентратором и шлюзом в сеть WiFi (связка NRF-ESP). Доработанное ПО снабдило контроллер в люстре следующими функциями:
— обновление прошивки по воздуху;
— Plug&Play новых клиентов в сети, а также восстановление работоспособности клиентов при нештатном отключении питания и последующем включении;
— инвертирование состояния нагрузки с выключателя (удержание до 3 с) и кнопки ИК-пульта;
— обучение кнопке ИК-пульта;
— ввод идентификационной строки в конфиг клиента по воздуху (типа свет в зале, свет в спальне и т.д.). Потребовалось из-за специфики работы P&P, построенного на выделении динамических адресов новым клиентам. Поэтому клиент впоследствии должен был сам представляться где он/что он;
— вход в режим обучение с кнопки пульта по удержанию выключателя от 3-6 с
— вход в режим программирования по воздуху по удержанию выключателя от 6-9 с);
— перезагрузка с выключателя при удержании более 9 с;
Индикация реакций на срабатывание служебных режимов выполняется путем моргания люстрой.
Также была разработана служебная программа на Csharp для отладки и ввода наименований клиентов по мере их установки в разных комнатах.
Была успешная попытка управлять голосом через Siri посредством проекта HAP-NodeJS.
Все работало. Система в эксплуатации семьи уже более 5 лет. Но, управление с компьютера или Siri сошло на нет, практически, после первых показательных выступление перед домочадцами и друзьями. После пусконаладки под нагрузкой, в течение недели, перепрошивка по воздуху также перестала быть востребованной. Работоспособность клиента от выключателя и пульта ИК не зависит от наличия концентратора в сети и вхождения клиента в сеть.
Следует отметить, что решение на ESP перенести не удалось, т.к. емкостной параметрический делитель не тянет пиковые токи ESP (до 300мА).
ПО не выкладываю в массы, так как оно не содержит ничего интересного, перегружено избыточной функциональность, которая на практике используется только на 20%. По требованию, могу индивидуально передать по принципу «как есть», а также дополнительные фотоматериалы по компоновке элементов на плате с контроллером (придется разобрать люстру).
Основной презентацией статьи можно считать принцип интерфейса между выключателем и контроллером NRF по линии питания.
Удобство управлять светом с пульта ТВ сложно описать, оно стало настолько естественно воспринимающимся, что вспоминаешь об этом, только когда оно не срабатывает, из-за батареек в пульте )).
На этом всё! Всем добра!
Мои предыдущие статьи:
Самодельный гироскутер
Подставка DIY для ноутбука и ленивых