RSS блога
Подписка
С чем едят Arduino Uno
- Цена: $9.98
- Перейти в магазин
Все Arduino Uno одинаковы, так что текст не столько про то, что мне пришло, сколько про то, что из него получилось и как с помощью двух резисторов, конденсатора и зубочистки имитировать пульт радиовыключателей. Т.е. похвастаться и, если повезет — поделиться идеями.
Вместе c Uno заказал: Ethernet-шилд со слотом microSD (Wiznet W5100), комплект из двух блоков по 4 реле в каждом, два комплекта простейших OOK/ASK приемников и передатчиков. Ну и проводочки, куда без них?
В двух словах. Игрушка потрясающая, и уже понимает мои команды через интернет, апп в смартфоне и голосовые команды в нем же.
ps. Текст пишу уже почти месяц (можете представить, сколько там всякой фигни), надеюсь, что читать будете меньше, но на всякий случай запасайтесь попкорном.
АПДЕЙТ 30.10.2013
Для тех, кому интересно: полностью поменялась процедура управления выключателями Livolo. Теперь все оформлено в виде отдельной библиотеки Livolo с возможностью имитации множества пультов (методом проб и ошибок).
Скачать:
Библиотека управления выключателями Livolo с помощью Arduino
Сначала сразу о покупках и впечатлениях о продавце.
Упаковка — коробка из плотного картона, обмотанная традиционным желтым скотчем. Ниток и кожзама нет, поэтому ничего не торчит и не пахнет. Внутри коробки все уложено довольно плотно, и без дополнительной защиты/амортизации. Плохо или нет — не знаю, доехало целым.
Arduino Uno
Что характерно, на плате надпись Arduino, хотя у продавца картинка c Funduino. С другой стороны, я все равно оригинал от копии не отличу. Да и не надо это — функционально они идентичны.
Ethernet-шилд Wiznet W5100, $9.87
Удобно, что он без проблем встает на посадочные места Uno. Что касается слота SD, то это вещь с одной стороны полезная, с другой стороны — для меня пока абстрактная, поскольку до ее рабочего применения я еще не дошел.
комплект из двух блоков по 4 реле, $13.88 за комплект
Как видите, реле уже с управляющим каскадом на борту, поэтому управляются Arduno напрямую, без дополнительных компонентов. Достаточно общей земли и цифрового выхода контроллера. Каждое реле можно использовать в режимах NO/NC (нормально разомкнут/замкнут). И у каждого реле — светодиод-индикатор включения.
Питать от выхода Arduino, несмотря на совпадение напряжения (5В) мне кажется не лучшей идеей, поскольку на одно реле заявлен ток порядка 80 мА. Так что если включить все четыре, то получится под 400 мА, а это для встроенного стабилизатора уже слишком. Резюме — управлять можно с Arduino, а вот для питания катушек реле нужен отдельный источник (ну, в том или ином виде).
Зачем мне 8 реле? Я не был уверен, что разберусь с управлением по радиоканалу, поэтому рассчитывал на то, что прицеплю реле к кнопкам существующих пультов ДУ. Восемь каналов на первое время должно было хватить. К тому же, под этот проект уже было готовое решение Eight Control.
комплект из двух пар приемник-передатчик, $5.99 за комплект
Очень спартанские вещи. Передатчик, если я правильно понял, состоит практически из резонатора и ВЧ-транзистора. В приемнике вместо транзисторов усилитель. Поставляются без антенн, так что пришлось заняться творчеством и сделать из проводочков требуемое. Для диапазона 433 МГц длина антенны — около 17,3 см. Для экономии места можно свернуть в трубочку, но это же ухудшит характеристики.
Передатчик:
По субъективному ощущению, передатчики неплохие. По крайней мере, при своих 5В питания они довольно надежно переключают все, что я хочу. И делают это явно лучше, чем штатные пульты розеток при 12В питания.
Приемники ничем выдающимся не отличаются. Сигнал «своего» передатчика принимают на отлично, но, скажем, метеостанцию четко видят только если беспроводной датчик положить рядом с антенной.
Приемник:
макетные проводочки мама-папа. Две «ленты» по 40 штук длиной по 20 см. $8.68 за комплект.
Будьте внимательны, у продавцов на Aliexpress есть очень нехорошая привычка писать в названии продукта что-то вроде 2pcs, что как бы намекает, что это две штуки наименования за указанную цену. Но это немного не так, и сделано для стимуляции импульсивных покупок.
Например, в описании платы Arduino Uno написано, что «UNO R3 MEGA328P ATMEGA16U2 + USB Cable (1UNO R3 + 1 cables) Best prices & Free shiping !!!», указана цена $9.98 и добавлено, что это lot (2 pieces/lot).
На первый взгляд кажется, что это ДВЕ (profit!!!) платы Arduino Uno. Но по факту за 2 pieces/lot скрывается именно то, что написано в названии и, чуть ниже в описании (к чести китайцев — огромными буквами). Именно:
— Arduino Uno — 1 штука
— USB-кабель — 1 штука
Итого: ДВЕ штуки
Т.е. в данном случае один лот — это плата + кабель. Извиняет продавца разве что то, что цена средняя по рынку.
Что еще мне не понравилось в этом заказе. Из комплекта двух реле пришел лишь один блок. Продавец отвечает вяло, долго, но в конце концов согласился выслать второй блок.
В остальном все терпимо. Доставка заняла примерно месяц, упаковка — довольно жесткая картонная коробка, обмотанная скотчем. Внутри все в антистатических пакетиках, плата Ethernet-шилда наколота на полипропиленовые (?) подушечки, чтобы не гнулись контакты.
Доехало все в лучшем виде. Но с учетом какой-то заторможенности продавца, да и еще реле этих, не думаю, что буду у него еще что-то покупать.
По моим наблюдениям, 90% покупающих Arduino, мигают лампочками или крутят моторчики. Я отношусь к первой категории, а поскольку дома четыре радиорозетки и столько же радиоуправляемых выключателей света, понятно, чем я собрался управлять.
Это объясняет и комплект:
— Arduino — центральный контроллер
— Приемник — для обучения командам
— Передатчик — трансляция команд на радиорозетки и выключатели
— Ethernet-шилд — управление по LAN/WAN
— Реле — на всякий случай, как исполнители, если не удастся прочитать команды пультов. Тогда пульты можно просто припаять к реле и закрыть вопрос с обучением командам.
Мое ТЗ на систему вкратце выглядит вот так:
1) управление безымянными радиорозетками и выключателями света Livolo через браузер на любом компьютере/смартфоне/планшете в домашней сети
2) Удаленное управление -//- через интернет
3) Управление (пп. 1 и 2) через апп
4) Голосовое управление (пп. 1 и 2) с помощью смартфона
5) Автоматический рестарт модема, если нет соединения с интернетом и уведомление об этом через почту/Твиттер
6) Дистанционное включение и выключение веб-камеры
7) Перспективные функции управления: автоматическое управление светом с помощью датчиков движения и освещения
8) Перспективные функции контроллера: получение данных с беспроводного датчика метеостанции, функции охранно-пожарной сигнализации
Теперь вкратце итоги.
Вот так выглядит готовая коробочка с Arduino в интерьере:
Вот так — отдельно:
Пульт ДУ на смартфоне:
Текущий функционал:
1) Управление четырьмя радиорозетками и четырьмя выключателями Livolo
а) Через браузер
б) Через апп в смартфоне
в) Через голосовое управление в смартфоне
2) Автоматический/ручной рестарт модема/маршрутизатора, если нет интернета
3) Дистанционное включение/выключение домашней веб-камеры
4) Автоматическое включение/выключение света в гардеробе по беспроводному датчику открытия двери (работает почему-то нестабильно, но я не разобрался почему)
5) Предупреждение о протечках (беспроводной датчик протечки)
6) Возможность подключения дополнительных беспроводных датчиков задымления, открытия дверей, движения и протечки от обычных китайских сигнализаций
8) Уведомление по e-mail о том, что кто-то звонит в звонок входной двери
7) Уведомление о важных событиях по e-mail
Скетчи:
1) Тестовый скетч для управления выключателями Livolo
2) Скетч с почти полным функционалом (без звонка и небольших оптимизаций), как образец (уведомления через Twitter закомментированы — экономлю память и скорость, но можете попробовать включить)
В первую очередь я, понятно, помигал встроенным в Arduino светодиодом на всем известном пине #13, а потом прицепил к плате приемник и воспользовался отличной библиотекой RC-Switch, которая умеет читать и передавать команды пультов управления радиорозетками. Получилось все с первого раза и без вопросов.
Для проверки подключил к Arduino передатчик и немного помигал домашним светом, подключенным через радиорозетки. Следующим номером попробовал прочитать коды пульта освещения, но затея провалилась: RC-Switch не смог принять команды Livolo.
Радиорозетки вот такие:
Речь идет о радиовыключателях Livolo, приобретенных около года назад и замечательно описанных Online_buyer.
Я не особенно надеялся на собственный интеллект в решении этой проблемы, так что сначала попробовал самый простой способ.
Одна из идей была аналогична тому, как давным давно поступали с сигналами ИК-пультов. Т.е. записать сигнал в качестве звука и потом его воспроизводить. Но выяснилось, что Arduino не обладает достаточной производительностью для воспроизведения звука с необходимым качеством, хотя для платформы существует WAV-плеер и воспроизведение действительно работает (для этой цели очень кстати пришелся слот SD на Ethernet-шилде).
Поэтому я перешел к следующему пункту программы. А именно — решил попробовать повторить форму сигнала, не вдаваясь в декодирование. Исходил из того, что в пультах стоят PIC16F690, т.е. примерно такие же по производительности кристаллы, что и у меня в Arduino и обычный OOK/ASK передатчик (PT4450). Из этого я сделал вывод, что если правильно посчитать длину импульсов в команде, то шансы повторить ее довольно высоки: модуляция совпадает, скорость микроконтроллера, несмотря на высокоуровневое программирование, — тоже.
Так что подключил приемник через делитель к микрофонному входу ноутбука, запустил Audacity и несколько раз, с интервалом в 2-3 секунды нажал одну и ту же кнопку на пульте. Это было нужно, чтобы убедиться в идентичности команд, или понять, что команды меняются и без декодирования задача не решается.
Начало передачи определяется довольно легко даже при минимальном масштабе. Если чуть увеличить — уже можно прикинуть длину командного пакета: около секунды. Причем в отличие от пультов розеток, здесь нет четко выраженных пауз синхронизации, разделяющих повторяющиеся команды.
При увеличении начинает прослеживаться хорошо заметный шаблон команды. Это первая удача. Вторая удача заключается в том, что команды в пакете совершенно идентичны, и при последующих нажатиях на кнопку никаких изменений не происходит. Вот на этом месте можно немного выдохнуть — динамического кода нет, значит, жить проще.
Видно, что в данном случае физический уровень представлен пятью различными импульсами (длинный вниз, короткий вверх, короткий вниз, средний вверх, средний вниз). Повторюсь, про логику я ничего не знаю, моя задача — имитация сигнала в радиоканале.
Поэтому на следующем шаге последовательно увеличивал каждый интересующий меня импульс и буквально на глаз определял его длительность по линейке Audacity. В качестве вспомогательного инструмента можно использовать ProtocolAnalyzer, но там сигнал выглядит немного по-другому, и длину самого короткого импульса с ним прикинуть не удалось. Зато по относительно длинным импульсам (от 300 мксек) есть шансы посмотреть ориентировочные величины, которые помогают при расшифровке в Audacity.
Здесь красным и синим выделены возможные границы импульсов, причем истина также может быть где-то между, потому что в цифровом сигнале фронты вертикальные, а здесь — косые из-за особенностей аналоговой передачи.
Для примера смотрим на длинный вниз, ориентируемся по красным линиям. Получается: 2,11680 — 2,11624 = 0,56 мс. Умножаем на 1000 и получаем 560 микросекунд. Я это округлил до 550. Кстати, округление — тоже на глаз, в пределах разумного. Т.е. 10 мксек можно округлить, а вот 50 — уже чревато тем, что принимающая сторона не поймет.
После того, как прикинул длины импульсов, записал их последовательность в «сыром» виде. То есть — если вверх короткий, значит так и пишем — “вверх короткий”, а не “1” или “не знаю, что за хрень такая, вроде и не ноль, и не единица”. В этом деле очень, кстати, помогает зубочистка, которой удобно указывать на импульсы, потому что иначе у меня просто глаза в кучку собираются при попытке пересчитать пики и спады.
Когда есть длины импульсов и их последовательность, написал простой код для Arduino, подключил передатчик, и передал сигнал. Одновременно записал его через описанную выше конструкцию в Audacity, чтобы сравнить два пакета — оригинальный Livolo и только что сгенерированный. Лампочка не среагировала, зато в Audacity стали заметны расхождения между длительностью импульсов, которые я снова подкорректировал на глаз.
В целом, такая корректировка может происходить до полного удовлетворения. Но мне повезло: буквально на второй итерации я оказался в полной темноте, т.е. свет выключился по сигналу уже моего передатчика, подключенного к Arduino.
Осталось только записать в Audacity сигналы всех нужных кнопок, переписать их последовательности импульсов и, в общем, все.
Вот тестовый код для Livolo с командами одиннадцати кнопок моего пульта (0 — 9 и «Выключить все»). Так как выключатели Livolo обучаются, думаю, можно их запросто обучить этим командам — нужно только перевести выключатель в режим обучения, и «нажать» нужную кнопку.
Теперь все готово к следующему шагу — то есть, управлению.
За основу я взял скетч в котором комбинируется RC-Switch и классический веб-сервер для Arduino, все у того же автора RC-Switch.
Его можно адаптировать как угодно, поэтому я немного расширил функционал. А именно — добавил контроль соединения с интернетом, перезагрузку модема, если интернета нет и уведомление через почту/Твиттер об этом удивительном факте. Строго говоря, это экспериментальные функции, особенно Твиттер, но почта имеет двойной смысл: дело в том, что mail.ru включает в заголовки IP-отправителя. Это очень актуально потому что у меня дома веб-камера, которую я бы хотел смотреть, например, в отпуске. Но иногда дома выключают электричество, или модем просто зависает, а при перезагрузке меняется его адрес, так что «кино» заканчивается. Поэтому уведомление по почте автоматически дает мне новый внешний IP.
Другие изменения — практически полное избавление от секции HTML, потому что если писать в ней все команды для простого управления через браузер, Arduino в какой-то момент зависает еще на старте. Я решил, что это из-за ограниченных ресурсов Arduino, и не стал вдаваться в этот вопрос. Поэтому получилось, что управлять через браузер можно, но команды необходимо вводить в строке адреса. Например: 192.168.1.1/?1-on.
Если будете повторять — обратите внимание, что браузеры имеют обыкновение кешировать странички. В результате управление в какой-то момент перестает работать и помогает только очистка кеша.
Первые два пункта ТЗ считаем выполненными.
У меня смартфон с Android, для которого есть замечательный апп Tasker. Именно его я и хотел использовать для автоматизации.
Прелесть Tasker еще и в том, что сценарии и диалоги, созданные в нем можно экспортировать в самостоятельное приложение, которое устанавливается на девайсы с Android точно так же, как и любой другой апп. Иными словами, плюс в том, что не нужно покупать Tasker для каждого телефона и планшета: достаточно всего одной полнофункциональной версии, чтобы развернуть управление на всех гаджетах.
Процедура такова:
1) Методично создаем новые задачи Tasks в категории Net — GET request. В параметрах запроса нужно только одно: заполнить строчку адреса полной командой. В моем случае, к примеру, 192.168.1.1/?1-on.
2) Открываем редактор сцен Scenes, и там добавляем нужные кнопочки, не забыв назначить на короткое нажатие одну из ранее созданных задач.
3) Создаем служебные задачи: Show Scene и Destroy Scene, они потребуются, чтобы открывать и закрывать виртуальный пульт ДУ. В принципе, можно обойтись без Destroy, нужно только в Show Scene убедиться, что включена опция кнопки выхода.
Вот, в общем-то, и все. Таким образом реализуется третий пункт ТЗ: управление через апп на смартфоне.
Для четвертого пункта я воспользовался еще одним замечательным аппом — Utter! Voice Commands Beta, поскольку он интегрируется с Tasker и может выполнять его задачи по голосовой команде.
Но настройка требует просто ангельского терпения. Процедура простая: несмотря на требование Utter! устанавливаем русский язык голосового поиска Android. Потом открываем интерфейс Utter! (важно — не распознавание команд, а интерфейс программы) — Customisation — Create commands — Run Tasker Task — выбираем задачу и пытаемся два раза подряд одинаково произнести команду. Если получилось — не расслабляемся и говорим еще два слова: для успешного выполнения команды и ошибки.
Если Utter! совсем не понимает, то движок поиска можно оставить английским и найти любое слово/фразу, которое можете произнести два раза подряд одинаково. Это же касается сообщений для подтверждения и ошибки. Потом просто идем в пункт Edit commands и заменяем тексты на нужные. Только помним, что Utter! не умеет говорить по-русски, и поэтому сообщения о подтверждении и ошибке лучше записать по-английски или транслитом.
Да, не пугаемся, когда Utter! при повторении команды на русском не проговаривает ее. Это, опять же, следствие того, что апп не умеет пользоваться русским голосовым движком.
В общем, задача муторная, но решаемая.
Для пунктов 5 и 6 ТЗ я воспользовался блоком реле, а не беспроводными розетками, поскольку модем, камера и Arduino можно расположить друг рядом с другом.
А чтобы не резать провода штатных сетевых адаптеров, подключил питание модема и камеры через разъемы, коммутируемые реле. Всего получилось две пары разъемов, при этом с разъема камеры (5В) я беру питание для блока реле, передатчика и приемника, а с разъема модема (9В) — для Arduino. Это позволяет минимизировать количество сетевых адаптеров, иначе ниша для всякого такого оборудования рискует превратиться в что-то с блекджеком и, да, вы поняли.
В итоге коробочка с Arduino выглядит вот таким образом. Передатчик просто замотал изолентой, чтобы он там чего не закоротил ненароком. Мне это показалось более разумным, чем заливать термоклеем. В финальной версии рядом лежит и приемник, точно так же замотанный изолентой.
По секрету: это фрагмент текста относится уже к третьему, так сказать, поколению функционала моей коробочки. Первое — управление радиорозетками. Второе — неожиданная возможность управления радиовыключателями.
А это поколение относится к удивительному открытию. Оказывается, дешевые китайские беспроводные сигнализации комплектуются датчиками, которые с точки зрения уже известной нам библиотеки RC-Switch ничем не отличаются от пультов ДУ с одной кнопкой. Т.е. внутри датчика стоит кодирующая микросхема, которая выдает уникальную последовательность нулей и единиц, и передатчик, который все это счастье выплевывает в эфир.
Не спорю, вероятно, есть и другие варианты, но у меня подозрение, что эта технология — основная.
По этому поводу я купил пару разных датчиков (открытия двери и протечки), чтобы сравнить их внутренности и попробовать подключить к Arduino. После вскрытия выяснилось, что внутренности совершенно идентичны, а после экспериментов с контроллером — что RC-Switch великолепно принимает их сигналы.
Слева датчик протечки, справа — датчик открытия двери.
Настолько похожи, что из одного можно сделать другой:
Еще одним не менее удивительным открытием стало то, что беспроводные дверные звонки работают по этому же принципу. А это значит, что Arduino сможет предупреждать о том, что кто-то звонит в дверь. Полезно, кстати, во многих случаях: во-первых, просто статистика; во-вторых, удобно если дома громкая музыка или просто сели батарейки во внутреннем блоке звонка.
Звонок я, если честно, даже не открывал. Просто считал код в RC-Switch, и добавил его контроль к функционалу коробки.
Если будете использовать подобные датчики, помните о некоторых важных особенностях. Во-первых, сигнал передается однократно. Во-вторых, обратной связи нет, поэтому датчик не знает, был ли принят его сигнал. Поэтому «разработчики» датчиков подстраховались следующим образом: датчик выдает исключительно длинную «трель» — около 2 секунд. В принципе, это гарантирует прием сигнала, но имеет свои недостатки:
1) В исключительно редких (помним про закон подлости) ситуациях, когда одновременно срабатывает несколько датчиков, кто-то потеряется;
2) Длительная передача может стать помехой для других беспроводных систем;
3) Та же длительная передача накладывает ограничения на скорость обработки событий Arduino. Например, чтобы избежать двойного срабатывания от одного и того же датчика, приходится на пару секунд приостанавливать прием сигналов от внешних датчиков.
По итогам два имеющихся датчика используются следующим образом: датчик протечки — под раковиной на кухне, датчик открытия двери контролирует открытие раздвижных дверей гардероба, а по его сигналу Arduino включает/выключает свет внутри.
Сейчас планирую заказать еще датчиков и расширить таким образом их сеть. При этом, разумеется, понимаю, что это не настоящая охранно-пожарная сигнализация, а, скорее, информационный комплекс. Кстати, чтобы это было больше похоже на ОПС, для критически важных датчиков необходимо выделить собственный контроллер, у которого будет двусторонняя связь с базовым блоком, обрабатывающим события.
Таким образом считаю, что пункты ТЗ 7 и 8 по большей части закрыты.
По моей метеостанции пока пессимистично. С одной стороны, удалось понять, что в сигнале отвечает за температуру и влажность. С другой — скетчи, которые я нашел, станцию не поняли, а я не понял, как их модифицировать. О том, чтобы написать свой скетч, речь пока даже не идет.
С третьей стороны, пока не совсем понимаю, зачем бы мне это понадобилось, кроме как «чтобы было».
Я, как не знаю кто, расходы не записывал, поэтому расчет примерный. Датчики, выключатели и розетки в него не включены, стоимость только центрального блока.
1) Arduino Uno: $9,98
2) Ethernet shield: $9,87
3) Блок из 4 реле: $6,94
4) Пара приемник/передатчик: $3
5) Один комплект макетных проводов: $4,34
7) Корпус, кажется, G1037B (да, в Чип и Дипе ценник конский): $10
8) Штекеры NP117A, 7 штук: $9,3
9) Гнезда для штекеров, 4 штуки: 5,3
10) Двужильный провод, 3 м (ну, он еще остался, конечно): $2,2
ИТОГО, грубо: $61
Для справки: розетки стоят примерно $50 за три штуки, радиовыключатели — $23 за штуку, датчик открытия — $5, датчик протечки — $7.
Спасибо за внимание )
Вместе c Uno заказал: Ethernet-шилд со слотом microSD (Wiznet W5100), комплект из двух блоков по 4 реле в каждом, два комплекта простейших OOK/ASK приемников и передатчиков. Ну и проводочки, куда без них?
В двух словах. Игрушка потрясающая, и уже понимает мои команды через интернет, апп в смартфоне и голосовые команды в нем же.
ps. Текст пишу уже почти месяц (можете представить, сколько там всякой фигни), надеюсь, что читать будете меньше, но на всякий случай запасайтесь попкорном.
АПДЕЙТ 30.10.2013
Для тех, кому интересно: полностью поменялась процедура управления выключателями Livolo. Теперь все оформлено в виде отдельной библиотеки Livolo с возможностью имитации множества пультов (методом проб и ошибок).
Скачать:
Библиотека управления выключателями Livolo с помощью Arduino
Сначала сразу о покупках и впечатлениях о продавце.
ПОКУПКИ
Упаковка — коробка из плотного картона, обмотанная традиционным желтым скотчем. Ниток и кожзама нет, поэтому ничего не торчит и не пахнет. Внутри коробки все уложено довольно плотно, и без дополнительной защиты/амортизации. Плохо или нет — не знаю, доехало целым.
Открытки для фанатов анпакинга
Arduino Uno
Что характерно, на плате надпись Arduino, хотя у продавца картинка c Funduino. С другой стороны, я все равно оригинал от копии не отличу. Да и не надо это — функционально они идентичны.
Ethernet-шилд Wiznet W5100, $9.87
Удобно, что он без проблем встает на посадочные места Uno. Что касается слота SD, то это вещь с одной стороны полезная, с другой стороны — для меня пока абстрактная, поскольку до ее рабочего применения я еще не дошел.
комплект из двух блоков по 4 реле, $13.88 за комплект
Как видите, реле уже с управляющим каскадом на борту, поэтому управляются Arduno напрямую, без дополнительных компонентов. Достаточно общей земли и цифрового выхода контроллера. Каждое реле можно использовать в режимах NO/NC (нормально разомкнут/замкнут). И у каждого реле — светодиод-индикатор включения.
Питать от выхода Arduino, несмотря на совпадение напряжения (5В) мне кажется не лучшей идеей, поскольку на одно реле заявлен ток порядка 80 мА. Так что если включить все четыре, то получится под 400 мА, а это для встроенного стабилизатора уже слишком. Резюме — управлять можно с Arduino, а вот для питания катушек реле нужен отдельный источник (ну, в том или ином виде).
Зачем мне 8 реле? Я не был уверен, что разберусь с управлением по радиоканалу, поэтому рассчитывал на то, что прицеплю реле к кнопкам существующих пультов ДУ. Восемь каналов на первое время должно было хватить. К тому же, под этот проект уже было готовое решение Eight Control.
комплект из двух пар приемник-передатчик, $5.99 за комплект
Очень спартанские вещи. Передатчик, если я правильно понял, состоит практически из резонатора и ВЧ-транзистора. В приемнике вместо транзисторов усилитель. Поставляются без антенн, так что пришлось заняться творчеством и сделать из проводочков требуемое. Для диапазона 433 МГц длина антенны — около 17,3 см. Для экономии места можно свернуть в трубочку, но это же ухудшит характеристики.
Передатчик:
По субъективному ощущению, передатчики неплохие. По крайней мере, при своих 5В питания они довольно надежно переключают все, что я хочу. И делают это явно лучше, чем штатные пульты розеток при 12В питания.
Приемники ничем выдающимся не отличаются. Сигнал «своего» передатчика принимают на отлично, но, скажем, метеостанцию четко видят только если беспроводной датчик положить рядом с антенной.
Приемник:
макетные проводочки мама-папа. Две «ленты» по 40 штук длиной по 20 см. $8.68 за комплект.
ОСОБЕННОСТИ КИТАЙСКОЙ ТОРГОВЛИ
Будьте внимательны, у продавцов на Aliexpress есть очень нехорошая привычка писать в названии продукта что-то вроде 2pcs, что как бы намекает, что это две штуки наименования за указанную цену. Но это немного не так, и сделано для стимуляции импульсивных покупок.
Например, в описании платы Arduino Uno написано, что «UNO R3 MEGA328P ATMEGA16U2 + USB Cable (1UNO R3 + 1 cables) Best prices & Free shiping !!!», указана цена $9.98 и добавлено, что это lot (2 pieces/lot).
На первый взгляд кажется, что это ДВЕ (profit!!!) платы Arduino Uno. Но по факту за 2 pieces/lot скрывается именно то, что написано в названии и, чуть ниже в описании (к чести китайцев — огромными буквами). Именно:
— Arduino Uno — 1 штука
— USB-кабель — 1 штука
Итого: ДВЕ штуки
Т.е. в данном случае один лот — это плата + кабель. Извиняет продавца разве что то, что цена средняя по рынку.
Что еще мне не понравилось в этом заказе. Из комплекта двух реле пришел лишь один блок. Продавец отвечает вяло, долго, но в конце концов согласился выслать второй блок.
В остальном все терпимо. Доставка заняла примерно месяц, упаковка — довольно жесткая картонная коробка, обмотанная скотчем. Внутри все в антистатических пакетиках, плата Ethernet-шилда наколота на полипропиленовые (?) подушечки, чтобы не гнулись контакты.
Доехало все в лучшем виде. Но с учетом какой-то заторможенности продавца, да и еще реле этих, не думаю, что буду у него еще что-то покупать.
ЧТО И ЗАЧЕМ
По моим наблюдениям, 90% покупающих Arduino, мигают лампочками или крутят моторчики. Я отношусь к первой категории, а поскольку дома четыре радиорозетки и столько же радиоуправляемых выключателей света, понятно, чем я собрался управлять.
Это объясняет и комплект:
— Arduino — центральный контроллер
— Приемник — для обучения командам
— Передатчик — трансляция команд на радиорозетки и выключатели
— Ethernet-шилд — управление по LAN/WAN
— Реле — на всякий случай, как исполнители, если не удастся прочитать команды пультов. Тогда пульты можно просто припаять к реле и закрыть вопрос с обучением командам.
Мое ТЗ на систему вкратце выглядит вот так:
1) управление безымянными радиорозетками и выключателями света Livolo через браузер на любом компьютере/смартфоне/планшете в домашней сети
2) Удаленное управление -//- через интернет
3) Управление (пп. 1 и 2) через апп
4) Голосовое управление (пп. 1 и 2) с помощью смартфона
5) Автоматический рестарт модема, если нет соединения с интернетом и уведомление об этом через почту/Твиттер
6) Дистанционное включение и выключение веб-камеры
7) Перспективные функции управления: автоматическое управление светом с помощью датчиков движения и освещения
8) Перспективные функции контроллера: получение данных с беспроводного датчика метеостанции, функции охранно-пожарной сигнализации
ЧТО ПОЛУЧИЛОСЬ
Теперь вкратце итоги.
Вот так выглядит готовая коробочка с Arduino в интерьере:
Вот так — отдельно:
Если вам понравилась коробочка - еще ракурсы
Пульт ДУ на смартфоне:
Текущий функционал:
1) Управление четырьмя радиорозетками и четырьмя выключателями Livolo
а) Через браузер
б) Через апп в смартфоне
в) Через голосовое управление в смартфоне
2) Автоматический/ручной рестарт модема/маршрутизатора, если нет интернета
3) Дистанционное включение/выключение домашней веб-камеры
4) Автоматическое включение/выключение света в гардеробе по беспроводному датчику открытия двери (работает почему-то нестабильно, но я не разобрался почему)
5) Предупреждение о протечках (беспроводной датчик протечки)
6) Возможность подключения дополнительных беспроводных датчиков задымления, открытия дверей, движения и протечки от обычных китайских сигнализаций
8) Уведомление по e-mail о том, что кто-то звонит в звонок входной двери
7) Уведомление о важных событиях по e-mail
Скетчи:
1) Тестовый скетч для управления выключателями Livolo
2) Скетч с почти полным функционалом (без звонка и небольших оптимизаций), как образец (уведомления через Twitter закомментированы — экономлю память и скорость, но можете попробовать включить)
УПРАВЛЕНИЕ РАДИОРОЗЕТКАМИ
В первую очередь я, понятно, помигал встроенным в Arduino светодиодом на всем известном пине #13, а потом прицепил к плате приемник и воспользовался отличной библиотекой RC-Switch, которая умеет читать и передавать команды пультов управления радиорозетками. Получилось все с первого раза и без вопросов.
Для проверки подключил к Arduino передатчик и немного помигал домашним светом, подключенным через радиорозетки. Следующим номером попробовал прочитать коды пульта освещения, но затея провалилась: RC-Switch не смог принять команды Livolo.
Радиорозетки вот такие:
Внутренности
Внутри пульта стандартный кодирующий чип 2260, в розетках не менее стандартный декодер. Приемник, кажется, вообще один в один, как прислали китайцы. Никаких сюрпризов, что радует.
УПРАВЛЕНИЕ РАДИОВЫКЛЮЧАТЕЛЯМИ
Речь идет о радиовыключателях Livolo, приобретенных около года назад и замечательно описанных Online_buyer.
Я не особенно надеялся на собственный интеллект в решении этой проблемы, так что сначала попробовал самый простой способ.
Одна из идей была аналогична тому, как давным давно поступали с сигналами ИК-пультов. Т.е. записать сигнал в качестве звука и потом его воспроизводить. Но выяснилось, что Arduino не обладает достаточной производительностью для воспроизведения звука с необходимым качеством, хотя для платформы существует WAV-плеер и воспроизведение действительно работает (для этой цели очень кстати пришелся слот SD на Ethernet-шилде).
Поэтому я перешел к следующему пункту программы. А именно — решил попробовать повторить форму сигнала, не вдаваясь в декодирование. Исходил из того, что в пультах стоят PIC16F690, т.е. примерно такие же по производительности кристаллы, что и у меня в Arduino и обычный OOK/ASK передатчик (PT4450). Из этого я сделал вывод, что если правильно посчитать длину импульсов в команде, то шансы повторить ее довольно высоки: модуляция совпадает, скорость микроконтроллера, несмотря на высокоуровневое программирование, — тоже.
Так что подключил приемник через делитель к микрофонному входу ноутбука, запустил Audacity и несколько раз, с интервалом в 2-3 секунды нажал одну и ту же кнопку на пульте. Это было нужно, чтобы убедиться в идентичности команд, или понять, что команды меняются и без декодирования задача не решается.
Начало передачи определяется довольно легко даже при минимальном масштабе. Если чуть увеличить — уже можно прикинуть длину командного пакета: около секунды. Причем в отличие от пультов розеток, здесь нет четко выраженных пауз синхронизации, разделяющих повторяющиеся команды.
При увеличении начинает прослеживаться хорошо заметный шаблон команды. Это первая удача. Вторая удача заключается в том, что команды в пакете совершенно идентичны, и при последующих нажатиях на кнопку никаких изменений не происходит. Вот на этом месте можно немного выдохнуть — динамического кода нет, значит, жить проще.
Видно, что в данном случае физический уровень представлен пятью различными импульсами (длинный вниз, короткий вверх, короткий вниз, средний вверх, средний вниз). Повторюсь, про логику я ничего не знаю, моя задача — имитация сигнала в радиоканале.
Поэтому на следующем шаге последовательно увеличивал каждый интересующий меня импульс и буквально на глаз определял его длительность по линейке Audacity. В качестве вспомогательного инструмента можно использовать ProtocolAnalyzer, но там сигнал выглядит немного по-другому, и длину самого короткого импульса с ним прикинуть не удалось. Зато по относительно длинным импульсам (от 300 мксек) есть шансы посмотреть ориентировочные величины, которые помогают при расшифровке в Audacity.
Здесь красным и синим выделены возможные границы импульсов, причем истина также может быть где-то между, потому что в цифровом сигнале фронты вертикальные, а здесь — косые из-за особенностей аналоговой передачи.
Для примера смотрим на длинный вниз, ориентируемся по красным линиям. Получается: 2,11680 — 2,11624 = 0,56 мс. Умножаем на 1000 и получаем 560 микросекунд. Я это округлил до 550. Кстати, округление — тоже на глаз, в пределах разумного. Т.е. 10 мксек можно округлить, а вот 50 — уже чревато тем, что принимающая сторона не поймет.
После того, как прикинул длины импульсов, записал их последовательность в «сыром» виде. То есть — если вверх короткий, значит так и пишем — “вверх короткий”, а не “1” или “не знаю, что за хрень такая, вроде и не ноль, и не единица”. В этом деле очень, кстати, помогает зубочистка, которой удобно указывать на импульсы, потому что иначе у меня просто глаза в кучку собираются при попытке пересчитать пики и спады.
Когда есть длины импульсов и их последовательность, написал простой код для Arduino, подключил передатчик, и передал сигнал. Одновременно записал его через описанную выше конструкцию в Audacity, чтобы сравнить два пакета — оригинальный Livolo и только что сгенерированный. Лампочка не среагировала, зато в Audacity стали заметны расхождения между длительностью импульсов, которые я снова подкорректировал на глаз.
В целом, такая корректировка может происходить до полного удовлетворения. Но мне повезло: буквально на второй итерации я оказался в полной темноте, т.е. свет выключился по сигналу уже моего передатчика, подключенного к Arduino.
Осталось только записать в Audacity сигналы всех нужных кнопок, переписать их последовательности импульсов и, в общем, все.
Вот тестовый код для Livolo с командами одиннадцати кнопок моего пульта (0 — 9 и «Выключить все»). Так как выключатели Livolo обучаются, думаю, можно их запросто обучить этим командам — нужно только перевести выключатель в режим обучения, и «нажать» нужную кнопку.
УПРАВЛЕНИЕ ЧЕРЕЗ СЕТЬ И ИНТЕРНЕТ
Теперь все готово к следующему шагу — то есть, управлению.
За основу я взял скетч в котором комбинируется RC-Switch и классический веб-сервер для Arduino, все у того же автора RC-Switch.
Его можно адаптировать как угодно, поэтому я немного расширил функционал. А именно — добавил контроль соединения с интернетом, перезагрузку модема, если интернета нет и уведомление через почту/Твиттер об этом удивительном факте. Строго говоря, это экспериментальные функции, особенно Твиттер, но почта имеет двойной смысл: дело в том, что mail.ru включает в заголовки IP-отправителя. Это очень актуально потому что у меня дома веб-камера, которую я бы хотел смотреть, например, в отпуске. Но иногда дома выключают электричество, или модем просто зависает, а при перезагрузке меняется его адрес, так что «кино» заканчивается. Поэтому уведомление по почте автоматически дает мне новый внешний IP.
Другие изменения — практически полное избавление от секции HTML, потому что если писать в ней все команды для простого управления через браузер, Arduino в какой-то момент зависает еще на старте. Я решил, что это из-за ограниченных ресурсов Arduino, и не стал вдаваться в этот вопрос. Поэтому получилось, что управлять через браузер можно, но команды необходимо вводить в строке адреса. Например: 192.168.1.1/?1-on.
Если будете повторять — обратите внимание, что браузеры имеют обыкновение кешировать странички. В результате управление в какой-то момент перестает работать и помогает только очистка кеша.
Первые два пункта ТЗ считаем выполненными.
УПРАВЛЕНИЕ ЧЕРЕЗ АПП НА СМАРТФОНЕ
У меня смартфон с Android, для которого есть замечательный апп Tasker. Именно его я и хотел использовать для автоматизации.
Прелесть Tasker еще и в том, что сценарии и диалоги, созданные в нем можно экспортировать в самостоятельное приложение, которое устанавливается на девайсы с Android точно так же, как и любой другой апп. Иными словами, плюс в том, что не нужно покупать Tasker для каждого телефона и планшета: достаточно всего одной полнофункциональной версии, чтобы развернуть управление на всех гаджетах.
Процедура такова:
1) Методично создаем новые задачи Tasks в категории Net — GET request. В параметрах запроса нужно только одно: заполнить строчку адреса полной командой. В моем случае, к примеру, 192.168.1.1/?1-on.
2) Открываем редактор сцен Scenes, и там добавляем нужные кнопочки, не забыв назначить на короткое нажатие одну из ранее созданных задач.
3) Создаем служебные задачи: Show Scene и Destroy Scene, они потребуются, чтобы открывать и закрывать виртуальный пульт ДУ. В принципе, можно обойтись без Destroy, нужно только в Show Scene убедиться, что включена опция кнопки выхода.
Вот, в общем-то, и все. Таким образом реализуется третий пункт ТЗ: управление через апп на смартфоне.
ГОЛОСОВОЕ УПРАВЛЕНИЕ ЧЕРЕЗ СМАРТФОН
Для четвертого пункта я воспользовался еще одним замечательным аппом — Utter! Voice Commands Beta, поскольку он интегрируется с Tasker и может выполнять его задачи по голосовой команде.
Но настройка требует просто ангельского терпения. Процедура простая: несмотря на требование Utter! устанавливаем русский язык голосового поиска Android. Потом открываем интерфейс Utter! (важно — не распознавание команд, а интерфейс программы) — Customisation — Create commands — Run Tasker Task — выбираем задачу и пытаемся два раза подряд одинаково произнести команду. Если получилось — не расслабляемся и говорим еще два слова: для успешного выполнения команды и ошибки.
Если Utter! совсем не понимает, то движок поиска можно оставить английским и найти любое слово/фразу, которое можете произнести два раза подряд одинаково. Это же касается сообщений для подтверждения и ошибки. Потом просто идем в пункт Edit commands и заменяем тексты на нужные. Только помним, что Utter! не умеет говорить по-русски, и поэтому сообщения о подтверждении и ошибке лучше записать по-английски или транслитом.
Да, не пугаемся, когда Utter! при повторении команды на русском не проговаривает ее. Это, опять же, следствие того, что апп не умеет пользоваться русским голосовым движком.
В общем, задача муторная, но решаемая.
МАЛЕНЬКИЕ ХИТРОСТИ
Для пунктов 5 и 6 ТЗ я воспользовался блоком реле, а не беспроводными розетками, поскольку модем, камера и Arduino можно расположить друг рядом с другом.
А чтобы не резать провода штатных сетевых адаптеров, подключил питание модема и камеры через разъемы, коммутируемые реле. Всего получилось две пары разъемов, при этом с разъема камеры (5В) я беру питание для блока реле, передатчика и приемника, а с разъема модема (9В) — для Arduino. Это позволяет минимизировать количество сетевых адаптеров, иначе ниша для всякого такого оборудования рискует превратиться в что-то с блекджеком и, да, вы поняли.
В итоге коробочка с Arduino выглядит вот таким образом. Передатчик просто замотал изолентой, чтобы он там чего не закоротил ненароком. Мне это показалось более разумным, чем заливать термоклеем. В финальной версии рядом лежит и приемник, точно так же замотанный изолентой.
СПАСИБО КИТАЙСКИМ СИГНАЛИЗАЦИЯМ
По секрету: это фрагмент текста относится уже к третьему, так сказать, поколению функционала моей коробочки. Первое — управление радиорозетками. Второе — неожиданная возможность управления радиовыключателями.
А это поколение относится к удивительному открытию. Оказывается, дешевые китайские беспроводные сигнализации комплектуются датчиками, которые с точки зрения уже известной нам библиотеки RC-Switch ничем не отличаются от пультов ДУ с одной кнопкой. Т.е. внутри датчика стоит кодирующая микросхема, которая выдает уникальную последовательность нулей и единиц, и передатчик, который все это счастье выплевывает в эфир.
Не спорю, вероятно, есть и другие варианты, но у меня подозрение, что эта технология — основная.
По этому поводу я купил пару разных датчиков (открытия двери и протечки), чтобы сравнить их внутренности и попробовать подключить к Arduino. После вскрытия выяснилось, что внутренности совершенно идентичны, а после экспериментов с контроллером — что RC-Switch великолепно принимает их сигналы.
Слева датчик протечки, справа — датчик открытия двери.
Настолько похожи, что из одного можно сделать другой:
Еще одним не менее удивительным открытием стало то, что беспроводные дверные звонки работают по этому же принципу. А это значит, что Arduino сможет предупреждать о том, что кто-то звонит в дверь. Полезно, кстати, во многих случаях: во-первых, просто статистика; во-вторых, удобно если дома громкая музыка или просто сели батарейки во внутреннем блоке звонка.
Звонок я, если честно, даже не открывал. Просто считал код в RC-Switch, и добавил его контроль к функционалу коробки.
Если будете использовать подобные датчики, помните о некоторых важных особенностях. Во-первых, сигнал передается однократно. Во-вторых, обратной связи нет, поэтому датчик не знает, был ли принят его сигнал. Поэтому «разработчики» датчиков подстраховались следующим образом: датчик выдает исключительно длинную «трель» — около 2 секунд. В принципе, это гарантирует прием сигнала, но имеет свои недостатки:
1) В исключительно редких (помним про закон подлости) ситуациях, когда одновременно срабатывает несколько датчиков, кто-то потеряется;
2) Длительная передача может стать помехой для других беспроводных систем;
3) Та же длительная передача накладывает ограничения на скорость обработки событий Arduino. Например, чтобы избежать двойного срабатывания от одного и того же датчика, приходится на пару секунд приостанавливать прием сигналов от внешних датчиков.
По итогам два имеющихся датчика используются следующим образом: датчик протечки — под раковиной на кухне, датчик открытия двери контролирует открытие раздвижных дверей гардероба, а по его сигналу Arduino включает/выключает свет внутри.
Сейчас планирую заказать еще датчиков и расширить таким образом их сеть. При этом, разумеется, понимаю, что это не настоящая охранно-пожарная сигнализация, а, скорее, информационный комплекс. Кстати, чтобы это было больше похоже на ОПС, для критически важных датчиков необходимо выделить собственный контроллер, у которого будет двусторонняя связь с базовым блоком, обрабатывающим события.
Таким образом считаю, что пункты ТЗ 7 и 8 по большей части закрыты.
И ТО, ЧТО НЕ
По моей метеостанции пока пессимистично. С одной стороны, удалось понять, что в сигнале отвечает за температуру и влажность. С другой — скетчи, которые я нашел, станцию не поняли, а я не понял, как их модифицировать. О том, чтобы написать свой скетч, речь пока даже не идет.
С третьей стороны, пока не совсем понимаю, зачем бы мне это понадобилось, кроме как «чтобы было».
СКОЛЬКО СТОЯТ КАПРИЗЫ
Я, как не знаю кто, расходы не записывал, поэтому расчет примерный. Датчики, выключатели и розетки в него не включены, стоимость только центрального блока.
1) Arduino Uno: $9,98
2) Ethernet shield: $9,87
3) Блок из 4 реле: $6,94
4) Пара приемник/передатчик: $3
5) Один комплект макетных проводов: $4,34
7) Корпус, кажется, G1037B (да, в Чип и Дипе ценник конский): $10
8) Штекеры NP117A, 7 штук: $9,3
9) Гнезда для штекеров, 4 штуки: 5,3
10) Двужильный провод, 3 м (ну, он еще остался, конечно): $2,2
ИТОГО, грубо: $61
Для справки: розетки стоят примерно $50 за три штуки, радиовыключатели — $23 за штуку, датчик открытия — $5, датчик протечки — $7.
Спасибо за внимание )
+243 |
220219
1959
|
Самые обсуждаемые обзоры
+24 |
1239
41
|
+20 |
2280
145
|
1) Коль есть уже датчик утечки воды, грех не поставить электромагнитные клапана на перекрытие воды.
2) Если телевизор не имеет голосового управления, можно запрограммировать управление голосом через ик передатчик.
3) Для определения температуры и влажности достаточно добавить пару датчиков и никакого подключения к метеостанции не надо.
4) Много всего ещё…
PS: Я бы наверное беспроводные датчики купил бы работающие на другой частоте, если память не изменяет то на 315Мгц они есть, т.к 433Мгц сильно загажена, ну и передатчик с приемником тоже такие есть для arduino.
Хотя морально уже готов к закупке комплектов кран+беспроводное реле+батарейка 12В/7А
2) Тоже можно, но надо учитывать географию текущей системы. Сейчас коробка лежит в коммуникационной нише, которая никаким боком не смотрит на ТВ. Отсюда вывод — нужны дополнительные контроллеры, и все такое прочее.
3) См. п. 2. Температура внутри меня не особенно интересует, а для наружних измерений нужна Arduino с датчиками и беспроводной связью снаружи. Со всеми вытекающими в виде автономного питания и его скоропостижной кончины, так как Arduino — это, все-таки не специализированный датчик.
4) Согласен )
315 — хорошо, но, во-первых, я не знаю, что там с лицензированием; во-вторых, радиорозетки работают на 433 МГц. И если переделывать, то нужно, соответственно, покупать и перепаивать приемники во всех розетках, а это для меня уже как-то слишком.
сделай на серво приводе, мне кажется если взять серву на 12кг то она справится с поворотами кранчиков
Иначе система превращается в то, что у меня сейчас есть — простое информирование о факте протечки.
Поэтому тянуть провод из розетки на кухне по стене, по плинтусу, через порог ванной (или сверлить стену), за унитазом и в сантехнический короб — это для меня, все-таки, не вариант.
У меня тоже идёт уже месяц arduino 3 штуки (1 мега и 2 уно) + много примочек. Есть кое какие задумки.
Я сам пару месяцев назад получил Ардуинку Мега256, заказал просто так, побаловаться — И ВЛЮБИЛСЯ :-) Пока правда до столь масштабных проектов не дошёл, собрал разрядник для замера емкости акков разных, написал скеч, радовался как ребенок :-), сейчас заказал разные прибамбасы (дисплей, серву, шаговик и т.д.)… ХОЧЕШЬ раззорить друга — подари ему только Ардуинку :-)
Дарю одну ГЕНИАЛЬНУЮ идею :-) — можно собрать устройство определения гентерной принадлежности зашедшего в туалет и сидушка унитаза… :-), ну вы меня поняли.
gidrolock.ru
Батареек хватит на годы…
Ток потребления в момент открытия/закрытия не более 0,25 А
Ток потребления в дежурном режиме не более 2 мкА
для дополнительного управления-контроля прикрутить радио-модуль…
За терпение и труд, конечно ПЛЮС!
п.с.: интересные стадии «баинг», «ожидайдинг», «анпакинг», «офигивайинг» :)
Arduino для меня оказалась спасением — дистанционное управление освещением и автоматизация некоторых других задач дешево, сердито и без необходимости разносить полквартиры для прокладки кабелей.
Как только придумаю, сразу куплю.
Но самое главное, что я пытался показать — для этого проекта не нужно каких-то специальных навыков и знаний. Достаточно внимания, усидчивости и терпения. По сути, это гимн тем, кто разработал просто превосходную любительскую платформу Arduino.
$13.50 на DX: dx.com/p/arduino-duemilanove-2009-atmega328-p-20pu-usb-board-blue-60cm-118078
$12.75 на BiC: www.buyincoins.com/new_en/details/high-quality-arduino-uno-atmega328p-pu-module-atmega8u2-avr-usb-cable-board-product-10252.html с интересной акцией, при покупке более одной платы, вторая обходится всего в $9.56, третья в $10.62, дальше снова $9.56 и т.д, немного нелинейно, но уменьшающиеся цены.
Можно заглянуть на FastTech. Чуть больше 10 баксов. Правда, там пока ассортимент маловат.
ФастТеч начинающийся бизнес. Они стараются пока работать нормально. Быстро и по возможности дешево.
Получил 3 посылки от них. Доходили быстро(в хохланде обитаю). Поддержка вменяемая. Хороший магаз.
Магазин РАБОЧИЙ, буду ждать другие посылки.
К геркону с магнитом еще надо прицепить моток проводов до реле, к которому нужно прикрутить блок питания, провода к свету. И для всего этого нужно разнести часть гардероба, стены и проводки.
Зачем все это, если достаточно буквально пяти строчек кода, потому что уже стоят радиовыключатели и контроллер, который может управлять ими?
Спасибо что обзор не про часы.
А касательно дальномера, так ведь он — не датчик объема. Можно увернуться. Проблему однозначно решает датчик присутствия, но он стоит совсем невменяемых денег.
автор заслуживает на номинацию автор года. +1
Несомненно + за обзор и в карму
БРАВО!
+++
А так можно потрать 30 баксов набор.
К тому же наоборот — пока закажешь очередную фиговину из Китая и пока они придет, то всякая хота пройдет и придется искать все это на местности
Обязательно:
LСD-дисплей, буду приводить для примера ссылки — www.fasttech.com/product/1094600
Блок питания…
Знаете, не буду советовать, выбирайте сами, а то посчитают за рекламу, тем более что каждый выбирает для себя… женьщину, религию, дорогу...:-)
Жалко :) Когда начал читать про выключатели, подумал, что вы и метеостанцию в конце так-же ловко «распотрошите».
Можно было бы на OpenWeatherMap свою погоду постить.
А там графики строятся и прогноз на основе этих данных.
Спасибо за наводку на OpenWeatherMap!
Слабая плата, дорогая.
Очень хочется чтобы побольше работали с ARM процами STM32.
1) Фактически стандартизированная и «готовая к употреблению» платформа разработки
2) Простая и удобная среда программирования
3) Адекватное сообщество и огромное количество готового кода
4) Огромное количество совместимой периферии (как специализированной, так и смежной)
Среда программирования основана на EClipse, что я думаю любому программисту роднее некуда.
Огромное количество кода приводит к тому что проект становится кучей непонятных либ и фреймворков. К сожалению большинство даже не представляют как это работает.
Хотя да, для RAD проектирования наверно удобно.
Это+ за обзор и в карму. Титаническая работа проделана.
Эту проблему можно решить изящнее — DDNS (к примеру, no-ip.org) + inadyn (для не-Linux ОС наверняка есть ПО с аналогичными функциями).
Но в этом случае надо внимательнее следить за тем, что вы выставляете в интернет, у меня за пол-года на SSH-сервере метров 30 логов одних только попыток логина набежало :) Потом правда настроил авторизацию по ключам и стало хорошо.
А так всё очень круто получилось, автор — молодец!
А для DDNS, если я правильно понял, нужно, чтобы дома работал компьютер с клиентской частью. Но дело в том, что как раз этого я и старался избегать.
Спасибо )
Вам бы открытую прошивку в маршрутизатор и рулить ардуиной по TCP, раз уж Ethernet-shield есть. Это сразу несколько проблем бы решило. Но выбор конечно за вами :)
Опять же, могу оправдаться тем, что сейчас Arduino полностью универсальна и будет работать с любым маршрутизатором без настроек и танцев.
И таки да, ваш пример вдохновляет на подвиги )
Ну и плюс проброс портов…
Прототип умного дома.
По метеостанции может не стоит заморачиваться, а прикрутить датчики температуры/влажности напрямую к контроллеру?
Суть в том, что мне бы хотелось получать показания внешнего датчика. А так от Arduino до окна нужно метров 10 провода тянуть. При этом потери будут такие, что еще придется как-то корректировать показания. Альтернативный метод — поселить за окном еще одну плату Arduino с датчиками и передатчиком, но я пока до этого не дозрел.
мне кажется идеальным вариантом будет.
Я делаю аналогичную штуковину (голосовое управление, arduino, радиорозетки, android), правда в другой компоновке. И вот столкнулся с проблемой, что диапазон 433 в городе очень зашумлен. Ложных срабатываний нет, но вот нажатие кнопки на пульте срабатывает далеко не всегда. особенно если расстояние > 5 метров.
У вас такой проблемы нет?
Единственная проблема со срабатыванием пультов розеток (оригинальных) была, когда в конце процедуры управления радиовыключателями Livolo не было команды LOW для пина с передатчиком. Тогда сразу стало заметно, что пульты работают как-то через раз, а при мониторинге «эфира» через Audacity были видны частые случайные всплески.
Я тогда без особой надежды поставил перевод пина передатчика в LOW, и спектр сигнала в Audacity сразу вернулся к стандартному шуму. «Родные» пульты после этого стали работать безупречно.
Что касается шума, то, опять же, в Audacity со своими приемниками я вижу, в основном, однородный шум. Наверное, повезло — во-первых, живу довольно высоко; во-вторых, наверное, соседи ничем таким не злоупотребляют.
1) Источник питания для Arduino и реле тоже нужно воткнуть в ту же розетку
2) Источник питания должен быть крайне надежным
3) Максимальный ток коммутации реле обычно ограничивается 10А. Это не проблема для маломощной техники, но если кто-то воткнет в такую управляемую розетку чайник, может случиться упс.
4) Про централизованное управление (чего мне хотелось) в этом случае можно практически забыть.
Цены
Arduino Pro Mini — $5.5
обычный релейный модуль (как у вас в обзоре) — $1.8
хорошее твердотельное реле на 25 ампер (SSR-25) — $4
приемопередатчик (NRF24L01) — $1.8
питание 220/5В — $2.5
Итого $11.6 (14 c SSR-25) и бонусом ардуина в каждой розетке.
Т.е. возможность за доп. $4 сделать двойную розетку и возможность добавить датчик на ACS712 и получать на центральный контроллер реальную текущую информацию.
ок, убедили. Действительно может быть интересно тем, кто не боится собирать все это.
По поводу управления я сомневался, потому что предполагал, что все это упаковывается в стандартную розеточную коробку. Если же все снаружи висит — тогда да, места достаточно.
Что же до розеток, то я не очень доверяю своим рукам. А более-менее известным маркам и налаженному производственному процессу — доверяю. Поэтому считаю, что розетки достаточно надежны. Ну и, опять же, я почему-то прицепился к идее скрытой техники, поэтому и предполагал, что если «умная» розетка встроена в стену, то есть риск подключить к ней потребителя, не соответствующего по мощности.
Очень хочется чтобы Ардуино начали изучать в каждой школе-классе и наши дети и внуки уже с пелёнок могли программировать и собирать разные хреновины, иначе мы так и останемся «сырьевым придатком» :-(
Я, в основном, пользовался arduino.cc
Да и подскажите кто нибудь где заказать датчик протечки.Только что ни будь по проще. Типа прорвало трубу и воду перекрыло автоматом, а то соседей второй раз топить не охота. Спасибо!
Датчик, чтобы «прорвало-перекрыло» и без головной боли для владельца — довольно дорогая вещь. Хотя, конечно, оно того в ряде случаев стоит. Вот навскидку три варианта систем:
1) Нептун neptunxp.ru/
2) АкваСторож www.xn--80aafrr0aaphk.xn--p1ai/many.html
3) Гидролок gidrolok.ru/price.html
Чтобы понимать: китайский кран с электроприводом стоит около 20 долларов, радиореле к нему — еще 10, датчик протечки — около 5 долларов.
https://aliexpress.com/item/item/Electric-water-valve-CWX-3-0B/303105184.html и https://aliexpress.com/item/item/1pcs-motorized-ball-valve-DN15-2-way-electrical-valve/708796917.html
Просто сохранил две ссылки для гарантии, краны одинаковые. Предельное давление 1 MPa, это, если верить конвертерам в интернете — 10 бар. Т.е. подходит для бытовых целей и учитывает примерно двукратную перегрузку.
С вы случайно не встречали такие краны
только с перламутровыми пуговицамис ручным дублёром. (Не всегда бывает электричество).Автору вопрос — не встречали ли Вы готового аналога Вашей конструкции и сколько оно стоило?
1) Коробочных решений не помню, и не думаю, что есть адекватные варианты, хотя бы из-за объективных проблем с индивидуальной настройкой, которую нельзя сделать «для всех»
2) Инсталляторы считают, что это рынок с высокой доходностью, поэтому прямо цены не показывают. Это называется «звоните»
3) Исходя из 1 и 2 складывается общее впечатление, что хотя все не так сложно, заинтересованные стороны стараются представить умный дом эксклюзивом, чтобы оправдать высокую стоимость. Отсюда низкая популярность технологий и оборудования в массовом сегменте.
Сейчас еще посмотрел яндексом первые результаты по «умному дому». Везде убогие сайты, нереальные понты и формы предварительного заказа на расчет «проекта».
Грустно, короче.
Очень дёшево, не обязательно покупать готовые платы в сборе, можно на Ебэе купить Атмеги с прошитыми бутлодерами Ардуино за копейки и добавить за копейки обвес, конечно если немного с паяльником дружен. Памяти и быстродействия для большинства проектов хватит с запасом (кстати есть Арды на 80Mhz!). Ну а о простоте написания скетчей (программ) для Ард не писал только ленивый, начав изучать с нуля через неделю-другую (изучая вечерами) уже любая ТП начнёт писать простенькие проги. Да, жаль в нашем детстве небыло таких игрушек!
«ЧАСЫ на Ардуино, обзор №123»
Key Features
Worldwide 2.4GHz ISM band operation
Up to 2Mbps on air data rate
Ultra low power operation
11.3mA TX at 0dBm output power
12.3mA RX at 2Mbps air data rate
900nA in power down
22μA in standby-I
On chip voltage regulator
1.9 to 3.6V supply range
Enhanced ShockBurstTM
Automatic packet handling
Auto packet transaction handling
6 data pipe MultiCeiverTM
Air compatible with nRF2401A, 02, E1 and E2
Low cost BOM
±60ppm 16MHz crystal
5V tolerant inputs
Compact 20-pin 4x4mm QFN package
Applications
Wireless PC Peripherals
Mouse, keyboards and remotes
3-in-one desktop bundles
Advanced Media center remote controls
VoIP headsets
Game controllers
Sports watches and sensors
RF remote controls for consumer electronics
Home and commercial automation
Ultra low power sensor networks
Active RFID
Asset tracing systems
Toys
Может и к метеостанциии его присобачить получится.
Вот немного о модуле:
www.bajdi.com/playing-with-nrf24l01-modules/
Только один вопрос, а почему на муське, а не на хабре?
А вообще желательно сначала просмотреть уже существующие на Хабре статьи — по Ардуино там уже достаточно много было habrahabr.ru/hub/arduino/
То, что отдельные возможности там упоминались — 100%. То, что там должна быть теория по декодированию управляющих сигналов я тоже уверен. Но точно так же 100%, что никто там не выкладывал практический способ управления беспроводными выключателями Livolo.
Вот и поди пойми, нужно ли сейчас тратить время и силы на адаптацию текста, который мудрая администрация Хабра спустит туда, где, как они выражаются, Луна не светит.
Подсветка тв. Филипс Амбилайт своими руками.
Сэкономил бы кучу места и денегю
К тому же, не совсем понятно, как бы я сэкономил кучу денег, если для прототипа мне все равно нужен этот стартовый комплект ) Иными словами, при коммерческом производстве отдельные чипы с кодом целесообразны, а вот когда дома одна единственная система — нет.
Плюс к этому сейчас один смартфон заменяет два пульта управления разнородных выключателей. Это тоже удобно. А если я смогу победить лень, то к этому добавится управление телевизором, медаиплеером и кондиционером всего с одного устройства.
Что касается другой электроники, то плохо, если она затрудняет жизнь. Например, на чем я акцентирую внимание — когда сто тысяч миллионов пультов для управления всем и вся.
В идеале же электроника должна работать так, чтобы ее вообще не было заметно. То есть, чтобы сценарии адаптировались под естественное поведение человека. Опять же, на примере — автоматическое включение света в гардеробе. Сразу про выключатель: да, было бы проще, если бы я сразу подумал, что его надо сделать внутри. Но на момент ремонта казалось логичным поставить сдвоенный выключатель для света в прихожей и гардеробе.
В итоге получилось, что выключатель гардероба находится в двух шагах от него. Не страшно, конечно, понимаю. Но по факту с автоматическим светом стало гораздо удобнее. При этом затраты, с учетом того, что базовый блок уже работает и решает основные задачи «ТЗ», — 150 рублей на датчик и несколько строчек кода.
И мне очень нравится, что с помощью Arduino получается довольно просто объединить несколько разных систем и заставить их работать, как единое целое.
В скетче, в инициализации Ethernet-шилда указывается MAC-адрес.
Как вы его определили?
Или в Windows
Ну а про arp -a сами понимаете… :)
Так что если дома есть ненужная сетевая железяка, которую собрались выкидывать, — можете смело использовать ее адрес.
Не подскажите как можно диагностировать?
1) Моя система работает с MAC, который был по умолчанию в примере RC-Switch. Вероятность, что он совпадет с каким-то из ваших близка к нулю, поэтому можно рекомендовать его к в качестве рабочего;
2) Необходимо проверить правильность кода (включение нужных библиотек, параметры инициализации сети, старт сети и веб-сервера). Если я правильно понял, то при инициализации сети играет роль последовательность параметров в Ethernet.begin — на это тоже следует обратить внимание.
3) Также понятие о том, что происходит, дает светодиодная индикация на шилде. При успешном старте загораются индикаторы PWR (питание), LINK (физический уровень сети), 100M (при работе в сети 100 Мбит), FullD (полный дуплекс, если поддерживается). Могут мигать TX/RX. Если загорелся Coll (сетевая коллизия), тогда нужно решать конфликт с адресами (в первую очередь — IP, потом — MAC).
4) Если получаете адрес по DHCP, и ничего не выходит — попробуйте инициализировать шилд со статическим адресом.
Вот такие мысли.
да современные «умные домы» стоят заоблачно, это обусловленно тем, что применяются компоненты general electric, honeywell, legrand. стоимость которых СЛЕГКА выше. надежность соответственно.
потолок у соседей в хрущевке снизу — стоит несколько меньше декоративных фресок в особняках заказчиков. поэтому вопросы «протечек», возгораний и т.д. факторов должны контролироваться супернадежно.
заказчик — владелец 3-х этажного коттеджа — совсем никогда не хочет вникать в работу комплекса — «сделай, чтобы так...» и всё! а это стоит денег!
комплекс домашней автоматизации это всегда эксклюзив. нет двух одинаковых владельцев двух одинаковых домов.
то, что разработчики на АРМ бычат на ардуино — это вот позорище — тоже мне избранные, обычные ленивые хомяки! которым завидно.
а настоящим профессионалам «любительские проекты» не страшны — пионер никогда не повторит мастера.
а когда повторит — это уже не пионер!
суть не столько в декоративных потолках, сколько в том, что в 21 веке космические корабли должны были бы как минимум бороздить просторы большого театра. То есть, я не понимаю, почему простые, понятные и доступные в производстве технологии до сих пор не стали массовыми, а остаются некой привилегией для определенной категории общества.
Причем все это преподносится с предыханием вроде «ну вы же понимаете… это так сложно… требует особого подхода...». И если это где-то уместно, то в инженерной работе, по-моему, просто позор.
Ну да ладно.
Пишите еще, похоже придется и себе прикупить.
P.S. проплюсовал везде где мог, прозрел как Вам карму подняли.
Для маршрутизатора и Arduino — 9В / 1.7А, для веб-камеры, реле, приемника и передатчика — 5В / 2А.
В этом случае Arduino просто имитирует пульт управления Livolo для обучения выключателей командам. А после того, как все кнопки назначены, нужно только добавить коды использованных кнопок и их обработчик в основной скетч (или использовать его как основу для своего кода).
Что касается GSM-сигнализации, то если датчики аналогичным моим, процедура работы с ними такая:
1) Используем Arduino с приемником и тестовый скетч для приема сигналов из комплекта RC-Switch, чтобы считать коды нужных датчиков.
2) Добавляем обработку датчиков в основной скетч, или берем обработчик оттуда и используем в своем коде.
Что касается изготовления, то это также возможно, но, к сожалению, я не могу сказать, что это будет недорого. Иными словами работа будет, как минимум, эквивалентна стоимости комплектующих.
У самого лежит два шасси для роботов и две ардуины с платами расширения, хотим с сыном пару роботов замутить, шасси собрали, а на код времени пока нет, работой завалили.
Я в 2008-2009 сам продавал и устанавливал системы «умный дом» на базе протокола x10 (данный протокол использует обычную провоку 220В для приёма/передачи сигналов, т.е. надёжнее радио с батарейкам и протягивания доп. проводов не нужно), использовались «мозги» как российской разработки, так и зарубежные и, в основном, отечественны датчики с голландскими и штатовскими управляемыми модулями, тогда с учётом кризисного затишья, Волгоградской обл., и самое важное что от системы требуется повышенная надёжность, это выходило весьма не дёшево (начиная от 70 т. руб. за управление 5-ю розетками, контроль протечек в 2-х точках, управление освещёнием с пульта в 3-х комнатах, универсальный пульт для всех устройств в доме и оповещением/управлением всей системой через голосовое меню с любого телефона и центрального пульта в доме) цены, кстати на моём сайте были опубликованы в открытую, но естественно они были рассчитаны «типовые» для нескольких усреднённых вариантов.
Бизнес пошёл не особо, но интерес к теме остался, теперь я уж определённо прикуплю ардуин и попробую что-нибудь для души.
Спасибо!
P.S. в «малениких хитростях» в следующем отрывке предлог «В» лишний
В общем, удачи. И с тем, что для души, и с тем, что для дела!
ps. с предлогом разобрался
Это уйма времени, которая была потрачена на написание статьи. Думаю Стоит это время не меньше чем затраты на саму систему ;)
Супер!
Если мне нужно безусловное включение (или изменение) канала\ов без проверки текущего состояния, есть ли такая возможность?
Можно ли на каждую кнопку пульта отдельно настроить эти сигналы по выбору (и соотв. потом поймать ардуиной)?
Спасибо за обзор, а за наводку на 433 MHz ардуинский радиомодуль отдельно :)
У пультов радиорозеток два кода на каждую розетку: включить и выключить
У пульта освещения на каждую кнопку выключателя приходится по одному коду, который переключает состояние кнопки (т.е. одно нажатие — вкл, другое — выкл, но код при этом одинаковый. Также у пульта освещения есть специальный код для выключения всех выключателей света.
По этой причине с розетками безусловное включение/выключение работает, с выключателями освещения — нет.
Тоже закупаюсь с выключателями 7-ой серий, пока они приедут хочу все подготовить.
Я сделал такой же делитель для микрофона, только не знаю как его подключить к передатчику(пульту) или точнее куда именно, что бы затем прослушать и расшифровать сигнал.
Ты бы мог помочь мне, если можно ввиде изображения ну фоток
буду очень благодарен.
Так как моя система умный дом полностью базируется на STM32F4DISCOVERY, и мне нужно писать собственный код.
Делаю первые шаги. А есть ли возможность разместить приемник прямо на реле шилде, без Ардуино на конце. И включать, выключать таким образом, например, свет?
Или вот сразу на 220В.
При выборе подобных штук нужно обращать внимание на три вещи: частоту управления, рабочее/управляющее напряжение реле и коммутируемое напряжение/ток.
З.Ы. Или даже вот этот.
Для меня этот недостаток критичным не стал, поскольку в основе управления — естественное поведение дома. Там, где нужно (гардероб, прихожая, санузел, кухня) свет работает автоматически, так что нет никакой необходимости щелкать выключателями. А если и есть, то она, как правило, или чрезвычайно редка, или же появляется одновременно с гостями, которые с автоматикой не знакомы, и по-любому будут щелкать кнопками. Кстати, по этой причине на время гостей автоматику я выключаю — и все довольны.
В общем, резюме: да, с обратной связью лучше; но и без нее можно замечательно жить.
Если подскажете в каком мне направлении двигаться, то буду безумно признателен.
Поэтому, если очень хочется сразу поэкспериментировать, то нужно:
1) Убедиться, что к передатчику подключена антенна (вы ведь ее припаяли?)
2) Разместить передатчик и приемный блок выключателя как можно ближе друг к другу (хотя бы на время теста)
Если 1 и 2 не помогают, тогда в скетче задайте длительность импульса, в коде она закомментирована, нужно раскомментировать и добавить свою длительность. Примерно так: mySwitch.setPulseLength(253).
Если и это не помогает, тогда будем разбираться следующим образом:
1) Опишите подключение передатчика к Arduino (все пины)
2) Покажите тестовый скетч
3) Если спектроанализатор позволяет, запишите и покажите форму сигнала (одной и той же кнопки), которую выдает штатный пульт и Arduino
По поводу экспериментов, то их я проделал уже много. Антенну припаивал как четверть волновую(16,4см.) так и полуволновую (31см. кажется). Сворачивал их в спирали и распрямлял. Побывал на расстоянии и подносил вплотную, даже скручивал антенну передатчика с антенной приемника.
В скетче использовал свои значения длительности. Указывал свой протокол.
Подключал так: VCC — +5v, GND — на землю, ADAT — на 10й пин. После включения измерял напряжение, на передатчике оно присутствует.
Скетч это пример из RCswitch называется SendDemo:
Вот в этой статье человек подставил в скетч лишь код в десятичном виде и битность и все заработало. У меня же лажа какая то.
К сожалению пока нет возможности сравнить формы сигналов полученные при помощи спектроанализатора. Сразу сравнить не догадался (лишь убедился в том, что есть исходящий сигнал на нужной частоте и похожей длительности), а теперь унесли спектроанализатор. Как только будет возможность, так сразу сравню еще раз и покажу результаты.
Судя по всему, вы все сделали правильно (разве что в приведенном скетче не установлена ваша длительность импульса, но если говорите, что ставили, будем считать — это старая версия кода).
При таком раскладе я не могу придумать ничего лучше, кроме как посмотреть на формы сигналов от пульта и Arduino, и сравнить их.
Вообще, если есть желание — можете сделать простой делитель сигнала (по такой, например, схеме) и записать сигналы на компьютере с помощью Audacity. Тогда и отдельный анализатор спектра не понадобится.
Если все делать «вслепую», то надо также быть уверенным, что RS-Switch действительно правильно показывает и длину пакета, и длительность импульсов. Иначе будете бесконечно долго искать причину того, почему ничего не работает.
Что касается примера, то реализация того, что описано в тексте выглядит примерно так.
Изменения параметра: не привели к изменению длительности. Также изменял номер протокола, но форма и длительность сигнала опять таки не менялись. А по передаваемым битам вроде все совпадает.
Еще есть вторая проблема: очень низкий уровень излучения RF-модуля (передатчика), но об этом пока не сильно беспокоюсь, главное с протоколом разобраться.
Я у себя проверил и получается что-то вроде вот такого (вверху — 450 мс, внизу — 100 мс):
Пытаюсь запустить скетч из примеров библиотеки RCSwitch, а именно: Webserver.
Используется следующее железо:
1) Arduino UNO
2) Ethernet шилд на W5100
Поведение скетча:
При наборе в адресной строке браузера указанного в скетче IP-адреса открывается страница с сылками в количестве 4 шт.
При первом клике на каждую ссылку команда отрабатывается (наличие команды отслеживается осцилографом на соответствующем пине указанном в скетче).
При повторном клике на те же ссылки ничего не происходит, причем не помогает ни ресет, ни выкл. питания.
Помогает только смена IP в скетче, и то только 1 раз.
Отсюда следует вопрос: это так должно быть, или я дурак?
А для передачи команды нужно, чтобы браузер обязательно снова переходил по ссылке, а не подсовывал нам кэшированную страницу, поскольку нам интересно не то, что на ней, а то, что отправляется на удаленный сервер.
Если честно, то я не знаю, как решить именно эту проблему, кроме как попробовать отключить кэширование или попробовать другой браузер (по опыту Firefox в этом смысле лучше себя ведет).
Что касается моих вариантов, то я просто набираю адрес контроллера и команду в строке адреса браузера (опять же, Firefox). Или, что чаще, управляю с телефона (Android и приложение Tasker).
Скажите а другим образом с Вами как то можно связаться для более оперативного общения, есть вопросы по Tasker. Если не против то пишите: triada132 гав gmail.com.
Это я к тому, что да, неточности могут быть, поскольку длительности записывал «на глаз», но принципиальной роли для кода это не играет. С анализатором спектра, возможно, получилось бы точнее, но у меня нет такого оборудования.
Что касается «как реализовано в RC-Switch», то если я правильно понял мысль, ответ такой: интегрироваться с RC-Switch не получится, потому что эта библиотека ориентирована на другой алгоритм.
А если все же имелось в виду, что было бы неплохо получить более человеческий вариант управления выключателями, то это уже сделано. В тексте ведь есть ссылка на библиотеку Livolo, с помощью которой можно щелкать выключателями без проблем и заморочек. Точно так же (концептуально), как и с RC-Switch.
Если нужно прочитать коды своего пульта, тогда один товарищ написал вот такой код.
После вашего обзора я заказал несколько радио выключателей. Но потом в процессе размышления над функционалом, который хочу получить, решил, что безусловное вкл/выкл мне все же необходимо. Есть люстра, у которой я хочу: вкл/выкл линию с одной лампой, вкл/выкл линию с двумя лампами, вкл/выкл обе линии одновременно и в идеале знать текущее состояние. Плюс конечно еще это все будет управляться в ручную. Ну и таких люстр несколько.
Первоначально подумал что может помочь импульсное реле. Но я больше программист, чем электрик и не знаю как подойти к этому вопросу.
Разве что без дополнительной обвязки даже эти кнопки не решат задачу.
И пожалуйста еще на один ответьте. Как работает кнопка на пульте «выключить все»? Она выключит даже не привязанные выключатели? Или можно создать виртуальный пульт для каждого выключателя в отдельности, в результате чего мы сможем получить хотя бы безусловное выключение?
Действительно, если я ничего не путаю, то можно хоть на каждую кнопку выключателя в отдельности сделать свой виртуальный пульт, и таким образом получить безусловное включение и выключение (правда, без дополнительных компонентов — без контроля состояния).
Если интересно, я постараюсь на выходных проверить эту теорию. А если забуду — напомните, пожалуйста в понедельник.
1) Одну кнопку привязал к физическому пульту, другую — отвязал ото всего.
В итоге та кнопка, что привязана управляется с пульта, вторая — вручную. При нажатии кнопки «Выключить все» выключается только привязанная к пульту кнопка выключателя. Другая (не привязанная) не реагирует.
2) Одна кнопка привязана к физическому пульту, вторая — к виртуальному.
Обе кнопки включаются только по сигналу своего пульта. И, соответственно, реагируют на сигнал «Выключить все» только своего пульта.
Но когда дело дошло до LIVOLO, тут все и остановилось. Вообщем поиски в интернете увенчался успехом на половину. Скачал библиотеку LIVOLO, скачал скетч для узнавания кодов с пульта, снял коды кнопок:
key A remoteID:26088 — key code:8
key B remoteID:26088 — key code:16
key C remoteID:26088 — key code:56
key D remoteID:26088 — key code:42
Ну вот вставить коды в скетч к радио розеткам не получается, сказывается недостаток опыта в программировании.
Может из людей знающих кто подскажет как в уже имеющийся скетч для радио розеток добавить код LIVOLO для управления все с того же ИК пульта? Выкладываю свой скетч для радио розеток и скетч, пример с библиотеки Livolo (blink), с моим кодом при котором происходит поочередное включение и выключение моей люстры.
<файлы>
или такой
для удешевления стоимости.
Будет работать?
Т.е. на мой взгляд кроме радиомодулей понадобится еще и какой-то микроконтроллер + обвязка для управления реле. И еще придется как-то решать конфликт со встроенным микроконтроллером выключателя. Ведь изначально он не в курсе, что вы там сделали по радиокоманде, и поэтому световая индикация режима может быть неактуальной, как и команда на переключение.
То есть, к примеру, если включаете свет радиокомандой, то и родному контроллеру выключателя надо сообщить, что свет уже включен. Иначе нажатие на кнопку выключателя не приведет ни к какой реакции — ведь выключатель будет думать, что свет еще выключен и попытается его включить.
Как это реализовать — я рассказать не смогу, поскольку в схемотехнике не разбираюсь на таком уровне.
Впрочем, я это гадаю, потому что у меня нет выключателей без радио и, соответственно, определенно я сказать ничего не могу.
Автору огромное спасибо за труды!!!
RC-Switch, RemoteReceiver, NewRemoteReceiver
сигнал с пульта не ловится ((
смотрел видео украинского магазина, он там программирует пульт, но у него каким-то неведомым образом сразу три кнопки запоминаются на выключатель, в общем пока не въехал как это работает
само видео
Команды большого пульта для диммирования я не декодировал, но так как в видео используется и маленький пульт, думаю, вполне можно воспользоваться его кодами. А их уже показал один добрый человек:
#A: 8, #B: 16, #C: 56, #OFF (a.k.a #D): 42
Таким образом получаем следующее. Если говорить о физических пультах, то один маленький пульт можно привязать либо к трем обычным кнопкам, либо к одному диммеру.
Если говорить о виртуальном пульте, то для управления диммером потребуется, во-первых, идентификатор пульта, а во-вторых, — указанные коды кнопок. При этом надо помнить, что идентификаторы маленьких пультов отличаются от идентификаторов больших.
Поэтому чтобы управлять диммером с помощью эмуляции маленького пульта делаем так:
1) Идентификатор большого пульта вычисляется по формуле remoteID = 1 + N*3, все остальные идентификаторы — это идентификаторы маленьких пультов. N может меняться от 0 до 21884 (чтобы не выходить за пределы 65536 — максимального номера пульта). Таким образом, идентификаторы маленьких пультов получаются, к примеру, такими: 2, 3, 5, 6 и т.д.
2) Добавляем к этому команды #A: 8, #B: 16, #C: 56, #OFF (a.k.a #D): 42. В этом случае команда 8 включит свет, команда 16 будет прибавлять яркость (в зависимости от того, сколько раз подряд ее повторить), команда 56 будет уменьшать яркость аналогично увеличению, команда 42 свет выключит.
Разумеется, это мои предположения, так как проверить все-таки не на чем.
спасибо за информацию, обязательно на следующей неделе попробую
а то я все выключатели по вашей методе с использованием вашей же библиотеки прошил, всё просто мега замечательно работает, а вот в кухне диммер, и он даже пищит при программировании по-другому, буду пробовать, надеюсь всё получится, отпишусь потом что как, может даже видео сниму