STM32+ESP8266+TFTLCD实现天气预报显示
- 前言
- 项目思路
- 效果演示
- 心知天气API
- 硬件部分
- 材料
- 硬件连接
- 软件部分
- ESP8266AT固件指令
- 页面布局
- JSON数据解析
- 时间数据解析与计时
- 遇到的问题
最近发现自己学的东西都太杂了,真正开始找工作,才意识到自己应该精通某样技能。认真开始使用STM32做小项目后才发现自己有好多东西不知道,感觉自己是真的菜。虽然这也不是新的技术,但是真正要做到精通,其中道理要研究的东西还是蛮多的。并且好久没有更新文章了,最近在知乎上看到别人使用STM32做了一个实时疫情的显示屏,想着自己也动手做一个显示天气预报的装置。工程源码见文末。
STM32与ESP8266通过串口连接,STM32通过串口向ESP8266发送指令:连接AP,创建TCP连接,创建SSL连接,发送GET请求获取天气数据,STM32解析JSON数据,将天气数据显示在TFTLCD屏幕上。屏幕可显示最近三天的天气情况和显示实时24小时天气(最多显示至第12小时),使用按键来切换,显示不同的天气页面。


我使用心知天气获取天气信息,由于STM32使用cJSON需要消耗大量内存,如果获取的数据量过大会导致JSON数据解析失败的结果,而这个API可以根据自己的要求获取一定数量的数据,不仅可以获取24小时逐小时天气数据,还可以获取逐日天气数据。







- 连接ap指令:AT+CWJAP=“SSID”,“password”
- 创建TCP连接:AT+CIPSTART=“TCP”,“www.domain.com”,80
- 创建SSL连接:AT+CIPSTART=“SSL”,“www.domain.com”,443
- 设置为透传模式:AT+CIPMODE=1
- 发送数据:AT+CIPSEND
- 直接向串口发送GET请求
- 退出透传模式:
+++
AT+CIPMODE=0 - 断开TCP连接:AT+CIPCLOSE
- 断开SSL连接:AT+CIPCLOSE
时间JSON数据格式:
天气JSON数据格式:
解析数据并储存在结构体中


LCD中文显示的字库采用的是GBK编码,GBK是兼容GB2312的,有时如果解码有问题就会导致屏幕上显示出与自己定义的文字不一致。发送HTTP请求其中采用的TTF-8编码,如果使用GB2312的编码发送GET请求就会请求不到数据。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/137850.html