1. 问题提出
如今的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. 系统功能分析
AI智慧农场系统在从阿里云平台接收数据,并对数据进行可视化监测与记录。同时使用摄像头实时将种植地的情况远程监控,便于生产人员远程了解农作物生长情况。包括对农作物生长环境管理,通过传感器获取空气温湿度,土壤温湿度,土壤PH值等数据后将数据传输到阿里云平台。也可以对传感器,监控设备等进行管理,包括控制上线与下线,查询设备的状态,设备监测日志,配置新设备等。具体的系统整体架构如图1所示。
3.2. 数据库设计
根据实体设计,可以得到各个实体的E-R图。
3.2.1. 管理员实体
显示管理员的属性,E-R图如图2所示。
3.2.2. 农作物实体
显示农作物的属性,E-R图如图3所示。
3.2.3. 种植地实体
显示种植地的属性,E-R图如图4所示。

Figure 4. Planting land entity E-R diagram
图4. 种植地实体E-R图
3.2.4. 工作人员实体
显示工作人员的属性,E-R图如图5所示。
3.2.5. 设备实体
显示设备的属性,E-R图如图6所示。

Figure 6. Equipment entity E-R diagram
图6. 设备实体E-R图
4. 系统功能实现
4.1. 系统登录页面设计与实现
在系统的登录页面,输入用户表以后的用户名和密码,登录界面加入了图形验证码登录,以此来防止非法网络攻击带来的服务器资源浪费。每次图形验证码登录时会携带唯一的key,作为登录凭证,点击登录后就可以将用户名、密码、图形验证码、验证码唯一标识key通过表单提交的方式发送给后台,验证成功后才能进入系统,否则提示登录失败。
系统登录页面如图7所示。
4.2. 系统首页设计与实现
系统首页是一块可视化监控大屏,可视化监控了室外环境、土壤环境、天气预报、种植详情、设备运行情况、环境数据变化等多个指标。能够一目了然地掌握当前种植地的环境变化和农作物的生长情况。
系统首页如图8所示。
为了实现环境数据的远程监测,本系统需要先将传感器数据上传到云平台,系统再与云平台通信。为了使设备、云平台、设备进行通信,首先需要在阿里云物联网平台创建实例,并填写设备信息以创建设备,获取三元组信息。
创建成功后设备信息如图9所示。
之后进入设备烧录阶段,将ESP8266开发版与DHT11温湿度传感器连接,并使用Arduino客户端编写程序,将带有三元组、WIFI账号密码等信息的程序烧录至开发版之后,设备激活,云平台设备显示在线。
设备激活在线如图10所示。

Figure 9. Device information after creation
图9. 创建后设备信息
至此,阿里云的物联网平台已经和传感器实现了通讯,并且可以对其进行实时采集。
物模型数据如图11所示。
设备与云平台完成通信后,需要使用MQTT通信协议实现云平台与本系统的双向实时通信,将物模型数据实时传输到本系统。
系统向云平台订阅消息如图12所示。

Figure 12. The system subscribes to information from the cloud platform
图12. 系统向云平台订阅信息
接收到消息后,我们可以根据需要进行处理,例如对接收到的数据进行进一步的分析和处理,并采取相应的控制动作来调整农场环境等。重要代码以MQTT通信为例,阿里云物联网平台与本系统实时通信的代码如下:
# 导入必要的库
import paho.mqtt.client as mqtt
import numpy as np
# 定义MQTT客户端回调函数
def on_connect(client, userdata, flags, rc):
print(Connected with result code +str(rc))
client.subscribe(topic) # 订阅指定的主题
def on_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.connect(iot.example.com, 1883, 60) # 连接到指定的MQTT服务器和端口号,并设置超时时间
# 发布消息到主题,例如上报农场环境数据
client.publish(topic, 1.23,4.56,7.89) # 发布消息到指定的主题,例如上报农场环境数据
# 循环接收消息
while True:
client.loop() # 处理网络流量和接收消息
4.3. 系统模块设计与实现
农作物生长详情页展示了农作物生长与成熟采摘的详细情况,包括生长时间,近期图片,预计成熟日期等。
农作物生长详情页如图13所示。
农事管理模块包括了农作物管理、种植地管理、生产活动记录三个部分。
农作物管理展示各个农作物的基本信息,如图14所示
5. 结论
AI智慧农场系统的设计主要包括信息管理系统、阿里云物联网平台、与ESP8266开发板连接的各类传感器。传感器采集数据后,通过MQTT协议与阿里云IOT平台通信,此时数据会实时上传到阿里云IOT平台,信息管理系统再通过MQTT协议订阅消息,接收阿里云IOT平台发布的物模型数据,在AI智慧农场系统进行监控与展示。这样做的好处是克服了WIFI通信距离短的不足,使得信息管理系统不管在何地登录都能够实时获取传感器数据。AI智慧农场系统在系统测试时选择了黑白盒测试。先使用白盒测试,根据系统过程逻辑,逐个进行测试,以此来达到系统是否符合用户的预期的目的。然后使用黑盒测试对系统进行随机输入的检验,看是否能够达到需求规格说明书的要求。每一次的测试过程都需要编写和保存好每一次的测试用例和测试数据,以便后期维护人员对系统的维护。传统的生产方式,对环境参数的获取和控制都无法做到及时性,且无法对农作物生长状况、生长阶段等作出系统的记录与判断。目前网络上虽然存在包含显示作物生长状况和生长环境数据等功能的软件,但是大部分软件的针对性都很强,例如只提供某些农作物生长状况或生长阶段等。结合现阶段的状况和功能需求,设计发明AI智慧农场,将有助于实现农业现代化管理,推动我国乡村振兴。
基金项目
本文系2023年江西省大学生创新创业训练计划项目AI智慧农场(项目编号:S202310895031)。