基于单片机控制的粮仓测温及通风系统设计
2016-08-04吴海滨浙江大学台州研究院汽摩配研究所310027
吴海滨(浙江大学台州研究院汽摩配研究所,310027)
基于单片机控制的粮仓测温及通风系统设计
吴海滨
(浙江大学台州研究院汽摩配研究所,310027)
摘要:本文介绍了以DS18B20,RF433无线模块,单片机和上位机为核心的粮仓温度,湿度检测和自动控制系统。以STM32F103单片机为主控制芯片,DS18B20采用单总线通信方式,RF433模块进行无线通信,最大允许接5120个测温点,上位机可以显示所有点温度,设置温度报警阀值,超过阀值,自动报警,并根据设置打开对应超温部分的风机或者窗户。系统具有精度高,测点多,温度性好等特点,可以应用在其他需要多点测温的环境中,通用性好。
关键词:STM32F103单片机;测温机;系统设计
0 引言
我国是农业大国,每年都有大量粮食收获,加上部分旧粮积压,大量粮食存储在粮库中,以往通常采用人工办法对粮食进入测温,通风,浪费大量人力物力。本文所设计的粮仓测温及通风系统,采用DS18B20作为温度采集点,可以对粮仓进行均匀布采集点,通过上位机显示温度和一些基本设置,通过单片机控制自动温度采集和风机的控制。
1 系统整体设计
整个系统从结构上可分三层:由控制室的PC机够成的上位机--用户监控层,单片机构成的测温主机---控制层,每个粮仓里的测温分机和遥控分机---温度数据采集和处理层。系统组成结构如图1 所示,测温主机与上位机通过RS-232 总线连接,测温主机和测温分机和遥控分机之间通过RFF433无线网络连接,一台主机最多可以管理10台测温分机和10台遥控分机,一台测温分机最多可以检测512个温度点,本设计适用一般中小型粮库。
图1 系统整体设计
2 硬件设计
2.1测温主机
主控采用RF433无线模块和STM32F103单片机,和PC机之间通信通过232进行通信。主要功能为1、通过RF433和下面测温分机进行通信,把测温分机采到的数据集中处理,通过232送到PC机,在上位机上显示。2、通过RF433和遥控分机进行通信,上位机自动发送遥控命令到遥控分机,实现粮仓风机和窗户的自动和手动开关。
2.2测温分机
测温分机主要由RF433无线模块,STM32F103单片机,电源管理电路,flash存储电路,485电路,和温度采集等电路组成。测温分机最多可以采集4路,每路128个点,总共512个测温点。整个系统最多可以使用10个不同地址的测温分机,系统最大理论采集测温点数为5120个。采集点的分布可以根据实际需求在上位机中设置,本文中以一个小型粮仓为例,设置为高度为5层,6行,10列共300个点。485电路用来外挂温湿度采集模块,原理框图如图2所示:
图2 测温分机原理框图
2.3遥控分机
遥控分机主要由RF433无线模块,ATMEGA8单片机,电源管理电路,光耦隔离和继电器驱动电路组成。主要功能为通过RF433无线模块,接收主控板发出的控制信号,主要功能是包括自动开启和关闭风机和窗户,使粮仓内温度保持在正常范围。
2.4温度数据采集模块的设计
DS18B20是美国DALLAS公司的数字温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。由于18B20芯片送出的温度信号是数字信号,因此简化了A/D转换的设计,提高了测量效率和精度;并且芯片的ROM中存有其唯一标识码,即不存在相同标识码的DS18B20,特别适合与微处理芯片构成多点温度测控系统。每台测温分机的有4个口分别可接最多128 个DS18B20 传感器。上位机控制每台分机工作,实现多点测温。采集到的温度数据通过RF433无线网络进行传输,测温分机接收到DS18B20 所传送的温度数据,并将这些数据进行简单的处理发往上位机。测温分机按照上位机的命令来完成温度数据采集和发送工作。其先将采集的数据存放于内部RAM中,当收到上位机的上传数据命令时,通过RF433无线模块送出。在测温主机的配合下,数据上传到上位机并在上位机的监控界面显示给用户。
2.5RF433MHZ无线通信在温控系统中的设计
在系统中用STM32F103单片机构成主从分布式测控系统,具有价格低、控制功能强等许多特点。然而在应用中,测温主机与各粮仓相距较远,距离从几十米到几千米不等。对此远程粮仓,系统采用RF433MHZ无线模块,实现数据的远程传输。避免布线中的数据线过长,提高可操作性,降低布线难度,降低时间和经济成本。无线模块功率最大1W,加上10DB增益天线,空旷地传输距离可以达到6KM以上,实际应用中5KM以内通信稳定可靠。
3 软件设计
3.1系统软件的工作流程
DS18B20 以单总线协议工作,测温分机首先发送复位脉冲命令,使信号线上所有的DS18B20 芯片都被复位,接着发送ROM 操作命令,使序列号编码匹配的DS18B20 被激活进入接收内存访问命令状态;内存访问命令完成温度转换、温度读取等工作。其对时序及电特性参数要求较高,必须严格按照它的时序要求去操作。DS18B20 的数据读写由测温分机来完成,包括初始化、读数据和写数据。系统中有一个测温主机和多台分机,分机通过拨码设置地址且地址唯一,。初始化完成后各分机均处于监听状态,测温分机接受上位机命令,向DS18B20发出地址匹配命令帧,进入等待状态,每一帧数据位都对应着不同意义,若地址匹配成功则进行响应分机,或者等待超时而重发命令。
3.2DS18B20的读写时序及延时问题
为保证DS18B20的严格I/O时序,需要作较精确的延时。在DS18B20的操作中,写一个标准1us延时的函数,在C语言中插入若干个汇编NOP指令来精确达到1us时间,在操作中,调用这个函数,可以实现任意us级时间的延时。读写时序都必须严格按照DS18B20数据手册中要求。
3.3DS18B20应用过程中遇到的问题及解决方法
在实际应用过程中,由于1条总线上挂的DS18B20数量多,距离远,且不是按照数据手册中推荐使用的星型拓扑或者线性拓扑结构,造成searchrom的部分波形严重失真的情况。当采用1k上拉电阻时,300米长双绞线带来的延时是:R*C=12n*1k=12u,这样上升沿就是12u*2.2=27u,不满足通信时序要求。因此,分析总线通信时序,要求的最小时间间隔是15us,单片机方面可以将上拉DQ时变成推挽来提高速度。但在实际使用用,由于波形失真严重,还是会造成ROM读出来效验是有错误的情况,经常会有这条总线上有几个点读不出来情况,解决方法就是多读几次ROM,通过算法,把错的数据过滤掉,组成一组对的ROM数据,这样处理以后就所有的ROM都能正确读的出来。
4 总结
本文论述了以DS18B20 为传感器,STM32F103为核心单片机为控制核心组成的粮仓测温及通风系统。由于DS18B20 采用数字单总线技术,使得系统电路简单,易于扩展,加上总线数字化,使得系统的抗干扰性能好,可靠性高,测温范围宽,与传统的温控系统相比还具有较高的性价比。此外,系统的应用范围不仅仅局限于粮仓领域,稍作改动还可作为其它自控领域的解决方案,如烟叶烘烤箱控制系统等。
参考文献
[1]STM32嵌入式系统开发实战指南.李志明,檀永,徐石明,丁孝华,桑林 机械工业出版社
[2]基于DS18B20的温度测量模块设计.周润景等编著 机械工业出版社
Temperature measurement and ventilation system design based on single chip microcomputer
Wu Haibin
(Zhejiang University, Taizhou Institute of automobile and motorcycle Research Institute,310027)
Abstract:This paper introduces the DS18B20, RF433 wireless module,MCU and PC as the core the granary of the temperature, humidity detection and automatic control system.Mainly STM32F103 microcontroller to control chip,DS18B20 adopts single bus communication mode,RF433 module for wireless communication,maximum allowable 5120 temperature measurement points, PC can display all point temperature and setting temperature alarm threshold,more than the threshold, automatic alarm,and according to the set to open the corresponding overtemperature fan or parts of the window.System has high precision, the measuring point,good temperature etc.,can be applied in other need multi-point temperature measurement environment,excellent versatility.
Keywords:STM32F103 single chip microcomputer;temperature measuring machine;system design