1、基于STM32的温湿度监测讲解物联网工程设计与实施项目设计项目课题: 基于STM32的温湿度检测院 系: 计算机科学与技术学院专 业: 物联网工程项目经理:于渊学号: 123921043副 经 理:谢金光学号: 123921024项目成员:李周恒学号: 123921002项目成员: 袁桃 学号: 123921048 项目成员: 颉涛 学号: 123921054 项目成员 肖青 学号: 123921025 项目成员 冯锦荣 学号: 123921011 项目成员 唐敏 学号: 123921023 指导教师: 2014 年 12月目录摘要 2Absract 3一设计目标 4二设计方案 4三实验所需器
2、材 5四设计内容 54.1 STM32模块 54.2 AM2302介绍 64.2.1 产品概述 64.2.2 应用范围 74.2.3 产品亮点 74.2.4 单总线接口定义 74.2.5 传感器性能 84.2.6 单总线通信 94.3 Nokia 5110 介绍 104.3.1 SPI接口时序写数据/命令 114.3.2 显示汉字 114.3.4 显示图形 114.4 原理图设计 114.5 PCB板设计 13五实验软件设计 135.1 温湿度传感器DHT22的程序 135.2 湿度显示函数 175.3主函数程序 185.3.1显屏程序 19六作品实物展示 27七设计总结 28基于STM 32
3、 的温湿度检测摘要随着现代社会的高速发展,越来越多的科学技术被应用于农业生产领域。在温室大棚中对温湿度、二氧化碳浓度等外部参数的实时准确的测量和调节更是保证农业高效生产的重要前提。 本次课程设计中实现了一个基于STM32F103VET6的智能温湿度检测系统,目的是实现温湿度的采集和显示,温湿度的采集是作为自动化科学中一个必须掌握的检测技术,也是一项比较实用的技术。本次实验主要作了如下几个方面工作:首先通过对实时性、准确性、经济性和可扩展性等四个方向的分析比较之后,选择了STM32F103VE微控制器作为主控芯片和AM2303温湿度传感器来实现对温湿度数据进行采集;在Nokia5110显示屏上显
4、示出温度和湿度,然后详细介绍了各个模块的工作原理和硬件电路设计思路,实现了温湿度数据实时准确的测量;之后阐述了系统各个部分的软件设计思路;最后对系统在实际应用中采集到的数据进行了处理,分析了误差产生的原因,并通过分段线性插值算法对系统非线性误差进行了校准,同未校准时采集的数据相比,校准后的数据准确度更高,稳定性更好。 在保证测量效果的基础上,本系统设计中充分考虑到性价比和再次开发周期性等,具有成本低、设计开发方便、通用性强等特点,不仅适用于现代农业生产中,还能用于其它工业控制、机械制造等其它领域,具有一定的市场推广价值。【关键词】: 嵌入式技术,电路设计,STM32,AM2302温湿度采集,N
5、okia5110 显示屏,程序设计AbsractIn the design of the curriculum implements a smart temperature and humidity detection system based on STM32F103VET6, the purpose is to realize the acquisition and display of the temperature and humidity, temperature and humidity of the acquisition as a must master in automati
6、on science detection technology, is also a practical technology. This experiment mainly made the following several aspects work: first of all, based on the real-time, accuracy, economy and expansibility etc. After analysis and comparison of four directions, STM32F103VE micro-controller as the master
7、 control chip and AM2303 temperature and humidity sensors to achieve temperature and humidity data acquisition; On the Nokia5110 screen display the temperature and humidity, and then introduces in detail the working principle of each module and the hardware circuit design, realized the real-time acc
8、urate measurement of temperature and humidity data; Elaborated the system after each part of the software design idea; Finally, the system in the practical application of dealing with the data collected, analyzed the reasons of the error, and through the piecewise linear interpolation algorithm for
9、system of nonlinear error calibration, compared with not calibration data, after calibration data with higher accuracy and better stability.Keywords: embedded technology, circuit design, STM32, collecting AM2302 temperature and humidity, Nokia5110 display, the program design一设计目标本次设计要求实现对周围环境温湿度的感知以
10、及显示。要求学生对STM32有一定程度的理解,熟悉STM32串口以及中断的使用,会基本的C语言和java,熟练掌握keil for ARM软件的使用与程序下载以及手机软件开发环境。二设计方案(1)了解温湿度传感器工作原理,根据原理画好PCB原理图。(2)根据PCB原理图自制PCB板电路,将液晶屏,温湿度传感器,变压器,stm32开发板等相关元件设备进行集成。(3)测试PCB电路,检查相关电路能否正常工作,以及STM32核心板的能否正常调试。(4)在完成电路调试后,用jlink下载器下载调试程序成功完成程序对相关元件的驱动。(5)实验完成后做好相应的实验总结。三实验所需器材1.STM32F核心板
11、 2.温湿度传感器(DHT22) 3.电容 4.3MM 红光LED发光二极管 5.稳压集成块(L7805)6.整流桥 7.电解电容 8.保险座 9.散热器10.电阻 11.变压器 12.电位器 13.排座 14.5110液晶屏模块四设计内容4.1 STM32模块芯片的选择:STM32VET6芯片的介绍:内核:ARM32位的Cortex-M3CPU最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz(Dhrystone2.1)单周期乘法和硬件除法存储器从64K或128K字节的闪存程序存储器高达20K字节的SRAM时钟、复位和电源管理2.03.6伏供电和I/O引脚上电/
12、断电复位(POR/PDR)、可编程电压监测器(PVD)416MHz晶体振荡器内嵌经出厂调校的8MHz的RC振荡器内嵌带校准的40kHz的RC振荡器产生CPU时钟的PLL带校准功能的32kHzRTC振荡器低功耗睡眠、停机和待机模式VBAT为RTC和后备寄存器供电2个12位模数转换器,1s转换时间(多达16个输入通道)转换范围:0至3.6V双采样和保持功能温度传感器DMA:7通道DMA控制器支持的外设:定时器、ADC、SPI、I2C和USART图4.1 STM32VET6芯片引脚图 图 4.2 STM32芯片实物图4.2 AM2302介绍4.2.1 产品概述AM2302湿敏电容数字温湿度模块是一款
13、含有己校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个高精度测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在单片机中,传感器内部在检测信号的处理过程中要调用这些校准系数。标准单总线接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。产品为3引线(单总线接口)连接方便。特殊封装
14、形式可根据用户需求而提供。 图4.3 实物图 外形尺寸(单位:mm)4.2.2 应用范围暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、家电、湿度调节器、医疗、气象站、及其他相关湿度检测控制等。4.2.3 产品亮点超低能耗、传输距离远、全部自动化校准、采用电容式湿敏元件、完全互换、标准数字单总线输出、卓越的长期稳定性、采用高精度测温元件。4.2.4 单总线接口定义引脚名称描述VDD电源(3.5V-5.5V)SDA串行数据,双向口NC空脚GND地 表4.1 AM2302引脚分配表 图4.4 AM2302引脚分配图AM2302的供电电压范围为3.5V-5.5V,建议供电电压为
15、5V。数据线SDA引脚为三态结构,用于读写传感器数据。4.2.5 传感器性能参数条件mintypmax单位分辨率0.1%RH分辨率16bit1精度252%RH重复性0.3%RH互换性完全互换2响应时间1/e(63%)5S迟滞0.3%RH3漂移典型值0.5%RH/yr表 4.2 AM2302相对湿度性能表参数条件mintypmax单位分辨率0.1分辨率16bit精度0.51量程范围-4080重复性0.2互换性完全互换响应时间1/e(63%)10S漂移0.3/yr表4.3 AM2302相对温度性能表图4.5 25时 AM2302 的相对湿度最大误差 温度传感器的温最大误差4.2.6 单总线通信 A
16、M2302器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由数据线完成。设备(微处理器)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1k的上拉电阻,这样,当总线闲置时,其状态为高电平。由于它们是主从结构,只有主机呼叫传感器时,传感器才会应答,因此主机访问传感器都必须严格遵循单总线序列,如果出现序列混乱,传感器将不响应主机。SDA用于微处理器与AM2302之间的通讯和同步,采用单总线数据格式,一次传送40位数据,高位先出。具体通信时序如图4.5所示,通信格式说明见表4.3。图4.5 AM
17、2302单总线通信协议 名称单总线格式定义起始信号 微处理器把数据总线(SDA)拉低一段时间(至少 800s)1,通知传感器准备数据。响应信号传感器把数据总线(SDA)拉低 80s,再接高 80s 以响应主机的起始信号。数据格式 收到主机起始信号后,传感器一次性从数据总线(SDA)串出 40 位数据,高位先出湿度湿度分辨率是 16Bit,高位在前;传感器串出的湿度值是实际湿度值的 10 倍。温度温度分辨率是 16Bit,高位在前;传感器串出的温度值是实际温度值的 10 倍;温度最高位(Bit15)等于 1 表示负温度,温度最高位(Bit15)等于 0 表示正温度;温度除了最高位(Bit14Bi
18、t0)表示温度值。校验位校验位湿度高位+湿度低位+温度高位+温度低位表4.3:AM2302 通信格式说明用户主机(MCU)发送一次起始信号(把数据总线SDA拉低至少800s)后,AM2302从休眠模式转换到高速模式。待主机开始信号结束后,AM2302发送响应信号,从数据总线SDA串行送出40Bit的数据,先发送字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。4.3 Nokia 5110 介绍1)84x48 的点阵LCD,可以显示4 行汉字,2)采用串行接口与主处理器进行通信,接口信号线
19、数量大幅度减少,包括电源和地在内的信号线仅有9 条。支持多种串行通信协议(如AVR 单片机的I、MCS51 的串口模式等),传输速率高达4Mbps,可全速写入显示数据,无等待时间。3)可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。4)LCD 控制器驱动器芯片已绑定到LCD 晶片上,模块的体积很小。5)采用低电压供电,工作电压为3,3V,正常显示时的工作电流在200A 以下,且具有掉电模式。LPH7366 的这些特点非常适合于电池供电的便携式通信设备和测试设备中。 图4.64.3.1 SPI接口时序写数据/命令Nokia5110(P
20、CD8544)的通信协议是一个没有MISO只有MOSI的SPI协议,如果单片机有富裕的SPI接口,也可以利用硬件SPI,但通常没有必要,只需要软件程序模拟即可。4.3.2 显示汉字显示汉字可以采用两种点阵方式,一种是12*12点阵,一种是16*16点阵,网上也有一个自动提取字模的小软件“3310液晶显示屏汉字提取程序”,这个小程序只适用于水平寻址(V=0)。采用12*12点阵汉字时,由于不是8的整数倍数,因此行与行之间只能隔开,这样才能完整显示一个汉字。4.3.4 显示图形显示的图形像素大小不能超过84*48。也有一个字模提取小软件Zimo21可以帮助我们得到图像的像素数组。但要注意Zimo2
21、1软件的设置,不然的话就显示不了想要的图片。4.4 原理图设计图4.7 电路板设计软件:Altium图 4.8 传感器电路图4.9 5110显示屏电路图4.10 电源电路图 4.11 实验原理图4.5 PCB板设计要制作封装库首先必须对所需封装资料进行了解其长、宽、焊盘大小模块资料上都会有提供,另外还包括管脚信息,管脚标号都要明确了解。 图 4.12五实验软件设计5.1 温湿度传感器DHT22的程序#include #include dht22.h /复位DHT22void DHT22_Rst(void) DHT22_IO_OUT(); /SET OUTPUT DHT22_DQ_OUT=0;
22、/拉低DQ delay_ms(20); /拉低至少18ms DHT22_DQ_OUT=1; /DQ=1 delay_us(30); /主机拉高2040usu8 DHT22_Check(void) u8 retry=0; DHT22_IO_IN();/SET INPUT while (DHT22_DQ_IN&retry=100)return 1; else retry=0; while (!DHT22_DQ_IN&retry=100)return 1; return 0;/从DHT22读取一个位/返回值:1/0u8 DHT22_Read_Bit(void) u8 retry=0; while(D
23、HT22_DQ_IN&retry100)/等待变为低电平 retry+; delay_us(1); retry=0; while(!DHT22_DQ_IN&retry100)/等待变高电平 retry+; delay_us(1); delay_us(40);/等待40us if(DHT22_DQ_IN)return 1; else return 0; /从DHT22读取一个字节/返回值:读到的数据u8 DHT22_Read_Byte(void) u8 i,dat; dat=0; for (i=0;i8;i+) dat=1; dat|=DHT22_Read_Bit(); return dat;/
24、u8 DHT22_Read_Data(u8 *temp,u8 *humi) u8 buf5; u8 i; DHT22_Rst(); if(DHT22_Check()=0) for(i=0;iAPB2ENR|=1CRH&=0XFFFF0FFF; /PA11 推挽输出 GPIOA-CRH|=0X00003000; GPIOA-ODR|=111; /输出1 DHT22_Rst(); return DHT22_Check();5.2 湿度显示函数void Humidity_display(void) uchar table0=Temp:00.00C ; uchar table1=Humi:00.00%
25、 ; u8 t=0; u8 temperature,tem; u8 humidity,hum; int num; if(t%10=0)/每100ms读取一次 DHT22_Read_Data(&temperature,&humidity); /读取温湿度值 /显示温度值 table05=temperature/10+0x30; table06=temperature%10+0x30; tem=temperature*100; table08=tem/10%10+0x30; table09=tem%10+0x30; /显示湿度值 table15=humidity/10+0x30; table16=
26、humidity%10+0x30; hum=humidity*100; table18=hum/10%10+0x30; table19=hum%10+0x30; write_1602_com(0x80); for(num=0;num16;num+) write_1602_dat(table0num); delay_ms(8); write_1602_com(0x80+0x40); for(num=0;num16;num+) write_1602_dat(table1num); delay_ms(8); delay_ms(10); t+; if(t=10) t=0; 5.3主函数程序#inclu
27、de stm32f10x.h#include 5110LCD.h#include main.hextern unsigned char chinese1;int main(void) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_Configuration_LCD(); LCD_Init(); LCD_Clear(); while (1) LCD_WriteString_en(0,0,wen du :); LCD_WriteString_en(0,1,shi du :); 5.3.1显屏程序#include5110LCD.hvoid del
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1