APP下载

基于STM32的马铃薯贮藏环境监测系统的设计

2018-01-12刘瑞瑞王福平

江苏农业科学 2017年24期
关键词:温湿度二氧化碳单片机

刘瑞瑞, 王福平

(1.北方民族大学计算机科学与工程学院,宁夏银川 750021; 2.北方民族大学创新创业学院,宁夏银川 750021)

我国是世界上马铃薯产量最大的国家,如此巨大的资源难以短期内完成加工,所以在加工生产前期需要进行长时间的贮藏[1]。常用的是地窖贮存,而这种传统的方式很难适应现代农业大生产的要求,由于在贮藏环境中存在着诸多影响因素,如温度、温度、二氧化碳浓度等,都会对马铃薯的贮藏造成一定的影响;同时,会受到人为因素、自然环境因素以及气候因素的制约,不仅降低了效率,而且增加了成本,消耗了大量的人力、物力、财力,不能实时高效地监控与管理,就会出现一系列的问题,造成农户的经济损失。如何使其集中规模、批量存储以满足现代对农产品深加工的需求,提高其价值,确保农民致富,是本设计所要解决的问题。随着科学技术的不断向前迈进,微型化、集成化、低成本化成为信息技术的主流,由单片机、微型控制器、传感器、模拟数字转换器等组成的智能监控系统得以广泛应用,该系统可以精确实时地检测各项数据[2],同时农户可以随时对其内部环境进行远距离控制,还有专家决策系统对所接收的信息进行科学综合的分析,其简单快捷的人机交互方式给农户带来较大的效益。

1 系统总体方案设计

本次设计的贮藏环境检测系统由电源、STM32单片机、数据采集器(温湿度传感器、二氧化碳传感器)、蜂鸣器加热除湿装置以及串行接口通信模块等几个部分组成(图1)。农户通过上位机对现场数据进行检测,并且进行实时有效地远程控制,每一个终端节点负责执行上位机发送的指令,可以实现对贮藏环境的温湿度以及二氧化碳浓度的采集,并且通过485通信总线将数据传输至STM32单片机中进行数据的存储及处理,单片机是整个系统的控制核心,在系统中起到承上启下的作用,一则将上位机的控制指令接收并且传至各个终端节点,二则将终端节点采集到的各项数据进行汇总分析与处理后再反馈给上位机,从而实现了用户对贮藏环境的实时监测与控制。

2 系统硬件电路设计

系统的硬件设计包括电源模块、STM32F103VE单片机核心电路、温湿度及二氧化碳数据采集模块、液晶屏显示模块、RS485通信模块以及其他模块(包括报警电路、时钟电路和复位电路)。整个系统就像人一样,不同的部件就像不同的器官:显示器就像人脸,直观地呈现系统的实时变化;单片机中的晶振就像是心脏,支撑着系统的运行;采集器的输入输出就像人的嘴巴,接收并向外传递信息;而各类传感器就像人的五官和皮肤,直接感知外界的信息[3]。以单片机作为系统控制器的核心,以传感器作为数据采集单元,以加热装置、除湿装置、风机装置作为执行单元完成对马铃薯贮藏环境的温度、湿度以及二氧化碳浓度的智能化检测与控制。当温湿度集成传感器和二氧化碳传感器的各个节点采集到环境中的数据后上传至单片机进行数据处理,然后在液晶屏幕中显示,并通过蜂鸣器、风机、自动加热、自动除湿等装置对马铃薯窖内环境进行实时监控,同时将采集的数据实时记录下来,上传至上位机。所有的指令和数据都严格按照通信协议的要求,以保证传输数据的精确度,便于用户随时了解窖内温湿度及二氧化碳浓度的情况,从而对各个时间段的数据进行分析。在上述的硬件模块中,本研究主要考虑单片机的选择、传感器的选择以及通信模块的设计。

2.1 控制器的选择

控制器用以接收采集到的数据,并对数据进行处理与控制,在整个系统中居于核心地位并嵌入其中,所以国际上常称其为嵌入式控制器或者微控制器,而国内工程师或相关开发人员常习惯称其为“单片机”。它的选用关乎整个系统的运行是否稳定、高效。本次设计采用ARM公司推出的STM32F103VE,它使用了高性能的 ARM Cortex-M3 32位RISC内核,工作频率为72 MHz,内置高速存储器(高达 512 kB 的闪存和64 kB的SRAM),丰富的增强I/O端口和联接到2条APB总线的外设。

