Беспроводной модуль 2.4 ГГц JDY-40 (UART/дистанционное управление)

Модули JDY-40 завоевывают популярность благодаря своей низкой стоимости и простоте использования. Штуковина очень полезная, ведь по сравнению теме же платками на 433 МГц стоит дешевле, но является готовым устройством, которое можно использовать как для передачи данных, так и для управления в различных режимах. В статье приведены схемы подключения и основные команды, сделаны замеры потребляемой мощности и испытания на дальность работы.

Содержание

1 Основные параметры
2 Что это такое
3 Элементная база
4 Как подключить
4.1 Рекомендуемое программное обеспечение
5 Передача данных между двумя модулями
6 Передача данных с МК
7 Дистанционное управление нагрузками
8 Попытка передать сигнал
9 Потребляемая мощность
10 Проверка дальности передачи данных

Основные параметры

Рабочая частота: 2,4 ГГц
Мощность передатчика: 12 дБ
Чувствительность приёма: -97 дБ
Дальность: до 120 м
Ток передатчика: 40 мА
Ток приёмника: 24 мА
Ток покоя: 5 мкА
Питание: 1.9-3.6 В (НЕ ПИТАТЬ ОТ Li-Po/Li-ion-аккумулятора напрямую!)
Размеры: 13.7 мм х 23.0 мм

Цена: 1$/шт

Купить на Aliexpress

DY-40 2.4G wireless serial port transmission transceiver
Цена: 0.6$ + 0.15$ = 0.75$

JDY-40 2.4G Wireless Serial Port
Цена: 0.78$

JDY-40 module
Цена: 0.56$

Что это такое?

Это приемопередатчик (может как передавать, так и принимать информацию) через УАПП (Универсальный Асинхронный Приёмопередатчик), то есть с помощью него можно обмениваться данными через UART без проводов на расстояние до 120 м (далее проверка дальности) между двумя такими штуками.

Бонусом к этому идет возможность настройки на режим управления нагрузками (восемь штук), ну то есть одна плата будет передатчиком с кнопками, а вторая приемником с нагрузками (светодиоды, двигатели, нагреватели, разбрызгиватели)...

Элементная база

МК: BK2461

ЭСППЗУ: 24C02B

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

Модуль JDY-40 с микроконтроллером BK2461 и памятью 24C02B

Как подключить


Питать от ОТДЕЛЬНОГО источника 3.3В, а не от преобразователя!


Наиболее просто пока что не использовать МК, а просто подключить один модуль в качестве приемника к ПК/телефону через преобразователь и проверить АТ-команды.

Рекомендуемое программное обеспечение

  • Для компьютера: YAT
  • Для телефона: Serial USB Terminal

Настройки ПО

Скорость: 9600 бод/с
Данные: 8 бит
Парность нет
Стоп-бит 1
Также включить
при передаче
CR+LF (Перевод каретки + Возврат строки)


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

AT+BAUD
+BAUD=4
Скорость обмена 1: 1200 бод/с
2: 2400 бод/с
3: 4800 бод/с
4: 9600 бод/с
5: 14400 бод/с
6: 19200 бод/с
AT+RFID
+RFID=8899
Идентификатор сети (0000-FFFF)
(0-65535)
AT+DVID
+DVID=1122
Идентификатор устройства (0000-FFFF)
(0-65535)
AT+RFC
+TFC=001
Канал (1-128)
AT+POWE
+POWE=9
Мощность 0: - 25 дБ
1: -15 дБ
2: -5 дБ
3: 0 дБ
4: +3 дБ
5: +6 дБ
6: +9 дБ
7: +10 дБ
8: +10 дБ
9: + 12 дБ
AT+CLSS
+CLSS=A0
Режим работы A0: Передача данных через УАПП между модулями
C0: Управление (со светодиодной индикацией)
C1: Управление (без светодиодной индикацией)
C2: При нажатии кнопки создается импульс длительностью 30 мс (переход от низкого уровня в высокий)
C3: При нажатии кнопки создается импульс длительностью 30 мс (переход из высокого уровня в низкий)
C4: Высокий уровень при нажатой кнопке, низкий при отпущенной
C5: Переключение уровня при нажатия

Кстати, если отключить вывод CS от минуса, то модуль переходит в спящий режим (пониженное энергопотребление), а когда просыпается, то отправляет слово:

Wake


Обновление 2021.07.12

Некоторые версии могут присылать START:


Всё прекрасно, модуль послушно отвечает. Менять пока что ничего не будем.

Передача данных между двумя модулями

