第一组CAD课程设计初稿Word格式.docx
《第一组CAD课程设计初稿Word格式.docx》由会员分享,可在线阅读,更多相关《第一组CAD课程设计初稿Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
6小结12
参考文献13
附录13
附1部分源代码13
附2部分模块原理图17
附3所用主要元器件列表18
基于单片机的智能家居硬件系统设计
摘要
物联网技术的兴起与发展,不仅改变了我们的工作方式,也逐渐改变了我们的生活方式。
不仅要求办公自动化、智能化也要求家居生活逐渐的变得智能化,智能家居就是这样产生的。
智能家居就是利用计算机、嵌入式系统和网络通信技术将各种设施和网络连接起来对家居环境进行自动化的监测,对家居设备进行自动化的控制。
本课程设计是基于单片机的智能家居系统的硬件设计,采用arduino单片机作为主控芯片,控制火焰传感器、人体感应传感器、光线传感器等智能化传感器来监测家居系统中的环境因素,同时利用传感器采集到的数据反馈给步进电机等控制装置,对家居设备进行自动化控制,实现集环境监测与自动化控制于一体的智能家居硬件系统。
关键字:
智能家居;
硬件系统;
arduino单片机;
传感器;
1设计要求
1.1课程设计目的
本课程设计旨在设计一个集环境监测、自动化控制于一体的智能家居硬件系统,通过对该硬件系统的设计,熟悉和了解硬件系统的设计流程,加深对单片机理论课的学习,提高动手实践及熟练运用所学理论知识的能力;
同时通过对智能家居系统的设计加深对物联网的理解,提高专业素养。
1.2课程设计任务
(1)掌握硬件系统设计的基本流程;
(2)学会arduino单片机的简单使用及熟悉其编程、烧录环境;
(3)掌握相关数字传感器及模拟传感器的工作原理及编程;
(4)利用arduino单片机及相关传感器设备制作智能家居硬件系统。
2智能家居的发展
2.1智能家居发展近况
智能家居作为一个新生产业,处于一个导入期与成长期的临界点,市场消费观念还未形成,但随着智能家居市场推广普及的进一步落实,培育起消费者的使用习惯,智能家居市场的消费潜力必然是巨大的,产业前景广阔。
正因为如此,国内优秀的智能家居生产企业愈来愈重视对行业市场的研究,特别是对企业发展环境和客户需求趋势变化的深入研究,一大批国内优秀的智能家居品牌迅速崛起,逐渐成为智能家居产业中的翘楚。
智能家居至今在中国已经历了近12年的发展,从人们最初的梦想,到今天真实的走进我们的生活,经历了一个较长的发展过程。
2.2智能家居发展趋势
相关预测显示,到2015年,全球智能家居市场规模将达1240亿美元。
为此,众多智能家居集成商都在竞相发力抢占市场商机。
由于政策、市场等条件的支持,智能家居行业发展前景备受看好。
同时,物联网是国家重点发展战略,在国内掀起一股发展大潮,智能家居作为物联网在家庭中的典型应用,倡导了一种健康舒适、快捷便利、低碳节能的生活方式,带动了家装、房地产等多个相关联产业的发展,自然受到国家的高度重视和人们的欢迎。
因此,智能家居的发展可以说是社会发展的必然趋势,智能家居也必将是非常具有市场前景的一个产业。
3系统设计概述
3.1系统功能简介
本系统利用arduino单片机控制火焰传感器、人体感应传感器、光线传感器及步进电机等设备对家居环境中的火焰、光照、人体活动情况进行监测,当检测到异常状况时,利用单片机控制蜂鸣器进行异常报警,同时单片机利用传感器采集的数据还能控制步进电机工作。
其中火焰传感器为数字量输出传感器当检测到火焰时,向单片机I/O口传送低电平;
人体感应传感器也是数字量输出传感器,当监测到活动的人体时向单片机I/O口传送高电平,人体感应传感器可与光线传感器协调使用,使人体感应传感器只在夜晚工作;
步进电机也可与光线传感器协调使用,用来控制窗帘等设备。
3.2系统设计框图
下图为系统设计框图:
图3-1系统设计框图
3.3程序设计流程图
下图所示为系统程序设计流程图:
4硬件系统设计简介
4.1arduino单片机简介
如下图所示为本课程设计所使用arduino单片机的实物图,arduino单片机版本众多,本课程设计使用的是arduinoUNO,下面对arduinoUNO进行简单介绍。
图4-1arduino单品机实物图
4.1.1相关参数
▪处理器ATmega328
▪工作电压5V
▪输入电压(推荐)7-12V
▪输入电压(范围)6-20V
▪数字IO脚14(其中6路作为PWM输出)
▪模拟输入脚6
▪IO脚直流电流40mA
▪3.3V脚直流电流50mA
▪FlashMemory32KB(ATmega328,其中0.5KB用于bootloader)
▪SRAM2KB(ATmega328)
▪EEPROM1KB(ATmega328)
▪工作时钟16MHz
4.1.2供电方式
ArduinoUNO可以通过3种方式供电,而且能自动选择供电方式
▪外部直流电源通过电源插座供电。
▪电池连接电源连接器的GND和VIN引脚。
▪USB接口直接供电。
电源引脚说明
▪VIN---当外部直流电源接入电源插座时,可以通过VIN向外部供电;
也可以通过引脚向UNO直接供电;
VIN有电时将忽略从USB或者其他引脚接入的电源。
▪5V---通过稳压器或USB的5V电压,为UNO上的5V芯片供电。
▪3.3V---通过稳压器产生的3.3V电压,最大驱动电流50mA。
▪GND---地脚。
4.1.3输入输出口简介
1.14路数字输入输出口:
工作电压为5V,每一路能输出和接入的最大电流为40mA。
每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。
除此之外,有些引脚有特定的功能:
▪串口信号RX(0号)、TX(1号):
与内部ATmega8U2USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。
▪外部中断(2号和3号):
触发中断引脚,可设成上升沿、下降沿或同时触发。
▪脉冲宽度调制PWM(3、5、6、9、10、11):
提供6路8位PWM输出。
▪SPI(10(SS),11(MOSI),12(MISO),13(SCK)):
SPI通信接口。
▪LED(13号):
Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。
2.6路模拟输入A0到A5:
每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。
除此之外,有些引脚有特定功能:
▪AREF:
模拟输入信号的参考电压。
▪Reset:
信号为低时复位单片机芯片。
4.2火焰传感器模块简介
图4-2火焰传感器实物图
上图所示即为本课程设计中所用火焰传感器实物图,下面对其进行简单介绍
4.2.1工作原理
火焰是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。
火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。
不同燃烧物的火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度的近红外波长域及紫外光域具有很大的辐射强度,根据这种特性可制成火焰传感器。
4.2.2模块特色
1、可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰距离为80cm,对火焰越大,测试距离越远。
2、探测角度60度左右,对火焰光谱特别灵敏。
3、灵敏度可调(图中蓝色数字电位器调节)。
4、比较器输出信号干净、波形好,驱动能力强,超过15mA。
5、配可调精密电位器调节灵敏度。
6、工作电压3.3V-5V。
7、输出形式:
DO数字开关量输出(0和1)和AO模拟电压输出。
8、设有固定螺栓孔,方便安装。
9、小板PCB尺寸:
3.2cmx1.4cm。
10、使用宽电压LM393比较器。
4.2.3模块使用说明
1、火焰传感器对火焰最敏感,对普通光也是有反应的,一般用做火焰报警等用途。
2、小板输出接口可以与单片机IO口直接相连。
3、传感器与火焰要保持一定距离,以免高温损坏传感器,对打火机测试火焰距离为80cm,火焰越大,测试距离越远。
4.3HC-SR501人体感应模块简介
图4-3HC-SR501模块实物图
4.3.1电气参数
表4-1HC—SR501模块电气参数
4.3.2功能特点
1、全自动感应:
人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电
平,输出低电平。
2、光敏控制(可选择,出厂时未设)可设置光敏控制,白天或光线强时不感应。
3、温度补偿(可选择,出厂时未设):
在夏天当环境温度升高至30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。
4、两种触发方式:
(可跳线选择)
a、不可重复触发方式:
即感应输出高电平后,延时时间段一结束,输出将自动从高电
平变成低电平;
b、可重复触发方式:
即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。
5、具有感应封锁时间(默认设置:
2.5S封锁时间):
感应模块在每一次感应输出后(高电平变成低电平),可以紧跟着设置一个封锁时间段,在此时间段内感应器不接受任何感应信号。
此功能可以实现“感应输出时间”和“封锁时间”两者的间隔工作,可应用于间隔探测产品;
同时此功能可有效抑制负载切换过程中产生的各种干扰。
(此时间可设置在零点几秒--几十秒)。
6、工作电压范围宽:
默认工作电压DC4.5V-20V。
7、微功耗:
静态电流<
50微安,特别适合干电池供电的自动控制产品。
8、输出高电平信号:
可方便与各类电路实现对接。
4.4光线传感器简介
本课程设计中用光敏电阻作为光线传感器,可根据检测到的光强输出0-1023的模拟值,光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;
入射光强,电阻减小,入射光弱,电阻增大。
光敏电阻的工作原理是基于内光电效应。
在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。
用于制造光敏电阻的材料主要是金属的硫化物、硒化物和碲化物等半导体。
通常采用涂敷、喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮影响其灵敏度。
在黑暗环境里,它的电阻值很高,当受到光照时,只要光子能量大于半导体材料的禁带宽度,则价带中的电子吸收一个光子的能量后可跃迁到导带,并在价带中产生一个带正电荷的空穴,这种由光照产生的电子—空穴对了半导体材料中载流子的数目,使其电阻率变小,从而造成光敏电阻阻值下降。
光照愈强,阻值愈低。
入射光消失后,由光子激发产生的电子—空穴对将复合,光敏电阻的阻值也就恢复原值。
在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到波长的光线照射时,电流就会随光强的而变大,从而实现光电转换。
光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。
半导体的导电能力取决于半导体导带内载流子数目的多少。
4.5步进电机简介
图4-4步进电机及达林顿管实物图
上图所示即为步进电机实物图,在使用时一般要加上达林顿管作为驱动电路,下面对其进行简单介绍。
4.5.1步进电机工作原理
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;
同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
4.5.2步进电机电气特性
额定电压:
5VDC
相数:
4减速比:
1/64
步距角:
5.625°
/64
频率:
100HZ
直流电阻:
50Ω±
7%(25℃)
空载牵入频率:
≥600Hz
空载牵出频率:
≥1000Hz
牵入转矩:
≥34.3mN.m(120Hz)
自定位转矩:
≥34.3mN.m
绝缘电阻:
>10MΩ(500V)
绝缘介电强度:
600VAC/1mA/1S
绝缘等级:
A温升:
<50K(120Hz)
噪音:
<35dB(120Hz,NoLoad,10cm)
4.5.3步进电机驱动方式
本课程设计所使用的步进电机型号为28BYJ-48是四相八(A-AB-B-BC-C-CD-D-DA-A…)电机,Arduino的输出直接接到电机上可能无法正常工作,我们要对它进行驱动,最简单的办法就是在Arduino的输出端口连接一个ULN2003A,它是一个7路反向器电路,每一通道允许的最大电流500mA。
ULN2003A与电机的连接如下图示,图上可以看出,只要我们控制Arduino的4个数字端口就可以达到控制电机的目的。
图4-5步进电机驱动图
5硬件电路图
5.1面包板连线图
下图所示为本硬件系统的连线图:
图5-1面包板连线图
5.2原理图
下图为本硬件系统原理图:
图5-2系统原理图
6小结
为时两周的CAD课程设计已接近尾声,我们的课题为基于单片机的智能家居硬件系统设计。
由于本系统不仅有硬件电路部分,还要编写程序,因此在具体的制作过程中我们遇到了很多问题,实验结果常常不像我们想的那样,在出现问题时,由于不知道是程序的问题还是硬件电路的问题,调试和排错难度比较大。
但是在大家的通力合作下,我们还是顺利的完成了本课程设计。
除此之外,在绘制原理图的过程中也遇到了一些问题,例如如何合理放置原件,如何将电路图制作得美观等等,当然这些都需要大量的练习,在以后的学习中我们会不断地提高与改进。
本次课程设计虽然历时不长,但是大家在其过程中学会了如何完善知识体系和如何提高团队协作能力,对于单片机的使用和本专业学习的知识也得到了很好的巩固。
同时也感谢智慧老师对于我们CAD课程设计的帮助和指导。
由于制作时间比较紧,很多方面都做得比较粗糙,现提出改进方案如下:
(1)主控芯片可选用51单片机以便与我们的理论学习接轨;
(2)加入GSM模块,当检测到异常时可以向手机发送短信;
(3)加入摄像头模块采集图片信息,实现家居环境的监控功能;
(4)绘制原理图时使用更专业的软件,这样绘出的原理图会美观一些。
参考文献
[1]程晨.arduino电子设计实战指南.机械工业出版社.
[2]孙俊荣,吴明展,卢聪勇.Arduin一始就上手.科学出版社.
附录
附1部分源代码
1、火焰传感器程序
#defineADpin0
#defineBuzzer2
voidsetup()
{pinMode(ADpin,INPUT);
pinMode(Buzzer,OUTPUT);
Serial.begin(9600);
}
voidloop()
{intADBuffer;
ADBuffer=digitalRead(ADpin);
Serial.print("
AD="
);
Serial.println(ADBuffer);
if(ADBuffer==0)
{
digitalWrite(Buzzer,HIGH);
delay(1000);
}
else
{digitalWrite(Buzzer,LOW);
}
2、人体感应模块程序
#defineADpin7
if(ADBuffer==1)
3、光线传感器程序
#defineADpinA5
#defineLED13
intADBuffer=0;
{
pinMode(LED,OUTPUT);
//波特率9600
ADBuffer=analogRead(ADpin);
//读取AD值
if(ADBuffer>
800)//ADBuffer值大于设定值,相当于光照强度小于设定值
digitalWrite(LED,HIGH);
//点亮LED
digitalWrite(LED,LOW);
//关闭LED
delay(500);
//延时500ms
4、步进电机程序
#include<
Arduino.h>
#defineA12//引脚命名
#defineB13
#defineC14
#defineD15
pinMode(A1,OUTPUT);
//设置引脚为输出引脚
pinMode(B1,OUTPUT);
pinMode(C1,OUTPUT);
pinMode(D1,OUTPUT);
Phase_A();
//设置A相位
delay(10);
//改变延时可改变旋转速度
Phase_B();
//设置B相位
Phase_C();
//设置C相位
Phase_D();
//设置D相位
phase_E();
phase_F();
phase_G();
phase_H();
voidPhase_A()
digitalWrite(A1,HIGH);
//A1引脚高电平
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
voidPhase_B()
digitalWrite(A1,LOW);
digitalWrite(B1,HIGH);
//B1引脚高电平
voidPhase_C()
digitalWrite(C1,HIGH);
//C1引脚高电平
voidPhase_D()
digitalWrite(D1,HIGH);
//D1引脚高电平
voidPhase_E()
voidPhase_F()
//B1引脚高电平
voidPhase_G()
//A1引脚高电平
voidPhase_H()
附2部分模块原理图
1、火焰传感器模块电路图
2、HC—SR501模块感应范围图
3、步进电机时序图
附3所用主要元器件列表
序号
元器件
数量
1
Arduino主板
2
火焰传感器模块
3
HC—SR501模块
4
达林顿管
5
步进电机
6
光敏电阻
7
蜂鸣器
8
LED灯
9
面板版
10
面包线
若干
11
供电电源模块
12
下载线
13
10K电阻