本设计用于温湿度采集,对于户外工作环境中的温度承受有一定的限制要求,STM32F103VE适用于-40~105 ℃的温度范围,供电电压2.0~3.6 V,完全满足工作环境的需求,并且完全适用于KEIL开发环境,支持汇编和C语言等多种语言开发。由于它面向中低端市场,很大程度上降低了成本,又因其倡导库开发的理念,仅通过调用库里的API就可以迅速搭建1个大型的程序,根据用户需求操作,降低了开发周期[4]。

2.2 传感器的选择

传感器由敏感元器件与转换元器件组成,前者可以直接感知或响应被测量,后者可以将被测量转换成可传输和可测的电信号,智慧农业中常用到温湿度集成传感器、光传感器、CO2传感器、化肥含量传感器等,对其性能有较高的要求,如高灵敏度、强抗噪性、低功耗、小误差、易校准等,应该根据实际情况,从所研究的目的、环境、对象、精度要求、信号处理、配套仪器及成本等综合考虑。

本次设计采用奥松电子推出的AM2303高精度温湿度集成传感器模块,主要由电容式感湿元件、高精度测温元件、信号放大器、A/D转换元件及1个内置的高性能单片机集成组成[5]。供电范围在3.5~5 V,实际常采用5 V,数据引脚采用串行三态,可同时作为外部输入和内部输出,上升沿有效,传输数据是高电平有效,单片机输出低电平体积小,符合环境要求的测量范围,可以对被测量直接进行A/D转换与校准,提高开发效率,同时提高了准确性和可靠性。

二氧化碳传感器要求工作温度0~50 ℃,预热时间小于1 min,响应时间和精确率均不超过10 s,模拟信号的输出为0~10 V/4~20 mA(可选),这里采用MH-Z14型,该传感器具有低功耗、高精度、高分辨率、防水汽、防毒、稳定性强等优点。

2.3 通信模块的选择

系统通信由上位机通信、下位机通信2个部分组成。通信模块设计需考虑波特率、通信协议、通信缓存区以及通信的过程。

目前数据通信的方式日趋多样。工业控制中常采用 RS232、RS422、RS485 3种总线标准。本设计采用的是双绞线传输半双工工作模式的RS485,以驱动电压输出满足RS485标准P3485作为通信接口主控芯片,加入了74LVC04反相器和单片机相连用以加强驱动力。在通信时同一时刻只能完成数据的接收或者发送,保证数据传输的可靠性;便于多个节点互联,易实现多机通信,其标准规定最多并联32台驱动器和32台接收器,最大传输距离约1 219 m,最大传输速率约 10 Mbit/s[5]。串口的接收器首先对起始位进行侦测,判断采样序列的完整性,然后接收数据帧和停止位,并通过对各类错误中断检测方式对采集的数据进行判断,确保数据采集的精确性。串口的波特率可以通过设置在USART_BRR 寄存器的值来获得。基于STM32单片机可以通过库函数直接配置,无需再计算分频因子。

根据设计要求是对不同单元数据的采集及处理,因而采用Modbus的通信协议,通过单播或广播模式来完成主从机之间的响应。主机按格式发出请求后,当子节检测信息,并对收到数据进行解码以及校验数据是否准确,在Modbus 串行链路中,有2种检验方法——奇偶校验和帧校验。为了对信息进行完整的判断,常采用帧校验的方式。

3 系统软件设计

系统的软件设计贯穿于系统设计的全过程,为了便于管理与维护,减少工作量,在开发前应该确定系统的开发环境、语言、数据结构等,现主要针对下位机部分进行设计。

本设计选用μVision4的开发坏境,前身是51中的Keil,由V4.12版本的MDK软件开发工具内部集成,集代码编辑、编译、仿真、链接及下载于一体。支持常见的ARM公司系列产品,最主要的是与STM32系列完美兼容,提供了直接可用的启动文件,用户使用时直接进行C语言编程,它的突出特点是适用多种操作系统如UNIX、DOS,也适用于多种机型[6]。针对其语法限制不够严格、设计自由度大等问题,在编程过程中应该注释代码,便于其后期的修缮与维护。

通过开发软件自动寻找中断地址,而不需要重新设置Bootloader启动文件,为开发提供了极大的便利,很大程度上缩短开发周期[4]。

