Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω)
今天大都督依旧为大家带来小学生都能学会的APP制作教程,帮你一周内快速开发一款可以和单片机无线通讯的手机蓝牙APP,let’s go!
(5)APP接收发送数据
通过前面四节我们已经成功建立起了手机APP和BLE低功耗蓝牙的连接,这节我们就来研究一下怎么在连接之后,接收发送数据。
主页面设计:
上节我们提到在蓝牙模块使用时,我们需要的核心组件其实就四个:
-
按钮:用来开启连接蓝牙、关闭连接蓝牙和发送指令。
-
标签:用来显示当前连接状态和接受蓝牙发送的数据。
-
列表显示框:用来显示和选择蓝牙设备。
-
文本输入框:用来给蓝牙发送数据。
在第四节时,我们设计的主页面如下:
一个合格的通信APP,只能连接上肯定是远远不够的,它还应该具备接收和发送信息的功能。
-
接收信息:需要接收单片机发来的数据(如何使用单片机发送数据之后会讲),并在APP主页面的标签上显示信息。
-
发送信息:通过点击APP主页面上的按钮发送指定信息;或通过APP主页面上的文本输入框发送任意信息。
然后我们把相应组件拖进来,布一下局,改一下命名,新增一个标签用来接收信息,增加一个文本输入框发送信息,最终主页面如下:
这里大都督要碎碎念一下喽,可能看我文章的有一些还未进入或刚刚进入大学的青年学子,不同于学生时代,学生时代我们对待各科功课都是成体系成系统的学习,虽有偏科现象,但是我相信大家各科其实都学的不错,能力加点比较均衡。
进入大学、社会以后的学习更偏向于多元化、碎片化,伴随着我们学习的更加深入,我们会越来越发现自己没有那么多精力兼顾所有。简单来说,就是能力加点必须有所取舍了。
人的精力是有限的,不要轻易地去系统性学习,先碎片式学习了解这个行业领域,再决定是否系统性学习往往更能有效的降低你的沉默成本,简单来说就是:
别乱加点,三思后行。
对于我们AppInventor的开发也是如此,大家能看到的组件有十几种,但我们并不是每种都要用,我们也并不需要每个操作都非常熟练,我们只需要使用这个工具,为我们方便快捷地开发出一款通信APP就可以了。
所以有的操作不熟悉不知道没关系,我们将来迟早会知道,将来不知道更没关系,说明我们压根不需要知道。
我们所见即所得,需要啥学啥,现学现卖就可以啦~
学习本身就是件愉快的事情,不要给自己上那么多负担枷锁,轻松一点,哈哈。
后面板设计:
1.接受数据:
回归正题,之前我们已经完成了蓝牙的连接,接下来就需要监听是否有数据发送过来:
当有String字符串数据发送过来时,我们就将接收的数据标签文本赋值为该数据就可以啦,这里注意一下stringValues其实就是我们接收到的数据,需要这样拖动进去:
2.发送数据:
接下来我们尝试用按钮发送指定数据给单片机,当发送a按钮被点击时,APP发送字符a给单片机:
最后我们用文本输入框发送数据给单片机,当发送按钮被点击时,APP发送文本输入框中的文本给单片机:
单片机端程序:
arduino的代码如下,初始化波特率之后,如果检查到串口有数据,就将串口接收到的数据转化为char的字符型,再发送出去:
Arduino 端 | BLE蓝牙端 |
---|---|
RX | TX |
TX | RX |
3.3V | 3.3V |
GND | GND |
这里需要注意,Arduino下载程序时,一定要先拔掉RX、TX的线,否则下载会报错。
关于怎么给arduino下载程序和为什么会报错,请参考咱们深海王国的单片机系列:
(6)uart串口通信与其他通信和Arduino程序下载失败的问题
演示效果:
让我们用手机上的AI伴侣运行一下程序,看看效果如何吧:
当发送a按钮被点击时,APP发送字符a给单片机,可以在arduino的串口监视器上发现接收到了字符a:
同时Arduino再将接收到的字符a发送回去,可以看到APP的接收的数据标签文本变更为**“a”**。
当发送按钮被点击时,APP发送文本输入框中的文本b给单片机,可以在arduino的串口监视器上发现接收到了字符b:
同时Arduino再将接收到的字符b发送回去,可以看到APP的接收的数据标签文本变更为**“b”**。
实验成功!
今天的学习到这里就差不多啦。最后如果大家需要这节课的aia项目工程文件,在「深海大都督」里了,回复「BLE蓝牙」就能获得啦~,看到这里的你今天也辛苦啦٩(ˊᗜˋ)و✧。
哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!
(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~
(・ω< )★ 加入深海大家庭,快乐摆烂每一天!