Радиомодули WL101-341 WL102-341 – подключение и тестирование

Радиомодули WL101-341 WL102-341
Просматривая товары в китайском интернет магазине, наткнулся на комплект радиомодулей, состоящий из приемника WL101-341 и передатчика WL102-341, недолго думая решил заказать их, чтобы протестировать. Внешне модули выглядят качественно, и имеют минимальные размеры, построены на специализированных микросхемах, на платах присутствуют кварцевые резонаторы. Передача данных осуществляется с помощью амплитудной модуляции (ASK).

Модуль передатчика имеет четыре вывода: “+” и “–” для подключения питания, Радиомодули WL101(2)-341EN – линия включение передатчика, DAT – вход для передачи данных. В моих экземплярах линия EN была неактивной, так как на плате установлена перемычка, соединяющая 1-й вывод микросхемы (EN) с линией питания, то есть модуль постоянно работал при подаче питания. Я отпаял перемычку, чтобы иметь возможность управления передатчиком. Напряжение питания может варьироваться в пределах 2-3,6В. В режиме передачи данных, потребление при низком логическом уровне на линии DAT составляет 5 мА, при высоком 17 мА, в отключенном состоянии (низкий уровень на линии EN) потребление менее 1 мкА.

Модуль приемника также имеет четыре вывода: VIN и GND – линии питания, остальные два вывода DO соединены между собой и представляют собой выход демодулированных данных. Пределы напряжения питания составляют 3-5В, потребление 6,5 мА. Заказать модули можно здесь, где я их и брал.

Я применил тот же протокол передачи данных, описанный в статье Подключение радиомодулей к микроконтроллеру, протокол основан на фиксированных временных задержках логических сигналов.

Ниже приведены схемы передатчика и приемника на микроконтроллерах PIC12F629:
Схема подключения радиомодулей WL101-341 WL102-341
Светодиод HL1 в передатчике служит в качестве индикатора передачи данных. В приемнике с помощью переключателя SA1 можно выбрать два режима работы: режим кнопки (разомкнутое состояние SA1) – поочередное включение и выключение светодиода при поступлении команды с передатчика, и режим повторения (замкнутое состояние SA1) – светодиод светится, пока нажата кнопка на передатчике.

Антенны для передатчика и приемника изготовил из медного обмоточного провода диаметром 1 мм, антенны спиральные, намотаны на цилиндрической оправе диаметром 3 мм, количество витков 21, подобные антенны также можно приобрести в интернет магазинах. В отличие от штыревой антенны, спиральная имеет меньшие габариты.

Ниже представлены код программы передатчика:

Ниже представлены код программы приемника:

Для начала я установил скорость передачи данных на уровне 1333 бит/сек (в протоколе один бит состоит из двух логических уровней длительностью 250 и 500 мкс), при этом наблюдался крайне неустойчивый прием данных, увеличение скорости привело к полной тишине, приемник ничего не ловил. Я стал разбираться в причинах неуверенного приема, и начал поиски даташита на микросхему приемника, на самой микросхеме обозначение отсутствовало. Поиски привели меня к микросхеме под названием SYN500R, очень похожей на микросхему приемника. Из даташита, микросхема имеет два вывода для настройки максимальной частоты демодулированных данных (всего 4 варианта значений частоты), самая низкая частота 1250 Гц, соответственно для успешного выделения полезного сигнала, длительность импульсов не должна быть меньше 400 мкс. Согласно этим данным, я уменьшил скорость передачи данных до 833 бит/сек, при этом длительности логических ровней для передачи одного бита составили 400 и 800 мкс. После этого приемник начал стабильно ловить команды с передатчика, видимо микросхема в модуле приемника настроена на минимальную скорость. Я думаю, можно настроить и на более высокие скорости, перепаяв выводы микросхемы, отвечающие за частоту демодулирования.

Позже один из подписчиков поделился даташитом, который был предоставлен продавцом из Китая, из даташита микросхема приемника имеет название WL119 и схожа с SYN500R, даташит можно скачать в конце статьи.

На стабильность приема влияет длина преамбулы в программе передатчика, минимальная длина 2 байта. Я пробовал уменьшать длину до одного байта, при этом наблюдался неуверенный прием. В вышеприведенной программе длина преамбулы составляет 3 байта.

