我正在做一个项目,使用 flutter 和 HM-10 在 HM-10 上识别手机

问题描述 投票:0回答:1

我创建了一个通过 flutter 宣传 BLE 的应用程序。

我使用了 flutter_bluetooth_serial 库。

我确认广告效果很好

“I/BLE 外设状态 (22874):广告”

flutter 日志中的消息。

但是我不知道如何在HM-10上识别我的手机

这是我的arduino代码。

AT 回复正常。

    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(2, 3); // RX, TX

    void setup() {
      Serial.begin(9600);
      mySerial.begin(9600);

      Serial.println("Starting BLE scan...");
      mySerial.println("AT"); 

      delay(1000);
      mySerial.println("AT+IMME0");
      delay(1000);
      mySerial.println("AT+ROLE1"); 
      delay(1000);
      mySerial.println("AT+DISC?");
    }

    void loop() {
      if (mySerial.available()) {
        String response = mySerial.readString();
        Serial.println(response);

        int nameIndex = response.indexOf("+NAME:");
        if (nameIndex >= 0) {
          String deviceName = response.substring(nameIndex + 6);
          deviceName.trim();
          Serial.println("Device Found: " + deviceName);
        }
      }
    }

flutter arduino bluetooth hm-10
1个回答
0
投票

我认为这里可能有两个主要问题:-首先,flutter_bluetooth_serial是一个经典的蓝牙库,因此不会被BLE中央设备扫描。您可能需要考虑使用 BLE 库(例如 flutter_blue、flutter_reactive_ble)。我对 flutter 没有太多经验,所以我会首先仔细检查 BLE 外设是否受支持。对于原型设计,您只需使用 nRF Connect 应用程序即可让您的设备充当 BLE 外设。

其次,一些 HM-10 文档似乎暗示您需要在 BLE 角色更改生效之前执行 AT+RESET。在尝试发现 BLE 外设之前,我会在您的代码中尝试一下。

以下是一些参考资料:-

© www.soinside.com 2019 - 2024. All rights reserved.