| 本帖最后由 hbzjt2011 于 2018-6-26 09:14 编辑 
 
 互联网信息展示器之GenieNo.1 一、方案设计与环境搭建
 设计目标:实现网络获取城市天气信息并进行实时显示,同时在实现基本功能的基础上视情况增加扩展信息展示和其他功能。先给这个小东西起个名字,美其名曰:精灵1号(GenieNo.1)。硬件平台:
 主控:NanoPi M1操作系统:Debian网络:有线网络或WIFI
环境搭建: 首先需要准备一张8G SD卡,格式化以后使用win32diskimager软件烧写Debian系统;系统启动成功后进行有线网络和无线网络配置,联网成功即可通过SSH登陆系统进行操作,同时可以使用VNC软件使用界面编程;文件传输可以使用FTP进行传输。 正好手里有一块OLED屏,于是先把它驱动起来作为后续采集信息的显示,经过一番折腾后终于做了个简单的Demo展示,直接上图。
 二、调用天气API解析更新天气信息
 API返回的JSON天气信息:API选择:目前可以使用的天气API很多,比如和风天气、墨迹天气、百度地图天气API等等,大多需要注册然后获取API Key使用,我选择的是OpenWeatherMap API,看大家习惯。调用API比较简单,直接发送http请求,然后使用JSON解析即可。
 
 {
    "coord":{
        "lon":116.39,
        "lat":39.91
    },
    "weather":[
        {
            "id":501,
            "main":"Rain",
            "description":"moderate rain",
            "icon":"10n"
        }
    ],
    "base":"stations",
    "main":{
        "temp":27,
        "pressure":1003,
        "humidity":74,
        "temp_min":27,
        "temp_max":27
    },
    "visibility":6000,
    "wind":{
        "speed":2,
        "deg":80
    },
    "rain":{
        "3h":4.1575
    },
    "clouds":{
        "all":92
    },
    "dt":1529931600,
    "sys":{
        "type":1,
        "id":7405,
        "message":0.0086,
        "country":"CN",
        "sunrise":1529873231,
        "sunset":1529927221
    },
    "id":1816670,
    "name":"Beijing",
    "cod":200
}
我使用了目前用的比较多的CJSON对天气数据进行了解析,选择自己需要的数据进行显示,可以通过设置城市来实现不同城市的天气获取,这里我以北京为例,天气信息一般10分钟内不会改变,所以最好15分钟或更长时间发送一次请求即可:
 
 
 
 
 
 
 
 |