2567| 0
|
[ESP8266/ESP32] App Inventor 和 FireBeetle 进行蓝牙通讯 |
AppInventor 内置了蓝牙控件,但是经过我的实验内置的无法工作,感觉是对应的 SDK太老,导致在我的华为 P30 以及谷歌的Pixel5 上都无法运行。经过研究找到一种可以解决问题的方法,在 FireBeetle ESP32 上测试成功。 1.在 https://mit-cml.github.io/extensions/上下载 BluetoothLE.aixBluetoothLE.zip 2.打开AppInventor,我使用的是“广州市电化教育馆服务器”版本的:http://app.gzjkw.net/login/ 3.Import上面的BluetoothLE.aix文件 4.界面从上到下分别放置“列表显示框”“标签”“水平布局”“文本输入框”“按钮”和“BlueToothLE”(最后这个就是我们导入的控件): 列表显示框:适用于显示App 扫描得到的蓝牙设备的 标签:用于显示App 收到的FireBeetle通过蓝牙发送过来的数据 文本输入框:用于输入App发送给FireBeetle的数据 按钮:用于触发发送上面提到的文本输入框的内容 5.接下来进行逻辑设计 5.1 首先是当屏幕初始化时开启BLE的扫描功能 5.2扫描结果显示在列表中 5.3用于选择列表中的某一个设备之后,就用蓝牙进行连接 5.4 上述选择之后,App会通过蓝牙连接设备,连上之后隐藏列表框(太占地方),然后注册接收6E400001多字节数值服务 ,6E400003属性的数据(具体数值是在FireBeetle的Arduino 代码中定义的)。然后在标签上显示当前连接设备的名称: 5.5当6E400003收到数值后,会跳转到下面这里执行,我们只是将收到内容显示在标签上 5.6 按下按钮后,使用6E400002 属性将文本输入框的内容发送到FireBeetle 上 6.FireBeetle 代码:
代码会发送 2字节长度的txStr[]数组到App 中,其中txStr[0]从0-255不停增加,txStr[1]存放一个随机生成的数值。 AppInventor程序 Arduino 程序 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed