- Bluetooth-UART модуль JDY-23 BLE 5.0
- Основные параметры
- Приобрести на Aliexpress
- Что может эта штука
- Элементная база
- Подключение
- Связь между модулем и телефоном через блютуз-соединение
- Рекомендуемое программное обеспечение
- Связь с телефоном через приложение
- Список основных команд
- Управление выводами GPIO
- Как быть с паролем (совет от китайцев)
- Потребляемая мощность
- Проверка дальности передачи
- Техническая документация и полезные файлы
- Видеообзор
- Итого
- ESP32 Serial Communication over Bluetooth Using Arduino IDE
- Introduction to ESP32 Bluetooth Serial Communication Using Arduino IDE
- Initializing ESP32 Bluetooth
- Connecting ESP32 Bluetooth with PC
- Reading Serial Data over Bluetooth Communication
- Conclusion
- About the author
- Kashif
Bluetooth-UART модуль JDY-23 BLE 5.0
Действительно интересный блютуз-приёмопередатчик , который имеет широкий диапазон применения, ведь энергопотребление его сверхнизкое ( BLE — Bluetooth Low Energy ) и размеры малы. В статье приведены основные параметры модуля JDY-23, схема подключения, описание основных команд управления, способы использования и испытания в бою (замеры тока и дальности передачи).
Основные параметры
Приобрести на Aliexpress
?️ JDY-23 JDY-23A BLE 5.0 Module BLE5.0 (0.83?): https://ali.ski/FuEXar
?️ JDY-23 Bluetooth 5.0 module (1.12?): https://ali.ski/JegQ8
?️ 10pcs JDY-23 Bluetooth 5.0 (11.2?/10pcs): https://ali.ski/b0Lxm
Также существует предыдущая, мало чем отличающаяся версия JDY-19 (может работать как ведущее!, то есть есть возможность передачи данных между двумя модулями):
Что может эта штука
- Обмен данными между двумя модулями (JDY-23 не может, а вот JDY-19 может!)
- Обмен данными между модулем (ведомым) и другим Bluetooth-устройством (ведущим)
- Обмен данными между модулем и телефоном
Элементная база
На странице товара пишут, что используется микроконтроллер CC2541 (здесь вроде как блютуз 4.0), на некоторых фото можно увидеть JY01S512E G101S-32P, но самой плате маркировка уничтожена.
Подключение
Связь между модулем и телефоном через блютуз-соединение
Установим связь между ПК и телефоном. Согласно схеме подключаем USB-TTL преобразователь к модулю, желательно также подключить светодиод к выводу ALED — он будет показывать текущий статус подключения (во время простоя — мигает, в подключенном состоянии — просто светится).
Кроме этого может понадобится задействовать вывод PWRC . Когда связь установлена, то команды не работают, для отправки нужно подключить этот вывод к минусу, отправить АТ-команды и отпустить.
Рекомендуемое программное обеспечение
- Для компьютера: YAT
- Для телефона: Bluetooth USB Terminal
Открываем терминал на ПК. Проверяем некоторые AT-команды:
Модуль отвечает, а это уже хорошо (но команда выбора мощности AT+P OWR не сработала, ну и и ладно).
Заходим в приложение на моб.. Меню слева -> Devices -> BLUETOOTH LE -> SCAN
- обязательно дать все разрешения и включить геолокацию (GPS)!
- не пытайтесь добавить модуль в настройках Bluetooth (создать пару) — это сделать не получится (да и не нужно)
Тыкаем по названию (также можно сверить MAC-адрес) и начинается подключение (еще есть кнопка вверху).
Всё! Теперь создана связь между устройствами, отправленное с ПК видно на телефоне, и наоборот ( AT-команды больше не принимаются, чтобы отправить нужно прижать к минусу вывод PWRC ).
Связь с телефоном через приложение
В App Invertor 2 можно создавать приложения, которые могут что-то делать используя как раз Bluetooth (нужно загрузить дополнение BluetoothLE ) с версией не ниже 20181124 .
Осуществив получение данных на телефон и отправку с него с использованием такого модуля можно делать классные штуки.
Пример сделанного приложения (скачать можно внизу):
- Включить Bluetooth и GPS.
- Дать разрешение на геолокацию самостоятельно.
- По нажатию на кнопки ON и OFF отправляются числа 48 и 49, что соответствует символам 1 и 0 в кодировке ASCII.
- Также осуществляется прием байта (0-255) и его отображение на экране.
*это немного измененное приложение на основе:
Список основных команд
Команда | Ответ | Параметр | |
Версия | AT+VER | +VER:JDY-23-V1.2 | — |
Имя | AT+NAME | +NAME:JDY-23 | Имя (до 24 байт) |
Отключится | AT+DISC | +OK | — |
Текущий статус подключения | AT+STAT | +STAT:00 | 00: не подключен 01: подключен |
MAC-адрес | AT+MAC | +MAC:19093010061F | MAC-адрес (пример: AT+MAC11223344566) |
Скорость UART | AT+BAUD | +BAUD:4 | Параметр: (1-9) 0——*115200 1——57600 2——38400 3——19200 4——9600 5——4800 6——2400 По умолчанию: 4 *исправлено |
Сон | AT+SLEEP | +SLEEP:OK | 1: Легкий сон (вещание) 2: Глубокий сон (нет вещания) |
Режим работы | AT+STARTEN | +STARTEN:1 | 1: Проснутся, управление сном через AT+SLEEP 0 (*исправлено): Начать спать, проснутся при подключении, при отключении опять спать |
Интервал вещания | AT+ADVIN | +ADVIN:1 | Параметр: (0-9) 0——100 мс 1——200 мс 2——300 мс 3——500 мс 4——500 мс 5——600 мс 6——700 мс 7——800 мс 8——900 мс 9——1000 мс По умолчанию: 0 |
Вкл./Выкл. светодиод | AT+ALED | Параметр: (0-1) 0: выключить 1: включить | |
Сброс настроек | AT+RST | +OK | — |
Остальные команды нас не интересуют, т.к. предназначены для бекона (их можно найти в документации, которая прикреплена ниже).
Управление выводами GPIO
У модуля есть выводы OUT1—OUT7, которыми можно управлять.
Уровень напряжения на них можно выставлять с помощью кодов-команд.
Установка высокого уровня на OUT1: 0xE7F101
Установка низкого уровня на OUT1: 0xE7F100
Важно! Characteristic UUID должен быть при отправке команд 0xFFE2
1) Сделать это можно с помощью NRF Connection:
После подключения нажать на стрелку вверх (отправка) характеристики UUID: 0000ffe2-. и ввести шестнадцатеричное число-код-команду и выбрать тип массив байтов BYTE ARRAY (выбрано по умолчанию).
2) Также с помощью Serial Bluetooth: сначала отключить любые добавочные символы при отправке (Settings -> Send -> Newline -> None) и можно врубить режим HEX (Settings -> Send -> Edit Mode -> HEX). Здесь сначала во вкладке Devices -> Bluetooth LE нужно зажать на названии JDY-23 (если не изменено), далее Edit и установить пользовательский профиль (Custom), при этом характеристика при записи (Write characteristic UUID) должна быть: 0000ffe2-.
3) В App Invertor 2 при отправке с помощью WriteBytes нужно установить опять же characteristicUUID: 0000ffe2-0000-1000-8000-00805f9b34fb
Далее создать список (make a list) из трех элементов (нажать на шестерню для увеличения количества item) и запихнуть туда команду: E7 F1 01 (то есть она разбивается на три части — три байта).
В итоге все прекрасно работает, теперь можно управлять какой либо нагрузкой с телефона посредством ручной отправки команд или замутить простое приложение с кнопками в конструкторе.
Как быть с паролем (совет от китайцев)
JDY-23 не имеет пароля для подключения через Bluetooth, если вам нужно, чтобы другие не могли подключиться, вы можете настроить отправку пароля с подключаемого по блютуз устройства (через приложение) и его дальнейшую проверку средствами микроконтроллера.
Если пароль не получен/неправильный в течение n секунд после подключения, МК должен прижать вывод PWRC к минусу и отправить команду AT+DISC, модуль сразу же отключится.
Потребляемая мощность
? Обратите внимание на измерения от пользователя:
Они выполнены специализированным прибором, поэтому ориентируйтесь на них!
Ток во время простоя (не подключено): | 1 мА |
Ток в подключенном состоянии: | 2.2 мА |
Ток в подключенном состоянии (глубокий сон, нет вещания): | 60-200 мкА |
Ток при передачи данных через UART: | 2-3 мА |
Проверка дальности передачи
Рассчитывать от синезуба огромного расстояния передачи никто не будет, да и не нужно, заявлено до 60 м (ну эт. на открытой местности), на деле же пару стен пробивает, чего вполне достаточно.
Техническая документация и полезные файлы
Можно посмотреть
как все устроено
и сделать под себя
с JDY-23.
(Прием и отправка байта)
Видеообзор
Итого
Штука очень полезная, стоит не дорого, но при этом дает возможность делать устройства, которые будут взаимодействовать с телефоном, что отлично подойдет для многих применений (прием данных от каких-то датчиков, управление светом/воротами. ).
По сравнению с известными модулями HC-0xx этот стоит дешевле (в два-три раза!) и при этом имеет меньшие размеры и (возможно) энергопотребление.
ESP32 Serial Communication over Bluetooth Using Arduino IDE
ESP32 is a microcontroller board that has dual support for WiFi and Bluetooth. It comes with dual Bluetooth classic and Bluetooth Low Energy. Using Bluetooth, we can transfer data from different sensors to ESP32 or can create a mesh network of ESP32 Bluetooth inside our project.
This tutorial covers how we can communicate serially using the Bluetooth of ESP32 with a PC. Here we will transmit a string to the Arduino IDE serial monitor while connecting the ESP32 to the PC not serially but using the Bluetooth connection.
Introduction to ESP32 Bluetooth Serial Communication Using Arduino IDE
Serial communication is important when it comes to microcontrollers as it allows devices to exchange data between them. ESP32 comes with UART and multiple other communication protocols that allows it to exchange data with a PC and if required print it on a serial monitor.
ESP32 features Bluetooth support which means we can configure its Bluetooth in such a way that ESP32 communicates serially, and we can print the received data over Bluetooth on the serial monitor.
For this we will be calling the SerialBT() function from the Arduino BluetoothSerial.h library.
Initializing ESP32 Bluetooth
Before we can communicate over Bluetooth, we have to initialize it first for that the steps will be helpful.
Step 1: Connect ESP32 board with PC using the Micro USB cable. After connecting check, the COM port at which the ESP32 board is connected. Open device manager and here we can see ESP32 is connected at COM3:
Step 2: Now open Arduino IDE and select the ESP32 board along with the same COM port:
Step 3: Now upload the given code to the ESP32 board:
This code started by initializing the Bluetooth Serial library by including the “BluetoothSerial.h”.
After that Bluetooth SSID/Name is initialized using the command SerialBT.begin().
In the end inside the loop part a string Hello World will constantly print over the serial monitor using the ESP32 Bluetooth connection.
#include «BluetoothSerial.h»
BluetoothSerial SerialBT;
void setup ( ) {
SerialBT.begin ( «ESP32 Bluetooth» ) ;
}
void loop ( ) {
SerialBT.println ( «Hello World» ) ;
delay ( 1000 ) ;
}
Now we have successfully configured the ESP32 Bluetooth.
Note: The BluetoothSerial.h is by default installed in Arduino IDE once we add the ESP32 board core. We don’t need to separately install this library. You can also try different examples related to BluetoothSerial.h library by going to: to File>Examples>Bluetooth Serial
Before you can use this Library make sure the ESP32 board is added in Arduino IDE. Read the article Installing the ESP32 Board in Arduino IDE for more information on installation.
Visit the following Espressif Systems ESP32 GitHub repository to learn more about BluetoothSerial.h library: [GitHub Arduino-ESP32/BluetoothSerial].
Connecting ESP32 Bluetooth with PC
As ESP32 Bluetooth is configured follow the steps to connect ESP32 Bluetooth with PC.
Step 1: Open Bluetooth settings in Windows:
Step 2: Click Add a Bluetooth Device:
Step 3: Select Bluetooth device:
Step 4: Click ESP32 Bluetooth. Here you will see any name of ESP32 which you defined inside the Arduino code:
Step 5: Once the ESP32 Bluetooth is successfully connected below a message will appear:
Step 6: In device manager we can see COM port for ESP32 Bluetooth. Knowing this COM port is important as it will help us to receive the data over the serial monitor in the Arduino IDE:
Now we have successfully connected ESP32 with PC over Bluetooth communication.
Reading Serial Data over Bluetooth Communication
To read serial data over Bluetooth first we have to disconnect the ESP32 from the PC so it will not establish any UART serial communication. After disconnecting we can verify it from the Device Manager.
The image shows ESP32 is disconnected from the PC.
Note: Remember to power ESP32 from any other PC or using the power adapter. This will help to remain ESP32 Bluetooth turned on.
After disconnecting the ESP32 from the PC, open the Arduino IDE and select the COM port at which ESP32 Bluetooth is connected.
After selecting the right port, we can see the ESP32 is continuously transmitting the Hello World string over the serial monitor using Bluetooth communication.
We have successfully received data using the Serial Bluetooth of ESP32.
Conclusion
ESP32 is a versatile programming microcontroller board. It gives users multiple methods for communication like Bluetooth WiFi or using the UART, SPI or any other communication protocol. Here we have covered how ESP32 Bluetooth can be configured for serial communication. For a complete step by step process read the tutorial.
About the author
Kashif
I am an Electrical Engineer. I love to write about electronics. I am passionate about writing and sharing new ideas related to emerging technologies in the field of electronics.
Adblockdetector