Wio Terminal Tensorflow Lite 智能气象站
本项目使用 Wio Terminal 和 Tensorflow Lite for Microcontrollers 创建一个智能气象站,它能够根据来自 BME280 环境传感器的本地数据预测未来 24 小时的天气和降水量。在这个项目中,我们将学习模型优化技术,将中等规模的卷积神经网络和流畅的 GUI 和 WiFi 网络连接等功能同时运行在 Wio Terminal 上。
项目概述
我们将在 Wio Terminal 的屏幕上显示当前的温度、湿度和大气压值,以及城市名称、预测的天气类型和预测的降水率,并且在屏幕底部有一个日志输出字段,我们可以轻松地将其重新用于显示其他信息,如极端天气信息。或者我们可以手动添加更多东西,例如在屏幕上显示新闻等。
在这个项目中,我们将处理时间序列数据。我们将每小时进行一次测量,并对 24 小时的数据进行预测。由于我们要预测未来 24 小时的天气类型,所以我们将使用相同的模型预测未来 24 小时的降水几率。为了做到这一点,我们将利用 Keras Functional API 和多输出模型。
在多输出模型中,有一个通用的“主干”,将预测出两个不同的输出。与两个独立模型相比,使用多输出模型的好处主要是用于预测天气类型和降水几率的数据和学习的特征是高度相关的。
安装依赖
- 如果在 Windows 上完成这个项目,我们需要先下载 Arduino IDE 的夜间版本;
- 其次,需要确保在 Arduino IDE 中拥有 1.8.2 版本以上的 Seeed SAMD 板卡库。
- 最后,由于我们要使用 Keras API 构建卷积神经网络,而它包含了 Tensorflow Micro 不支持的操作。所以需要你从该项目 Github 存储库下载已编译的库并将其放入本地的 Arduino 库文件夹中,并确保当前只有一个 Tensorflow lite 库。
了解数据
当然,这一切都始于数据。在本教程中,我们将使用来自 Kaggle 的一个现成的天气数据集,Historical Hourly Weather Data 2012-2017。然而 Seeed EDU 总部位于中国南方城市深圳,该城市不在数据集中,因此我们选择了一个位于相似纬度且具有亚热带气候的城市 —— 迈阿密。
你需要选择一个至少与你居住的气候相似的城市,如果你决定使用迈阿密的数据训练,然后冬天部署在芝加哥的模型不会输出正确的预测。