基于STM32的温湿度监控系统设计 .pdf
基于STM32的温湿度监控系统设计
温湿度的监测对于当前控制室内环境,改善室内环境起着重要的作用,为了
提高室内用户的舒适度,一般都会对室内的温湿度进行监控,通过监测温湿度的
变化情况来确定下一步的动作,例如在温室中严格监控室内温度,使得温室内的
植物能到最合适的生存环境。文章就基于STM32的温湿度监控系统设计问题进
行了全面分析,通过其有效提高温度的时效性管理意义重大。
标签:STM32;温湿度;ucosII系统;监控系统设计
此次的基于STM32的温湿度监控系统设计主要是32位的单片机为主控芯
片,DHT11为温湿度监测装置,搭载的是ucosII操作系统,显示设备为主控
ITL9438的彩屏,通过DHT11采集的信息对经过单片机的内部程序的处理,将
其以数字的形式显示在彩屏上,并且同时根据单片机内部的温度设定值进行相应
的动作,实现的室内温湿度的智能控制。
1温湿度监控系统设计
1.1温湿度监控系统硬件设计
系统主控芯片为STM32F103ZET6,除了必须的STM32单片机正常的驱动
的电路之外,彩屏为使用的是已经做成模块的ITL9438彩屏,而采集模块则是使
用的DHT11,如图所示为使用的DHT11的引脚图,可得知只要通过采集Dout
引脚的输出的电平变化,查看数据手册,根据DHT11的时序图写出相应的驱动
程序,驱动DHT11温湿度传感器。彩屏的程序可以直接使用的屏幕厂家写好的
程序,移植到STM32上既可,而通过将Dout引脚上的高低电平变化,进行相应
的数据处理可以将温湿度数据已数字的形式显现在彩屏上,通过内部的程序根据
比较当前的温湿度值与设定的参数值进行比较,使得进行下一步的温湿度调节动
作,通过向外部电路发送信号,例如温度高了,打开排风机降低室内的温度等措
施优先对温度的控制,这与空调的原理类似,但是系统比空调电路简捷的多。
DHT11数字湿温度传感器采用单总线数据格式,单个数据引脚端口完成输
入输出双向传输。其数据包由5Byte(40Bit)组成。数据分小数部分和整数部分,
一次完整的数据传输为40bit,高位先出。DHT11的数据格式为:8bit湿度整数
数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。其
中校验和数据为前四个字节相加,传感器数据输出的是未编码的二进制数据。数
据(湿度、温度、整数、小数)之间应该分开处理。
1.2温湿度监控系统软件设计
此次的温湿度监控系统软件设计主要实在keil4中完成,操作系统为
UCOSII,将UCOSII系统移植到当前单片机上,并且建立相应的任务堆栈,通
过调用任务堆栈的形式实现系统运行,将DHT11的Dout引脚与PG11连接,PG11
引脚设置的为输入模式,用于采集Dout引脚的电平变化。开机的时候先检测是
否有DHT11存在,如果没有,则提示错误。只有在检测到DHT11之后才开始读
取温湿度值,并显示在LCD上,如果发现了DHT11,则程序每隔100ms左右读
取一次数据,并把温湿度显示在LCD上。同时会使用一个LED来指示程序运行
状况。
温湿度监控系统的软件设计主要分为的LED驱动程序、LCD驱动程序、
DHT11驱动程序以及STM32单片机的启动文件等几个部分,其中LCD驱动程
序主要是有屏幕生产厂家提供,并不需要自己編写,直接移植厂家提供的LCD
驱动程序即可,而设计者主要是编写的LED驱动和DHT11的驱动。DHT11并
不需要使用IIC接口或者是SPI接口,所以直接配置两个I/O引脚,通过DHT11
的读写时序编写相应的驱动程序即可,如图1中的’1时序和’’0时序’图。
通过图1中时序图,我们可以编写出DHT11相应的读函数与写函数,再通
过数据发送流程时序便可以写出DHT11的驱动程序。将上述几个主要的驱动程
序编写好之后,编写相应的DHT11数据处理函数,通过函数参数返回值将实际
的数据显示在LCD屏幕上。屏幕上显示的参数在主函数中的出现编