1项目设计报告姓名xxx班级电信17-3班学号xxx项目名称智能家居同组人xxx设计目标本设计主要分为回家和在家两个场景:1、回家的场景:回家的时候需要输入密码解锁才能开门,而在这次设计中,我们通过串口发送密码来点亮OLED屏幕,密码正确则OLED屏幕被点亮,即解锁成功;如果密码错误则OLED屏幕处于锁定状态,其它功能也不能被实现,直到密码输入正确为止,串口一直处于检测状态。2、在家的场景:在家的时候主要分为三个模块,即光照强度监测模块、温湿度监测模块和超声波测距模块,各个模块都能够进行实时地监测并把检测到的数据传送到OLED屏幕上显示,而且,当光照强度很弱的时候实现LED跑马灯的功能。功能描述1、密码输入功能:首先先设定一个密码,我们的密码是一个字符“a”,然后通过串口来发送密码,如果发送的是字符a,则在串口上显示密码正确,同时唤醒OLED屏幕,并显示主页面;反之,显示密码错误,OLED屏幕依然处于锁定状态;2、光照强度监测功能:能够实时监测光照强度,并把检测到的数据显示在OLED屏幕上,当光照强度小于等于350的时候,点亮LED灯并实现跑马灯的功能;而光照强度大于350的时候,关闭LED灯;3、温湿度监测功能:能够实时地监测温湿度,并把检测到的数据显示到OLED屏幕上,当温度大于等于35或者适度大于等于70的时候,蜂鸣器报警;4、超声波测距功能:能够实时监测出距离,并把检测到的数据显示到OLED屏幕上,当距离小于等于20cm时,蜂鸣器报警。2设计方案智能家居监控系统的总体设计框图如下图所示。该系统采用的主要模块是STM32F407ZE系列的单片机,负责对信息的接收和处理,将各个模块收集到的模拟信号转换成数字信号,以便OLED屏显示出来。而智能家居监控系统需要实现监控温湿度、光照强度、密码开锁等信号并及时的做出回应。本课程设计了一款智能家居环境监测报警系统,能够实时监测火灾、光照强度等温湿度异常、外人闯入等危险状态。图1智能家居系统框图该智能家居监控系统由超声波模块、温湿度模块、光敏电阻、OLED显示模块、蜂鸣器报警模块、LED显示以及按键输入模块组成基本的检测外设,由STM32F407ZE来对各个外设进行控制。其中超声波模块、温湿度模块和光敏电阻将检测到的一些外界环境因素的变化,转换成相应的电压变化,这便有利于在OLED显示屏等观察到相应的现象。3系统框架本系统是典型的嵌入式技术应用于测控系统,以嵌入式为开发平台,系统以32位单片机STM32F407ZE为主控制器对各传感器数据进行采集,经过分析后去控制各执行设备。硬件电路部分为:微控制器最小系统电路、数据采集电路(光敏电路、温湿度传感器、超声波模块)、输出控制电路(OLED显示屏、蜂鸣器、发光二极管)组成。图2LED电路图其发光二极管一段连接3.3V的电源,而另一端则连接着STM32F407ZE单片机的GPIO口,同时可以看出当外设给一个低电平时,发光二极管则被点亮。图3按键电路但按键按下时,则输出一个低电位;当按键不按时,则输出高电位。图4蜂鸣器电路4当输入一个高电平时,三极管将处于导通状态,此时蜂鸣器将正常工作;而当输入一个低电平时,三极管将处于截止状态,无法正常工作。图5串口电路图串口的RXD和TXD分别连接STM32F407ZE单片机的U1_TX和U1_RX,分别表示数据的接收和传输;而串口UART1的3、4口连接A—A口线的两端,用于对数据的传输。图6光敏传感器电路图其原理利用的是光敏二级管对光照强度的敏感性,通过光照强度的不同,其光敏二极管的导电率也会发生相应的改变,从而使R24的电压值发生改变,从而导致输出电压的大小发生改变。软件设计:主要控制光敏电阻电压采集处理与控制部分、温度采集处理与控制部分、霍尔传感器报警部分和辅助指示部分。数模转换(ADC)外设用于将连续的模拟电压转换成离散的数字量。ADC模块含有一个可编程的序列发生器,它可在无需控制器的干扰的情况下对多个模拟输入进行采样。同时我们采用I2C模块,I2C为两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。同时通信方式为半双工。5硬件设计:我们用串口对单片机和电脑通信,同时将各个模块与单片机连线,来检测各个环境的参数,同时用按键对各个监测模块进行切换,同时用串口和OLED显示屏来显示各个模块监测到的数据值。6实现过程设计的过程中,我们是分模块进行的,也就是说先实现单个模块的功能,最后在进行整合。我们首先做的是控制LED灯的显示以及蜂鸣器的报警,这个部分主要是利用库函数编程的方式来对相应引脚的进行配置,然后通过一个按键来点亮LED灯以及蜂鸣器报警的功能;紧接着,我们依次实现了超声波测距的功能、温湿度的监测功能以及光照强度的监测功能;我们最后做的是串口发送密码以及OLED屏幕显示模块;在整个设计中,我主要负责的是LED灯的显示、蜂鸣器的报警、超声波测距模块的设计以及硬件的连接。超声波测距功能的实现:本模块可以实时监测距离,并把监测数据动态地显示到OLED屏幕上,而且,当测量距离小于等于20cm时,蜂鸣器报警;当测量距离大于20cm时,蜂鸣器不报警。图7测量距离小于等于20cm图8测量距离大于20cm7光照强度监测功能的实现:本模块可以实时地监测光照强度,并把数据动态显示到OLED屏幕上,当光照强度很弱时即监测到的数据大于等于350时,实现LED跑马灯的功能;当光照强度很弱时即监测到的数据大于等于350时,关闭LED灯。图9监测数据大于等于350图10监测数据小于350温湿度监测功能的实现:本模块可以实时监测距离,并把监测数据动态地显示到OLED屏幕上,TEMP表示温度,HUMA表示湿度。8图11温湿度显示串口发送密码功能的实现:本模块可以实现密码的输入,当密码输入正确是,唤醒OLED屏幕,显示主页面。图12串口显示图13主页面9硬件部分:整体接线图如图14所示。图14硬件整体接线图心得体会这一次的课程设计,不仅让我学到了很多关于单片机STM32的相关知识,还能将学到的知识应用到实践中,这同时也大大提升了我动手的能力;但这一次的课程设计,也让我真真正正的意识到自己的单片机基础有多菜,很多低层次的问题都不能解决,也许是我们没有学51单片机吧,所以学习STM32的时候才如此困难。这次课设能够完成,还得感谢公司过来的老师们的培训,也感谢学校给我们的这次机会,不然以我们的基础,想要完成任务真的很难,希望学校以后能提供更多这样的机会,让我们可以理论知识与实践相结合,提升动手能力;因为还要准备理论课的考试,所以这次课设的时间还是有点紧,不然应该还可以完成得更好。总之,这次课设让我收获很大,让我对单片机和嵌入式产生了很大的兴趣,感谢老师的指导,感谢学校提供的机会。总分:考核教师:评语: