当时在做两个单片机之间无线通信,或者单片机与手机无线通信,就像找一个蓝牙和wifi双模的无线模块,一开始看ESP8684(ESP32-C2)这个芯片模组是有wifi和蓝牙的,买回来后才发现他不可以在程序运行中更换蓝牙或者wifi模式,每次需要更改只能重新下载固件,价格大概7块左右,如果需要满足上诉的需求的话,就只能上esp32经典模组了,那价格又高了不少,而且属于有点浪费资源了,后面就发现了这个安信可的Ai-WB2-12F模组,只需要8块左右,就可以蓝牙wifi双模同时开启,于是就使用了这个作为我的无限模块通信设备,使用后准备写一篇博客记录一下与单片机的通信过程和使用过程
这个模组买回来就自带了合适的固件,也可以自己更改固件,但是大部分情况都是适用的
https://blog.csdn.net/Boantong_/article/details/125781602?spm=1001.2014.3001.5501
这个是固件升级说明文档,我们只烧录一个文件,因此,烧录软件部分章节,看5.3部分内容
官方文档中AT指令的使用已经写的比较详细了,这里就简单说一下一些我遇到的问题,其余的查看文档足够解决问题了
模组总资料:
https://docs.ai-thinker.com/wb2
AT指令使用文档
https://aithinker-combo-guide.readthedocs.io/en/latest/index.html
这些命令都可以到AT命令集中去查看那些后面的数字参数是什么意思
这里我用的正点原子的xcom串口助手,进行串口调试
建议每次要设置这些网络时,先复位一下模组,否则有时候网络连接可能会出问题
cpp
AT+RST
然后就是按照AT指令文档的使用示例去发送对应的AT指令
如果遇到这个错误,也可以去查看错误码找到相应的问题,不过更快的解决方案是直接发送复位指令,然后发送成功后
这样就可以让手机连接这个模组的热点了
我这里是手机应用商店下载的一款网络调试工具,名字叫做【网络调试精灵】
我们先让手机连接这个模组的热点,账号密码就是刚刚发送的AT指令中包含的数据
手机连接了wifi热点后,无线模组会打印:
然后我们手机打开调试工具
因为无线模组是服务端,所以我们需要在工具中建立一个TCP客户端
主机ip地址可以查看
通过文档我们可以知道黑色框中就是ip地址
我们手网络工具上也填写这个地址端口就是刚刚发送的
cpp
AT+SOCKET=3,6666
后面的"6666"
填写这些信息后,点击连接,显示连接成功,如果连接失败的话注意看wifi是不是被自动切换了,或者端口是不是开错了,以及wifi模块有没有正常工作(电流不够可能会开启不了wifi,确保电源能提供最大电流超过500mA)
有这个代表连接成功了
其他的发送数据和接收数据,官方的文档也写得很清楚
我们发送:
手机网络调试工具显示:
然后我们客户端发数据(手机网络调试工具)
这是我网络调试工具发送的
这是我串口接收的
我们这串口工具显示有接收数据
这里因为我想直接读取我最新的发送数据于是我改了读取格式
cpp
AT+SOCKETRECVCFG=1
如果你按照默认的格式读取,那么还需要发送读取指令,去读取消息队列中缓存的数据
你还需要发送:
cpp
AT+SOCKETREAD=2
去读取数据,那些参数都可以去官方文档查找
cpp
AT+SOCKETRECVCFG=0
这样就实现了手机上网络调试工具与无线模组通信,这样以后很多内容就可以无线查看数据和调整参数了,例如制作平衡小车,更改pid参数,就可以用这种方法,当然也可以自己制作软件或者微信小程序调用官方的API代码,还是比较简单的,这里就简单的使用一下别人制作的软件了