物联网工程设计与实施_第1页
物联网工程设计与实施_第2页
物联网工程设计与实施_第3页
物联网工程设计与实施_第4页
物联网工程设计与实施_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、物联网工程设计与实施项目设计项目课题:基于 stm32 的温湿度检测院专系:业:计算机科学与技术学院物联网工程项目经理:副 经 理:项目成员:项目成员:项目成员:项目成员项目成员项目成员于渊谢金光李周恒袁桃颉涛肖青冯锦融唐敏2014学号: 123921043学号: 123921024学号: 123921002学号: 123921048学号: 123921054学号: 123921025学号: 123921011学号: 123921023年 12 月目录摘要 .5absract .71 课程设计目的.92 课程设计方案.93 实验所需器材.94 课程设计内容.94.1 stm32 模块 .9 4

2、.2 am2302 的介绍 .114.2.1 产品概述. 114.2.2 应用范围.124.2.3 产品亮点.124.2.4 单总线接口定义.124.2.5 传感器性能.134.2.6 单总线通信.144.3 nokia 5110 介绍 .154.3.1 spi 接口时序写数据/命令 .164.3.2 显示汉字.164.3.3 显示图形.164.4 原理图设计.164.5 pcb 板设计 .18五试验软件设计.195.1 温湿度传感器 dht22 的程序.195.2 温湿度显示程序.225.3 主函数程序.246 作品实物展示.337 设计总结.33基于 stm 32 的温湿度检测摘要随着现代

3、社会的高速发展,越来越多的科学技术被应用于农业生产领域。在 温室大棚中对温湿度、二氧化碳浓度等外部参数的实时准确的测量和调节更是保 证农业高效生产的重要前提。 本次课程设计中实现了一个基于 stm32f103vet6 的智能温湿度检测系统,目的是实现温湿度的采集和显示,温湿度的采集是作为 自动化科学中一个必须掌握的检测技术,也是一项比较实用的技术。本次实验主 要作了如下几个方面工作:首先通过对实时性、准确性、经济性和可扩展性等四 个方向的分析比较之后,选择了 stm32f103ve 微控制器作为主控芯片和 am2303 温湿度传感器来实现对温湿度数据进行采集;在 nokia5110 显示屏上显

4、示出温度 和湿度,然后详细介绍了各个模块的工作原理和硬件电路设计思路,实现了温湿 度数据实时准确的测量;之后阐述了系统各个部分的软件设计思路;最后对系统 在实际应用中采集到的数据进行了处理,分析了误差产生的原因,并通过分段线 性插值算法对系统非线性误差进行了校准,同未校准时采集的数据相比,校准后 的数据准确度更高,稳定性更好。 在保证测量效果的基础上,本系统设计中充 分考虑到性价比和再次开发周期性等,具有成本低、设计开发方便、通用性强等 特点,不仅适用于现代农业生产中,还能用于其它工业控制、机械制造等其它领 域,具有一定的市场推广价值。关键词: 嵌入式技术,电路设计, stm32,am2302

5、 温湿度采集, nokia5110 显 示屏,程序设计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 i

6、n automation 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

7、the master 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 rea

8、l-time accurate 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 algo

9、rithm for 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 下载器下载调试程序成功完成程序对相

11、关元 件的驱动。(5) 实验完成后做好相应的实验总结。三实验所需器材1.stm32f 核心板 2.温湿度传感器(dht22) 3.电容4.3mm 红光 led 发光二极管 5.稳压集成块(l7805)6.整流桥 7.电解电容 8.保险座 10.电阻 11.变压器 12.电位器9.散热器13.排座14.5110 液晶屏模块四课程设计内容4.1 stm32 模块芯片的选择:stm32vet6芯片的介绍:内核:arm 32 位的 cortex-m3 cpu最 高 72mhz 工 作 频 率 , 在 存 储 器 的 0 等 待 周 期 访 问 时 可 达1.25dmips/mhz(dhrystone

12、2.1) 单周期乘法和硬件除法 存储器 从 64k 或 128k 字节的闪存程序存储器 高达 20k 字节的 sram 时钟、复位和电源管理 2.03.6 伏供电和 i/o 引脚 上电/断电复位(por/pdr)、可编程电压监测器(pvd) 416mhz 晶体振荡器 内嵌经出厂调校的 8mhz 的 rc 振荡器 内嵌带校准的 40khz 的 rc 振荡器 产生 cpu 时钟的 pll 带校准功能的 32khz rtc 振荡器 低功耗 睡眠、停机和待机模式 vbat 为 rtc 和后备寄存器供电 2 个 12 位模数转换器,1s 转换时间(多达 16 个输入通道) 转换范围:0 至 3.6v 双

