1、前言
Microbit 自带蓝牙,以前用过BlockytlackyBLE来与App inventor通信。最近不知道出了什么问题,手机侧收发就会闪退。估计也是兼容性的问题。自己也想测试一下,能否用其它BLE扩展实现通信。
本文主要给自己爬过的坑做个记录。另一方面也希望能给Microbit的玩家一些参考。
2、使用的编辑器及插件
Mackecode用的是小喵科技的Makecode离线包,扩展用自带的BLE蓝牙插件。

android 检查是接蓝牙设备 app连接蓝牙设备测试_BLE


Appinventor 用的是wxbit的 Appinventor 汉化包,它的BLE扩展也是自带了的。

android 检查是接蓝牙设备 app连接蓝牙设备测试_Microbit_02

3、Microbit 部分

原理是,先设置Microbit的蓝牙可被所人连接,再点保存。我第一次测试时没注意,结果APP查得到却联不上。

android 检查是接蓝牙设备 app连接蓝牙设备测试_appinventor_03


剩下就简单了。连接时显示 勾,断开时显示 叉,收到信息时 显示Hello。

另,记得启动uart服务,一会要用这个来通信。

android 检查是接蓝牙设备 app连接蓝牙设备测试_App_04

4、App inventor部分
4.1 界面部分

android 检查是接蓝牙设备 app连接蓝牙设备测试_BLE_05


非常简单,能完成测试就好了。

4.2 逻辑部分

1) BLE扫描及连接

android 检查是接蓝牙设备 app连接蓝牙设备测试_App_06


第一次扫描时,Microbit的地址会直接显示在列表中。记下 ,然后让App直接对搜索结果比对,然后连接Microbi。这样可以加快测试速度。 然后改成下面的模块。

android 检查是接蓝牙设备 app连接蓝牙设备测试_android 检查是接蓝牙设备_07


其实上图绿色的一行已经不需要了,只是为了测试好看而已。记得地址用的是文本,“:”号用的是英文。

连接后记得停止搜索,不然它会一直做无用功。

android 检查是接蓝牙设备 app连接蓝牙设备测试_android 检查是接蓝牙设备_08

2) BLE侦听

这里有三个参数需要记住,分别服务UUID,发送UUID,以及接收UUID。在Makcode的帮助中可以查出来,分别是:

public static String UARTSERVICE_SERVICE_UUID = “6E400001B5A3F393E0A9E50E24DCCA9E”;
public static String UART_RX_CHARACTERISTIC_UUID = “6E400002B5A3F393E0A9E50E24DCCA9E”;
public static String UART_TX_CHARACTERISTIC_UUID = “6E400003B5A3F393E0A9E50E24DCCA9E”;

服务、收、发UUID 的差异在这里

android 检查是接蓝牙设备 app连接蓝牙设备测试_appinventor_09


分别是1B、2B、3B我们侦听模块如下:

android 检查是接蓝牙设备 app连接蓝牙设备测试_appinventor_10


因为我们是侦听,所以用的是接收的特征UUID:“6E400002B5A3F393E0A9E50E24DCCA9E”。收到信息就作以下处理,收到信息后,标签1就会显示内容了。

android 检查是接蓝牙设备 app连接蓝牙设备测试_Microbit_11

3)发送

发送的模块如下:

android 检查是接蓝牙设备 app连接蓝牙设备测试_appinventor_12


我们这次是发送,所以特征UUID用的是6E400003B5A3F393E0A9E50E24DCCA9E。

OK可以了。

5、测试
分别把Appinventor及Macode代码下载到手机(与可以用手机伴侣)和Microbit,经实测,双向数据都是通过的。
本次测试一方面学习了BLE的用法,另也会用其它蓝牙设备提供了参考。

全文完。谢谢观看!