****1wifi模块开热点 手机TCP控制
先按照步骤配置串口2(TxD是PA2,复用推挽输出,RxD是PA3,浮空输入)
连接串口线 检查电脑设备驱动;配置串口设置,并发送指令(AT指令要勾选发送新行)
手机接入热点后,打开APP并选择端口即可进行字符传输控制,发到串口的文字会显示到串口助手界面,若strstr函数检测到发送文段中有“关键字”则会执行指令操作
在字符中有”双引号时,需要在双引号前加上/反斜杠
****2语音指令控制
先按照步骤配置串口3(TxD是PB10,复用推挽输出,RxD是PB11,浮空输入)
参考《HLK-V20固件命令词与播报词格式20210827.xlsx》文件中固定的“命令词”
需要注意的是返回值是四组两位十六进制数据,而且第三组不同,可以通过设置strstr函数检测不同的“关键词”控制不同的指令
先唤醒“小盈小盈”,唤醒成功的反馈“4F 00 AA F4”
****3wifi模块连接热点 访问天气网站API端口
先按照步骤配置串口2(TxD是PA2,复用推挽输出,RxD是PA3,浮空输入)
连接串口线 检查电脑设备驱动;配置串口设置,并发送指令(AT指令要勾选发送新行)
模块接入网站后,网站返回的数据流会显示到串口助手界面,若strstr函数检测到发送文段中有“关键字”则会执行指令操作,提取数据流中的天气信息等
在字符中有”双引号时,需要在双引号前加上/反斜杠
信息提取操作逻辑
char *p;
int temp;
If(接收标志位=1)
{接收标志位=0;
Printf{,Buff数组}
If(strstr(Buff数组)“?”){}// #include "string.h"
p=strstr(Buff数组,"?"));
if(p)
{
p=p+x;//位置偏移
temp=atoi(p);//字符转整型,去除多余字符 #include "stdlib.h"
printf("",temp);
}}
****4wifi模块连热点 阿里云物联网(MQTT协议+AT指令)
前期准备——搜阿里云,生活物联网平台(飞燕),创建项目产品设备,将三元组转换
按照步骤配置串口2(TxD是PA2,复用推挽输出,RxD是PA3,浮空输入)
连接串口线 检查电脑设备驱动;配置串口设置,并发送指令(AT指令要勾选发送新行)
发送AT指令和三元组转换这一过程,可以用软件手动操作
也可以用哈希转换.c+阿里云初始化程序编写运行后自动进行 如下
AT指令发送及等待响应函数,等到关键字则跳出;失败则将a改值并提示重新初始化
阿里云逐步初始化函数,每一步完成都判断a的值,异常则goto回去重新开始初始化
131行——Sprintf()字符串拼接功能
设备成功匹配接入后,使用APP即可进行信息流传输控制(开关或文本框)并显示到串口助手界面,若strstr函数检测到发送文段中有“关键字”则会执行指令操作
函数中的AT指令要在字符结尾加上\r\n;在字符中有”双引号时,需要在双引号前加上\反斜杠;更换面板或者是更换设备绑定需要先本地删除再重新扫配网二维码;注意加上延时函数
****WiFi模块烧固件——MQTT固件
刚买回来的WiFi模块可以进行AT指令操作,但MQTT需要进行烧固件才能通信
1.烧录时,串口助手需要关闭,不然会占用
2.TxRx反接,模块io口接地烧录模式,RST复位电平
3.波特率要看固件文件有没有提醒,或者默认115200
****阿里云设备订阅和发布
设备发布代码——Set是定制 post是发布
在字符中有”和/时,需要在双引号前加上\反斜杠
串口发送字符函数代码段中字符串太长可以加反斜杠回车换行顶格,防止界面跳转太烦
对于主函数while循环中,实时和条件触发的代码放一起时,要避免阻塞段对运行的影响
Sprintf可以用来拼接字符,但缓存空间过大会卡住,注意内核缓存大小(可以修改)
Spritf将传感器采集到的数值拼接放入AT指令字符内然后存入新字符数组内,串口发送数组
参考学习,望有助