关闭视频

基于arduino +机智云物联网平台的阳台生态控制系统的设计

发表于:2020年07月15日 18:51更新于:2020年08月16日 00:51

基于arduino +机智云物联网平台的阳台生态控制系统的设计

李军辉

北京农业职业学院

 

摘要

以基质培养的绿色植物所在的半封闭阳台系统为研究对象,设计基于Arduino Uno WIFI +机智云物联网平台的远程环境控制系统。系统通过传感器实时采集温度、湿度、光照等环境参数,通过WIFI无线网络上传机智云物联网平台的服务器。用户通过手机等移动终端下载应用APP,访问机智云服务器,实时了解系统的环境参数,通过远程启动灌溉、补光、关窗等操作调节环境参数。系统采用无线连接的WIFI +云服务器的形式,不需布线和支付移动费用,整个硬件系统经济实用,可应用在城市居民的阳台植物种植上。



关键词: Arduino 机智云 阳台生态系统 远程控制


作者简介: 李军辉(1972—),男,河北石家庄人,北京农业职业学院机电工程学院讲师,硕士。研究方向:农业机械工程。

1 阳台生态控制系统研究现状分析

关于阳台农业控制系统,国内外学者开展了一些研究。浙江大学周赵凤等基于ST M8S208C8T6芯片, 设计了基于TJA1050芯片CAN总线营养液循环控制系统和无土栽培的阳台农业立体栽培机控制器[1];西北农业大学梁鑫等研究了阳台农场控制系统[2];国家农业智能装备工程技术研究中心郭文忠等基于STM32F103微控制器,设计了阳台农业立体栽培自动控制系统,实现了软硬件结合的自动补水与补光控制[3];电子科技大学高虎等设计开发了基于Android系统的手机APP为远程控制端, 以STM32单片机为控制中心,实现了远程操控阳台上晾衣、浇花等功能[4];南阳理工学院李云强以Arduino Uno作为主控芯片,通过GSM模块与手机通信,设计了基于Arduino的智能温室大棚控制系统[5]。还有大量学者对控制策略进行了研究。


2 阳台植物环境监测控制系统硬件平台设计


阳台植物生态环境是一个半封闭、空间小的生态系统,是一个时变非线性的多输入多输出系统。系统的温度、湿度、光照强度等各个参数相互作用、相互耦合,难以建立比较准确的控制模型。简单的控制策略难以实现准确的调控,生态系统的环境控制策略一般采用智能控制组合策略,可解决各个参数相互耦合造成的超调和震荡,实现对环境参数更好地控制,使系统具有稳定性和适应性[6]。常用的控制策略有基于模糊的PID模糊控制策略、遗传模糊控制策略、神经网络控制策略、专家控制策略等,根据阳台生态系统的特点,采用比较成熟的模糊PID控制策略,设计控制系统,见图1。








2.1控制系统的组成

由图1可知,阳台植物生态监测控制系统由环境感知模块、环境调整控制模块、环境参数显示模块和环境调节执行模块四部分构成。环境感知模块包括土壤湿度传感器、温度传感器、光照强度传感器等,用于实时采集生态环境系统参数数据;环境调整控制模块是整个系统的核心,采用Arduino Uno开发板,一方面实时接收感知模块的数据,上传物联网云服务器,另一方面接收远程控制指令,下发执行模块;调节执行模块由灌溉控制电机、开窗控制电机等组成;环境参数显示模块由LCD显示器、远程移动终端构成。

2.2 控制系统的运行

环境感知模块的传感器实时采集阳台植物生态环境的温度、湿度、光照参数,并上传至Arduino开发控制板,控制板将环境参数显示在本地LCD显示器上,并通过网络扩展部分上传至物联网云服务器,供移动终端远程实时访问。远程终端用户根据植物的环境参数,在APP上通过云服务器向Arduino开发板下达指令,通过灌溉、开窗等调整生态系统的环境参数。另外,控制系统也可设置环境参数阈值,自动调整生态系统的环境参数。环境执行模块接到云端指令后,启动灌溉电机进行灌溉,开启开窗电机、补光灯进行环境参数调节。

3 控制系统硬件组成

控制系统主要应用在城市家庭阳台,为了便于推广应用,硬件选用原则为价格便宜、性能可靠、精度够用。

3.1 Arduino控制板

Arduino控制板是应用广泛的开源硬件平台,其价格便宜、功能强大,对硬件配置要求低。本文选用Arduino Uno开发版作为系统控制核心,开发版通过WIFI 扩展模块连接网络。微控制器采用的是Atmel的ATmega328。在软件方面,Arduino有基于Eclipse 的IDE开发环境自身的软件平台,采用类C的语言进行编程,模块化的封装函数供程序开发者调用,预装了Bootloader程序,不需要外部烧写,很容易编写代码并通过USB端口下载到开发板上。简化嵌入式系统的设计过程,其主要性能参数见表1。






Arduino Uno 开发板通过输入输出通道接受温度、湿度、光照传感器采集的环境参数信号,通过I2C接口驱动在LCD显示屏上显示。移动终端通过机智云发来的远程指令和智能控制策略,驱动补光、灌溉电机、开窗电机等,调节生态系统环境。将传感器上传的参数通过WIFI模块,上传到机智云服务器,供移动终端远程访问。


3.2.1 土壤湿度传感器


本文选用奥松机器人的土壤湿度传感器,它通过测量土壤相对含水率来确定土壤湿度大小。工作原理是土壤的电阻值因含水量的不同而不同,通过2个探头间的阻值变化来反映土壤的湿度情况,如图3所示。当传感器探头悬空时,三极管基极处于开路状态,输出为0。土壤湿度不同使三极管的基极提供了大小变化的导通电流,发射极经过下拉电阻后转换成电压[7]。设定输出与湿度的关系,0~30为干土壤、30~70为湿土壤、70~95为水。土壤湿度传感器共引出3个引脚,分别是电源正 Vcc、电源地 GND、信号端 S,将土壤湿度传感器直接连接到 Arduino UNO 控制器的模拟引脚,例如 A1引脚,见图3。

