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, что позволяет ему быть рекламным, реагировать на сканирование и подключаться.

Скорее всего, я упускаю что-то совершенно очевидное. Есть идеи?

, 👍1

Обсуждение

Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что речь идет о BLE и телефонах, а не об Arduino. Первоначальная миграция на этот сайт была неправильной; он должен был остаться там, где его попросили, или просто быть закрыт., @Chris Stratton


2 ответа


Лучший ответ:

2

Ах, я поторопился. Только что выяснилось, что Mac/iPhone не может сканировать устройства BLE, поэтому я скачал приложение для сканирования BLE, и как только я установил значение+ROLE0 и+RESET, оно появилось.

Итак, ответ таков: вам нужно приложение для сканирования BLE.

,

2

Спасибо за ваш ответ! В другой теме я нашел бесплатное приложение для сканирования Bluetooth iOS под названием LightBlue Explorer (https://itunes.apple.com/au/app/lightblue-explorer-bluetooth/id557428110?mt=8), который также позволяет читать/писать на устройство. Очень удобно. Добавим это сюда для следующего человека, который столкнется с этой темой и захочет получить rec для приложения сканирования.

,