查看: 2233|回复: 0

开发板开箱加项目分析

[复制链接]
  • TA的每日心情
    开心
    2018-3-18 11:45
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    发表于 2017-5-24 11:18:17 | 显示全部楼层 |阅读模式
    分享到:
    感谢

         首先感谢爱板网的这次活动,让我有机会使用国产的Cortex-m3单片机开发板。

    gd32f450靓照

    项目介绍

         由于普通的单片机RAM容量有限,无法直接解析很大的JSON天气数据。本次项目希望借助于gd32开发板较大的内存来直接解析天气api数据,从而获取天气预报。
         本项目的硬件构成有gd32f450开发板,esp8266,串口显示屏等构成,其中gd32f450做主控,负责解析数据并驱动串口显示屏。esp8266做从机,负责构造http请求,接收json数据串,构造用于配置wifi名称,密码,天气预报城市,温度单位,天气api 私密key的webserver服务器等。
    项目工作原理

        目前市面上有很多公司都在做天气预报api,其中知心天气,和风天气等比较流行。这些天气预报数据均来自国家天气预报中心网站,数据的真实可靠性有一定的保证。这些公司的收费模式都是按预报请求数量来划分的。普通免费用户一般一天可以请求一两千次,包含的数据只有未来三天的天气预报和实时天气预报。这写数据已经可以满足一定的需求。收费用户则可以获取未来多达15天的天气预报以及天气aqi,生活指数,生活建议等等数据。
       本项目采用知心天气api免费版本,它可以免费获取未来两天天气预报和当下实时天气预报,一天可以访问三千多次。知心的天气的api全部可以在其网站上查询到,本项目利用了其实时天气api和未来天气预报api。向知心天气服务器发送符合要求的http请求即可获取想要的数据。数据返回一般可以选则json和xml。由于json格式的数据解析更方便,所以本项目采用这种方式。
       http请求包含PUT,DELETE,GET,POST即增删查改四种方法。知心天气api获取数据用到了GET方法,在构建请求头时需要加入GET参数。为了用户鉴权,知心天气api使用了key参数,在发送http请求时必须附带key参数。其他的参数包括温度单位,城市,语言等参数也需要按需附带。
      在esp8266中,一个符合知心天气api的http请求如下(key参数做了隐蔽):https://api.seniverse.com/v3/air/now.json?key=your_api_key&location=beijing&language=zh-Hans&scope=city构造了http请求之后,通过esp8266的tcpclient的print方法,即可将数据发送出去。利用tcpclient类的read方法可将服务器返回的数据取出。取出的数据稍作处理(http请求返回数据也包含head信息,需要裁剪之后得到json数据串)之后通过SoftwareSerial类的print方法发送到gd32f450来做进一步的处理。





    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-16 18:07 , Processed in 0.119041 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.