«Заводим» радиоуправляемые розетки без пульта



    Совершенно случайно наткнулся в каталоге Ч-и-Д на аттракцион невиданной щедрости. Сейчас дополнительные беспроводные розетки для комплекта Velleman 7500-3B стоят всего 100 рублей за штуку. Но это за розетку без пульта, то есть с несколько неясными перспективами ее использования, поскольку до вскрытия не очень понятно, что там внутри, а образца управляющих кодов нет. Если же закладываться на пульт, то предложение сразу перестает быть таким интересным.

    Несмотря на некоторый риск (хотя что там тех ста рублей?!), стало интересно, чем это изделие, причем именно в такой конфигурации, поможет социалистической революции в масштабах одного отдельно взятого домашнего хозяйства.

    Перед посещением магазина я теоретически подковался. То есть — поискал, что есть в этом нашем интернете на тему указанных розеток. И практически успокоился, когда выяснил, что они совместимы (Velleman WRS3B) с библиотекой RC-Switch, которую уже давно использую в домашнем контроллере для управления розетками, выполнения команд по сигналам радиопультов и обмена данными с периферией.

    Это вселяло надежду.



    . вот такая упаковка
    image

    Небольшое предисловие

    Обычно розетки (и пульты) такого типа выполняются на специализированных кодирующих и декодирующих чипах семейства 2262/2272. Причем перед цифрами могут быть совершенно разные индексы: PT, SC, HS. А индексы после чисел определяют режим работы и конфигурацию линий адреса и данных. А чаще всего используются чипы с 8 битами адреса и 4 битами данных, хотя возможны варианты — вплоть до 12 бит адреса или до 6 бит данных.

    В рамках используемого протокола бит может принимать одно из трех значений: 1, 0 и F. Вместе биты адреса и данных (всего 12 бит) составляют кодовое слово, которое для надежности повторяется 4 раза, что, соответственно, представляет собой один кадр. Если честно, то проблема в том, что даже чтение даташитов не приблизило меня к пониманию того, в каком именно порядке располагаются биты в кодовом слове, и что подразумевается под таинственным состоянием F.

    Так что из двух часов чтения я вынес примерно следующее.

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

    Типовая реализация также включает в себя два бита данных, которые и говорят, что нужно сделать с периферией по конкретному адресу — включить или выключить.

    . оборотная сторона
    image

    Богатый внутренний мир

    Вскрытие объекта, к счастью, оправдало надежду на популярный чип семейства 2272. Если точнее — HS2272-L4 (раз и два), что означает кодировку с 8 битами адреса, 4 битами данных и фиксацией состояния. Т.е. для каждого адреса существует две статичные команды на изменение состояния. В случае с розеткой это значит, что включаем одной кнопкой, а выключаем — другой.



    В отличие от моих радиорозеток здесь не 4 канала, а целых 8 — есть где разгуляться. Смена каналов реализована с помощью, так сказать, аппаратного конвертера из десятичной системы в двоичную.

    . пластик мягкий, энкодер жесткий, маркер-указатель розетки почти незаметный. Пришлось подкрасить фломастером.


    Энкодер представляет собой поворотную втулку с контактами-«усами» и ее ответную часть — плату с рисунком дорожек, замыкание которых «усами» и определяет состояние трех из 8 бит адреса. Несложно догадаться, что именно эти три бита и определяют 8 каналов управления.



    Беглое ознакомление с заляпанной флюсом платой раскрывает следующую картину:



    1) Линии адреса A0, A4 — A7 сразу посажены на землю (т.е. соответствующие биты установлены в 0).

    2) Линии адреса A1 — A3 с одной стороны подтянуты к +5В через резисторы, а с другой — сажаются на землю энкодером (т.е. принимают значения от 000 до 111).

    3) Линии данных D1 — D3 также подключены к земле, а управляющий бит оставлен на откуп D0.

    Это пожалуй, самое интересное. Из менее интересного — тип реле, по которому видно, что заявленный в характеристиках киловатт, оно должно выдержать.

    Угадай мелодию

    Ага, вот эти биты! Хотите немного уличного реверс-инжиниринга?


    Конечно же розетки не реагировали на имеющиеся у меня пульты — но оно и хорошо. Конечно же вслепую подобрать хотя бы один код не получилось. Хотя нет, вру — в процессе случайно набрел на один из кодов уже работающих у меня розеток. Вот уж повезло. Параллельно я размышлял над тем, почему автор RC-Switch говорит о протоколе с тремя состояниями битов, хотя в примерах использует только два: 0 и F.

    Это, а также заявленная совместимость с библиотекой, несколько сбивали с толку. Поэтому я решил пойти простым путем, т.е. избавиться от лишних битов и состояний. Логика работы энкодера недвусмысленно намекала, что у него есть положение с тремя гарантированными нулями в битах адреса, отвечающих за выбор канала управления. Добавим к этому посаженные на землю остальные линии адреса — и получим 8 нулей. Останется только вычислить управляющие биты линии данных.

    Забавно, но упомянутые три нуля мультиметр показал, если установить энкодер в положение восьмого канала. Т.е. кодировка получилась «задом наперед»:

    8 — 000
    7 — 100
    6 — 010
    5 — 110
    4 — 001
    3 — 101
    2 — 011
    1 — 111

    И здесь, кстати, обнаружилось третье состояние, которое не встречается в практических примерах RC-Switch. Иными словами, адрес состоит из 0 и 1, а как раз F и не используется.

    Что касается линий данных, то судя по распиновке в даташитах, управляющим битом с одинаковой степенью вероятности могли быть и D0 и D3. Но на практике это все же D0 (если судить по схеме кодового слова).

    В результате дальнейших экспериментов выяснилось, что команда включения представляет собой F000, а выключения — 0000 по линии данных.

    Вот небольшой код для демонстрации процесса
    /*
    http://dzrmo.wordpress.com/2012/07/08/remote-control-pt2272-for-android/
    http://sui77.wordpress.com/2011/04/12/163/
    http://code.google.com/p/rc-switch/
      
    */
    
    #include <RCSwitch.h>
    
    RCSwitch mySwitch = RCSwitch();
    
    void setup() {
    
      // передатчик на цифровом пине 10
      mySwitch.enableTransmit(10);
    
      
    }
    
    // первый бит всегда 0
    // следующие три бита, соответствующие номерам каналов (розеток)
    // 8 - 000
    // 7 - 100
    // 6 - 010
    // 5 - 110
    // 4 - 001
    // 3 - 101
    // 2 - 011
    // 1 - 111
    // биты 5-8 - 0000
    // последние четыре бита: F000 - ВКЛ
    //                        0000 - ВЫКЛ
    
    void loop() {
    
    
      // переключаем розетку #2 с интервалом в секунду
      mySwitch.sendTriState("00110000F000");
      delay(1000);  
      mySwitch.sendTriState("001100000000");
      delay(1000);
    
    }
    



    Резюме

    Что хотел — то и получил. Розетки вполне пригодны для домашнего использования, система команд героическими усилиями разгадана (опять я угадывал вместо получения знаний) и легко реализуется с помощью библиотеки RC-Switch в коде для Arduino. Пульт не нужен.

    Итого — до 8 крайне экономически эффективных каналов ДУ из коробки и перспектива их увеличения за счет использования дополнительных линий адреса (нужно только разрезать дорожки и подтянуть их либо к плюсу, либо к земле (главное — не допускать пересечения адресного пространства с техникой, которая управляется теми же битами данных).

    Очевидные минусы — единое (из той же коробки) для всех розеток адресное пространство и система команд. То есть, если ваш сосед купит такие же, будете щелкать розетками друг друга, если, конечно, кто-то не догадается подкорректировать адреса.

    В общем, можно пользоваться.

    ps. Описанное колдовство по угадыванию может не сработать, если попадется кардинально другой чип, или его алгоритм, реализованный в отдельном микроконтроллере (обычно какой-нибудь PIC) без столь наглядных линий адреса и данных. В этих случаях придется действительно приложить голову.
    Share post

    Similar posts

    Comments 22

      0
      Есть подозрение, что в вышеуказанном магазине к утру девайсы могут уже закончиться :)
      Вообще вариант очень интересный — можно использовать как в готовом виде так и в качестве комплекта для доработки (взяв корпус и силовую часть, но поставив свой трансивер и контроллер, которые дадут обратную связь)
        0
        на Украине в Эпицентре похожие розетки по приблизительно такой же цене уже несколько лет не заканчиваются
        +5
        Тьфу ты! Я то уж челюсть под стол уронил, думал реально розетка беспроводная. Эххх…
          –1
          Надо попросить автора в следующем посте написать, как сделать из этой розетки безпроводную
          +2
          Она и есть беспроводная. Там же явно написана рабочая частота 433,92 МГц.
          Радиочастотная часть в правом верхнем углу, если смотреть фотографию платы со стороны деталей.
          В последней фотографии топика эта часть платы немного не вошла в кадр (ниже светодиода).
          Автору не нужен пульт потому, что он разобрался в кодах управления и может использовать уже имеющиеся у него пульты.
          По поводу цены, бывает такое. Мне удалось купить настенные одноклавишные выключатели для подобной системы по 70 рублей. Причину снижения цены не понял, но думаю, что она была в батареях питания с истекшим сроком годности. Батарейки поменял, работают уже больше года и не жужжат.
            +2
            Не в этом дело ) Мне намекнули, что я имел неосторожность назвать текст таким образом, что создавалось впечатление, будто бы речь идет о розетках в буквальном смысле в воздухе, без каких бы то ни было материальных силовых линий.
              0
              Тонкий юмор! Как в дискуссиях про беспроводную зарядку.
            +2
            Ок, заголовок я поправил. Чтобы не было, так сказать, напрасных надежд.
            0
            А для PC есть какой-нибудь usb-передатчик совместимый? Не ардуино ж единым.
              0
              Я сейчас поискал, и на первый взгляд ничего похожего не нашел. Тут два варианта: или никто особо не думал о такой штуке, или я неправильно ищу. Но у меня ощущение, что Arduino+передатчик, подключенные к ПК по USB вряд ли будут дороже отдельного USB-передатчика (если такие есть).
              –1
              Малолетние вредители ближайшего будущего уже во всю потирают свои вредительские ручки, видя абсолютное отсутствие защиты подобных систем от внешнего вмешательства.
                0
                Все гораздо печальнее. Это пережитки прошлого, сейчас же малолетним вредителям это ни разу не модно — розетки какие-то, протоколы. У них все будет на Wi-Fi, через планшетики, чтобы на айфончике кнопочку нажал — и запустил в систему страшный лампочкомигательный вирус.

                Я думаю, сейчас китайцы сольют остатки 2262/2272, и перейдут на всякий там мейнстрим. У них и так уже Z-Wave вроде бы как набирает обороты.

                К тому же, если серьезно, то радиус действия этих штук — хорошо, если квартира. Разумеется, с более чувствительным приемником и более мощным передатчиком можно добиться большего. Но чтобы хотя бы какой-то толк был, это же надо найти жертву, подобраться поближе. Убедиться, что получится хотя бы какой-нибудь моральный эффект и т.д. и т.п. Это же не пароль от вконтактика получить, так что если включится розетка, скажем, с вентилятором, вообще непонятно, что такое случилось.

                Опять же, эти устройства не относятся к разряду критически важных, так что пусть дети забавляются. Глядишь, новый опыт (интеллектуальный или солью в точку опоры) получат :)
                  –1
                  Опять же, эти устройства не относятся к разряду критически важных, так что пусть дети забавляются. Глядишь, новый опыт (интеллектуальный или солью в точку опоры) получат :)
                  Это шутка, надеюсь.
                    0
                    Про соль? Что касается меня — конечно. Но люди-то разные бывают. Или про критически важные устройства? Тогда я надеюсь, что высказанная надежда — шутка.
                      0
                      Я все свои личные вещи считаю неприкосновенными, если что.
                      Все что внутри квартиры — это мои личные вещи.
                    0
                    У китайцев ещё есть learning code системы, например на EV1527. Там каждый чип имеет уникальный 20-битный адрес. По радио оно всё конечно передаётся незашифрованным, зато с соседями точно не пересечётся. Ещё в природе существуют дешёвые китайские микросхемы для схемы KeeLoq, но в розетках я их не замечал.

                    Это я всё к тому, что на Z-Wave там перейдут очень не скоро.
                      0
                      а не может быть у них, как с планшетами — сначала используют то, что под руками, а потом как-то более-менее подтягиваются к брендам? Мне показалось, что они, хоть и китайцы, но все же видят, что покупают охотнее.

                      А какая-нибудь обучаемая, расширяемая, универсальная и простая в установке/настройке система с разными там выключателями и исполнительными устройствами наверняка будет популярна. С другой стороны, если посмотреть, даже у китайцев на Z-Wave ценник конский. Ладно, будем ждать очередной технической революции, когда в железобетон дома уже будет встроено все необходимое :)
                  0
                  -
                    0
                    Рост интереса и соответственно числа публикаций по «умному дому» подсказывает, что более простым решением было бы встраивание систем управления электропитаемыми устройствами «умного дома» непосредственно в объекты управления. Тем более что большинство из них уже имеет электронные источники питания (часто управляемые по ИК каналам). Это позволяет отказаться от дополнительных коммутаторов в линии питания (часто релейных). А любой такой «лишний» элемент не повышает общей надежности системы.
                    Так что следует ожидать появления единого стандарта для защищенных систем управления «умным домом»
                    на большое число каналов управления
                    и появления «умных потребителей».
                      0
                      написал вам в личку

                      Only users with full accounts can post comments. Log in, please.