Теперь можно задействовать и второй экземпляр, на его входы возможно кидать данные с МК или опять же через переходник с телефона/ПК из-под программы-терминала.

Подключение для работы в качестве передатчика естественно немного отличается.


Питать от ОТДЕЛЬНОГО источника 3.3В, а не от преобразователя!


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

Причем связь осуществлена полудуплексная, ведь информацию можно передавать только от передающего. 

Передача данных с МК

Также дополнительно по-быстрому осуществлена передача данных (температура с датчика  HTU21D по I2C) от STM32 и отображена в видео графика (ПО: SerialPrint):

В целом все ништяк, но всё же находясь даже на близком расстоянии маленькая часть данных умудряется теряться/искажаться, при увеличении же расстояния потери еще больше.

А вот еще данные, полученные через этот модуль, записанные в текстовый файл и потом построенные в Гугл Таблицы (при сжатии пальцами микродатчика быстренько температура растет, далее держу и отпускаю микросхемку - температура постепенно падает):

Понятное дело, что для качественной перегонки инфы нужно будет делать проверку целостности данных. В случае с таким датчиком как у меня это просто сделать благодаря CRC.

Дистанционное управление нагрузками

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

Кем выступает Пульт управления (модуль 1) Приемник команд (модуль 1)
Режим: C1 C4
Доп. выводы CS и SET не используются выводы CS и SET не используются
Настройка путем
отправки команд (замкнуть CS и SET на минус!)

Выводы GPIO7, GPIO8 GPIO7, GPIO8
Что подключено Кнопки (при нажатии замыкают вывод на минус) Светодиоды (анод к выводу, катод к минусу)

Попытка передать сигнал

Есть восемь выводов, то есть по сути восемь каналов. Можно ли их использовать для передачи ШИМ-сигнала? Подаем на вход пульта сигнал = 100 Гц, = 50%

А на приемники получаем сигнальчик с частотой 7-8 Гц, так что идея с управлением сервоприовдами (нужна = 50 Гц) и безщеточными двигателями (нужна = 400 Гц) провалилась (скорее всего из-за программы подавления влияния дребезга контактов).

В статье ? Дистанционное управление на модуле JDY-40 сделана платка для удобного монтажа модуля вместе с обвязкой, а также проверена дальность работы в поле:

Потребляемая мощность

Режим A0

Ток при передачи: 26 мА
Ток при приеме: 22 мА
Ток покоя (спящий режим): 9-12 мкА

*режим A0; напряжение питания 3.3В

Режим C1 (пульт управления)

Ток в режиме ожидания:1.66 мА
Ток в режиме управления (один канал):4.8 мА
Спящий режим:отсутствует

Режим C4 (приемник команд)

Ток в режиме ожидания:24.7 мА
Ток во время приема команды (один канал, с учетом СИДа):25.7 мА
Спящий режим:отсутствует

Видеообзор

Модель

Запили по-бырому модельку :

jdy40_3d_model.step

Проверка дальности передачи данных (без внешней антены)

В довольно непростых условиях (кругом здания) получились неплохие результаты:

15 м уверенный прием, незначительные потери
20 м уверенный прием, незначительные потери
80 м плохой прием, много потерь (здесь были небольшие заграждения)
113 м прием неплохой (нашел хорошее положение)
150 м также прием есть, но зависимость от положение огромная

*температура от датчика (число с плавающей точкой) преобразовывалась в строку и передавалось в УАПП каждые 250 мс

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

34269
RSS
alex
08:09

Что значит: (НЕ ПИТАТЬ ОТ Li-Po/Li-ion-аккумулятора напрямую!) ?


09:05

ну если Uпит = 1.9-3.6 В

А у Li-ion банки (обычной) напряжение от 3.7 (заряд 0%) до 4.2 (заряд 100%), то это очевидно выходит за разрешенный диапазон питающего напряжения.

alex
12:27

А я подключил этот модуль к литиевой батарейке CR2477 и он не заработал.

Вот я и подумал, что из-за этого типа питания.

Но раз дело в диапазоне, значит причина неработы какая-то другая(так как U=2.98v)

А смысл неработы такой: Хочу послать АТ-команды.
Пины CS и SET соединил с GND
Подаю питание на VCC и GND от этих трёх вольт.
И с вывода Тх начинают передаваться нулевые байты с частотой 4 раза в секунду.
Думал модуль испорчен, но все остальные ведут себя также...
Подскажите, пожалуйста, в чём может быть причина.
18:15

Вообще к таким литиевым таблеткам лучше не подключать мощную нагрузку (более 1 мА).

Это вы в терминале смотрите? У меня ничего не отправляет просто так, только что еще раз подключил через USB-TTL преобразователь.

