STM32天气数据获取
- 硬件资源
ESP8266无线上网模块、STM32系统板、OLED屏
- 实现方式
ESP8266无线上网模块配置为STA+TCPClinet;
- 通讯协议:HTTP
- 天气数据获取:心知天气网
1.ESP8266WIFI简介
ESP8266是ai-thinker公司推出的一款无线WIFI模块,专为移动设备,可穿戴电子产品和物联应用设计,采用USART通讯,通过AT指令配置,和单片机上的串口进行通信,利用WIFI进行数据传输。ESP8266支持TCP和UDP模式,有AP模式、STA模式以及AP+STA并存模式。
- STA+TCPClinet AT指令
- STA+TCPClinet 模式配置函数封装
2.HTTP协议
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。
HTTP 是一个基于 TCP/IP 通信协议来传递数据( HTML 文件, 图片文件, 查询结果等)。工作于客户端-服务端架构上,默认端口号为 80,但是你也可以改为 8080或其它端口号。HTTP协议永远都是客户端发起请求,服务器回送响应。
3.天气数据获取平台
心知天气是中国气象局官方授权的商业气象服务公司,基于气象数值预报和人工智能技术,提供高精度气象数据、天气监控机器人、气象数据可视化产品,本次天气数据获取从心知天气网平台获取。
- 3.1 实现步骤
1.创建心知天气个人账户
平台地址:https://www.seniverse.com/
2.选择产品->天气数据接口,免费试用。
3.选择免费申请,激活。
激活成功后即可看到公钥和私钥,这个参数在后面获取数据是需要用到。
4.HTTP方式获取天气数据
- 接口说明
- 平台返回数据
5.功能实现
心知的 API 目前基于 http 协议,域名是 api.seniverse.com,端口是缺省的 80(http)和 443(https)。
- 解析天气数据函数
通HTTP访问天气数据接口,获取实时天气数据,进行数据解析。
- 相关图标制作
心知天气网中提供有天气相关图标,可实现天气图标制作。