|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kpj001 于 2023-7-27 22:30 编辑
0. 之前搞定了图标的显示 ( 合宙 TFT 显示天气图标 )
那么就来实际显示下天气:
这大概是最简单的物联网实验_哔哩哔哩_bilibili
1. 某网站抓取天气信息。 比如 高德天气 (https://console.amap.com/ 免费申请key)
高德api需要身份证号去申请,可能有些人不喜欢,可以用下面的这个测试链接练练手 ( 把链接帖到浏览器地址栏就可以看到下面的返回)
https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22
- {"coord":{"lon":-0.13,"lat":51.51},"weather":[{"id":300,"main":"Drizzle","description":"light intensity drizzle","icon":"09d"}],"base":"stations","main":{"temp":280.32,"pressure":1012,"humidity":81,"temp_min":279.15,"temp_max":281.15},"visibility":10000,"wind":{"speed":4.1,"deg":80},"clouds":{"all":90},"dt":1485789600,"sys":{"type":1,"id":5091,"message":0.0103,"country":"GB","sunrise":1485762037,"sunset":1485794875},"id":2643743,"name":"London","cod":200}
复制代码 然后试试看能不能用JSON库解析到自己需要的字段
2. 高德 返回 “阵雨” 这样的描述,而前篇里面提到的 meteocons 字体是用大写字母对应天气图标,而且多种天气共用一个图标,于是下面这样的代码基本实现天气对应的图标显示,当然最准的还是某些网站直接返回的图标代码。
if( weather.indexOf("雨")!= -1)icon = "R";
if( weather.indexOf("雪")!= -1)icon = "G";
if( weather.indexOf("雾")!= -1)icon = "M";
if( weather.indexOf("风")!= -1)icon = "F";
if( weather.indexOf("雷")!= -1)icon = "0";
if( weather.indexOf("雹")!= -1)icon = "X";
3. C:\Windows\Fonts 里面选一些自己喜欢的 ttf 字体, 选取需要的汉字,用工具转换为vlw文件,再生成 .h 文件供单片机调用。【 参考 】
注意,转换后是点阵字体,即需要的每个字号都得按上面来一次。图中统一用的32号雅黑,一排4个汉字。
至此天气这块基本算毕业,后续有兴趣可以折腾下
自动配网
获取公网 ip地址 (ip33.com)
获取城市名
或( 获得经纬度 )
加上本地传感器
。。。
|
|