Подключите через стабилизатор 3.3В, чтобы точно удостовериться в отсутствии проблем с питанием, ведь тут около 20 мА ток. Скорость 9600 бод/с проверьте.

alex
08:34

Кое что прояснилось!

Передавались не нулевые байты, а один и тот же стартовый нулевой байт.
(Я и в терминале смотрю и на осциллографе посмотрел.)
Просто после его передачи, постоянно происходит сброс модуля (из-за проблем с питанием конечно же — литиевый элемент оказался стареньким)
И вот Вы зря пишите, что «ничего не отправляет просто так»
При подаче питания на модуль, он сам сразу же отправляет нулевой байт, слово START и #13#10
Дальше затык в том, что модуль не отвечает ни на какие АТ-команды...
alex
08:35

Кое что прояснилось!

Передавались не нулевые байты, а один и тот же стартовый нулевой байт.
(Я и в терминале смотрю и на осциллографе посмотрел.)
Просто после его передачи, постоянно происходит сброс модуля (из-за проблем с питанием конечно же — литиевый элемент оказался стареньким)
И вот Вы зря пишите, что «ничего не отправляет просто так»
При подаче питания на модуль, он сам сразу же отправляет нулевой байт, слово START и #13#10
Дальше затык в том, что модуль не отвечает ни на какие АТ-команды...
естественно проверяю на скорости 9600
17:13

Про START при подключении забыл уже.

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

Но опять же проблемы с ним возникали обычно только из-за плохого питания.

21:28

походу не включен перенос каретки и переход на новую строку (CR + LF), проверьте

Влад
16:45

Поставьте ближе к плате JDY-40 конденсатор электролит 10 мкф и будет счастье. Также мучался, стартовый бит и сброс.

oleg
17:36

Здравия тебе, автор. Жду из поднебесной свои модули. Интересует такой вопрос: режим пульта, будет ли работать 1 приёмник с 2мя передатчиками (3 «кнопки» от одного передатчика и 3 (на других входах) от другого. одновременно одни и те же «кноки» на разных передатчиках не нажмуться физически)? Или надо 2 приёмника на разных каналах (RFC)?

00:30

Хочу использовать в качестве пульта.Планирую на приемник ставить  аку LI-PO 3,7в 100 Mah.Обязательно ли стабилизировать напряжение? Расстояние  20-70 м открытой местности

Что оптимально ставить на передатчик? В идеале всё запихнуть в корпус от селфи кнопки и ли авто д.у.Нужно пользоваться только одной кнопкой.

23:57
+1
Обязательно ли стабилизировать напряжение?

Да, без него выйдет из строя, у вашего аккумулятора напряжение при 100% заряде 4.2В.

Планирую на приемник ставить аку LI-PO 3,7в 100 Mah.

Проработает около 100mAh/22mA = 4.5 часов

Что оптимально ставить на передатчик?

Можно литиевый элемент поставить: CR2032 или что-то побольше, тогда без стабилизатора, в таком случае можно подавать питание только при нажатии, а в простое питание будет полностью отключено.

Вот это еще посмотрите по этому модулю, если не видели: https://cxemka.com/122-distancionnoe-upravlenie-na-module-jdy-40-proverka-dalnosti.html

16:28 (отредактировано)

… в таком случае можно подавать питание только при нажатии, а в простое питание будет полностью отключено.

 Объсните пож. Я использую режим С-4.Кнопка передатчика автоматически при нажатии включает  питание — или этого можно  добиться путем нужной распайки контактов кнопки? По логике, при отключении питания на передатчике, контакт на приемнике остается замкнутым.Чтобы разомкнуть контакт — нужно выключить приемник.

То есть пропаиваю перемычку между одним контактом передачи сигнала и паралелю с питанием? Кнопка стоит на разрыв цепи GND ?

И если всё таки использовать на передатчике CR2032  (230 mAh) не отключая питания- то она продержится пару лет ( режим сна), если не сильно интенсивно давить на кнопку.

21:49
+1

Я использую режим С-4.Кнопка передатчика автоматически при нажатии включает питание — или этого можно добиться путем нужной распайки контактов кнопки?

Можно поставить на передатчик просто две кнопки: одна для управления питанием а вторая для передачи.

По логике, при отключении питания на передатчике, контакт на приемнике остается замкнутым. Чтобы разомкнуть контакт — нужно выключить приемник.

Да, или подать питание на передатчик с нежатой (не замкнутой) кнопкой управления каналом.

