博主福利:100G+电子设计学习资源包!
http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect --------------------------------------------------------------------------------------------------------------------------
本系统设计是从低成本、低功耗、高效率等的概念出发,提出了采用单片机STM32F103VET6控制一系列的传感器(如DS18B20、DHT11、MQ-2、MQ-135等)来采集环境参数,再运用灯光组、风机、加湿系统等对温度、湿度、光照等参数的控制,使用蜂鸣器与STM32连接做为系统的报警器,如有参数超标就发出声响进行警报,同时使用蓝牙发送数据到终端。具有实时性、稳定性、高效性、操作简单等特点,这样便于解决环境参数的采集和监控。
1、 总体方案设计
本系统具有对环境的温度、湿度、光照、烟雾、氨气的检测和控制等功能。系统运用STM32F103VET6作为最小系统的中央处理器。整个系统主要从硬件电路设计和软件程序设计两部分来实现。可以将环境监控系统的硬件分为几大模块进行设计,分别为:信号采集模块、主控制模块、继电器模块、人机互动模块。本系统设计用DS18B20、DHT11、MQ-2、光敏电阻、MQ-135对温度、湿度、烟雾等参数进行采集。再把采集的数据输送到STM32F103VET6中进行处理。处理后的信息输送到液晶显示器上进行显示。STM32F103VET6根据键盘输入的设置参数值进行对比和判断是否有参数超过设置的范围,通过对继电器的控制来控制灯光、喷雾器等,对环境因子的控制。同时还会发出警报,把超出的环境参数通过蓝牙模块发送到终端上。
2、单片机最小系统电路
本系统设计采用STM32作为中央处理器,它是ST公司生产的功能全、价格低、消耗小的增强型单片机。它的内核采用的是ARM公司最新研发的Cortex-M3架构,该内核是专为使用高性能、低功耗和经济实用等要求的用户设计的。TM32增强型系列的处理器采用Cortex-M3架构,实现在系统结构上的增强,,还采用了THUMB-2指令集使得指令效率更高和性能更强。
STM32单片机上封装的引脚有100个、它的内部有512KB的数据存储器,64KB的随机存储器。其片上有12比特模数转换、脉宽调制、串行通讯、USB等接口与电路。该单片机能利用M25P16连接SPI总线来实现储存数据、程序、图像等功能。STM32的正常工作电压为3V左右,能在零下四十度到零上八十度范围内正常工作,其工作时最大的频率为72MHz。
3、信号采集电路设计
3.1 温度采集电路设计
DS18B20是人们在日常中最经常使用的的测温传感器,具备体积小,生产成本低,精度高,抗干扰能力强的特性。能够在3V至5.5V的电压范围内工作,相对于其它同类别元件具有更宽的电压适用范围,可以通过寄生电源接入数据线完成硬件的供电;具有特殊的一线总线接口,DS18B20可以通过一线总线接口实现微处理器与DS18B20之间的双向通信;DS18B20不需要任何外部器件都可以将所有的传感器和转换电路集中到电路中的一个类似于晶体管的形状里。在零下55度到零上一百二十度内能正常工作,其精度为0.5℃;在可编程的分辨率9至12位中分别对应着0.5℃、0.25℃、0.125℃和0.0625℃可以分辨出数据的温度值,以此来提高对温度采集数据的精度值;DS18b20即使在电源接反的情况下芯片也不会由于过热而导致芯片的损坏,但在此种情况下原件是无法工作的。
DQ:单数据总线,数字信号输入/输出端;
GND:接地;
VDD:接电源。
3.2 湿度采集电路设计
DHT11是一个综合型传感器,它包括测湿器件和感温器件,能测量环境中的温湿度。它总体结构简单,“一线总线”串行数据传输给CPU,使用简单,容易理解。仅仅只需一个I/O口与之连接。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA,湿度测量范围为20-90%RH,湿度分辨率为1%RH。该传感器为4针单排引脚封装,连接方便。
VDD:供电3-5.5VDC;
DQ:串行数据,单总线;
NC:空脚,悬空;
GND:接地电源负极。
3.3 光照采集电路设计
光照传感器一般由光敏层、玻璃基片与电阻组成的,它的主要器件是一个对光照敏感的电阻器。在光照不足的情况下,它的电阻为几十兆欧,反之电阻则为十到二十千欧。光敏电阻的灵敏度与人眼对0.4~0.76um范围的可见光的灵敏度很相近。光敏电阻的最大电压为100V,最大功耗为50mv,光谱峰值为540nm,正常工作的温度范围为-30℃~70℃。
3.4 烟雾采集电路设计
它由四个器件组成敏感元件。该传感器有四个管脚输出信号,两个为器件提供正常工作条件。封装内的A与B是相互短接。
MQ-2气体传感器采用二氧化锡(SnO2)作为敏感材料。它能随着烟雾浓度的不同其电阻大小也不同。该传感器对环境中的多种易燃气体的灵敏度良好。它能监测环境中的易燃气体浓度,其运用非常范围广、价格便宜。它输出为模拟量与TTL电平两个信号,模拟量输出为零到五之间的电压,TTL是低电平有效。
3.5 有害气体采集电路设计
本设计运用MQ-135对养殖舍内的有害气体进行监测,而养殖舍内的氨气等有害气体严重危害动物的健康。MQ-135传感器对氨气、硫化物、苯系蒸汽等有较高的灵敏度。还具有长期的使用寿命和优异的稳定性。
它由四个器件组成敏感元件。该传感器有四个管脚输出信号,两个为器件提供正常工作条件。封装内的A与B是互相短接的。MQ-135气体传感器采用二氧化锡(SnO2)作为敏感材料。他能随着环境中的有害气体的不同导电率也不同。使用简单的电路将导电率的变化转为其相应的输出信号。
4、控制电路设计
5、软件程序设计
5.1 系统主程序设计
本系统采用单片机作为主控制部分,主程序是一个无限循环的程序,通过keil开发环境下载到单片机中工作。系统开始工作时,主程序运行,先对系统的硬件进行初始化,然后判断是否有键盘摁下,运用键盘进行环境参数的设置,然后通过传感器采集环境中的温度、湿度、光照、烟雾、有害气体的参数。在液晶显示器上显示采集到的环境参数。在与我们所设置的环境参数进行比较看是否有参数超标。当实际参数不在设置参数的范围就启动恒温系统、灯光系统、加湿器、人工控制对温度、湿度、光照等环境参数的控制,同时还会发出报警。
5.2 温度监控程序设计
温度监控的子程序也是一个循环的程序。当单片机接上电之后,单片机向DS18B20传感器发出指令,DS18b20传感器采集环境中温度参数,把温度值传输到液晶显示屏上显示出来。同时在STM32中将采集的温度参数的实际值与我们设置的参数范围进行比较。如果实际的参数值在设置的范围内,则返回重新采集。如果不在范围之内就发出警报并把数值通过蓝牙传输到终端上,同时开启相应的设备控制温度,并返回重新采集数据。
5.3 湿度监控程序设计
湿度监控也是一个循环的子程序。当STM32通上电之后,STM32向DHT11发出采集指令,它就采集养殖舍内的湿度参数值,把该参数值传送到LCD12864上显示出来。同时在STM32中将采集的湿度参数的实际值与我们设置的参数范围进行比较。如果实际的参数值在设置的范围内,则返回重新采集。如果不在范围之内就发出警报并把数值通过蓝牙传输到终端上,同时开启相应的设备控制湿度,并返回重新采集数据。
5.4 光照监控程序设计
当STM32通上电之后,STM32向光照传感器发出工作指令,其通过光敏电阻采集养殖舍内的光照参数,并把该参数值传送到LCD12864上显示出来。同时实际的光照与系统内设定的光照范围进行比较,看实际值在哪个范围内,系统会对不同的范围开启不同的灯光数值,并返回重新采集数值。
5.5 烟雾监控程序设计
烟雾监控的子程序也是一个循环的程序。当单片机接上电之后,单片机向MQ-2传感器发出指令,MQ-2传感器采集环境中烟雾浓度,把烟雾浓度值传输到液晶显示屏上显示出来。同时烟雾浓度值在单片机中与我们设定的参数浓度值进行对比是否在设定的浓度范围之内。如果在设定的范围之内,则返回重新采集数据。如果不在范围之内就开启风机通风,并发出警报把数值通过蓝牙传输到终端上,提醒管理人员进行人工处理降低烟雾浓度,并返回重新采集数据。
5.6 有害气体监控程序设计
有害气体监控的子程序也是一个循环的程序。当单片机接上电之后,单片机向MQ-135传感器发出指令,MQ-135传感器采集环境中有害气体浓度,把有害气体浓度值传输到液晶显示屏上显示出来。同时有害气体浓度值在单片机中与我们设定的参数浓度值进行对比是否在设定的浓度范围之内。如果在设定的范围之内,则返回重新采集数据。如果不在范围之内就开启风机通风,并发出警报把数值通过蓝牙传输到终端上,提醒管理人员进行人工处理降低有害气体浓度,并返回重新采集数据。
5.7 液晶显示程序设计
单片机接上电开始工作,首先先对12864液晶显示和矩阵键盘进行初始化,单片机发出指令,扫描矩阵键盘是否有键盘摁下,如果扫描到有按键摁下,则读取矩阵键盘的数据,并在液晶显示器上显示出来。如果没有扫描到按键摁下,则读取传感器传送来的养殖舍内的参数值,在该显示器上显示出养殖舍内的参数值。
5.8 矩阵键盘程序设计
系统接上电后,首先单片机发出检测指令,逐行扫描是否有按键摁下。如果扫描到有按键摁下,则保存摁下键位的行值。再逐列扫描按键,保存摁下键位的列值,然后计算出键值,显示出键值或者操作。
5.9 无线传输与报警程序设计
系统开始后,系统先进行初始化。首先在采集前进行蓝牙模块与接收端的配对,当参数超标时蜂鸣器发出警报,在经过STM32的处理后传送到蓝牙模块上,其通过串口把数据传送到终端上。当终端上没有收到或者接受到错误时,反馈到串口再重新进行传送,当终端上成功接受到正确数据时,就在终端上显示参数数据。接收端上可以显示采集的任何一个数据。只要接收端发送1到5的指令到蓝牙模块,蓝牙模块接收并且发送到单片机中,单片机进行处理后,再把数据通过蓝牙模块传送到接收端上,就可以显示出我们所需要的参数值。