设计过程应采用结构模块化的设计方式对各项功能进行封装,包括数据采集及存储子程序、键盘扫描与液晶显示程序、串口通信、实时时钟、中断系统、电源管理等模块。采集器的软件部分主要完成程序的初始化、模拟量数字量的采集、数据的发送和控制传感器的启动和停止等。

3.1 主程序模块设计

主程序中先要对键盘、显示器、A/D模块以及通信端口的初始化,数据采集以及存储子程序的编写是定时中断子程序。主程序循环扫描键盘,按键时转为键盘扫描子程序,主程序将上位机的通信程序设为外部中断子程序,中断信号由INTO输入。当上位机向下位机发送传数据请求时,通过拨号选中下位机,该下位机的程序跳转至通信子程序,便完成了与上位机的通信。

3.2 数据采集模块程序设计

本设计中的数据采集包括温湿度及二氧化碳浓度的采集,单片机进入自动采集模式即一段时间(可以设定)采集1次,其余时间休眠,这些时间的设定都是利用精确的定时中断机制来实现各个任务的调度,最后再将采集到的数据存在flash内。存入flash内的数据可以通过输入相应命令来读取和清除,温湿度及二氧化碳浓度数据采集流程如图2所示。

4 系统的实现与数据分析

该系统完成了软硬件的对接,实现了各个功能模块的要求,并在实际中得以应用,实现了数据的采集与传输,数据的精确度是验证系统可靠性的重要保障,通过数据分析误差原因并降低工作误差尤为关键。

4.1 系统的实现与验证

该系统开机之后,液晶屏直接显示马铃薯储藏窖环境参数信息以及功能选项栏,进入实时数据显示界面,查看实时环境中各监测点的数据以及平均数(图3)。

在系统界面下点击右侧【工作状态】图标界面,如果系统设备运行正常,则界面中的红色 【停止】图标会变成绿色 【运行】图标;当系统设备运转出现异常时,则会由绿色【运行】图标改变为红色【停止】图标(图4)。

在系统界面下点击右侧【参数设置】或【时间设置】,进入提示界面,点击该界面中空格,弹出软键盘即可用鼠标点击设置,也可根据实际情况修改(图5、图6)。

4.2 系统的数据分析

选用某农户的马铃薯窖,取用某天8:00—18:00之间每小时1次的数据进行试验,数据见表1。其中温度采集的精度为±0.3 ℃,湿度采集的精度为±2% RH,较为准确,但前期采集数据波动较大,可能受地窖环境中各气体、压强等因素影响。二氧化碳的数据则比较复杂,会因前2个参数而变化,因此采用单一变量的原则来单独分析二氧化碳的情况。须排除人为、传感器、环境等诸多误差因素,使数据整体趋于稳定。

表1 马铃薯窖温湿度监测数据

5 小结

本研究设计了一种基于STM32单片机的智能检测系统,其融合了电子信息技术、计算机技术、物联网技术等,通过模块化的结构设计方案降低了设计的难度,提高了其可靠性和准确性。其软硬件均已成功调试,并在马铃薯窖藏中得以应用,满足在农业中的实际需求。

[1]尹飞凰,高 舸. 适宜马铃薯储藏的环境参数智能调节系统[J]. 江苏农业科学,2014,42(9):374-376.

[2]赵 凯,杨淑连. 温室大棚环境参数无线监控系统[J]. 山东理工大学学报(自然科学版),2010,24(2):93-96.

[3]李 军. 数据采集系统整体设计与开发[M]. 北京:北京航空航天大学出版社,2014.

[4]刘火良,杨 森. STM32库开发实战指南[M]. 北京:机械工业出版社,2013.

[5]徐会杰. 数据采集系统中串行通信协议的设计与实现[J]. 河南科技大学学报(自然科学版),2008,29(5):30-32.

[6]汪文忠,彭 刚,徐庆江,等. 基于STM32单片机的自动气象采集系统软件设计[J]. 可编程控制器与工厂 自动化(PLC&FA),2012(3):52-56.

猜你喜欢

温湿度二氧化碳单片机
扬眉吐气的二氧化碳
温湿度控制器在回收砂冷却系统中的应用
“抓捕”二氧化碳
如何“看清”大气中的二氧化碳
基于单片机的SPWM控制逆变器的设计与实现
基于DSP的多路温湿度监测系统
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用