一,实现的功能:
1.1 STM32 AT指令控制Wi-Fi以TCP方式连接服务器(天气Web服务器),然后根据提供的API发送获取天气指令.
咱用国家气象局提供的API接口 http://www.weather.com.cn/data/sk/前面这些是固定的 后面101010100 为城市代码,后面说明怎么获取城市代码
http://www.weather.com.cn/data/sk/101010100.html 获取北京的天气 提供的方式1
http://www.weather.com.cn/data/cityinfo/101010100.html 获取北京的天气 提供的方式2
1.2 网页上是直接那样输入 http://www.weather.com.cn/data/sk/101010100.html
端口号默认是 80,所以不需要写端口号 也可以 http://www.weather.com.cn:80/data/sk/101010100.html
1.3 咱是用TCP实现的http,所以
1.3.1 使用TCP连接 IP地址:www.weather.com.cn 端口号:80
1.3.2 然后发送协议: "GET /data/sk/101010100.html HTTP/1.1\r\nHost: www.weather.com.cn\r\n\r\n" 即可获取
但是由于编码格式的问题会出现中文乱码..... 咱只提取temp 和 SD
1.3.3 单片机程序
1.3.4 如果不明白我说的!
二,效果图:
三,操作流程
3.1 硬件设置: 短接STM32 PB2 和 WIFI RST (以后均采用硬件复位)
3.2 下载单片机程序
3.3 如果想让WIFI连接路由器,可直接 去掉屏蔽
如果采用以上步骤,可略过3.3-3.6使用软件给模块配网过程!
3.4 由于SmartConfig 当前android9.0以上有兼容性问题,先提供 Airkiss 方式 (微信扫描下方二维码)
3.5 调整波动开关位置,长按PB5 指示灯快闪,给WIFI模块配网
3.6 输入路由器密码,点击连接 配网成功(已经配置了WIFI连接了路由器)
四,等待大约5S 如果一直不显示!,应该不可能不显示.除非国家气象那个域名有问题了!!!!
六,程序说明
6.1 讲一下这个函数,上一节没有讲
控制发送数据,接收判断数据
真正判断返回处理是放到了
我把所有需要注释说明的函数都加了这样的注释
列如:
我希望我的代码做到方便让别人移植使用
七 补充,其它城市代码
升级STM32 预热: 单片机每隔一定时间 使用 http 获取天气
原文:https://www.cnblogs.com/yangfengwu/p/11668487.html