Я решил сравнить данные радиомодули с другим комплектом модулей FS1000A и XY-MK-5V, которые я подключал ранее. Был произведен тест на дальность в прямой видимости, модули WL101/WL102-341 показали очень хороший результат, приемник ловил на расстоянии в 160 метров, на обоих модулях были установлены спиральные антенны, а модули FS1000A, XY-MK-5V с штыревыми антеннами выдают максимум 60 метров. Стоить заметить, что спиральные антенны в целом уступают штыревым, но это не помешало модулям WL101/WL102-341 показать хороший результат, почти в три раза большая дальнобойность по сравнению с аналогичным комплектом модулей. Во время теста на передатчик FS1000A подавалось напряжение 9В, в то время как на передатчик WL102-341 всего 3,6В, что также является преимуществом. Цена обоих комплектов примерно одинакова.

Также я тестировал более навороченные радиомодули HC-12 на основе трансивера Si4463 (приемопередатчик), в этих модулях управление и передача данных осуществляется через UART интерфейс, дальность связи может достигать 1,8 км.

Макетная плата приемника и передатчика WL101(2)-341
Прошивка и исходник передатчика и приемника
Даташит WL119

У этой записи 38 комментариев

  1. Спасибо за подробный тест. Тоже прикупил эти модули, хочу приспособить в качестве пейджинга к сигнализатору поклевки. Правда на 433 МГц сильно шумно, либо это приемник такой шумный. Можете более подробно пояснить как из максимальной частоты демодулированных данных приемника вычислить минимальную длительность импульса для успешного выделения полезного сигнала.

    1. То есть у вас приемник плохо ловит команды? приемник должен стабильно ловить команды, ухудшение приема возможно если поблизости одновременно и непрерывно работают брелки на 433 МГц.

      Я не вычислял минимальную длительность импульсов, а просто посмотрел таблицу в даташите на подобную микросхему приемника SYN500R. Ниже приведена эта таблица:
      SYN500R

      Как видно микросхема может быть настроена на 4 различные скорости, в зависимости от лог. уровней на входах SEL0, SEL1. Я проверил значение уровней на плате модуля приемника, получилось SEL0=1, SEL1=0 что должно соответствовать максимальной частоте демодулированных данных в 2500 Гц и мин. длительности импульса 200 мкс. Но с такими параметрами импульсов модуль плохо ловил команды, значит в модуле стоит микросхема отличная от SYN500R. Далее я решил привести параметры импульсов к минимальной скорости (как указано в даташите) в 1250 Гц (мин. длительность 400 мкс), после чего появился стабильный прием.

      Длительность преамбулы также влияет на стабильность приема, об этом я писал в статье.

      1. short=замкнуто, по идее это лог.1
        open=разомкнуто, по идее это 0
        то есть, по вашей таблице SEL0=1, SEL1=0 соответствует SEL0=short, SEL1=open, значит было не 2500гц а 5000гц

        1. Я все правильно указал, из даташита на SYN500R следует что выводы SEL0 и SEL1 имеют внутреннюю подтяжку к высокому логическому уровню, соответственно OPEN это когда вывод никуда не подключен и это лог.1, а SHORT это замыкание на общий провод и соответственно лог.0.

          Скриншот из даташита:
          SYN500R_SEL

  2. В радиусе 50 метров команды без пропусков ловит, а дальше уже хуже. Подключил наушники к приемнику, шума в городе на 433 МГц очень много и присутствует какое то постоянное жужание. Скорее всего оно и перебивает мои команды. Походу нужно за город выезжать и там пробовать. Я выпросил у китайца даташит на приемник, но в нём табличка с режимами поскуднее выглядит, в ней только две колонки:1) с тремя комбинациями подключения SEL0, SEL1 и 2) пределы скоростей.

    1. Я испытывал модули вдали от города, там приемник ловил команды на расстоянии в 160 метров в прямой видимости, пропуски на таком расстоянии были конечно, но в пределах 100м ловило без пропусков, опять же в прямой видимости. Препятствия будут снижать дальность действия, а вот насчет шума не могу ничего утверждать, неужели в городе в пределах 100-150метров, постоянно непрерывно работают передатчики 433МГц. Надо будет провести испытания в городских условиях.

      Кстати, если вас не затруднит, вышлите даташит китайца мне на почту.

  3. Жужжит – страшное дело! Еще когда пытался самодельные модули делать вот эти http://vrtp.ru/index.php?act=categories&CO…le&article=1418, сверхрегенеративным приёмником улавливал эту помеху при настройке. Так и не получились они у меня, а именно уселительный каскад в передатчике, ну никак не хотел работать. Но это, опять таки, в моём районе шумит, в других местах не слушал. За городом возле речки думаю ситуация намного лучше будет.
    Даташит вышлю. Китаец потрудился, прислал две версии – оригинал на китайском и вторую, перевёл на английский, что смог.

    1. Дмитрий , а как вы избавились от шумов приемника ? У меня вот тоже шумит , и прерывание срабатывает на шум.(( приемник WL 101

      1. Глеб, пока что никак не удалось победить шум. Из-за него в моём устройстве идёт ложная сработка. Пришлось снова на сверхрегенеративный приемник перейти. Заметил еще, что приемник (с данной статьи), если поймал шум-помеху “держиться” за неё до последнего, как бы автоподстройка в нём имеемся. Может показалось.

        1. Какой вы алгоритм применяете на стороне приемника? Вот у меня ни разу не было ложных срабатываний с алгоритмом, который я применял в этой статье.

          1. Не я автор, вот ссылка на разработку:
            http://cxem.net/elud/elud11.php

  4. Кривой адрес написал с модулями, вот еще раз http://vrtp.ru/index.php?act=categories&CODE=article&article=1418

  5. Как то непонятно ведёт себя передатчик: решил попробовать управлять включением через пин EN. Отпаял перемычку между EN и VCC, проверил тестером, что первая нога микроссемы соединена с пином EN и уже не сидит на VCC. Подаю питание контролируя потребляемый ток и вижу потребление 4 мА, на DAT при этом ничего не подключено. Когда касаюсь пальцем пина EN, ток падает до 0,2 мА… бросаю, и снова 4 мА.
    Может сталкивалиси с таким поведением, что это может быть?

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

      1. Спасибо! А я воспринял “низкий уровень” как отключение от плюса, недопонял я даташит.
        Ещё вопросик – я смотрю что схема упрощена китайцами по сравнению с даташитом в количестве деталей, хотя места под них разведены на плате. Вы не пробовали дополнять её в соответствии с даташит, может это положительно повлияет на работу передатчика?

        1. Нее, дополнять не пробовал, возможно характеристики улучшатся, но не думаю что кардинально, мощность в основном зависит от напряжения питания.

  6. при подаче питания на VCC или подключении DAT в эфире появляется несущая.
    я так понимаю автоматически включается из-за перемычки между EN и VCC.
    а можете подсказать где эта перемычка?

    1. Перемычка идет к 1-му выводу микросхемы передатчика, ниже на фото обведен красным кружком.

      WL102-341

  7. Не совсем понятно как программа понимает что после преамбулы идут данные?
    если после преамбулы пойдут данные (010101010101…) что произойдет ?
    и второй вопрос а почему так все сложно? ))
    не ужели нельзя сделать конструкцию данные – строб

    1. Длительность низкого и высокого уровня битов преамбулы одинаковая, а для бита данных разная, для лог.0 низкий уровень в 2 раза длиннее высокого, для лог.1 наоборот высокий уровень длиннее, соответственно определить начало передачи данных не составляет труда. О протоколе передачи данных я писал в статье про подключение радиомодулей FS1000A и XY-MK-5V

      Не совсем понял про конструкцию данные — строб.

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

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

      1. Я прочитал Выше статьи,
        конечно в даташите от SYN500R они НЕ настраивают применять манчестерское кодирование, но все говорит о том, что этот приемник создан специально для него (манчестерское кодирование).
        данные – строб это классическое декодирование манчестерского кода см. https://www.youtube.com/watch?v=U5UsZFjx7qA

        мне не совсем понятен замысел разработчиков микросхемы SYN500R , зачем они вводят режимы скорости (4 режима), причем не гибкое! зачем?
        Я ранние на работал с такими приемниками , заказал скоро должны прибыть (wl101-341).
        Вообще судь вопроса написать программу которая могла бы декодировать код который приходит по чистоте 433 мгц (ну пуская пока ASK)
        которая могла бы принимать код с разными скоростями (само синхронизировалась).

        1. Нет, приемник не создан для манчестерского кодирования, он не может декодировать сигнал, скорее манчестерский код наиболее предпочтителен для такого рода приемников.

          Я не знаю зачем разработчики заложили несколько скоростей передачи, кстати микросхема приемника это WL119, я выложил даташит в конце статьи, до этого все забывал загрузить, она схожа с SYN500R.

          1. >> Я не знаю зачем разработчики заложили несколько скоростей передачи
            Чем уже полоса (BW) тем выше чувствительность приемника, но падает пропускная способность (минимальная ширина одного бита увеличивается). Соответственно, перемычки выставляют в зависимости от приоритетности скорости передачи либо дальности.

  8. Пора бы уже заняться модулями NRF24L01.
    Досадный пробел.Нет нигде примера на PIC да еще на ассемблере.
    А очень хотелось бы…

  9. Огромное спасибо автору за разработку!
    Комплект завелся с пол-оборота! Дальность четкого срабатывания на открытом пространстве (балкон 3-го этажа – открытая местность) более 200м, дальше не проверял.
    В обоих контроллерах применил PIC12F675 с внутренним калиброванным генератором. Изменение температуры ( в комнате +23, на улице +1) на стабильности срабатывания никак не отразилось.

  10. 500м на открытой местности – стабильное срабатывание. Ложных срабатываний нет. Антенны на приемнике и передатчике – полноразмерные диполи. Испытаны два комплекта приемников и два комплекта передатчиков, разницы в работе при перекрестной замене модулей нет.
    При размещении передатчика в машине, приемник на 3-м этаже панельного дома иногда пропускает пакеты передатчика, на функционал системы это не влияет.

    1. А можно подробнее про диполи: размеры, подключение?

      1. wan-derer.ru/blog
        два монтажных провода длиной около 17см каждый, один к точке подключения антенны на плате, другой к общему проводу на плате.
        Кстати, на али не так давно появились четырехканальные модули приемников-передатчиков уже с логической частью, внешний контроллер не нужен. Поигрался и с ними, работают, дальность такая же, на открытом пространстве более 500м.

  11. А возможно эту схему и прошивку использовать с FS1000A модулями?

  12. Приветствую. Я не очень понял логику работы этих модулей. Например, можно их использовать как “удлиннитель” логического сигнала? Т.е. подав “0” на вход передатчика получить “0” на выходе приёмника, а подав “1”, получить “1”?
    У моего приёмника на выходе присутствует хаотичный меандр размахом 1.5В (питание 5В), на включение передатчика никак не реагирует. Это у меня дохлый приёмник или столько помех в эфире?

    1. Эти радиомодули можно использовать для передачи цифровых импульсов вида 101010…, только длительность логических уровней не должна быть короче 400 мкс, длинные импульсы (более сотен миллисекунд) также передаваться не будут. Приемник без включения передатчика ловит хаотические помехи, поэтому на выходе получается шум. Просто включив передатчик проверить приемник не получится, так он не будет работать, нужно передавать последовательность импульсов, длительность которых лежит в пределах 0,4-10мс.

      1. О, пасиб! Подключил к передатчику генератор на 20 кГц, на приёмнике получил сигнал 🙂
        Только размах около 2В. Как-то маловато, по-хорошему надо разгонять для 5-вольтовой логики. У тебя так же?
        И больше 20 кГц не тащит, впрочем, так и написано у продавана в описании.

        1. Размах сигнала не измерял, я тестировал эти модули только совместно с микроконтроллером, 2В для микроконтроллера в принципе достаточно для распознания уровней, можно подключить выход приемника через резистор к базе биполярного npn транзистора, эммитер соединить с общим проводом, подать +5В через резистор на коллектор и снимать с него уже 5-ти вольтовый сигнал, только сигнал будет инверсный.

          При совместной работе с микроконтроллером, импульсы малой длительности передаваемые на передатчик плохо распознавались на стороне приемника, после увеличения минимальной длительности до 400мкс, начался стабильный радиоприем, о чем я писал в статье, это получается 2,5 кГц.

          1. Я бы сказал, 1.25 кГц если считать полный период из “0” и “1” по 400 мкс. Ну, я пробовал какой там максимум. Понятно что всё зависит от качества приёма, быстродействия МК, качества софта, количества задач. Это, можно сказать, дешёвые модули, тут рекорды ставить никто не собирается 🙂
            По поводу уровней, вроде, “1” по стандарту – не менее 2.5В. Разогнать, конечно, можно, но непонятно почему так сделано. Надо будет схему покурить, может китайцы что-то с номиналами нахомутали.

  13. Здравствуйте! Не могу прошить микросхему. Программатор ТРИТОН. Программатор пишет что программирование закончено, но ничего не работает. Может есть какие то нюансы при прошивке. Есть галочка включить ЕЕПРОМ, ID, калибровки. Надо ли ставить галочки напротив этих слов?

  14. Здравствуйте. Большое спасибо за статью. Про преамбулу я бы никогда не догадался. про частоту догадывался, а про преамбулу не догадался. Даже спустя годы полезная статья.

Имя (обязательно)Email (обязательно)Веб-сайт

Добавить комментарий