13、采样和保持功能 温度传感器 dma: 7 通道 dma 控制器 支持的外设:定时器、adc、spi、i2c 和 usart图 4.1 stm32vet6 芯片引脚图图 4.2 stm32 芯片实物图4.2 am2302 的介绍4.2.1 产品概述am2302 湿敏电容数字温湿度模块是一款含有己校准数字信号输出的温 湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确 保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感 湿元件和一个高精度测温元件,并与一个高性能 8 位单片机相连接。因此 该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每 个传感器都在极为

14、精确的湿度校验室中进行校准。校准系数以程序的形式 储存在单片机中,传感器内部在检测信号的处理过程中要调用这些校准系数。标准单总线接口,使系统集成变得简易快捷。超小的体积、极低的功 耗,信号传输距离可达 20 米以上,使其成为各类应用甚至最为苛刻的应用 场合的最佳选择。产品为 3 引线(单总线接口)连接方便。特殊封装形式 可根据用户需求而提供。图 4.34.2.2 应用范围实物图外形尺寸(单位:mm)暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记 录器、家电、湿度调节器、医疗、气象站、及其他相关湿度检测控制等。4.2.3 产品亮点超低能耗、传输距离远、全部自动化校准、采用电容式

15、湿敏元件、完 全互换、标准数字单总线输出、卓越的长期稳定性、采用高精度测温元件。 4.2.4 单总线接口定义引脚1234名称vddsdancgnd描述电源(3.5v-5.5v) 串行数据,双向口 空脚地表 4.1 am2302 引脚分配表图 4.4 am2302 引脚分配图am2302 的供电电压范围为 3.5v-5.5v, 建议供电电压为 5v 。数据线 sda 引脚为 三态结构,用于读写传感器数据。4.2.5 传感器性能参数分辨率分辨率条件 m typ0.116ma单位%rhbit1252%rh重复性互换性21/e(63 %rh完全互换5 s迟滞3典型值0.0.%rh%rh/yr表 4.2

16、 am2302 相对湿度性能表参数分辨率分辨率精度量程范围重复性互换性响应时间漂移条件1/e(63mi-4typ max 单位0.1 16 bit0.5 1 80 0.2 完全互换1 s /yr表 4.3 am2302 相对温度性能表图 4.5 25时 am2302 的相对湿度最大误差 4.2.6 单总线通信温度传感器的温最大误差1 am2302 器件采用简化的单总线通信。单总线即只有一根数据线,系 统中的数据交换、控制均由数据线完成。设备(微处理器)通过一个漏极 开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线, 而让其它设备使用总线;单总线通常要求外接一个约 5.1k 的上

17、拉电阻, 这样,当总线闲置时,其状态为高电平。由于它们是主从结构,只有主机 呼叫传感器时,传感器才会应答,因此主机访问传感器都必须严格遵循单 总线序列,如果出现序列混乱,传感器将不响应主机。1 sda 用于微处理器与 am2302 之间的通讯和同步 , 采用单总线数据格 式,一次传送 40 位数据,高位先出。具体通信时序如图 4.5 所示,通信格 式说明见表 4.3 。名称起始信号响应信号数据格式湿度温度图4.5 am2302单总线通信协议单总线格式定义微处理器把数据总线( sda )拉低一段时间 ( 至少 800s) 1 ,通知传感器准备数据。传感器把数据总线( sda )拉低 80s,再接

18、高 80s 以响应 主机的起始信号。收到主机起始信号后,传感器一次性从数据总线( sda )串出 40 位数据,高位先出湿度分辨率是 16bit ,高位在前; 传感器串出的湿度值是实际 湿度值的 10 倍。温度分辨率是 16bit ,高位在前; 传感器串出的温度值是实际 温度值的 10 倍;温度最高位( bit15 )等于 1 表示负温度, 温度最高位( bit15 )等于 0 表示正温度;温度除了最高位校验位(bit14bit0 )表示温度值。校验位湿度高位 + 湿度低位 + 温度高位 + 温度低位 表4.3:am2302 通信格式说明用户主机(mcu )发送一次起始信号 (把数据总线 sd

19、a 拉低至少 800s) 后, am2302 从休眠模式转换到高速模式。待主机开始信号结束后, am2302 发送响应信号,从数据总线 sda 串行送出 40bit 的数据,先发送字节的高 位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验 位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式, 直到下一次通信来临。4.3 nokia 5110 介绍1) 84x48 的点阵 lcd,可以显示 4 行汉字,2) 采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源 和地在内的信号线仅有 9 条。支持多种串行通信协议(如 avr 单片机的i、 mcs51 的

20、串口模式等),传输速率高达 4mbps,可全速写入显示数据,无等待 时间。3) 可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将 模块固定到印制板上,因而非常便于安装和更换。4) lcd 控制器驱动器芯片已绑定到 lcd 晶片上,模块的体积很小。5) 采用低电压供电,工作电压为 3,3v,正常显示时的工作电流在 200a 以下, 且具有掉电模式。lph7366 的这些特点非常适合于电池供电的便携式通信设备和测试设备中。图 4.6 lph7366 供电电路图4.3.1 spi 接口时序写数据/命令nokia5110(pcd8544)的通信协议是一个没有 miso 只有 mosi

