资料介绍
描述
介绍
天气监测设备是提供该地区有关温度、湿度、风速、降水、紫外线指数等大气信息的有用工具。特定地区的天气描述了很多关于栖息地、气候条件的信息,并在一段时间内积累了这些数据。一定的时间段可以用来预测未来的气候变化。在这个项目中,我使用了 OLED 显示屏,显示温度(摄氏度)、风速(米/秒)、天气的一般描述和图形图标,通过 API 调用来描述天气。
在职的
1.发送API请求并获取Json响应
天气监控设备通过向服务器发送 API 请求以返回 JSON 响应来获取天气信息。对于我的项目,我使用了 weatherbit API 的当前天气 API,因为它是免费的并且非常适合我的要求。
要使用此 API,您首先需要在weatherbit.io上设置一个帐户。创建后,您需要请求一个 API 密钥,大约需要 30 分钟才能激活。将 API 密钥保密以供您自己使用,因为它的用途有限。
获取 API 密钥后,您可以通过在 Web 浏览器上发送请求(参见文档)或从postman等工具以结构化方式查看 JSON 格式来检查 JSON 响应。这是我的 api 请求的示例-
此请求的 JSON 响应如下 -
{
"data": [
{
"rh": 91.3,
"pod": "d",
"lon": 73.78869,
"pres": 988.487,
"timezone": "Asia/Kolkata",
"ob_time": "2020-08-05 12:53",
"country_code": "IN",
"clouds": 100,
"ts": 1596631998,
"solar_rad": 30.8,
"state_code": "33",
"city_name": "Marmagao",
"wind_spd": 8.05612,
"wind_cdir_full": "west",
"wind_cdir": "W",
"slp": 994.225,
"vis": 2,
"h_angle": 64.3,
"sunset": "13:42",
"dni": 666.14,
"dewpt": 23.9,
"snow": 0,
"uv": 1.35293,
"precip": 0,
"wind_dir": 269,
"sunrise": "00:47",
"ghi": 308.26,
"dhi": 76.82,
"aqi": 51,
"lat": 15.40927,
"weather": {
"icon": "c04d",
"code": 804,
"description": "Overcast Clouds"
},
"datetime": "2020-08-05:12",
"temp": 25.4,
"station": "VAJJ",
"elev_angle": 20.94,
"app_temp": 26.4
}
],
"count": 1
}
同样,要获取您所在位置的天气信息,您只需更改城市和国家名称。
JSON 响应(如您在上面看到的)包含大量信息,我们只需要一些信息。为了只从 JSON 中获取必要的信息,我们必须进行解析。
2.解析JSON响应
为了解析所需的信息,我使用了 ArduinoJson 库。为此,我必须获取 json 缓冲区大小并为我想要的属性创建一个 json 对象。我已经使用ArduinoJson 助手来计算缓冲区大小并获取我想要显示的键的值。缓冲区大小和解析程序是通过将 JSON 响应粘贴到 ArduinoJson 助手获得的。
3. 创建天气小部件
我创建了这些小部件,因为它是表示当前天气状况的一种有吸引力的方式,并且在 OLED 显示屏上具有吸引人的外观。这些图标中的每一个都来自文档,一些来自 Google 搜索。下面列出的是我使用过的天气图标-
所有图标已被裁剪为小于(或接近)57*57 像素的分辨率,以适应 OLED 显示器,并已使用image2cpp工具转换为各自的数组字节。图像的数组字节如下所示 -
在合并到主程序之前,我首先测试了显示屏上的所有图标,以检查最终图像的大小和对比度。结果如下——
在确保每个图标都完美显示后,我已将这些图标分配给它们各自的图标代码(查看文档)。例如:200 到 202 之间的代码显示“雷暴雨”图标,500 到 522 之间显示“雨”图标等等。
最终执行
该草图需要以下库,可以从 Arduino IDE 的库管理器安装 - Adafruit 的Adafruit SSD1306 、Adafruit 的Adafruit GFX 库、ArduinoJson (版本 5)。
在上传草图之前,请确保输入 weatherbit io 的API 密钥以及WiFi 路由器的SSID和密码。
主显示屏提供从 Weatherbit api 获得的以下信息-
- Arduino UNO驱动的简单天气监测系统
- 使用Arduino构建基于物联网的天气监测系统
- 基于SparkCore的天气监测器 0次下载
- 天气监测系统
- 带有蓝牙HC 05的基于Arduino Nano的天气监测器
- 使用Qubitro和RAK WisBlock进行全球天气监测
- BME680天气监测装置开源分享
- NodeMCU项目(一)天气时钟
- 基于ZigBee的天气现象自动观测分析系统 9次下载
- IIC通信小OLED显示屏模块资料汇总 83次下载
- OLED的优缺点资料下载
- 正点原子ESP8266获取网络天气适配战舰V3 25次下载
- OLED模块的PCB原理图免费下载 290次下载
- 基于天气监测的STM32程序 21次下载
- 天气雷达的现状及发展趋势 25次下载
- AWTK 开源串口屏开发(11) - 天气预报 270次阅读
- oled是什么材料 oled是液晶屏吗 2358次阅读
- 树莓派Pico上使用SSD1306 OLED屏幕 1548次阅读
- FPGA在OLED上显示DHT11数据 1607次阅读
- 如何在OLED上实现字符的显示 4668次阅读
- Python如何爬取天气数据 1669次阅读
- uled和oled的区别?uled电视有什么优点? 2.8w次阅读
- 石墨烯oled成为柔性显示屏的小火箭 2851次阅读
- 分析OLED应用领域 OLED主要应用在哪里 1.1w次阅读
- MicroLED威廉希尔官方网站 尚不成熟,现阶段屏下指纹识别系统只能做在OLED上 2447次阅读
- OLED威廉希尔官方网站 新突破 OLED寿命延长15% 5426次阅读
- 天气雷达原理介绍 6237次阅读
- oled是什么意思 AMOLED与OLED的主要区别到底在哪里? 6.2w次阅读
- 基于Zynq的OLED驱动设计 1w次阅读
- OLED之父邓青云为你揭开OLED的秘密 1.3w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多