
科学研究与应用
Journal of Scientific Research and Applications
- 主办单位:未來中國國際出版集團有限公司
- ISSN:3079-7071(P)
- ISSN:3080-0757(O)
- 期刊分类:科学技术
- 出版周期:月刊
- 投稿量:4
- 浏览量:533
相关文章
暂无数据
基于Arduino的智能盆栽土壤湿度监测与拟人化交互系统设计
Design of Intelligent Potted Soil Moisture Monitoring and Anthropomorphic Interaction System Based on Arduino
引言
传统的植物养护主要依赖人工观察和经验判断,存在主观性强、不及时等问题。为了解决这一问题,实现科学、精准的植物灌溉,各种智能浇水系统应运而生。本项目旨在开发一个不仅能够自动监测土壤湿度,更能通过多模态方式(视觉颜色、闪烁警示、文字信息)与用户进行高效交互的系统,提升养护体验,确保植物健康生长。
1 系统总体设计
1.1 系统架构
本系统采用分层架构,主要由感知层、控制层和人机交互层构成。
感知层:由土壤湿度传感器构成,负责采集原始的土壤湿度模拟信号。
控制层:以Arduino微控制器为核心,负责处理传感器数据、执行逻辑判断并控制所有输出设备。
人机交互层:包含RGB LED、闪烁LED和LCD显示屏,共同向用户提供直观的系统状态和植物需求信息。
1.2 工作流程
系统上电初始化后,进入循环工作模式:首先读取土壤湿度传感器数值,将其映射为百分比湿度;然后,根据当前湿度值更新RGB LED的颜色、控制求水指示灯的闪烁模式、并在LCD屏幕上显示对应的状态信息。整个过程实时进行,为用户提供连续的反馈。
1.3 Tinkercad模拟电路设计
本项目在Tinkercad在线平台进行仿真。电路设计如图1所示,清晰地展示了各元件的连接方式。
主要元件连接说明:
土壤湿度传感器:信号引脚连接至模拟输入引脚 A0。
RGB LED:
红色引脚(R)连接至数字引脚11 (PWM)。
绿色引脚(G)连接至数字引脚9 (PWM)。
蓝色引脚(B)连接至数字引脚10 (PWM)。
共阳极连接至5V。
求水指示灯(黄色LED):阳极通过限流电阻连接至数字引脚6。
LCD显示屏 (I2C):SDA 和 SCL 引脚分别连接至Arduino的 A4 和 A5 引脚。
2 系统软件设计与实现
系统的核心逻辑由Arduino C/C++代码实现,其主要功能模块如下。
2.1 数据采集与处理
系统通过 analogRead 函数读取传感器数值,并使用 map 函数将其转换为0-100%的湿度百分比,便于后续的逻辑判断和显示。
sensorValue = analogRead(SENSOR_PIN)
moisturePercent = map(sensorValue, SENSOR_MIN_VALUE, SENSOR_MAX_VALUE,0,100)
2.2 多模态人机交互实现
2.2.1视觉颜色反馈 (RGB LED)
RGB LED的颜色根据土壤湿度百分比动态变化,提供了最直观的湿度状态指示。
此阶段(0%-25%)的土壤湿度非常干,表示严重缺水,当土壤湿度百分比动态由0% ->25%变化时,RGB LED的颜色会由红色 -> 品红色实时变化。
此阶段(25%-50%)的土壤湿度偏干,表示缺水,当土壤湿度百分比动态由25% ->50%变化时,RGB LED的颜色会由品红色 -> 蓝色实时变化。
此阶段(50%-75%)的土壤湿度适宜,表示状态良好,当土壤湿度百分比动态由50% ->75%变化时,RGB LED的颜色会由蓝色 -> 青蓝色实时变化。
此阶段(75%-100%)的土壤湿度湿润,表示水分充足,当土壤湿度百分比动态由75% ->100%变化时,RGB LED的颜色会由青蓝色 ->绿色实时变化。
2.2.2 求水强度指示 (闪烁LED)
当土壤湿度低于设定的阈值(75%)时,黄色LED开始闪烁。其闪烁频率与干燥程度成正比:土壤越干,闪烁越快,求水诉求越紧急。
if (constrainedSensorValue < MOISTURE_THRESHOLD_BLINK_ON) {
int blinkDelay = map(constrainedSensorValue, MOISTURE_THRESHOLD_VERY_DRY, MOISTURE_THRESHOLD_BLINK_ON, BLINK_DELAY_FAST, BLINK_DELAY_SLOW);
digitalWrite(BLINK_LED_PIN, HIGH);
delay(blinkDelay);
digitalWrite(BLINK_LED_PIN, LOW);
delay(blinkDelay);
}
2.2.3文字信息交互 (LCD显示屏)
LCD屏幕模拟植物向用户“说话”,根据不同的湿度区间显示不同的拟人化信息,极大地增强了系统的亲和力。
void updateLcd() {
lcd.clear();
if (moisturePercent <=10) {
lcd.print("CRITICAL DRY");
} else if (moisturePercent <=25) {
lcd.print("I'm very thirsty");
} else if (moisturePercent <=50) {
lcd.print("Water me, please");
} else if (moisturePercent <=75) {
lcd.print("Moisture good");
} else if (moisturePercent <=100) {
lcd.print("Optimal moisture");
}
...
}
2.3 核心代码
以下是系统的主循环代码,展示了其核心逻辑流程:
void loop() {
unsigned long currentMillis = millis();
//1.读取并处理传感器数据 sensorValue = analogRead(SENSOR_PIN);
moisturePercent = map(sensorValue, SENSOR_MIN_VALUE, SENSOR_MAX_VALUE,0,100);
//2. 更新RGB LED颜色(非阻塞方式)
if (currentMillis - lastRgbUpdate >= RGB_UPDATE_INTERVAL) {
lastRgbUpdate = currentMillis;
// ... (颜色映射逻辑)
analogWrite(RED_PIN, red);
analogWrite(GREEN_PIN, green);
analogWrite(BLUE_PIN, blue);
}
//3. 控制求水指示灯闪烁 if (constrainedSensorValue < MOISTURE_THRESHOLD_BLINK_ON) {
// ... (闪烁逻辑)
} else {
digitalWrite(BLINK_LED_PIN, LOW);
}
//4. 更新LCD显示 if (moisturePercent != previousMoisturePercent) {
updateLcd();
previousMoisturePercent = moisturePercent;
}
//5. 串口打印调试信息 Serial.print("Sensor Value: ");
Serial.print(sensorValue);
// ... (更多串口打印)
}
3 系统测试与结果分析
在Tinkercad仿真环境中,通过调整土壤湿度传感器的模拟输入值,对系统进行了全面测试。测试结果表明:
RGB LED能够根据预设的湿度区间平滑地变换颜色,与设计预期完全一致。
求水指示灯在湿度低于75%时准确点亮,并且其闪烁频率随湿度降低而线性增加,有效传达了需求的紧迫性。
LCD显示屏在不同湿度阶段均能正确显示对应的拟人化信息,交互体验良好。
系统运行稳定,各模块协同工作,成功实现了预设的所有功能。
4结论与展望
本文成功设计并仿真了一个基于物联网的多模态植物土壤湿度监测系统。该系统通过颜色、闪烁和文字三重反馈机制,创造了一种高效、直观且富有情感的人机交互体验。Tinkercad仿真结果验证了设计的正确性。
未来工作可以考虑从以下几个方面进行拓展:
- 增加执行机构:连接一个水泵或电磁阀,实现自动浇水功能,形成闭环控制。
- 融入物联网云平台:通过Wi-Fi或NB-IoT模块将数据上传至云端,实现远程手机App监控和历史数据查询。
- 多节点网络:部署多个传感器节点,构建一个大规模的温室或农田监测网络。
- 环境参数融合:集成光照、温度、湿度传感器,为植物提供更全面的生长环境监测。
参考文献:
- [1] Kaluz M, Klauco M, Kvasnica M. Real-time implementation of a reference governor on the arduino microcontroller[C]//Proceedings of the201520th international conference on process control (PC).2015.
- [2] Tuysuz C, Bodur N C, Ugulu I. Tinkercad circuits platform-based learning experiences of gifted students in the emergency distance education process[J]. Journal of advanced academics,2024,35(SI2):329-356.
- [3] 刘火良, 杨森. Arduino开发实战指南[M]. 北京:机械工业出版社,2012.