21、 的 spi 协议,如 果单片机有富裕的 spi 接口,也可以利用硬件 spi,但通常没有必要,只需要软 件程序模拟即可。4.3.2 显示汉字显示汉字可以采用两种点阵方式,一种是 12*12 点阵,一种是 16*16 点阵, 网上也有一个自动提取字模的小软件“3310 液晶显示屏汉字提取程序”,这个小 程序只适用于水平寻址(v=0)。采用 12*12 点阵汉字时,由于不是 8 的整数倍数,因此行与行之间只能隔开, 这样才能完整显示一个汉字。4.3.3 显示图形显示的图形像素大小不能超过 84*48。也有一个字模提取小软件 zimo21 可以帮 助我们得到图像的像素数组。但要注意 zimo21

22、软件的设置,不然的话就显示不了想 要的图片。4.4 原理图设计图 4.7电路板设计软件:altium图 4.8 传感器电路图 4.9 5110 显示屏电路图 4.10 电源电路图 4.11 实验原理图4.5 pcb 板设计要制作封装库首先必须对所需封装资料进行了解其长、宽、焊盘大小模块资 料上都会有提供,另外还包括管脚信息,管脚标号都要明确了解。图 4.12 pcb 板五试验软件设计5.1 温湿度传感器 dht22 的程序#include #include dht22.h/复位 dht22void dht22_rst(void)dht22_io_out(); /set outputdht22_

