当前位置:首页 > 公众号精选 > 码农爱学习
由于之前做过类似的项目,所以做起来还是比较简单的。改一下API接口,JSON解析函数,调整一下显示界面就可以了。于是之前的项目就变成了全球新冠疫苗接种数据实时监控平台。名字很唬人,其实很简单。效果展示:

疫苗接种数据

下面介绍如何来制作这样一个全球新冠疫苗接种数据实时监控平台,并不需要和我一样的硬件,只需要了解整个项目的实现过程,在任何平台上实现都是一样的。

主要包括以下内容:

  • 1.硬件平台准备

  • 2.API接口获取

  • 3.ESP8266配置

  • 4.JSON数据解析

  • 5.LCD数据显示

  • 6.开源地址

1.硬件平台准备

基本硬件主要有以下:

  • 一款主控芯片。比如ARM、51、AVR等平台,最好是片上外设多一点的,GPIO,串口,定时器这些,如果带有WiFi功能就更好了,这意味着可以省掉一个WiFi模块。如ESP8266就是一款具有WiFi功能的MCU,可以进行SDK开发。

  • 一个联网模块。比如WiFi,2G/4G,有线以太网等,如果主控芯片带有WiFi功能,可以省略!

  • 一个显示设备。比如LCD,OLED,墨水屏,点阵屏等,用于数据的显示。

  • 一些必要的调试工具。如下载器,USB-TTL模块等,最重要的是要有一颗不怕困难的心。

这里我使用的是STM32+ESP8266的方案,通过AT指令的方式和WiFi模块进行交互。

主要包括以下硬件模块:

  • STM32F103RET6,主控芯片,完成串口交互,LCD控制等

  • ESP8266-01,用于连接WiFi获取数据

  • 3.2' TFT LCD,用于显示数据

  • SPI Flash,用于存储字库

  • LED,用于指示状态

  • J-Link,USB-TTL,用于程序调试与下载。

实际开发板如下,这是一款我在大学期间自己画的小板子:

图片

2.API接口获取

API和之前一样是通过腾讯新闻获取,使用浏览器打开腾讯新闻-实时接种数据页面:

PC和手机端界面:

PC界面

F12打开开发者模式,切换到Network网络面板,刷新页面,找到请求的URL,可以看到是POST方式:

POST方式

并使用浏览器直接访问这个页面,

10.20.png

访问疫苗接种数据API

可以看到是GET方式:

GET方式

说明支持两种HTTP请求方式:

GET:

182.254.21.58:443

POST:

182.254.21.36:443

3.ESP8266配置

有了IP地址,端口号和API地址,下一步就是使用ESP8266来访问这个API接口,并得到返回的数据。为了和之前的程序兼容,这里我选择的是GET请求的方式。EPS8266使用AT指令的方式进行配置,由于之前的项目已经完成了ESP8266配置的部分,只需要修改一下IP地址,端口号和API地址即可,配置流程使用串口打印出来,如下:

JSON解析

可以看到返回的数据是常用的JSON格式字符串,长度为265字节。有了JSON数据,下一步就是对数据进行解析,使用的是cJSON解析库,由于数据格式比较简单,解析函数也不多。

格式化之后的数据:

json原始数据

4.JSON数据解析

由于数据比较简单,解析函数就不贴出来了。可以点击:了解JSON格式,使用cJSON解析,使用cJSON构建,获取以往的文章介绍。

在解析数据时,要注意,其中"中国","全球"汉字为UTF-8编码,在Keil中进行键值解析时,需要修改字符编码为UTF-8:

UTF-8

或者在GBK2312编码状态下,键值对字符串"中国"="涓浗",这一点要特别注意:

GBK2312

5.LCD数据显示

LCD显示部分,和上一个项目有所不同,之前是把使用到的部分字体进行取模,获取点阵数据,然后再显示出来。这次我是读取板子上的SPI Flash字库文件,然后进行显示的,这样可以显示所有的文字,比较方便。UI界面比较简单,没有采用GUI库。

疫苗接种数据

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