云天 发表于 2019-8-24 21:57:44

Micro bit 与 App Inventor2 蓝牙通信

    最近要用到Micro bit与App Inventor蓝牙通信功能,查询网上的一些资料,遇到了各种问题,现将自己的成功经验总结如下,分享给大家。    首先参考了rzyzzxw的[入门教程]MIT App Inventor + Micro:bit蓝牙基本连接设置--1,但APP有连接后闪退现象。
    第二参考sadanubis2008的【原创】Appinventor 与Microbit BLE连接测试。解决困扰我的问题,UUID。但文中未实现对App传过来的字符做判断。
    第三参考米加盒子如何通过蓝牙连接micro:bit?,解决App传来的字符Microbit做判断,但只判断一次,循环条件上有问题。
    最后参考 Makecode官方网站UART Read。正解!!!

   总结如下:
1、使用的编辑器及插件
    Mackecode用的是Microsoft MakeCode的Makecode在线板,扩展用自带的BLE蓝牙插件。

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

    2、Microbit 部分
    2.1原理是,先设置Microbit的蓝牙可被所人连接,再点保存。


2.2代码:
   2.2.1 连接时显示字符“C”,置连接标识为“1” ,重复接收来自APP数据并判断数据内容,做出相应动作。为K时显示勾,P14引脚置高电平(接电磁继电器,并接上台灯);为G时显示差,P14引脚置低电平。
    2.2.2断开时显示“D”并置连接标识为“0”。
    2.2.3另,记得启动uart服务,一会要用这个来通信。




3、App inventor部分
3.1 界面部分

3.2 逻辑部分

3.2.1 BLE扫描及连接


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


其实上图绿色的一行已经不需要了,只是为了测试好看而已。记得地址用的是文本,“:”号用的是英文。
连接后记得停止搜索,不然它会一直做无用功。



3.2.2 BLE侦听

    1)这里有三个参数需要记住,分别服务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”;

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


    分别是1B、2B、3B

    我们侦听模块如下:

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

   3)发送
   发送的模块如下:

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

    OK可以了。

    4、测试
    分别把Appinventor及Macode代码下载到手机(与可以用手机伴侣)和Microbit,经实测,双向数据都是通过的。
附件代码:


    1、Macode代码
    2、

恶魔的微笑 发表于 2021-4-30 18:41:17

做最好的自己 发表于 2020-2-9 22:03
当按下 发送G 和 发送K 时,报错,有没有遇到这个问题的

一样的问题,解决了吗

李春华 发表于 2021-3-17 21:55:09

如何在Makecode的帮助中查到那三个UUID? 谢谢

云天 发表于 2020-3-7 15:57:32


是帖子中这句有问题,没加上,我这补上。

云天 发表于 2020-3-7 15:53:39

做最好的自己 发表于 2020-2-9 21:59
当按下 发送G 和 发送K 时,报错

少加了东西,我又做项目时,发现了。一会儿我再传一下。

做最好的自己 发表于 2020-2-9 22:03:44

当按下 发送G 和 发送K 时,报错,有没有遇到这个问题的

做最好的自己 发表于 2020-2-9 21:59:52

当按下 发送G 和 发送K 时,报错

做最好的自己 发表于 2020-2-9 21:59:12

我按照这个操作为什么报错呢

gada888 发表于 2019-10-16 21:02:55

收藏了

DFB1nkb8GUS 发表于 2019-9-8 19:29:15

谢谢

wsxiaoping3 发表于 2019-9-5 16:25:33

老师辛苦了,很好啊

云天 发表于 2019-8-31 19:48:31

本帖最后由 云天 于 2019-8-31 19:54 编辑

rzyzzxw 发表于 2019-8-28 11:04
老师,稳定性如何,看您帖子,似乎挺稳定啊。
比较稳定,但退出前时,应及时断开!

rzyzzxw 发表于 2019-8-28 11:04:05

老师,稳定性如何,看您帖子,似乎挺稳定啊。{:5_122:}

rzyzzxw 发表于 2019-8-28 10:55:43

云天老师辛苦了。真心佩服。{:5_167:}
页: [1]
查看完整版本: Micro bit 与 App Inventor2 蓝牙通信