Arduino Uno, модуль Bluetooth HM-10, не обнаруживается
Короче говоря, я подключил HM-10 к цифровым контактам 10 и 11 на моем Uno (требуется, потому что TX/RX (0/1) не может использоваться при наличии последовательного соединения). Модуль Bluetooth представляет собой Sunfounder HM-10, который поставляется с техническим паспортом. Я успешно общаюсь с HM-10, и я написал модифицированную версию кода serial comms tutorial, предоставленного таким образом, чтобы он сохранял чтение в буфере перед их выводом, который работает нормально, я могу установить все свойства на HM-10, используя этот метод.
Задержки были необходимы, так как кажется, что тактовый цикл не может "идти в ногу" - байты пропадают при чтении/записи, поэтому, если я попытаюсь написать, просто используя Serial.read()
в loop ()
, то не все из них будут прочитаны/записаны.
Вот код.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup()
{
// Откройте последовательную связь и дождитесь открытия порта:
Serial.begin(57600);
while (!Serial) {
; // дождитесь подключения последовательного порта. Нужно только для Леонардо
}
Serial.println("Goodnight moon!");
delay(500);
// установите скорость передачи данных для порта SoftwareSerial
mySerial.begin(9600);
mySerial.print("Wake up wake up wake up wake up wake up! Wake up wake up wake up wake up wake up!");
}
void loop() // запускайте снова и снова
{
if (mySerial.available()) {
String s = "";
char c;
while((c = mySerial.read()) != -1) {
s += c;
delay(10);
}
Serial.println("Received: " + s);
}
if (Serial.available()) {
String s = "";
char c;
while((c = Serial.read()) != -1) {
s += c;
delay(10);
}
delay(10);
Serial.println("Sent: " + s);
mySerial.print(s);
}
}
Это позволяет мне показывать ввод и вывод следующим образом:
Sent: AT+ADDR?
Received: OK+ADDR:F4B85EB42D64
Sent: AT+ADVI?
Received: OK+Get:0
Sent: AT+ALLO?
Received: OK+Get:0
Sent: AT+BATT?
Received: OK+Get:077
Пока все хорошо. Вот что я не могу понять из технического паспорта. Как сделать модуль Bluetooth доступным для обнаружения, скажем, на моем Mac или iPhone? Я протестировал настройку НА+ROLE0
или НА+ROLE1
, за которой следует AT+RESET
, а также set НА+NAME
, так что я знаю, чего ожидать, но не могу обнаружить модуль.
Также следует отметить, что индикатор состояния мигает в соответствии со спецификацией как несвязанный статус (500 мс высокий, 500 мс низкий), который указывает на настройку AT+PIO10
. AT+ADTY?
имеет значение 0, что позволяет ему быть рекламным, реагировать на сканирование и подключаться.
Скорее всего, я упускаю что-то совершенно очевидное. Есть идеи?
@Kezzer, 👍1
Обсуждение2 ответа
Лучший ответ:
Ах, я поторопился. Только что выяснилось, что Mac/iPhone не может сканировать устройства BLE, поэтому я скачал приложение для сканирования BLE, и как только я установил значение+ROLE0 и+RESET, оно появилось.
Итак, ответ таков: вам нужно приложение для сканирования BLE.
Спасибо за ваш ответ! В другой теме я нашел бесплатное приложение для сканирования Bluetooth iOS под названием LightBlue Explorer (https://itunes.apple.com/au/app/lightblue-explorer-bluetooth/id557428110?mt=8), который также позволяет читать/писать на устройство. Очень удобно. Добавим это сюда для следующего человека, который столкнется с этой темой и захочет получить rec для приложения сканирования.
- Можно ли измерить скорость акселерометром? Насколько точно?
- Arduino Pro Micro, получить данные с контакта Tx?
- Хочу создать Bluetooth audio control (увеличение/уменьшение громкости, воспроизведение, пауза и т.д.) для смартфона
- Невозможно подключиться к Bluetooth hc-05.
- Проблемы с надежным подключением с использованием HC-05 в качестве ведущего устройства Bluetooth
- Как решить проблему AT+INQ ERROR (1F), AT+INIT ERROR(17) на модуле Bluetooth HC-05?
- Модуль Bluetooth HC-05 мигает красным светом - Arduino Uno
- Bluetooth-модуль HC-05 — команда INQ не работает
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что речь идет о BLE и телефонах, а не об Arduino. Первоначальная миграция на этот сайт была неправильной; он должен был остаться там, где его попросили, или просто быть закрыт., @Chris Stratton