
这个 Demo 展示了如何使用 Wio Terminal 实现一个天气小助手,Wio Terminal 通过 I2C 接口连接传感器实时监测室内环境温湿度和空气质量,同时通过 WiFi 网络获取当地天气信息以及未来三天的天气预报,使用按键即可切换显示界面。
实现功能
-
开机自动联网获取实况天气和预报天气
-
在主界面同时显示室外和室内的温湿度
-
按上方左键可手动更新天气信息
-
可通过五向开关的 Left 和 Right 翻页查看未来几天的天气预测
重点难点
-
实现传感器数据的实时读取和显示
-
从 Web API 获取天气信息并解析 JSON 数据
硬件材料
- 1 x Wio Terminal
- 1 x AHT10 温湿度传感器
- 1 x PM2.5 传感器
- 1 x 空气质量传感器
依赖库
- rpcWiFi.h
- HTTPClient.h
- WiFiClientSecure.h
- ArduinoJson.h
- Free_Fonts.h
- TFT_eSPI.h
- Adafruit_AHTX0.h
- Seeed_HM330X.h
- Air_Quality_Sensor.h
- Bounce2.h
针对这次活动和实现的功能,我一共整理了六篇文章:
- Wio Terminal 有什么好玩的?
- Wio Terminal 读取 AHT10 传感器
- Wio Terminal 将数据存储到 Flash
- Wio Terminal 从网络获取天气数据
- Wio Terminal 天气小助手项目
- Wio Terminal LCD 中文显示
视频和代码链接如下:
Wio Terminal 天气小助手的固件代码位于 firmware/WeatherBox 目录,可通过 Arduino IDE 打开,编译并上传到 Wio Terminal。当然,为了顺利编译,你通常还需要安装一些依赖库(看文档说明)。

心得体会
这是 Funpack 第12期,也是第一届 Funpack 活动的最后一期,真心感谢得捷电子和硬禾学堂为我们带来这么棒的活动!不仅能一边玩一边学,还能锻炼视频剪辑和表达能力,让离开校园多年的我们重新感受到了校园学习的氛围。
本期的 Wio Terminal 开发套件也很给力,它支持 Arduino 和 MicroPython 编程,同时提供了 Grove 和 RPI 接口,可以无缝对接 Arduino、树莓派和 SeeedStudio Grove 的生态系统,大大提高了 Wio Terminal 的可玩性。愈发让我觉得,Wio Terminal 绝对不只是一块开发板那么简单,它能做很多事情,无论是 DIY 项目、青少年教育、边缘人工智能等等,都让人对它充满了想象。
由于时间关系,我只在该项目中融合了任务一和任务二,设计了「天气小助手」项目,通过传感器获取室内温湿度、空气质量和 PM2.5 数据,通过网络获取实况天气和预报天气。关于 TinyML 部分仍在学习,我想虽然第一届 Funpack 活动结束了,但我们学习的脚步并不会因此停止,希望未来能做出更多好玩有趣且实用的项目。
最后,再次感谢得捷电子和硬禾学堂,感谢 Funpack 第1期至第12期的各位小伙伴!
2021年12月14日,Rudy