如今的AI智慧农场系统总体已经初步完成,但是很多细节还仍需我们继续修改和完善。AI智慧农场系统现今所有功能只有七个模块,还需要根据农场的具体需求去增加和修缮,并在原有基础上更改地更加贴合使用者的习惯并且便利使用者[1]。AI智慧农场系统现在所使用的部分技术和设备都较为基础,在今后资金充足的条件下必将提高技术的严谨性以及设备的精密度[2]。本系统暂时只注重于技术以及功能部分,对其后续的风险维护和商业价值方面还略有欠缺,需要在老师的进一步指导下更加精益求精的去做好这部分的整理。在科技日新月异的背景下,我们更需要跟进时代的洪流,让系统具有独特的优势,保障好系统不被淘汰,才能在未来越来越好!
2.技术路线
AI智慧农场系统主要由传感器、摄像头、阿里云平台组成的环境监测模块与信息管理系统平台几部分组成[3]。环境监测模块的实现方式,主要是采用ESP8266开发版通过MQTT通信协议将各类传感器数据传输给阿里云平台并通过信息管理系统监测与展示数据[4]。本系统的信息管理系统采用前后端分离的开发模式,后端基于Java语言开发,采用目前比较流行的SpringBoot+MyBatis-plus框架,前端则使用Vue框架以及Element-UI组件[5]。框架技术设计,对农业生产过程中所涉及的事务进行信息化管理,主要包括环境数据监控大屏、农事管理、设备管理、农情通知、农资管理等模块。在AI智慧农业系统的业务设计时,我们需要注重成本,设备的防水,防漏电的问题[6]。而WiFi通信则基本满足农业生产的需求,所以本系统数据传输采用的是WiFi通信。由于本系统要实现无线远程环境监测,需要将传感器数据传输至阿里云平台,故使用MQTT协议实现数据通信,并使用同样的方式将数据从阿里云平台传输至本系统[7]。
3.系统设计
3.1.系统功能分析
Figure1.Overallsystemarchitecture
3.2.数据库设计
根据实体设计,可以得到各个实体的E-R图。
3.2.1.管理员实体
Figure2.SystemE-Rdiagram
3.2.2.农作物实体
Figure3.CropentityE-Rdiagram
3.2.3.种植地实体
Figure4.PlantinglandentityE-Rdiagram
3.2.4.工作人员实体
3.2.5.设备实体
Figure5.StaffentityE-Rdiagram
Figure6.EquipmententityE-Rdiagram
4.系统功能实现
4.2.系统首页设计与实现
系统首页是一块可视化监控大屏,可视化监控了室外环境、土壤环境、天气预报、种植详情、设备运行情况、环境数据变化等多个指标。能够一目了然地掌握当前种植地的环境变化和农作物的生长情况。
Figure7.Systemloginpage
Figure8.Systemhomepage
为了实现环境数据的远程监测,本系统需要先将传感器数据上传到云平台,系统再与云平台通信。为了使设备、云平台、设备进行通信,首先需要在阿里云物联网平台创建实例,并填写设备信息以创建设备,获取三元组信息。
之后进入设备烧录阶段,将ESP8266开发版与DHT11温湿度传感器连接,并使用Arduino客户端编写程序,将带有三元组、WIFI账号密码等信息的程序烧录至开发版之后,设备激活,云平台设备显示在线。
Figure9.Deviceinformationaftercreation
Figure10.Deviceactivationonline
至此,阿里云的物联网平台已经和传感器实现了通讯,并且可以对其进行实时采集。
Figure11.Objectmodeldata
设备与云平台完成通信后,需要使用MQTT通信协议实现云平台与本系统的双向实时通信,将物模型数据实时传输到本系统。
Figure12.Thesystemsubscribestoinformationfromthecloudplatform
接收到消息后,我们可以根据需要进行处理,例如对接收到的数据进行进一步的分析和处理,并采取相应的控制动作来调整农场环境等。重要代码以MQTT通信为例,阿里云物联网平台与本系统实时通信的代码如下:
#导入必要的库
importpaho.mqtt.clientasmqtt
importnumpyasnp
#定义MQTT客户端回调函数
defon_connect(client,userdata,flags,rc):
print(Connectedwithresultcode+str(rc))
client.subscribe(topic)#订阅指定的主题
defon_message(client,userdata,msg):
data=np.array(msg.payload.decode(utf-8).split(','))#将接收到的消息转换为NumPy数组
#处理接收到的数据,例如进行数据分析和控制动作
#...
print(data)
#创建MQTT客户端实例
client=mqtt.Client()
#设置客户端回调函数
client.on_connect=on_connect
client.on_message=on_message
#连接到阿里云物联网平台
client.username_pw_set(username,password)#设置用户名和密码,如果需要的话
#发布消息到主题,例如上报农场环境数据
client.publish(topic,1.23,4.56,7.89)#发布消息到指定的主题,例如上报农场环境数据
#循环接收消息
whileTrue:
client.loop()#处理网络流量和接收消息
Figure13.Cropgrowthdetailedpage
Figure14.Cropmanagementdetailedpage
4.3.系统模块设计与实现
农事管理模块包括了农作物管理、种植地管理、生产活动记录三个部分。
5.结论
基金项目
本文系2023年江西省大学生创新创业训练计划项目AI智慧农场(项目编号:S202310895031)。