升级STM32 预热: 单片机每隔一定时间 使用 http 获取天气

一,实现的功能:

  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  讲一下这个函数,上一节没有讲

  

  

  

   控制发送数据,接收判断数据

  

    

   真正判断返回处理是放到了

  

  

   

   我把所有需要注释说明的函数都加了这样的注释

  列如:

  

  我希望我的代码做到方便让别人移植使用

七 补充,其它城市代码

猜你喜欢

转载自www.cnblogs.com/yangfengwu/p/11668487.html