张宇晖,郝慧慧,唐 冰,张士明,李梦瑶,吕志恒
(郑州升达经贸管理学院,郑州 451191)
近年来,人们对生态环境和绿色生活的要求不断提升,花卉养护逐渐成为一种极具市场潜力的行业[1]。但传统的花卉养护方式需要人工进行大量的监测和管理,效率低下,难以满足快节奏的现代化需求,因此开发一种高效、智能化的花卉养护系统尤为重要。智能花盆系统可以实现花卉环境参数的实时监测和控制,提供数据分析和预测功能,大大提高了花卉的养护效率及科学性。在智能化花卉养护过程中,单片机与云计算技术是其中的核心组成。STM32单片机具有功耗低、体积小、稳定性强等优点,是智能花盆系统设计中常用的硬件平台[2]。而云平台则可以实现花盆数据的实时远程监控和分析,将花卉养护系统推向了全新的高度,促进智慧农业的高效发展。为进一步优化智能花盆功能,基于STM32单片机和云平台软硬件设施对其进行设计[3],实现花盆环境参数的实时监测和控制、远程监测和控制及数据分析与预测等功能。
系统总体架构如图1所示。基于模块化思想,将控制模块、信息采集模块、系统显示模块、无线通信模块、系统实现模块集成统一。其中信息采集模块主要包括温度传感器、湿度传感器、光照传感器、液位传感器;系统显示模块连接手机和电脑端口,在APP和网页端显示;系统实现模块主要采用继电器、水泵和LED灯;无线通信端口连接用户无线路由和移动网络。
图1 系统框架Fig.1 System framework
硬件设计是智能花盆系统的基础,主要包括传感器选择、执行器选择和控制电路设计等方面。其中传感器选择是根据花卉生长环境需求选择适当的传感器,进行花卉环境参数监测。常见的传感器包括温湿度传感器、土壤湿度传感器、光照传感器和液位传感器。温湿度传感器用于监测环境的温度和湿度变化;土壤湿度传感器用于监测土壤湿度的变化;光照传感器用于监测光照强度的变化;液位传感器用于监测水位的变化。数据采集电路如图2所示。
选择水泵和LED灯作为执行器,为花盆浇水并提供合适的光照条件。水泵的选择应考虑流量和压力需求,LED灯的选择应考虑光照强度和色温需求。
在控制电路设计方面,利用STM32单片机作为控制核心,通过与各个传感器和执行器的连接实现数据采集和控制操作。需设计合适的电路板和供电模块,确保系统的稳定运行。考虑电路的防护和过载保护等问题,确保系统的安全性和稳定性。
智能花盆系统的主要工作流程如图3所示。完成系统初始化配置,启动智能花盆系统,进行相关参数检测并执行相关操作。
图3 系统流程Fig.3 System flow
软件设计是智能花盆系统的关键,包括实时监测和控制、远程监测和控制及数据分析与预测等。通过STM32单片机实现对花卉环境参数的实时监测和控制,定时采集温湿度、土壤湿度、光照强度等参数,根据设定的阈值进行判断和控制操作。通过LCD显示屏或其他形式,将监测结果实时反馈给用户。
利用云平台技术,实现对智能花盆系统的远程监测和控制。用户可通过手机、电脑等设备远程查看花盆状态,获取实时数据和历史记录,并进行相应的控制操作,如远程浇水和调节灯光。通过云平台提供的API接口,实现系统与用户的交互及数据传输。其核心代码如下:
fromflaskimportFlask,request,jsonify;
app=Flask(__name__);
#模拟花盆状态
flowerpot_status={″moisture″:60,″light_intensity″:80};
#获取花盆状态
@app.route(′/flowerpot/status′,methods=[′GET′])
defget_flowerpot_status():
returnjsonify(flowerpot_status)
#控制浇水
@app.route(′/flowerpot/watering′,methods=[′POST′])
defcontrol_watering():
returnjsonify({"message″:″Wateringtheflowerpot″})
#控制灯光
@app.route(′/flowerpot/light′,methods=[′POST′])
defcontrol_light():
returnjsonify({″message″:″Adjustingthelightoftheflowerpot″})
利用机器学习算法对花盆的生长情况进行评估和预测,并向用户提供建议。通过对历史数据的分析和模式识别,预测花盆的生长趋势,提供适当的养护建议。使用Python等编程语言实现数据分析和预测算法,与系统进行集成。其核心代码如下:
fromsklearn.linear_modelimportLinearRegression
importpandasaspd
#加载历史记录
data=pd.read_csv(′flowerpot_data.csv′)
#区分数据标签和数据特征
X=data.drop(′growth′,axis=1)
y=data[′growth′]
#创建回归模型并进行拟合
model=LinearRegression()
model.fit(X,y)
#模型分析预测
prediction=model.predict([[50,70]])
#输出结果
print(prediction)
云平台是整个系统的重要组成部分,通过云平台可实现对花盆生长环境的远程监测和控制,进行数据存储、分析和展示等操作[4]。采用阿里云物联网平台作为底层技术支持,通过该平台的设备接入、消息路由、数据存储等功能,实现花盆系统与云端数据的无缝连接及快速传输[5]。阿里云物联网平台提供了完整的API接口,方便用户进行开发和集成。支持数据可视化,用户可通过图表和报表等方式查看花盆生长数据,直观了解花盆的生长情况及趋势。
为进一步验证基于STM32和云平台的智能花盆系统的可靠性及模块性能,进行了系统测试。硬件测试过程中使用花盆系统提供的传感器来实时监测温度、湿度、光照强度等数据,通过系统界面进行查看。测试结果显示,系统硬件能够正常工作,传感器数据的测量精度符合要求。其温度变化曲线如图4所示。
图4 温度测试曲线Fig.4 Temperature test curve
软件测试的重点是测试操作系统的灵敏度和灯光效果,测试结果如下:连接电源和无线网络,能够在网页端和手机端查看智能花盆的实时数据信息。切换到感应模式下,系统能够检测温度和水量情况,提醒用户进行相应的处理操作。检测到灯光强度低于阈值时,控制LED灯进行补光操作。切换到管理员模式时,可以进行各个参数阈值的设置,根据不同品种绿植的需要进行手动和自动模式控制。在手机端可以查看三维信息,生成预测数据信息,根据预测结果提出相关建议,供用户参考。
采用嵌入式技术(STM32芯片)和云计算平台设计了智能花盆系统,实现了对花盆生长环境的实时监测、数据采集、远程控制及数据分析等功能。结合传感器技术、嵌入式系统设计和云服务平台的优势,实时监测花盆周围的环境参数,如温度、湿度、光照强度等,并将数据上传至云端进行存储分析。通过机器学习算法的应用,系统能够预测植物的生长趋势并提供相应的养护建议,帮助用户更好地管理和照料绿植。未来可进一步优化系统性能,满足不同用户群体的需求,以推动智能植物养护技术的发展。