第27章:智能农业解决方案
智慧农业的核心在于“精准”——精准感知作物需求,精准施肥灌溉。
27.1 系统架构
- 感知层:土壤湿度传感器、光照传感器、空气温湿度。
- 控制层:电磁阀(控制水管通断)、水泵。
- 网络层:NB-IoT(窄带物联网)。农田通常没有 Wi-Fi,且 LoRa 自建网关成本较高,NB-IoT 借用运营商基站是最佳选择。
- 平台层:阿里云 IoT 平台 + 钉钉报警。
27.2 硬件选型
- 主控:STM32F103。
- 通信:BC26 NB-IoT 模组(通过 AT 指令控制)。
- 传感器:电容式土壤湿度传感器(比电阻式耐腐蚀)。
- 执行器:5V 继电器模块 + 12V 电磁阀。
27.3 关键技术:AT 指令开发
NB-IoT 模组通常通过串口 AT 指令操作。
// 伪代码:发送 AT 指令
void sendAT(char* cmd) {
Serial2.println(cmd);
delay(100);
}
// 初始化 NB-IoT
void initNB() {
sendAT("AT+CFUN=1"); // 开启射频
sendAT("AT+CGATT=1"); // 附着网络
// 连接阿里云 MQTT
sendAT("AT+QMTCFG=\"aliyun\",...");
sendAT("AT+QMTOPEN=0,\"iot-as-mqtt.cn-shanghai.aliyuncs.com\",1883");
sendAT("AT+QMTCONN=0,\"client_id\",\"username\",\"password\"");
}27.4 自动灌溉逻辑
const int DRY_THRESHOLD = 30; // 土壤湿度低于30%认为干旱
void loop() {
int moisture = readSoilMoisture();
if (moisture < DRY_THRESHOLD) {
// 开启水泵
digitalWrite(RELAY_PIN, HIGH);
// 上报状态
mqttPublish("status", "Irrigating");
} else {
// 关闭水泵
digitalWrite(RELAY_PIN, LOW);
mqttPublish("status", "Idle");
}
delay(60000); // 每分钟检测一次
}27.5 远程控制与报警
在阿里云 IoT Studio 中搭建可视化界面:
- 开关组件:绑定
PowerSwitch属性,远程手动开启/关闭水泵(应对突发情况)。 - 仪表盘:显示实时土壤湿度曲线。
- 规则引擎:当
moisture < 20时,发送钉钉消息给农场主:“检测到严重干旱,请检查水箱水位!”
农业看重的是广覆盖和低成本,而工业看重的是高可靠和低延迟。下一章我们将进入工业物联网。