LED家庭植物工厂控制系统设计
2019-05-21韩丽丽牛萍娟田海涛梁立君罗德智
韩丽丽,程 峥,牛萍娟,田海涛,梁立君,刘 雷,罗德智
(1.天津工业大学电气工程与自动化学院,天津 300387;2.天津工业大学电子与信息工程学院,天津 300387;3.天津工业大学大功率半导体照明应用系统教育部工程中心,天津 300387)
引言
图1 系统功能设计Fig.1 Design of system function
近年来,随着植物工厂LED照明研究的深入,新成果不断涌现[1-3]。LED光源具有体积小、寿命长、光色可调等优点,被认为是全人工光型植物工厂的理想光源[4-6]。随着大型植物工厂研究不断深入,家庭植物工厂受到人们越来越多的关注。2010年中国农业科学院推出了一款“低碳·智能·家庭植物工厂”,它包含三层立体栽培空间,所用光源为白光LED[7]。2012年北京某公司研制了一种适合于楼宇、家庭使用的JPWZ-1家庭植物工厂,实现了栽培区的温湿度环境的精准控制[8]。2015年中国农业科学院研制出了两种型号的家庭植物工厂[9]。
目前我国研发的家庭植物工厂控制系统大多选用PLC作为核心控制器,成本较高;在营养液循环过程中,会出现有害微生物和植物自毒物质,依靠现有技术往往净化不彻底;且应用物联网技术衍生出的设备云平台技术的实例很少。以上这些问题有待改进。我们通过对现有的家庭植物工厂控制系统进行分析,结合嵌入式技术、LED光源技术、无线通信技术、设备云平台技术、智能控制技术,设计并开发了一种LED家庭植物工厂控制系统。
1 系统总体设计
1)控制系统功能设计。如图1所示,LED家庭植物工厂控制系统由核心处理器、传感器、LCD人机交互模块、数据存储模块、电源、WIFI通信模块、输出控制模块以及Android APP组成。传感器模块实现了对系统内光照强度、温湿度、CO2浓度、营养液温度、EC、pH和液位等环境和营养液因子数据信息的准确采集;通过在4.3寸LCD触摸屏上搭建人机交互模块,可以实时显示环境和营养液因子数据信息,并对系统内的设备进行操控;数据存储模块由SPI FLASH、SD卡组成,SPI FLASH用来存放字库信息,解决核心处理器的RAM不足的问题,SD卡用来更新字库信息,采用FATFS文件系统管理;核心处理器是控制系统的核心,它根据传感器模块采集的数据,进行分析决策,等待LCD触摸屏或Android APP的指令,发送相应的控制命令,从而调节输出控制模块,使环境和营养液因子始终保持在适合植物生长发育的合理范围内;输出控制模块由加热器、加湿器、制冷器、通风扇、CO2小钢瓶、LED补光模组、深紫外LED净水模组、水泵、蠕动泵组成;通过WIFI模块和路由器接入机智云云平台,并基于机智云提供的SDK包以及Android开源框架开发了一款Android APP,实现了对家庭植物工厂控制系统的远程调控。
2)控制系统工作方式。核心处理器每隔10 s接收传感器采集的数据,采用狄克松准则和卡尔曼滤波相结合的传感器数据融合方案,将环境和营养液因子的数据信息显示在LCD触摸屏和Android APP上,再根据设定的环境因子的阈值进行判定,对系统内的输出控制设备进行调控,其中,LED补光模组和深紫外LED模组通过PWM占空比进行调节;加热器、加湿器以及CO2小钢瓶等电气设备的开启与关闭通过控制继电器的打开和闭合进行调节;水泵和蠕动泵通过电机驱动电路输出相应的脉冲进行控制。
家庭植物工厂系统采用LED模组进行补光,利用水泵实现系统内营养液的循环,应用深紫外LED模组对循环的营养液进行净化,调节蠕动泵完成滴加酸碱液的操作,并采用CO2小钢瓶和通风扇协同进行CO2浓度的调控,其中深紫外LED模组、水泵作为环境调控设备均使用定时控制方式,可以实现PWM调速或调光等功能。光照强度、温度、湿度、营养液温度、pH则根据设定的阈值进行自动控制。温度低于设定值时可以触发加热器启动进行加热,当温度达到设定阈值时,加热器关闭。其他环境和营养液因子的调控方式与温度类似,满足植物正常生长发育对环境和营养液因子的需求。
3)LED家庭植物工厂结构设计。LED家庭植物工厂在结构上与大型植物工厂相比有很大差别,需要根据要求做出合适的结构设计[10]。其结构设计方案如图2所示。LED家庭植物工厂上面三层为植物栽培区,在每层LED模组和栽培区之间添加了隔热材料,以防止LED散热对栽培区的温湿度造成影响;家庭植物工厂最下面一层是设备控制区,主要用于放置加热器、制冷器、CO2小钢瓶、营养液槽、水泵、蠕动泵以及深紫外LED模组等环境和营养液因子调控设备;营养液储存在底层的营养液槽内,通过营养液循环系统对各层进行循环供给;在家庭植物工厂顶部安放了一块4.3寸的LCD触摸屏,可以实时显示家庭植物工厂内部的环境信息,选择运行模式并对系统内的设备进行调控。
在植物栽培区每层各安放了一个光照强度传感器、温湿度传感器、CO2传感器、加热器、加湿器,并且在栽培区背面安装了两个通风扇,用于家庭植物工厂内外环境中CO2气体的循环交换。在营养液槽内安放了一个营养液温度传感器、pH传感器、EC传感器、液位传感器、加热器、制冷器、蠕动泵,蠕动泵用于滴加酸碱液进行pH调节,并且可以通过改变水泵的速度从而控制营养液的流速。此外,在营养液循环系统中,安放了一块深紫外LED模组对循环的营养液进行净化,解决营养液在循环过程中产生有害微生物和植物自毒物质引发的病虫害问题。
图2 LED家庭植物工厂结构设计Fig.2 Design of LED family plant factory structure
2 系统的硬件实现
LED家庭植物工厂控制系统硬件由核心处理器、传感器、LCD人机交互模块、数据存储模块、电源、WIFI通信模块、输出控制模块组成。选用220 V AC转12 V DC的外接电源作为家庭植物工厂控制系统的总电源,12 V DC电源可以作为驱动蠕动泵的步进电机和水泵的直流电机的供电电源,通过设计降压电路产生5 V、3.3 V直流电源向STM32芯片及各个外接模块供电。
1)核心处理器。考虑到本系统外接传感器和输出控制模块比较多,并且通过移植EMWIN搭建LCD触摸屏人机交互模块,需要用到较多的MCU资源,选用STM32F103ZET6作为核心处理器。它具有112个通用I/O口、64 kB SRAM、512 kB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器、3个 SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口、1个FSMC接口[11]。在此芯片基础上搭建STM32最小系统电路,同时搭建外围电路实现环境和营养液因子采集、LCD人机交互、数据存储、WIFI通信、LED补光模组和深紫外LED净水模组的PWM调光、输出设备控制等各项功能。
2)数据存储模块。由于在TFTLCD上需要显示汉字,本文选用一个显示速度快且不会占用大量RAM的汉字显示方法,即把字库存放在SPI FLASH中。选用华邦的大容量SPI FLASH产品W25Q128,容量为128 Mb,并支持标准SPI驱动模式[12]。STM32与SPI FLASH的连接电路如图3(a)所示。其中CS为W25Q128的片选信号,由STM32控制;CLK为时钟信号,由STM32产生;SO为W25Q128输出数据到STM32中;SI为STM32输出数据到W25Q128中。STM32和W25Q128都有一个串行移位寄存器,STM32通过向SPI串行寄存器写入一个字节来启动传输。寄存器通过MOSI信号线将字节传送到W25Q128,并通过MISO信号线将其自身移位寄存器的内容返回给STM32,从而交换两个移位寄存器的内容。
在某些情况下,可能会根据自己的需求制作其他字体的汉字字库,一旦制作完成就需要更新SPI FLASH字库,本文选用一个1 GB的MicroSD卡来存储制作好的字库文件,然后将其更新到SPI FLASH中。选用STM32自带的SDIO接口驱动SD卡模块,STM32与SD卡模块的连接电路如图3(b)所示。在SDIO模式下,STM32使用四条数据线与SD卡通信,每条数据线连接一个47 kΩ上拉电阻。STM32主机通过CLK信号线控制时钟输出,通过CMD信号线向SD卡模块发送控制命令[13]。
图3 数据存储模块电路Fig.3 Circuit of data storage module
3)LED模组及LED驱动电路。根据现有文献和相关研究[14-17],设计LED补光模组和深紫外LED净水模组,其外形如图4所示。LED补光模组采用15颗660 nm的红光LED和3颗450 nm的蓝光LED串联而成,深紫外LED净水模组采用2颗日本Bioraytron公司最新研发的275 nm的深紫外LED串联而成。
图4 LED补光模组和深紫外LED净水模组Fig.4 Module of LED fill light and deep ultraviolet LED water purification
本文采用PAM2861降压转换器设计了LED恒流驱动电路,用于驱动LED补光模组和深紫外LED净水模组并实现PWM调光。PAM2861是一款适用于单个或多个大功率LED串联使用的中低电压范围的LED恒流降压驱动芯片。PAM2861可以接受6~40 V的宽范围输入电压,最大输出电流可以达到1.5 A,功率最高可达24 W,恒流输出精度为2%,效率高达97%以上。输出电流可通过对VSET引脚进行PWM调节,PWM频率为100~1 000 Hz,PWM最高输入电压是5 V,占空比从0~100%变化,可调整输出电流的范围从16%~100%,当此引脚输入电压小于0.3 V时,芯片会进入待机模式。LED恒流驱动电路如图5所示。
图5 LED恒流驱动电路Fig.5 Circuit of LED constant current driving
LED模组的电流大小由连接在VIN和CS两端的电阻R决定,将STM32F1ZET6芯片产生的PWM信号送至PAM2861芯片的VSET引脚上实现调光功能,LED横流驱动电路的输出电流会发生变化。LED的亮度是由LED的电流决定,取决于PWM信号的占空比。一般情况下应设定PWM调光频率在120 Hz以上,以免人眼能够看到LED的闪烁。PAM2861调光频率最高可达到20 kHz。
在输入电源附近必须接一个旁路电容,旁路电容越大,效率损失会变大。该旁路电容必须要承受较大的电流,并能减小对输入电源的冲击。当为直流电源输入时,旁路电容的值最小为4.7 μF,旁路电容应当与芯片的输入引脚尽量靠近[18]。
对于二极管的选择,为了保证最大的效率,考虑到肖基特二极管正向压降低且漏电低,选择肖特基二极管SS36。对于电感的选择,由于PAM2861恒流驱动电路的输出电流在700 mA左右,因此使用的电感大小为100 μH左右,一般电感的饱和电流与输出电流相比高30%~50%。
图6 软件系统运行流程Fig.6 Process of software system operation
3 系统的软件实现
1)软件系统主程序。本文搭建的家庭植物工厂控制系统采用的核心处理器为STM32F103ZET6,它的开发平台为由德国著名的嵌入式系统开发工具和服务供应商KEIL公司设计研发的MDK5,使用uVision5 IDE集成开发环境。本系统软件运行流程如图6所示。首先对系统的时钟、定时器、I/O、SPI、IIC、ADC、SDIO、FSMC、USART等接口初始化,之后进行外围设备的初始化,然后建立UCOSIII嵌入式实时操作系统,新建起始任务,并在起始任务里创建了包括传感器采集、LCD人机交互、Gizwits协议通信、字库更新、输出控制决策等多个等待任务。这些等待任务在UCOSIII里作为并行线程执行。它们通过信号量和邮箱相互通信。整个过程构成了家庭植物工厂系统的软件设计运行流程。
2)LCD人机交互模块软件设计。EMWIN是由德国的SEGGER公司开发的UI图形界面库,采用C语言进行设计。本文通过在STM32中移植EMWIN制作了家庭植物工厂的LCD人机交互界面,包含EMWIN在STM32上的移植和LCD人机交互的软件设计。EMWIN在STM32上的移植主要包含添加GUI_X_UCOSIII.c文件、修改EMWIN库文件以及修改GUIConf.h文件三部分。
图7为家庭植物工厂系统的LCD人机交互界面。图7(a)是本系统的主界面,由模式选择、PWM控制、环境监测、设备控制四个图标组成。图7(b)是模式选择界面,采用机智云Gizwits协议中自带的NTP网络时间请求函数giwitsGetNTP()来判断WIFI模块是否成功接入机智云服务器,成功连接服务器后,每秒调用 gizwitsGetNTP()函数来请求NTP网络时间,WIFI模组收到请求后,会产生WIFI_NTP事件,事件中就会打印当前的网络时间,以此来判断是否连接机智云服务器,另外设置一个模式选择按钮,如果设置为自动模式,设备控制界面中的按钮就会失效。图7(c)为PWM控制界面,可以实现对LED补光灯的PWM调光和水泵直流电机的PWM调速操作。图7(d)为设备控制界面,对系统内的各类输出设备进行控制。
图7 LCD人机交互界面Fig.7 Interface of LCD human-computer
3)云平台接入与移动端开发。本文搭建的家庭植物工厂控制系统的无线通信方案是选用烧录GAgent固件的WIFI模块ESP8266通过GIZWITS协议接入机智云云端,STM32与ESP8266之间采用互相发送请求与应答指令的方法,实现两者的串口通信[19]。设备上电后,当ESP8266首次访问机智云云端时,需要通过按键选择Airlink模式或者SoftAP模式。当ESP8266处在Airlink模式下,它将连续接收特定编码的WIFI广播包,手机连接可用的WIFI后,通过APP发送编码后的WIFI网络的SSID和密码广播,ESP8266接收到之后自动尝试连接WIFI,本文采用的ESP8266已经烧录了GAgent协议,内置了此模式。当ESP8266处在SoftAP配置模式时,它将成为一个无线访问接入点,手机可直接与它进行连接,然后输入路由器的SSID和密码,ESP8266接收到信息的时候会自动尝试连接路由器。ESP8266通过Gizwits协议成功接入云端后,会进入一个无限的循环,向STM32发送读取设备状态指令,STM32每隔10分钟主动向ESP8266上报设备状态值。机智云云平台接入软件设计流程如图8所示。
图8 机智云云平台接入软件流程Fig.8 Process of gitwits platform access software
机智云云平台目前为用户提供了3套SDK包:原生SDK、Android平台原生SDK、APICloud跨平台SDK。通过使用这些SDK包,可以无需关注复杂的通信协议,只需要进行简单的代码修改和UI设计,快速地进行APP的开发。本文首先在机智云Demo APP上进行了系统的调试,之后在Eclipse开发环境中上进行了家庭植物工厂的Android APP开发。
首先在机智云开发者中心生成家庭植物工厂的SDK包,将SDK包解压后的libs目录下所有内容复制到安卓APP开源框架的libs目录。然后,开放AndroidManifest.xml中的所有SDK打印级别,以实现APP与机智云的通信,同时,注册SDK监听器用于回调SDK中定义的注册、登录、配置设备和绑定设备等回调接口。最后进行APP的UI设计,添加BindingDeviceActivity以回调绑定的设备,完成Android APP的快速开发。图9为本文制作的家庭植物工厂的Android APP。用户首先需要通过手机绑定注册,填写登录密码,实现登录操作,并且提供了找回密码功能。环境监测界面可以让用户了解当前系统内的环境和营养液因子的实时信息。电气控制界面可以实现对LED补光灯调光和水泵调速的操作,并能输出设备进行控制,这里设置了一个自动模式,在自动模式下,各类环境和营养液因子会通过阈值进行自动控制。阈值设置界面可以让用户对各类环境和营养液因子的阈值进行改变。
图9 Android APP界面Fig.9 Interface of Android APP
4 系统测试
4.1 LED驱动电路及深紫外LED模组测试
对于LED恒流驱动电路的测试,在室温25 ℃的条件下进行,测试LED恒流驱动电路输入电压和输出电流的关系。当输入端电流发生变化时,查看PAM2861输出端的电流情况,测试结果如图10(a)所示。从图中可以看出,PAM2861输出端的电流稳定在700 mA左右,满足LED补光模组和深紫外LED模组的电流要求。
LED恒流驱动电路的效率与输入电压之间的关系如图10(b)所示。从图中可以看出,当输入电压在11~30 V之间变化时,其效率大于80%。
当PWM频率设定在200 Hz时,PWM占空比与电流的关系如图10(c)所示。从图中可以看出,当PWM占空比从0上升至100%时,PAM2861输出端电流从0 mA上升到700 mA,满足LED补光模组和深紫外LED模组的调光要求。
深紫外LED模组光谱测试结果如图10(d)所示。从图中可以看出,测试光谱主要分布在275 mm附近,符合深紫外LED模组用于营养液净化的需求。
图10 LED驱动电路及深紫外LED模组测试Fig.10 Test of LED driver circuit and deep UV LED module
4.2 LCD人机交互模块及移动端测试
在LCD人机交互模块的设备控制界面中,分别测试加热器指令、加酸指令及深紫外指令,任意两种组合指令、三种组合指令各测试10次、50次、100次、200次和500次。计算指令码失效的次数,其中失效率为失效次数占测试次数的百分比。将结果记录在表1中。可以发现,各模块运行情况良好,符合控制系统的应用需求。
在小米MIX2中进行了移动端的测试,打开Android APP,输入帐号和密码,在环境监测界面中可以查看环境和营养液因子的数据信息。在电气控制界面中,分别测试加湿器指令、加碱指令和深紫外指令,任意两种组合指令、三种组合指令各测试10次、50次、100次、200次和500次。计算指令码失效的次数,其中失效率为失效次数占测试次数的百分比。将结果记录在表2中。可以发现,Android APP的失效率比LCD人机交互模块的失效率略高,可能的原因是手机信号不稳定,但总体上满足本文搭建的家庭植物工厂系统的应用需求。
表1 指令失效率测试表Table 1 Table of instruction failure rate test
4.3 系统整体测试
在Android APP阈值设置界面中,分别输入光照强度、温度、湿度、营养液温度、PH的上下限参数,从早上8点到晚上8点每隔半个小时在云平台上监测系统内环境和营养液因子数据信息的变化情况,结果如图11所示。从图中可以发现,光照强度、温度、湿度、营养液温度在设置的阈值范围内保持稳定,符合本文搭建的家庭植物工厂的预期要求。
表2 指令失效率测试表Table 2 Table of instruction failure rate test
图11 系统整体测试Fig.11 System overall test
5 结语
我们设计并开发了一种LED家庭植物工厂控制系统,以STM32F103ZET6作为核心处理器,移植了UCOSIII嵌入式实时系统,通过WIFI模块ESP8266接入机智云云平台,采用LCD触摸屏和Android APP进行人机交互。整体测试结果表明,系统各项性能均达到了设计要求,具有较高的可靠性,而且成本较低,满足实际应用的需求。