23、dq_out=0; /拉低 dqdelay_ms(20); /拉低至少 18ms dht22_dq_out=1; /dq=1delay_us(30); /主机拉高 2040usu8 dht22_check(void)u8 retry=0;dht22_io_in();/set inputwhile (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;wh

24、ile(dht22_dq_in&retry100)/等待变为低电平retry+;delay_us(1);retry=0;while(!dht22_dq_in&retry100)/等待变高电平retry+;delay_us(1);delay_us(40);/等待 40usif(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;/u8 dht22

25、_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% ;u8 t=0;u8 tem

26、perature,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=humidity%10+0x30;hum=humidit

27、y*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;num0;i-)for(j=110;j0;j-);void gpio_configuration_lcd(void)gpio_inittypedef gpio_initstructure;gpio_pinremapconfig(gpio_remap_swj_jtagdi

28、sable , enable);gpio_initstructure.gpio_pin = gpio_pin_8| gpio_pin_10;gpio_initstructure.gpio_mode = gpio_mode_out_pp;gpio_initstructure.gpio_speed = gpio_speed_50mhz;gpio_init(gpiod, &gpio_initstructure);gpio_initstructure.gpio_pin= gpio_pin_14| gpio_pin_15| gpio_pin_13;gpio_initstructure.gpio_mode

29、 = gpio_mode_out_pp;gpio_initstructure.gpio_speed = gpio_speed_50mhz;gpio_init(gpiob, &gpio_initstructure);#define width 6#define height 8#define width_cn 13#define height_cn 16unsigned char lcd_display=0123456789;const unsigned char font6 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , / sp 0x00, 0x00, 0x00

30、, 0x2f, 0x00, 0x00 , / ! 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 , / 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 , / # 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 , / $ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 , / % 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 , / & 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 , / 0x00, 0x00, 0x1c, 0x22, 0x41, 0x0

31、0 , / ( 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 , / ) 0x00, 0x14, 0x08, 0x3e, 0x08, 0x14 , / * 0x00, 0x08, 0x08, 0x3e, 0x08, 0x08 , / + 0x00, 0x00, 0x00, 0xa0, 0x60, 0x00 , / , 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 , / - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 , / . 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 , / / 0x00,

32、 0x3e, 0x51, 0x49, 0x45, 0x3e , / 0 0x00, 0x00, 0x42, 0x7f, 0x40, 0x00 , / 1 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 , / 2 0x00, 0x21, 0x41, 0x45, 0x4b, 0x31 , / 3 0x00, 0x18, 0x14, 0x12, 0x7f, 0x10 , / 4 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 , / 5 0x00, 0x3c, 0x4a, 0x49, 0x49, 0x30 , / 6 0x00, 0x01, 0x71,

33、0x09, 0x05, 0x03 , / 7 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 , / 8 0x00, 0x06, 0x49, 0x49, 0x29, 0x1e , / 9 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 , / : 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 , / ; 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 , / 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 , / ? 0x00, 0x32, 0x49, 0x59, 0x51, 0x3

34、e , / 0x00, 0x7c, 0x12, 0x11, 0x12, 0x7c , / a 0x00, 0x7f, 0x49, 0x49, 0x49, 0x36 , / b 0x00, 0x3e, 0x41, 0x41, 0x41, 0x22 , / c 0x00, 0x7f, 0x41, 0x41, 0x22, 0x1c , / d 0x00, 0x7f, 0x49, 0x49, 0x49, 0x41 , / e 0x00, 0x7f, 0x09, 0x09, 0x09, 0x01 , / f 0x00, 0x3e, 0x41, 0x49, 0x49, 0x7a , / g 0x00, 0

35、x7f, 0x08, 0x08, 0x08, 0x7f , / h 0x00, 0x00, 0x41, 0x7f, 0x41, 0x00 , / i 0x00, 0x20, 0x40, 0x41, 0x3f, 0x01 , / j 0x00, 0x7f, 0x08, 0x14, 0x22, 0x41 , / k 0x00, 0x7f, 0x40, 0x40, 0x40, 0x40 , / l 0x00, 0x7f, 0x02, 0x0c, 0x02, 0x7f , / m 0x00, 0x7f, 0x04, 0x08, 0x10, 0x7f , / n 0x00, 0x3e, 0x41, 0x

36、41, 0x41, 0x3e , / o 0x00, 0x7f, 0x09, 0x09, 0x09, 0x06 , / p 0x00, 0x3e, 0x41, 0x51, 0x21, 0x5e , / q 0x00, 0x7f, 0x09, 0x19, 0x29, 0x46 , / r 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 , / s 0x00, 0x01, 0x01, 0x7f, 0x01, 0x01 , / t 0x00, 0x3f, 0x40, 0x40, 0x40, 0x3f , / u 0x00, 0x1f, 0x20, 0x40, 0x20, 0x1

37、f , / v 0x00, 0x3f, 0x40, 0x38, 0x40, 0x3f , / w 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 , / x 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 , / y 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 , / z 0x00, 0x00, 0x7f, 0x41, 0x41, 0x00 , / 0x00, 0x55, 0x2a, 0x55, 0x2a, 0x55 , / 55 0x00, 0x00, 0x41, 0x41, 0x7f, 0x00 , / 0x00, 0x

38、04, 0x02, 0x01, 0x02, 0x04 , / 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 , / _ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 , / 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 , / a 0x00, 0x7f, 0x48, 0x44, 0x44, 0x38 , / b 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 , / c 0x00, 0x38, 0x44, 0x44, 0x48, 0x7f , / d 0x00, 0x38, 0x54, 0x54, 0

39、x54, 0x18 , / e 0x00, 0x08, 0x7e, 0x09, 0x01, 0x02 , / f 0x00, 0x18, 0xa4, 0xa4, 0xa4, 0x7c , / g 0x00, 0x7f, 0x08, 0x04, 0x04, 0x78 , / h 0x00, 0x00, 0x44, 0x7d, 0x40, 0x00 , / i 0x00, 0x40, 0x80, 0x84, 0x7d, 0x00 , / j 0x00, 0x7f, 0x10, 0x28, 0x44, 0x00 , / k 0x00, 0x00, 0x41, 0x7f, 0x40, 0x00 , /

40、 l 0x00, 0x7c, 0x04, 0x18, 0x04, 0x78 , / m 0x00, 0x7c, 0x08, 0x04, 0x04, 0x78 , / n 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 , / o 0x00, 0xfc, 0x24, 0x24, 0x24, 0x18 , / p 0x00, 0x18, 0x24, 0x24, 0x18, 0xfc , / q 0x00, 0x7c, 0x08, 0x04, 0x04, 0x08 , / r 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 , / s 0x00, 0x04,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论