То есть пропаиваю перемычку между одним контактом передачи сигнала и паралелю с питанием? Кнопка стоит на разрыв цепи GND ?

Кнопка стоит на замыкание на минус, как на схеме, для любого из каналов:

Валерий
19:47

Добрый день! Столкнулся с такой проблемой: режим приемника С2, С5 работает, а режим С4 (кнопка) — нет! С первым сигналом по данному каналу возникает высокий уровень и пропадает только сбросом питания. Перепробывал 5 модулей, везде одно и тоже! Кто сталкивался, подскажите, пожалуйста, в чем дело?

Валерий
12:44

Разобрался! Нельзя упрощать! Нельзя совмещать кнопку выбора канала с выключателем общего питания. 

Дмитрий
09:49

При попытке установки c4 / c5 режимов рестартует и возвращается в А0, при попытке установки любого другого режима рестартует и отрабатывает нормально. Проверил все чипы — одно и тоже поведение. Подозреваю питания не хватает, но может еще что посоветуете?

19:19

У многих почему-то такая проблема возникает, возможно, новые партии кривые.

Закажу, проверю, но будет это не скоро.

23:24

Проверил на новых – работает 

Запитайте от отдельного надежного источника, питание от самого преобразователя была не лучшая идея(

23:47

Поймал у себя такое. Нужно выставить режим C3 и тогда режим C4 заработает, но C5 так и не заработал нормально.

Прошивка кривая(

23:08

Еще раз такое было на одном из модулей, не выбирался ни C1 ни C4, оставался A0. Выставил C2, он выбрался, далее успешно установил C4.

15:33 (отредактировано)

Решил на литиевый аку 3,7в 80Mah вот такой преобразователь ставить.

https://de.aliexpress.com/item/33051755361.html?sp...

21:53

Этот жрет многовато, но падение напряжение маленькое может быть, так что для одной банки Li-ion/Li-Po подойдет.

Для несколько последовательно подключенных уже не прокатит из-за входного напряжения до 5В, тогда возьмете самый простой AMS1117.

Комментарий удален
17:13

Ток покоя 5мка, тут же в режиме передатчика он так много ест? 1.5мА постоянно? Или только при нажатии? Странно, что он не умеет спать, когда на выводах ничего ен меняется (

Комментарий удален
Комментарий удален
18:22

Вобщем померил сам. В итоге модуль в режиме C1 ест 0.007mA, это хорошо, но при нажатии кнопки поднимает до 3mA, и пока не отпустишь — так и жрёт, т.е. с нажатой кнопкой спать он не может (

Покопал ещё, при нажатии на кнопку передатчика в UART приёмника передаётся код, типа такого: [03]Є[02][01][03]Є[02][01] при отпускании[03]Є[02][00][03]Є[02][00]. Посылка с повтором, последний байт — состояние входа, предпоследний — номер ввода передатчика. Перед ним не знаю что, код 0xAA и 0x03, DVID у меня 1, так что видимо не его он передаёт, будет время ещё помучаю, наверное.

При подаче питания на модуль с замкнутой кнопкой передаёт её код.

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

Oleg
17:35

Здравия тебе, автор. Жду из поднебесной свои модули. Интересует такой вопрос: режим пульта, будет ли работать 1 приёмник с 2мя передатчиками (3 «кнопки» от одного передатчика и 3 (на других входах) от другого. одновременно одни и те же «кноки» на разных передатчиках не нажмуться физически)? Или надо 2 приёмника на разных каналах (RFC)?

Комментарий удален
Александр
09:14

Привет! Нет информации, сколько нужно времени на пробуждение модуля из режима покоя после подачи 0 на CS? Т.е. через сколько мс можно начинать передачу. Режим А0. 

18:12 (отредактировано)

Скорее всего не найдёте, проснуться он может быстро, а вот сколько займёт установление связи это вопрос. Остаётся только самому выяснить, как и большинство мелочей в китайских поделках.

Miki
21:13

Почему-то режим C5 работает как C3. Вместо того, чтобы переключать, просто мигает.

Александр
06:28

Я поставил BAUD 1 и заработало. пробуй...

Константин
07:39

Удивительно, но это сработало! Софт кривой, похоже...

Егор
19:39

Добрый день! Есть проблема с программированием модуля. Подключаю его через USB-TTL  к компу по первой схеме (Vcc модуля к 3v3 конвертера) — и посылаю команды в терминале Yat, ответы приходят. Когда подключаю модуль в качестве передатчика — ответы не приходят. Но конвертер у меня без пина Vcc, либо 3v3 либо 5v. Я подключаю к 3v3 пину. В чем может быть дело?

Загрузка...