新浪博客

[转载]基于APP Inventor的蓝牙4.0(BLE)数据通信

2019-01-14 15:09阅读:

本科毕业设计要用到蓝牙4.0(芯片选用TI公司的CC254x系列)与手机客户端的数据交互,但是作为一名硬件汪,想在短时间内学习Java并且完成蓝牙4.0手机客户端的制作对我来说有点困难~~额,不,是几乎不可能。。。所以,偶然间发现的AI2工具对我来说简直神器,况且又是我心爱的马萨诸塞理工学院负责维护更新的。上手之后发现国内的在线版本不支持蓝牙4.0,辗转问了好多人,无果,最后终于在一家台湾的网站上发现了有关BLE通信的APP制作方法,现在总结一下。
第一步:得到一个可以浏览国外网站的VPN
有VPN账号的直接登录就好啦~没有的话可以去淘宝买(搜索时输入服务代理即可),很便宜的一个月十几块。下面这个链接​​,是我买VPN的淘宝店链接,一个月16.5元网速还可以。
https://item.taobao.com/item.htm?id=534913135183​
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信VPN登录界面
​​ 输入账号密码即可浏览国外网站。
第二步:​登录MIT的BLE测试网址
目前为止,国内以及国外的AI在线版都不支持BLE​通信,唯一支持的是MIT的专门为BLE开设的测试版,网址链接为:
http://ble-test.appinventor.mit.edu/#6287416046387200​
PS:第一次打开的时候谷歌可能会要求验证谷歌账号,有的话直接验证就好,没有的可以注册一个,很方便。​
下图为BLE在线测试版​的截图:
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信BLE在线测试版
可以发现,在线测试版和正式版几乎是一模一样的,区别在哪里呢?唯一的区别就在于BLE测试版添加了蓝牙4.0的组件,如下图所示:
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信蓝牙4.0控件
由上图可以看出,BLE在线测试版添加了“BluetoothLE”(全称为Bluetooth Low Energy), 即BLE组件,通过该组件可以进行有关蓝牙4.0数据的接受与发送。
第三步:熟悉BLE各种逻辑语句​
首先是控制语句:​
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信BLE组件的控制语句
​① 当BLE设备被连接时,执行下列语句。该语句一般用作连接成功后改变显示状态;
② 当BLE设备被发现时,执行下列语句。该语句一般​用作被发现之后改变列表中地址值;
③ 当BLE设备的RSSI值改变时,执行下列语句​。 该语句一般用作检测搜寻附近蓝牙设备;
④ 当从BLE设备读或写的值改变时,执行下列语句。​该语句一般用作数据通信;
⑤ 当BLE设备的值被读取时,执行下列语句。​该语句一般用作数据通信;
⑥ 当BLE设备的值被写入时,执行下列语句。该语句一般用作数据通信。
其次是过程语句:
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信BLE组件的过程语句1
​① 连接Index中的BLE设备。该语句一般和列表一起使用;
② 连接已知地址的BLE设备。该语句用来进行与已知地址的BLE设备进行连接;
③ ​ 断开已知地址的BLE设备。该语句用来 断开已知地址的BLE设备;
④ 读取​Index中的BLE设备地址。该语句一般和列表一起使用;
⑤ ​读取​Index中的BLE设备名称。该语句一般和列表一起使用;
⑥ ​读取​Index中的BLE设备RSSI值。该语句一般和列表一起使用;
⑦ 在已知设备UUID和特征值UUID的BLE设备上读一个字节变量。该语句用作与已知设备的数据通信;
⑧​ 在已知设备UUID和特征值UUID的BLE设备上读一个浮点型变量。该语句用作与已知设备的数据通信。
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信BLE组件的过程语句2
​① 在已知设备UUID和特征值UUID的BLE设备上读一个整型变量,offset是偏移的位数。该语句用作与已知设备的数据通信;
② ​在已知设备UUID和特征值UUID的BLE设备上读一个字符型变量,offset是偏移的位数。该语句用作与已知设备的数据通信;
③ 开始扫描BLE设备。该语句一般在开始时使用;
④ 结束扫面BLE设备;
⑤ ​在已知设备UUID和特征值UUID的BLE设备上写入一个整型变量,offset是偏移的位数,value是待写入的值。该语句用作与已知设备的数据通信;
⑥ ​在已知设备UUID和特征值UUID的BLE设备上写入一个 浮点型变量,offset是偏移的位数,value是待写入的值。该语句用作与已知设备的数据通信;
⑦ ​得到被支持的GATT服务。
最后是逻辑语句:
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信BLE组件的逻辑语句
​① BLE设备中一个字节变量的值;
② 已连接BLE设备中的RSSI值;
③ BLE设备的设备列表;
④ ​BLE设备中一个整型变量的值;
⑤ BLE设备已连接;
⑥ ​BLE设备中一个字符型变量的值;
⑦ BLE设备。​
第四步:数据的发送与接收
[转载]基于APP <wbr>Inventor的蓝牙4.0(BLE)数据通信蓝牙4.0通信逻辑图
上图所示是在已知UUID的BLE设备中,向特征值3写入字符1,然后读特征值5,显示在标签文本上。上图中,设备的UUID是“0000FFF0-0000-1000-8000-00805F9B34FB”,特征值3的UUID是“0000FFF3-0000-1000-8000-00805F9B34FB” ​,,特征值5的UUID是“0000FFF3-0000-1000-8000-00805F9B34FB”。
蓝牙4.0的数据通信主要是通过特征值来完成的,我们也可以根据需要自行添加特征值​。每个设备都有不同的UUID,怕麻烦的话可以借助一些辅助的手机软件来读出来,比如TI官方的“BLE Device Monitor”或者“nRF Master Control Panel”,推荐后者,功能较多。
任何有问题的地方,欢迎留言交流!​
附:参考网址​
1. 基于AI2的BLE​的基础运用:
链接1:http://blog.cavedu.com/programming-language/appinventor/app-inventor-藍牙4-0-ble-part-1-led-閃爍/
链接2:​http://blog.cavedu.com/programming-language/appinventor/app-inventor-物聯網應用-藍牙4-0-ble-lesson-2-led-pwm呼吸燈/
2. 基于AI的传统蓝牙通信:
链接:http://blog.sina.cn/dpool/blog/s/blog_62218b990102v65p.html?vt=4​
3. 好用的AI中文学习教程:
链接:​http://www.17coding.net/

我的更多文章

下载客户端阅读体验更佳

APP专享