扫描二维码
随时随地手机看文章
引 言
随着工业 4.0 时代的到来,温室大棚逐渐向全自动化、智能化发展。对于温室大棚来说,最重要的管理因素为温湿度、光照强度、CO2 浓度的控制。传统的控制方法是在温室大棚内放置测量仪器,根据读取的数值人工调节大棚内的各项参数。随着温室大棚规模的提高,人工控制很难满足需求[1]。因此我们结合温室栽培的特点对大棚内各项参数进行动态采集、自动 PID 控制、远程监控以及手机 APP 远程控制,实现全天候、集中式、高效的温室大棚监控及管理。
1 温室大棚的系统结构
“基于 PID 算法的智能温室大棚”是集数据采集、数据处理、反馈控制、远程访问等功能于一体的软件和硬件相结合的系统。系统从功能上主要分为三大子系统 :环境参数的自动控制系统、基于云平台的远程监测系统以及手机 APP 远程控制系统。系统整体设计如图 1 所示。
2 环境参数的自动控制系统
2.1 自动调光
温室大棚采用增量式 PID 控制算法,利用光照传感器采集大棚内的光照强度构成负反馈,控制单片机产生 PWM 波信号,调节植物灯的亮度,使棚内的光照强度稳定在给定值 [2]。自动调光控制原理如图 2 所示。
传统的 PID 算法采用按照偏差的比例 P、积分 I 和微分D 进行控制的 PID 调节器。算法中的比例系数 kP、积分系数kI 和微分系数 kD 的整定是影响控制效果的关键 [3]。图 3 为传统 PID 算法原理。
图 3 中,r(t) 为给定值,y(t) 为输出值。PID 算法在计算时要对偏差 e(k) 进行累加,运算量大,且长期运行容易积分饱和,因此本系统采用增量式 PID 算法。增量式 PID 是通过对控制量的增量(本次控制量和上次控制量的差值)进行PID 控制的一种控制算法。相对于普通 PID 控制算法,增量式 PID 的算式中无需累加,控制器增量 ∆u(k) 的确定仅仅和最近的三次采样值有关,容易通过加权处理获得比较好的控制性能。增量式 PID 算法公式 [4] :
式中:TI 为调节器的积分时间;TD 为调节器的微分时间;T为采样周期。根据公式(2),画出增量式 PID 控制算法程序流程,如图 4 所示。
2.2 精准滴灌
传统的灌溉属于开环方式,很难控制灌溉的水量,造成水资源的严重浪费。而采用精准滴灌的方式给植物浇水能有效提高水资源的利用率。为达到精准滴灌的目的,建立了滴管控制系统,采用分阶段滴管控制算法,利用土壤湿度传感器采集土壤的湿度值构成控制的负反馈,产生 PWM 波信号控制水泵的开启程度。滴管控制原理如图 5 所示。
由于温室大棚采用的是精准滴管,相对于灌溉,其水流速很慢,故假设水阀张开角度为特定的 θ 角时,其滴管水流速恒定为 v1。因此每一个 θ 角都对应一个滴管水流速 v1,即v1=f (θ),其中 f 为 θ 到 v1 的映射,该映射关系与水阀的种类有关,不同的水阀可以通过实验测得。在本系统中,我们所用的水阀可以精准控制其张开角度 θ,且 θ 和所给 PWM 信号的占空比 α 成线性关系,即 θ=kα+b,其中 k 为线性比例系数,b 为截距,综上有 :
在实际情况中,水的渗透是一个非常复杂的偏微分模型 [5],但是在本系统中,由于水的渗透速度非常小,其微小的变化对系统的控制影响比较小,因此在连续滴管中可以将水的渗透模型简化为一个简单的恒速渗透模型。记水渗透速度为 v2,植物生长箱的土壤面积为 m×n,滴管时间为 t。当 v2t ≥ min{m, n},可以认为水已经第一次渗透到生长箱的所有土壤。
在很多控制系统中都采用 PID 控制算法进行精准控制,但是一个良好的 PID 控制系统必定需要相应的超调量。在温室大棚的湿度控制中,具有超调量的 PID 控制算法不太适用 [6]。因为湿度一旦有了超调量就无法通过其他路径使湿度值下降。因此温室大棚采用“分阶段滴管控制”,即 当 v2t ≤ min{m, n} 时,采用比例负反馈控制滴管速度 ;当 v2t>min{m, n} 时,采用恒速滴管。通过土壤湿度传感器时时监测当前的土壤湿度。记当前的土壤湿度值为 H1,系统设置的土壤湿度阈值为 H2,两者偏差 ∆H,即
3 基于云平台的远程监测系统的设计
农业环境监测具有分布离散且相互独立的特点,每个温室大棚内部的农作物生长环境各自独立,数以百计的温室大棚的环境数据需进行集中管理 [7]。温室大棚的上位机基于OneNET 云平台开发。OneNET 是一个开放的物联网服务平台,用户可以免费注册账号并使用此平台。OneNET 管理平台上的资源包括用户、产品、设备、APIKey、触发器、应用等。
3.1 OneNET 云平台接入
OneNET 作为一个免费开放的云平台,可被广泛应用于不同领域 [8]。在此,将其作为温室大棚监测平台的上位机, 下位机与其接入的步骤如下。
(1)创建产品。首先需要在 OneNET云平台创建一个公开协议产品,并且设备接入协议选择 HTTP,创建产品后, 记录该产品的产品 ID 和 APIKey。
(2)创建设备。在创建好的产品下点击添加设备,输入设备名称和鉴权信息(即设备编号),记录该设备 ID。
(3)建立 HTTP 连接。HTTP 服务器地址域名为 jjfarfapi.heclouds.com(IP地址 :183.230.40.33),端口号为 80。
(4)数据点上传。使用 HTTP封装格式和 SDK中提供的接口函数将数据上传到平台。
(5)查看数据流。在 OneNET云平台上找到设备管理 - 数据展示,进入数据展示页面,点击下拉菜单,通过坐标图可以查看相应数据流下近期上传的数据值。
(6)应用生成。数据上传成功后,可基于这些数据所属的数据流进行应用以及触发器的创建。
3.2 云平台上位机展示
本植物生长箱系统的主要功能在于监测生长箱内的温度、湿度、CO2 浓度以及光照强度等环境参数。OneNET 云端上位机显示如图 6 所示。
图 6 OneNET 云端上位机显示
由图 6 可知,上位机由两部分组成,上方 4 个图像显示生长箱的温度、湿度、CO2 浓度以及光照强度。下方一排表盘是这 4 个环境参数的设置阈值。通过云平台上位机,使用者可以随时远程监测生长箱内的生长情况。
4 手机 APP 远程控制系统
手机 APP 远程控制系统基于 TCP/IP 通信 [9] 与 Android 平台 [10] 开发,使用者仅通过手机 APP 就能够对温室大棚的给定参数进行无线输入,极大地简化了用户操作。温室大棚采用无线路由器作为中间连接装置,手机客户端采用Android Java 开发,结合 Socket 完成网络通信和数据交互。最终编译后打包生成 APK 安装文件在 Android 手机上安装, 对比传统的按键输入,其具有不受环境、时间、地域、距离等因素影响的特点,同时还可通过用户手机进行远程控制, 操作方便灵活。用户端设计算法流程如图 7 所示。
当用户打开客户端 APP 时,程序先进行界面初始化,然后用户输入服务器的 IP 地址及端口号。点击“连接”按钮, 若“设置”按钮激活,且系统提示“连接成功”,说明客户端与服务器连接成功。接着用户在对应地方输入给定参数, 最后点击“设置”按钮。若系统提示“设置成功”,则说明用户设置的给定参数已成功输入下位机。
本系统主要包含 2 个 Activity 和 3 个 XML 脚本文件。我们可以根据不同的底层协议来实现,选用基于 TCP/IP 协议的 Socket 通信方式。同时为了提高系统的通信效率,将Socket 通信的接收部分放在独立线程 Thread 中执行,以保证系统的快速性。
为了避免通信中出现偶然因素导致接收的数据不准确,采用“自定义通信协议”,发送数据格式 :# data1 % data2 %data3 % data4 % data5。其中“#”表示起始信号,“%”表示两个数据的间隔,data1,data2,data3,data4 分别表示温度、湿度、CO2 浓度和光照强度,data5 表示前 4 个数据的和,如下 :
当下位机接收到的数据满足上述等式时,则认为数据接收无误,否则视为无效接收,舍去接收到的数据。用户端界面如图 8 所示。
图 8 用户端界面
5 结 语
节能型智能温室大棚控制系统在传统的温室大棚控制策略上提出了通过增量式 PID算法对温室大棚环境进行自动控制 ;结合 OneNET云平台进行远程监管 ;采用手机 APP对温室大棚进行远程控制,让农业大棚的控制更加便捷,同时也提高了系统的稳定性和能源利用率。