1 总体设计
本系统整体原理框图如图1所示,系统采用STC89E55RD+单片机作为控制核心,通过各种传感器将温室内的温度,湿度,光照度和二氧化碳浓度等环境因子转换成相应的电信号,经调理电路后送入到单片机,实现对环境因子的采集,存储与显示。采集后的信号与预先设定的数值进行比较,当温室内环境因子参数超出预先设定的值时,启动相应的执行机构对其进行控制且系统发出声光报警,直至环境参数调节至目标范围内。温室控制系统还包括各种人机界面和数据传输接口,以实现了人机交换方式和实时参数的设定。此外,控制器同时也可与上位机进行通信,接收上位机指令并把采集的数据传给上位机,上位机可对数据进行集中管理。
2 系统硬件设计
2. 1 信号采集模块
2.1.1 模拟量采集模块
模拟量采集模块要完成对温室现场温度、湿度、二氧化碳浓度和光照度的测量与采集。
温度传感器选用数字化集成温度传感器DS18B20,该传感器将现场温度直接采用“一线总线”的数字方式进行传输,大大提高了系统的抗干扰性,适合恶劣环境的现场温度测量。湿度传感器选用瑞士Scnsirion公司生产的智能数字湿度传感器SHT11,该传感器将湿度传感器、信号放大调理、A/D转换和加热器等功能全部集成于一芯片中,可给出全校准相对湿度值输出;并带有两线制的串行接口和内部基准电压,使系统的接口设计变得简单快捷。图2为温度和湿度采集电路原理图。
考虑到温室传感器的输出信号需要远距离传输,因此二氧化碳传感器和光照度传感器都选用电流型输出的传感器,光照度传感器选用TBQ-6型光照度传感器。二氧化碳传感器选用VC1008T-KS型CO2传感器。光照度和CO2采集模块电路原理图如图3所示。这两种传感器的输出信号都为4~20 Ma的电流信号,其信号处理通道如下:4~20 Ma的电流信号先通过250 Ω高精度取样电阻(精度为0.1%),将电流信号转化为1~5 V的电压信号,通过四选一的多路模拟开关ADG509以差分的方式将信号输送到仪表放大器AD620,AD620将差分信号转换为单端信号输出,这种以差分方式输入电压信号,极大地减少了外间因素给A/D数据采集带来的信号干扰,提高了信号的输入阻抗,通过负反馈运算电路将输入的电压信号转化为MAX187所允许的输入电压范围0~4.096 V。在MAX187数字信号输出端与单片机的I/O口上加入6N137光电隔离器,把数字量信号和模拟量信号进行相互隔离,起到抑制交叉串扰作用。
[page]
2.1.2 数字量采集模块
数字量采集模块主要是对温室控制系统中需要交流电机正反转的执行设备的的运动状态进行采集,包括遮阳网,天窗,侧窗等。执行设备的运动状态通过读取行程开关的状态来获得。将强电柜中的行程开关串联在24 V电源上,通过开关光耦和分压电阻构成回路,将行程开关的状态映射到开关光耦的状态上,然后通过总线收发器读入到单片机。
2.2 开关量输出模块
开关量输出模块用于控制温室控制系统中执行设备的运动。其单元电路图如图4所示,单片机将要输出的开关量锁存到74HC573中,通过开关光耦与输出通道进行隔离,避免信号之间的相互干扰,信号经三极管的放大后驱动12V的小型继电器,从而控制执行设备执行相应动作。
2.3 时钟模块
时钟模块采用DALLAS公司生产的DS1302芯片,它是一种高性能、低功耗、带RAM的实时时钟电路,可以对年、月、日、周、时、分、秒进行计时,同时具有闰年补偿功能,工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信。
2.4 键盘及显示模块
键盘模块用于实现温室控制系统参数的设置。该模块设置了四个独立按键,键0为参数设置键,用于选择不同的参数设置。键1,键2分别为++键,和--键,用于对所设参数进行递增和递减作用。键3为↑↓键,用于选择上极限值和下极限值。显示模块用于实时显示温室控制环境中的参数。为降低温室控制系统的硬件成本,该模块选用了不带字库的HDG12864型的LCD液晶显示器。为节省I/O口的使用数量,在本系统设计中选用串行方式与单片机进行连接。
2.5 通信模块
通讯模块用于下位机与上位机之间的数据通讯,考虑到温室不同的环境和不同用户的需求,设计中采用RS232和RS485两种总线方式来实现通讯,RS232串口通讯硬件电路实现简单,只需将测控系统的串行接口与PC机的COM口相连即可,但是RS232传输速率较低,传输的距离短,只适合短距离通讯。RS485总线采用平衡发送和差分接收方式来实现通讯,与RS232相比,其最高传输速率提高到10Mbps,且传输距离往往可达到1 200 M以上,适合较远距离节点的通讯。
3 系统软件设计
系统控制软件采用模块化的程序设计思想,将系统的整体功能分为不同的模块,各个模块单独设计、编程、调试,完成之后进行系统总的联调。本系统程序均采用C语言来进行编写。整体上软件程序主要完成信号采集运算、实时监控、显示、通信、参数设定、声光报警等功能,主要包括主程序,系统初始化子程序,温室参数采集子程序,时钟子程序,报警子程序,按键扫描子程序,LED显示子程序,数据控制处理子程序,数据存储子程序和串口中断服务程序等模块。主程序控制流程如图5所示。
3.1 温室参数采集子程序
温室数据采集系统的前向通道中,输入信号均含有种种噪声和干扰,为了对温室环境参数进行准确的测量与控制,在软件设计中采用去极值平均滤波法来去除噪声和干扰。对每个传感器采用10次,去除最大值和最小值,对剩余8次采样数据进行求平均,即得到有效的采样值。
3.2 数据存储子程序
对由温室控制系统所采集的各种数据信息的分析和处理是一个重要的环节,因此必须设计数据存储程序。在软件设计中,每隔十分钟就对温室所采集到的温室环境参数(温度、湿度、光照度和二氧化碳浓度)及执行机构的状态进行存储,在存储器中分别占用1,1,2,2,1个字节。同时为了能够清晰确定所采集数据的时刻,也对时间进行存储,这里只存储日,时,分,在存储器中各自占用1个字节。STC89C55单片机内部的EEPROM共有58个扇区,每个扇区可存储512个字节。因此单片机可存储大约58x512/10x24x(60/10)≈20天的数据。
3.3 数据控制处理子程序
由于温室内作物对于环境参数变化往往不是很敏感,而且从系统的成本和通用性来考虑,本系统采用简单的阈值控制算法。即开始时系统会根据不同作物所处的最适宜环境来预设参数的阈值(上下限值),然后系统通过传感器来对环境参数进行数据采集,当所采集到的环境参数不在阈值范围内时,系统就会控制相应的执行机构来改变温室的环境参数,直到参数回到阈值范围内。
4 系统的仿真与调试
为了验证温室控制系统设计的可行性,在Proteus的ISIS7 Profession软件环境下绘制出仿真电路原理图。采用电流源来分别仿真一个光照度和一个CO2传感器。由于Proteus自带的元件库中没有STC系列单片机,在仿真过程中STC89C55BD+用AT89C55来代替,前者的性能优于后者,一旦仿真电路能够实现,则实际电路更容易成功。将编写的程序在Keil μVision3集成开发环境上编译调试,生成相应的HEX文件。通过相关设置,实现Proteus和Keil的联合仿真。对系统的功能进行测试,以温度控制为例,将温度阚值上下限分别设定为15℃和25℃,当温室温度低于设定阈值下限时,蜂鸣器响,热风炉风机开始工作。温度高于阈值上限时,蜂鸣器响,天窗打开,湿帘风机和湿帘水泵开始工作,而当温度处在阈值上下限之间范围时,上述机构都停止工作。当用按键改变温度的阈值上下限时,也具有相同的仿真结果。对系统仿真调试成功后,用PROTEL设计印制电路板,经过元器件的焊接、电路板的硬件调试、温室硬件系统的搭建和程序下载等环节,便可进行温室控制系统的整体调试。
5 结论
文中以STC89C55单片机为核心,设计了一种低成本的简易温室控制系统,该系统可以对温室环境中的温度、湿度、光照度和CO2浓度等各项参数进行实时准确的检测、采集。并可以根据预设的参数来调节和控制温室环境,以满足不同植物的生长需求。经测试运行证明该系统具有工作可靠,性能稳定和操作简单等特点,同时系统采用高性能,低成本的元器件,造价低廉,符合广大农业用户的消费水平,具有良好的推广应用价值。
上一篇:单片机LED动态显示程序
下一篇:基于STC89C52单片机的体操机器人系统设计
推荐阅读最新更新时间:2024-03-16 13:14
- 热门资源推荐
- 热门放大器推荐
设计资源 培训 开发板 精华推荐
- Sitara™ AM335x ARM® Cortex™-A8 团购
- TE 物联网专属平台齐上线,您值得拥有的专业全能助手
- 有奖报名 | 安富利邀您参与2022国际工业博览会!(11月30日-12月4日,上海)
- 有奖直播:人机互动介面和机器视觉应用上的最佳助手--瑞萨电子 RZ/G, RZ/A 和 RZ/V SoC系列
- 乐鑫ESP32-Korvo音频开发板免费测评试用
- 免费测评| TDK-Lambda 电源降压模块
- 有奖直播:ST60 非接触式连接器及应用探索
- 评论赢京东卡,探秘美光内存和存储解决方案!
- 温故而知新——开关电源经典课程学习
- 【已结束】力源直播【安森美 25KW 充电桩模块方案】(9:30入场)