3.2.2温度传感器采用DHT11


DHT11温湿度传感器体积小、功耗低、响应快、抗干扰能力强,输出数字信号已校准。内部的8位单片机与空气湿度元件和空气温度元件相连,输出数据可由数据采集设备直接读取。传感器的OTP内存中存有程序形式的校准系数,在检测信号的处理过程中调用校准系数进行校正[8]。采用单线制串行输出接口,4针单排引脚封装。DHT11数字温度传感器模块共引出3个引脚,分别是地线GND、电源Vcc和数据线S。实际应用时,将S端接在Arduino Uno的一个数字输入接口。传感器分辨率为0.1°C,精度为±0.5°C,检测范围为- 40°C ~80°C,工作电压为3.3~5.5 V。如图4所示。



3.2.3光照强度传感器


GY-30光照强度传感器,采用ROHM原装BH1750FVI芯片,I2C数字接口,支持速率最大为400 Kbps。传感器内置16bitAD转换器直接数字输出,省略复杂的计算,省略标定,通过计算电压获得有效数据。供电电源为3~5V,光照度范围为0~65535 lx,分辨率最小到1 lx,精度误差最大值为±20%。不区分环境光源,接近视觉灵敏度分光特性,可对广泛亮度进行1 lx高精度测定。标准NXP IIC通信协议模块内部包含通信电平转换,与5V单片机IO直接连接。在Arduino Uno硬件上,A4、A5连接GY-30的SDA、SCL引脚,见图5。

3.2.4 esp8266 WIFI接入模块

Arduino采用WIFI形式接入互联网,采用ESP8266模块集成到Arduino Uno 开发版上。它是超低功耗的UART-WIFI 模块,封装尺寸小,可将用户的物理设备连接到WIFI 上,进行互联网或局域网通信,实现联网功能。

3.2.5 物联网云服务平台机智云

物联网云服务平台接受系统传感器上传的参数,供远程客户访问;接受远程客户下达的命令,发送给Arduino控制器,通过执行模块调节系统环境参数。平台向开发者提供API接口,为开发者提供数据处理和存储服务。规模比较大的平台有 Scinan、Arrayent、COSM/Pachube 、机智云等。COSM是目前用户量最大的开放物联网平台,能通过简单的开源硬件或者单片机,实现传感器数据的上传和存储,还提供一系列的数据展现方式。

本文采用机智云平台,它向开发者提供了非常方便的智能硬件开发框架和云服务功能。在平台上可以直接定义产品和进行设备端开发调试,并提供应用开发、产品测试、云端开发、数据服务功能,覆盖智能硬件的全生命周期服务

4 软件设计及主要工作流程


在机智云创建开发者帐号,输入物理地址创建新产品,输入产品数据点,创建产品数据信息,见图6


4.1.创建虚拟设备



机智云数据点设置


4.1.1 应用开发


硬件层面上,机智云提供已经烧录GAgent(固件)的通讯模块,实现上层应用(APP应用、机智云云端)到设备的双向数据通讯,以及配置入网、发现绑定。软件层面,机智云提供开发框架代码实现了底层通信协议的解析封包,通信数据与传感器数据的转换,并供开发API接口。在本系统设计中,在代码框架事件处理逻辑中添加环境传感器、电机、水泵等控制函数。当设备侦听到云端或APP端的数据后,代码将数据转换成事件通知应用层设备。下发设备数据是APP、云端控制设备,经过云端直接下发给GAgent。上报设备数据通过系统中设备主动上报当前状态,当设备MCU收到WIFI模组控制产生的状态变化,设备MCU立刻主动上报当前状态,发送频率不受限制。

4.2 Arduino Uno 控制板开发


智能阳台生态系统以Arduino Uno为控制核心,支持C 语言与汇编语言混合编写, 底层驱动程序由汇编语言编写, 对外采用C 语言接口。程序开发环境选用软件Arduino IDE5.0,操作系统为Microsoft Windows 7(32位)。在Arduino IDE5.0配置开发环境,导入机智云物联网平台的硬件开发库文件,开发各模块库函数,编译好程序后下载到开发版进行调试。该系统程序主要由主程序、初始化子程序、侦听远程读指令函数、远程控制模块APP、读取环境光照子程序、读取土壤湿度子程序、读取空气温度子程序组成。程序流程见图7。








4.3远程控制端APP开发


机智云物联网平台的Android平台SDK封装了手机与机智云智能硬件的通讯过程,手机与云端的通讯过程。提供配置入网、发现、连接、控制、心跳、状态上报、报警通知等。APP开源框架提供用户注册登录、配置设备入网、设备发现控制、消息推送等功能,见图8。



远程app控制



5系统实验


本系统在阳台实训室测试时,阳台已经装入宽带并提供WIFI环境,控制板通过WIFI接入网络。首先,打开手机APP,读取阳台的温度、土壤湿度、光照环境参数,检测温度、湿度和光照传感器是否正常工作,也可远程通过Arduino终端节点控制照明灯、浇水和开窗继电器的开关,见图9。



Android APP工程工作

6结论

通过设计和实验室模拟测试,基于Arduino +机智云物联网平台的阳台生态控制系统可有效地实现远程控制阳台生态系统环境,具有安全可靠、扩展性强和经济的优点,可以推广到宠物饲喂等系统。该系统具有很强的可实施性,在城市具有很大的应用空间,并有较好的社会效益和经济效益。