- Какой COM-порт для подключения устройства Bluetooth
- Изменение СОМ-порта для связи с устройствами Bluetooth
- Создание устройства Bluetooth, распознаваемого как COM-порт?
- 2 ответа 2
- Arduino и Bluetooth JDY-31
- Подключение
- Подключение к Bluetooth
- Windows
- Android
- SoftwareSerial
- Настройка JDY-31, AT команды
- Домашнее задание
Какой COM-порт для подключения устройства Bluetooth
Некоторым компьютерным программам нужен COM-порт (который также называют последовательным портом) для связи с устройством Bluetooth.
- программам синхронизации контактов с мобильным телефоном;
- программам для извлечения координат системы глобального позиционирования (GPS) с GPS-приемника.
При добавлении устройства Bluetooth к компьютеру создаются входной и выходной COM-порты. Входной COM-порт позволяет устройству подключаться к программе на компьютере, а выходной COM-порт – программе на компьютере к устройству. Обычно нужно использовать только один из этих COM-портов.
Чтобы решить, какой COM-порт следует использовать, можно просмотреть информацию, которая поставлялась вместе с программой или устройством Bluetooth, или посетить веб-сайт производителя.
Большинство устройств Bluetooth выбирают СОМ-порт самостоятельно, и пользователю не обязательно это делать. В настройках Bluetooth на вкладке «СОМ-порты» можно проверить, что устройство уже использует СОМ-порт.
Если нужно выбрать COM-порт и вы не уверены, какой именно выбрать, попробуйте последовательно каждый из них и воспользуйтесь тем, который позволяет программе и устройству обмениваться данными надлежащим образом.
Изменение СОМ-порта для связи с устройствами Bluetooth
- Откройте Панель управления.
- В поле поиска панели управления введите Bluetooth и выберите Изменение настроек Bluetooth .
- В диалоговом окне Параметры Bluetooth перейдите на вкладку COM-порта, выберите порт и нажмите кнопку ОК .
- Если в списке нет ни одного СОМ-порта, устройство Bluetooth не использует СОМ-порт. Чтобы добавить СОМ-порт для устройства, нажмите кнопку Добавить .
Создание устройства Bluetooth, распознаваемого как COM-порт?
Посмотрите, как это показано, как подключено в окне Bluetooth:
Также посмотрите, как это отображается в диспетчере устройств:
Проблема в том, что мой HM10 отображается в действительных устройствах Bluetooth в диспетчере устройств, но не отображается в списке после нажатия «Входящие». Список просто пуст. Есть ли что-то, чего мне не хватает, чтобы это появилось в этом списке?
Не отображается в этом списке!
2 ответа 2
Я понял, что проблема в том, что HM-10 и HM-11 не имеют функции «Стандартный последовательный канал через Bluetooth», такой как модуль HC-05, если кто-нибудь знает, как добавить эту функцию к нему, это может сработать!
Если у вас есть модуль Bluetooth HC-05, вы можете без проблем использовать его как прямое соединение UART с вашим компьютером.
Чтобы открыть окна функций оборудования: Панель управления> Оборудование и звук> Устройства и принтеры> дважды щелкните устройство Bluetooth> выберите вкладку «Оборудование».
Я был не в состоянии разобраться в проблеме, но пошел совсем другим путем. Поскольку целью этого вопроса было беспроводное подключение моего Arduino к компьютеру, я решил использовать радиочастотную передачу вместо Bluetooth. При этом я приобрел следующее:
Qty Item 2 433 MHz Transciever that supports UART (or any frequency so long as both match) 1 USB to UART Converter
Я считаю, что моей самой большой проблемой было то, что у меня не было конвертера USB в UART. Это также могло быть причиной того, что мои модули Bluetooth не работали, так как они были просто трансиверами без конвертера usb в UART. В любом случае, если кто-то пытается установить беспроводную связь между Arduino и компьютером под управлением Windows, я бы предложил метод RF.
Arduino и Bluetooth JDY-31
В наборе GyverKIT обеих комплектаций есть Bluetooth модуль JDY-31 (аналог популярного HC-06). Данный модуль обеспечивает беспроводную связь UART – COM порт, что позволяет использовать его для удобного обмена данными между Arduino и приложением на смартфоне или программой на компьютере. Основные характеристики:
- Рабочая частота: 2.4 GHz
- Интерфейс: UART
- Напряжение питания: 3.6.. 6V
- Ток потребления: 5 мА в режиме поиска, ~8 мА в режиме передачи
- Логический уровень: 3.3V, но вроде как не боится 5V
- Дальность связи: 30м
- Версия Bluetooth: 3.0 SPP
- Чувствительность антенны: -97dbm
- Скорость UART: 9600.. 128000
Официальную документацию на JDY-31 можно открыть по ссылке .
Индикация состояния подключения:
- Ожидание
- Светодиод мигает
- Пин STATE: LOW
- Светодиод горит постоянно
- Пин STATE: HIGH
Подключение
Модуль подключается к питанию и цифровым пинам МК:
- JDY-31 > Arduino
- GND > GND
- VCC > 5V
- RX > Serial TX
- TX > Serial RX
- Опционально можно подключить EN на любой цифровой пин для отслеживания состояния подключения.
На левой схеме я подключил JDY-31 к аппаратным выводам UART напрямую, на правой – через делитель напряжения, образованный тремя резисторами по 10 кОм (есть в наборе GyverKIT). Такой делитель 2:1 обеспечит около 3.1V на вход RX модуля. Правая схема предпочтительнее, но от прямого подключения модуль ещё ни у кого не выходил из строя, насколько я знаю.
- Модуль будет мешать загрузке прошивки (она загружается по RX TX), на момент загрузки нужно отключить провода от пинов RX и TX Arduino
- С модулем можно общаться при помощи штатного Serial, фактически он будет дублировать монитор COM порта
На следующих двух схемах я подключил модуль к любым двум цифровым пинам Arduino:
При таком подключении модуль ничему не мешает, но для работы с ним придётся использовать стандартную библиотеку программного Serial – SoftwareSerial.
Подключение к Bluetooth
Windows
Для работы на компьютере у вас должен быть Bluetooth адаптер. Заходим в панель управления, добавляем Bluetooth устройство, вводим пин 1234 для сопряжения:
После этого в Arduino IDE появится ещё один COM порт. Загрузим следующий пример, который просто выводит в порт строчку со счётчиком. Модуль подключен к аппаратному UART.
Откроем Bluetooth порт и увидим вывод:
Точно таким же образом можно подключиться к Arduino из своей программы, написанной например на Processing или Python. У меня есть уроки по этой теме:
Android
Для теста на Android я использую приложение Serial Bluetooth Terminal. Сопрягаемся с паролем 1234, заходим в программу, открываем настройки слева, Devices, выбираем JDY-31 и подключаемся (кнопка со штекером в левом правом углу экрана. Модуль подключен к аппаратному Serial, на Arduino прошит код, отправляющий принятые данные обратно в Serial (эхо):
Пишем в терминал – модуль нам отвечает. Своё приложение с Bluetooth можно сделать в MIT App Inventor, этим мы займёмся в будущих уроках.
SoftwareSerial
В качестве примера подключим модуль по второй схеме (на пины D2 и D3) и загрузим простую программу, которая будет пересылать данные с программного Serial (на пинах D2 и D3, Bluetooth) на аппаратный (который мы можем смотреть через монитор порта в Arduino IDE):
#include SoftwareSerial mySerial(3, 2); // RX, TX void setup() < Serial.begin(9600); mySerial.begin(9600); >void loop() < if (mySerial.available()) < Serial.write(mySerial.read()); >if (Serial.available()) < mySerial.write(Serial.read()); >>
Откроем терминал и монитор порта и можем общаться с компьютером, Arduino выступает в роли посредника и перекидывает данные с Bluetooth на USB и наоборот:
Точно так же можно использовать SoftwareSerial для программ и приложений, если аппаратный UART на Arduino нужен для других целей.
Настройка JDY-31, AT команды
Рассмотрим также настройку самого JDY-31, делается это при помощи AT-команд:
- Чтобы модуль отвечал на команды, он должен находиться в режиме ожидания подключения (светодиод мигает)
- Загружаем в Arduino пустую программу (Файл/Новый). Либо любую другую, в которой не задействован Serial. Либо подключаем пин RST к GND, чтобы микроконтроллер не запустился и нам не мешал
- Подключаем JDY-31 на RX TX Arduino (аппаратный Serial) наоборот: TX > TX, RX > RX
- Открываем монитор порта, ставим текущую скорость модуля (по умолчанию 9600 бод), конец строки NL & CR
Отправляем команду AT+VERSION . Если всё сделано правильно – модуль ответит +VERSION=JDY-31-V1.35,Bluetooth V3.0
Какие ещё есть команды? Полный список есть в документации, давайте разберём:
Домашнее задание