针对目前我国已经存在的温室控制系统成本高、网络化不足以及测量环境因子单一等问题,文中开发了一套基于STM32温室远程控制系统。该系统通过利用STM32单片机作为温室内的控制器以及MFC编写的控制软件实现对温室内空气温度、空气湿度、光照强度和CO2浓度多个环境因子的远程监测和控制。
系统的硬件电路设计包括STM32控制器、数据采集模块、设备控制模块、网络接口模块、实时显示模块以及数据存储模块等。其中数据采集模块采用DHT11,MG811以及BH1750传感器进行环境因子的测量,设备控制模块通过控制继电器通断来控制温室内的加热系统和光照系统等执行设备,STM32通过ENC28J60接入网络实现远程控制,显示模块实现各个环境因子的实时显示,数据存储模块采用外接SD卡的方式进行数据的存储。在STM32的程序设计中采用了库函数的开发方式设计了测量程序、显示程序以及控制程序。通过在STM32中移植C/OS-11操作系统实现多任务的运行,移植LwIP协议使STM32可以接入网络,实现控制的网络化。在VC 6.0平台下利用MFC设计了控制软件,控制软件和STM32之间通过TCP/IP协议进行数据和命令的传输。控制软件的主要功能是对温室内的多个环境因子进行远程监测和对执行设备进行远程控制。在控制软件设计中,采用面向对象的方法将相关的操作函数封装到类中,便于对系统进行升级,采用多线程的方法解决了多个任务同时运行的状况。
将控制过程中产生的数据保存到数据库中,可以对系统运行产生的数据进行分析和利用。为了对系统进行测试,在文中搭建了一个小型的温室并将控制器安装在温室内。经过测试,文中设计的温室控制系统可以实现对温室内空气温度、空气湿度、光照强度和CO2浓度的远程实时监测,数据每秒更新一次。当上述的环境因子超过控制软件上设置的上下限范围时,系统会报警,此时可以在控制软件上控制执行设备的通断来调节该因子使其到达设置的范围内。
1