基于 Windows 10 IoT 的智能植物监测系统
零部件与材料
- Arduino Due × 1(ARM 架构,3.3V 逻辑)
- Raspberry Pi 2 Model B × 1
- Adafruit BMP180 气压/温度/海拔传感器 × 1(国产替代)
- Adafruit ADS1115 16位 ADC 模块 × 1(国产替代)
- SparkFun 土壤湿度传感器(带螺丝端子) × 4(国产带比较器模块)
- 舵机 Tower Pro MG996R × 2
- 继电器模块 × 2
- 面包板 × 1
软件与平台
- Microsoft Visual Studio 2015
- Arduino IDE
项目介绍
项目目标
构建植物监测与自动浇水系统。核心任务:控制舵机、继电器,采集土壤湿度数据。树莓派无内置 ADC,故通过外接 ADC 模块和 Arduino 网关(内置 ADC)采集模拟信号。与环境交互常需 PWM,我采用了三种方案中的两种:软件 PWM 和 Arduino 网关(已实现 I2C 设备驱动)。ADC 和 PWM 在 Arduino 生态常用,若要在树莓派 GPIO 上使用这些功能,通常至少需要其中之一。
应用程序

应用分两种模式:
- 自动模式: 周期检测土壤湿度,分 5 级(1 最湿/绿色,5 最干/红色)。若某植物等级超阈值,舵机转动为其浇水。一个舵机约 180° 可服务两株植物。默认自动模式,定时器周期性检测 A/B 两株,再检测 C/D 两株。
- 手动模式: 手动控制舵机和继电器。
核心组件详解
舵机 SG90
驱动舵机需高频 GPIO 时钟,默认提供商不足,改用 Lightning 提供商。初期树莓派供电不足导致性能问题(舵机功耗大),换用 iPad 充电器改善但仍偶尔卡顿。外接舵机供电电路可彻底解决:舵机 VCC 接外部 5V,信号线不变,共地。


ADS1115 16位 I2C ADC
尝试实现完整驱动,仍在开发中(阈值寄存器未设置),逻辑可能有问题,未全测试,但已基本可用。
BMP180 I2C 温压传感器
驱动基于开源项目,仅修改初始化以兼容 Lightning 提供商。温压测量适用于气象站、植物监测等项目。
继电器
简单 GPIO 控制,代码易懂。
光敏二极管电路
用于光照测量,放大电路参考 LTC1050 文档,二极管选用 Osram BPW21(日光优化)。
Arduino 网关
选用 Arduino Due 因其 3.3V 上拉 I2C 总线。也可用电平转换器或其他未上拉的 I2C 总线(如 Mega 2560 多路 I2C)。网关代码简洁。
土壤湿度传感器
使用国产带比较器模块版本。
项目总结
本项目提供植物自动浇水的基础思路,以下特性可移植到你的项目:
- 通过 I2C 与 Arduino 板通信(Arduino 网关)
- 树莓派上实现 ADC 采集
- 树莓派上实现 PWM 控制舵机
未来计划
- 接入 Azure 云服务
- 用 Xamarin 开发移动端 App
- 用蓝牙替代 I2C 与 Arduino 通信
代码仓库
原理图
电路图见项目附件,光敏放大电路参考 LTC1050 文档。
制造工艺
- 智能垃圾桶:基于蜂窝物联网的自动化废物管理解决方案
- Windows IoT + 树莓派打造人脸识别智能门锁
- Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测
- 树莓派 3 Model B+ 安装 Windows 10 IoT Core 完整步骤指南
- 在树莓派 2 上用 Windows 10 IoT Core 构建语音控制机器人
- 在树莓派 3 上扩展 GoPiGo v2 的 Windows 10 IoT Core 应用
- 智能植物物联网:Arduino 与 Azure 构建连接温室
- 云监控:实时资产管理的远程控制系统
- 基于AI的先进物联网系统实现森林火灾超早期检测与树木健康监测
- 油柴油罐物联网远程监控系统
- 物联网车队重量监测八大核心优势深度解析
- 利用物联网牛奶液位监测革新奶业管理