Беспроводной модуль 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

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

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

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

  • Для компьютера: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Видеообзор

Проверка дальности передачи данных

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

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

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

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

158
RSS
Нет комментариев. Ваш будет первым!
Загрузка...