亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

TensorFlow 驱动的物联网气象站:精准预测降雨强度

元件与材料

元件数量备注
DFRobot 气象站套件(风速/风向/雨量桶)1含传感器转换板,串口输出 37 字节/秒
NodeMCU ESP8266 (ESP-12E)1Wi-Fi 传输,适用阳台近距离
DFRobot SIM808 GPS/GPRS/GSM Shield1配合 Arduino Uno,GPRS 远距离传输
Arduino Uno1SIM808 主控
Raspberry Pi 3B+ / 41运行 PHP Web 服务 + Google Sheets API
可焊接迷你面包板2

工具与软件

项目动机

2020 年以来,我所在地区频发短时强降水,导致温室作物严重减产。研究表明,暴雨对作物产量的损害可媲美极端干旱(最高 34% 减产)。现有预警系统缺乏**微尺度、实时、长周期**的本地气象数据支撑。本项目旨在构建低成本、可远程部署的气象站,结合深度学习预测降雨强度,为农业决策提供数据支撑。

系统架构

  1. 数据采集端:双模通信(Wi-Fi / GPRS)气象站,每 5 分钟上报一次 8 维气象要素
  2. 云端聚合:Raspberry Pi 运行 PHP 应用,通过 Google Sheets API 追加存储,形成长期数据集
  3. 建模预测:Python + TensorFlow/Keras 训练 ANN 分类模型,输出 5 级降雨强度(无/小/中/大/暴雨)

气象站数据格式

c000s000g000t086r000p000h53b10020
// 解析:
c000: 风向(°)    s000: 平均风速(0.1 mph)
g000: 最大风速    t086: 温度(℉)
r000: 1小时雨量   p000: 24小时雨量
h53: 湿度(%)     b10020: 气压(0.1 hPa)

关键实施步骤

1. Google Sheets API 授权

2. PHP Web 服务(部署于 Pi)

接收 HTTP GET 请求(参数:wd, a_ws, m_ws, 1_rf, 24_rf, tem, hum, b_pr),验证后追加至指定 Spreadsheet。核心流程:getClient() → append($spreadsheetId, 'A1:H1', $values)。

3. NodeMCU (ESP8266) 采集上报

4. SIM808 (Arduino Uno) 远程上报

5. 数据集构建(3 个月+,32k+ 样本)

导出 CSV,字段:风向、平均/最大风速、1h/24h 雨量、温度、湿度、气压。

6. 特征工程与建模 (TensorFlow/Keras)

# 风向向量化
wd_rad = WD * pi/180
WX = Av_WS * cos(wd_rad);  WY = Av_WS * sin(wd_rad)
maxWX = Mx_WS * cos(wd_rad); maxWY = Mx_WS * sin(wd_rad)

# 其余归一化
scaled_Tem = Tem/25; scaled_Hum = Hum/70; scaled_bPR = b_PR/1013; scaled_24h_RF = 24h_RF/24

# 标签:按近似降雨率分 5 类
approx_rate = (1h_RF + scaled_24h_RF) * 100
0: 0mm/h      1: <2.5      2: 2.5-7.6      3: 7.6-50      4: >50

# 模型
Input(7) → Dense(16, relu) → Dense(32, relu) → Dense(64, relu) → Dense(128, relu) → Dense(5, softmax)
optimizer=adam, loss=sparse_categorical_crossentropy, epochs=19

实验结果

接线参考

NodeMCU气象站
VV (5V)5V
D5RX
D6TX
GGND
Arduino Uno + SIM808气象站
D0/D1SIM808 RX/TX
D12SIM808 PWR
5V5V
D5/D6气象站 RX/TX
GNDGND

结论与展望

制造工艺

  1. 树莓派太阳能气象站DIY指南
  2. 树莓派 2 搭建户外气象站:接入 ADS‑WS1 串口气象站
  3. 树莓派自制气象站:每日邮件推送温湿雨数据
  4. IoT 入门教程:树莓派流式传输温度数据
  5. 树莓派 3 配合 PubNub 实现远程气象监测
  6. 气象站接入 CWOP 实战指南:公民天气观测计划
  7. Java ME 8 在树莓派上构建物联网:第 1 部分——GPIO 传感器集成
  8. 树莓派 3 接 DHT11 传感器上传数据到 ThingsIo.ai 云平台
  9. 树莓派 2 (Windows 10 IoT Core) 采集 Adafruit 10DOF IMU 数据上传 Azure Event Hubs
  10. 高级气象站 v2.0:BME280 实时监测温度/气压/湿度/海拔 (Windows 10 IoT Core)
  11. 树莓派 3 Model B+ 安装 Windows 10 IoT Core 完整步骤指南
  12. 树莓派 4B+ 上构建并行 C++17 SYCL 代码:hipSYCL 与 GCC/Clang 工具链实战