智能家居之窗帘控制系统.docx
《智能家居之窗帘控制系统.docx》由会员分享,可在线阅读,更多相关《智能家居之窗帘控制系统.docx(13页珍藏版)》请在冰豆网上搜索。
智能家居之窗帘控制系统
洛阳理工学院
课程设计报告
课程名称物联网综合实训
设计题目智能家居之窗帘控制系统
专业计算机应用技术
班级
学号
姓名
完成日期2015-01-16
课程设计任务书
设计题目:
智能家居之窗帘控制系统
设计内容与要求:
基于STC90C516R单片机的智能窗帘的设计,以51单片机为内核的控制器作为整个系统的控制核心,手机与蓝牙模块实现短距离通信,蓝牙模块和单片机进行串口通信,单片机接收到指令开中断控制电机驱动,电机驱动控制电机正反转,达
到智能开关窗帘的效果。
要求如下:
1.手机软件的编写
2.掌握L298N直流电机驱动的使用方法及原理
3.掌握蓝牙模块使用方法
4.硬件模块的整合调试
5.了解STC90C516R单片机以及晶振电路对串口通信的影响
6.负责整体的框架以及软硬件的整合、调试
指导教师:
2015年1月4日
课程设计评语
成绩:
指导教师:
第一章项目背景1
1.1项目来源1
1.2开发目标1
第二章系统总体设计2
2.1智能窗帘系统的功能特点2
2.2系统总体结构图2
第三章智能窗帘系统硬件部分3
3.1直流电机硬件部分3
3.2直流电机驱动硬件部分3
3.2.1L298N简介3
3.2.2L298N工作原理4
3.2.3L298N实现正反转及停止的工作方式5
3.3蓝牙模块硬件部分5
3.3.1HC-06蓝牙模块简介5
3.3.2HC-06蓝牙模块的工作原理6
3.3.3HC-06蓝牙模块的串口通信7
3.4晶振电路硬件部分7
3.4.1晶振电路的作用7
3.4.2晶振电路对串口通信的影响7
第四章系统功能模块的软件设计8
4.1有关Android的蓝牙知识8
4.2Android关键程序8
4.3实训项目总体效果11
第五章实训心得12
参考文献13
第一章项目背景
1.1项目来源
随着国民经济的发展和科学技术水平的提高,特别是计算机技术,通信技术、
网络技术、控制技术的迅猛发展与提高,促使家庭实现了生活现代化,居住环境舒适化。
这些高科技已经影响到人们生活的方方面面,改变了人们的生活习惯,提高了人们的生活质量,智能家居在这种形势下应运而生。
在现代生活中,窗帘再不仅仅只起到遮挡光线的简单的作用。
它在整体家居中的装饰作用越来越突出。
据调查发现,居民因迁入新居而购买窗帘布艺产品平均每单花费在4000元以上,且不乏一次花费在2万元以上者。
因此,以迁入新居或装修后进行家用纺织品消费为特征的消费需求增长,成为家用纺织品消费的主流,明显地表现为刚性需求的增长。
另外,随着人们对居住环境的要求不断地提高,智能化的家居产品在人们的生活中将会逐渐被认识和采纳,智能窗帘也正以其强大的人性化功能、惊人的发展速度以及巨大的市场前景崭露头角。
1.2开发目标
本课题抓住“智能家居”这一理念,在设计中力求人性化的智能控制,给用户带来最佳的体验。
本设计以STC90C516R单片机⑴为控制核心,用蓝牙控制窗帘的开关,让用户拥有更好的体验。
第二章系统总体设计
通过分析功能,本设计的系统模块如图2-1所示:
图2-1系统模块
2.1智能窗帘系统的功能特点
本智能窗帘系统的具有的功能特点是,在蓝牙通信的有效距离内,可以通过移动终端(APP)控制窗帘的开和关。
2.2系统总体结构图
移动终端发送指令由蓝牙模块传输到单片机,单片机控制电机驱动模块,实现窗帘的智能开关。
图2-2系统设计
第三章智能窗帘系统硬件部分
3.1直流电机硬件部分
本设计采用的微型直流电机进行的模拟演示,具体参数为:
尺寸:
20*15*25
轴长:
8mm、轴径:
2mm、电压:
1-6v、参考电流:
0.35-0.4A、3v转速:
17000-18000转每
分钟,如图3-1:
图3-1直流电机
3.2直流电机驱动硬件部分
3.2.1L298N简介
L298N是SGS公司的产品如图3-2,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,
接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如图3-3中所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
图3-2L298N芯片
CURRENTSENSINGE
OUTPUTJ
OUTPUT3
MKfl4
ENMJL£&
HWT3
LOGICSUPPLYVOLTAGEVK
时
fMfVT?
EHABtEA
LNFVT1
&JPPl¥VaTAGEVs
OUTPUT2
OUTPUT1
图3-3L298N引脚图
CIPRF^TSFftiSIMni
3.2.2L298N工作原理
L298可驱动2个电机,OUTI、OUT2和OUT3OUT4之间分别接2个电动机。
5、7、10、12脚接输入控制电平,控制电机的正反转,ENAENB
接控制使能端,控制电机的停转[3]。
1298的逻辑功能如表1所列。
表3-1逻辑功能
ENA(O
TWl(IN3)
IN2CIN■!
)
电机运行情:
兄
H
H
L
正转
H
L
H
H
FfJiML(LN4)
raiw丄(ms)
快連停止
L
K
偉止
323L298N实现正反转及停止的工作方式
voidGo(void)
{
ENA=1;//电机驱动的使能端,给高电平时,准备进入工作状态
IN1=1;//IN1、IN2两个引脚接到单片机的10口,单片机通过给IN1、IN2不同
IN2=0;〃的高低电平,实现电机的正反转,
Delay_1ms(5000);〃调用延时函数,延时5s
}
voidBack(void)
{ENA=1;
IN仁0;
IN2=1;
Delay_1ms(5000);}
voidStop(void)
{
ENA=0;//电机驱动的使能端,给低电平时,电机驱动停止工作。
IN仁0;
IN2=0;}
3.3蓝牙模块硬件部分
本设计米用HC-06蓝牙模块与移动终端和单片机进行通信。
3.3.1HC-06蓝牙模块简介
蓝牙(BlueTooth)是一种支持设备短距离通信的无线电技术,功率级别分
CLASS100米距离和CLASS2I0米距离两种。
能在包括移动电话、PDA无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。
蓝牙的标准是IEEE802.15,工作在2.4GHz频带,带宽可达3Mb/s。
本设计用的是HC-06型号的
蓝牙模块。
如图3-4.
图3-4蓝牙模块
3.3.2HC-06蓝牙模块的工作原理
1.蓝牙通信的主从关系
蓝牙技术[2]规定每一对设备之间进行蓝牙通讯时,必须一个为主角色,另一为从角色,才能进行通信,通信时,必须由主端进行查找,发起配对,建链成功后,双方即可收发数据。
理论上,一个蓝牙主端设备,可同时与7个蓝牙从端设
备进行通讯。
一个具备蓝牙通讯功能的设备,可以在两个角色间切换,平时工作
在从模式,等待其它主设备来连接,需要时,转换为主模式,向其它设备发起呼叫。
一个蓝牙设备以主模式发起呼叫时,需要知道对方的蓝牙地址,配对密码等信息,配对完成后,可直接发起呼叫。
2.蓝牙的呼叫过程
蓝牙主端设备发起呼叫,首先是查找,找出周围处于可被查找的蓝牙设备,此时从端设备需要处于可被查找状态,如:
蓝牙耳机需要按键操作才能进入可被查找状态。
主端设备找到从端蓝牙设备后,与从端蓝牙设备进行配对,此时需要输入从端设备的PIN码,一般蓝牙耳机默认为:
1234或0000,立体声蓝牙耳机默认为:
8888,也有设备不需要输入PIN码。
配对完成后,从端蓝牙设备会记录主端设备的信任信息,此时主端即可向从端设备发起呼叫,根据应用不同,可能是ACL数据链路呼叫或SCO语音链路呼叫,已配对的设备在下次呼叫时,不再需要重新配对。
已配对的设备,做为从端的蓝牙耳机也可以发起建链请求,但做数据通讯的蓝牙模块一般不发起呼叫。
链路建立成功后,主从两端之间即可进行双向的数据或语音通讯。
在通信状态下,主端和从端设备都可以发起断链,断开蓝牙
链路。
3.3.3HC-06蓝牙模块的串口通信
蓝牙数据传输应用中,一对一串口数据通讯是最常见的应用之一,蓝牙设备在出厂前即提前设好两个蓝牙设备之间的配对信息,主端预存有从端设备的PIN
码、地址等,两端设备加电即自动建链,透明串口传输,无需外围电路干预。
一
对一应用中从端设备可以设为两种类型,一是静默状态,即只能与指定的主端通信,不被别的蓝牙设备查找;二是开发状态,既可被指定主端查找,也可以被别的蓝牙设备查找建链。
3.4晶振电路硬件部分
3.4.1晶振电路的作用
晶振电路的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,
便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振电路通常与锁相环电路配合使用,以提供系统所需的时钟频率。
3.4.2晶振电路对串口通信的影响
11.0592MHz能够准确地划分成时钟频率,与UART通用异步接收器/发送器)常见的波特率相关。
特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。
用11.0592MHz可以得到准确的数值,而用12MHz就不能得到整数数值。
通信是一定要准确发送和接受的,否则积累误差就会产生。
第四章系统功能模块的软件设计
4.1有关Android的蓝牙知识
在蓝牙中,每个服务和服务属性都唯一地由"全球唯一标识符"(UUID)来
校验。
正如它的名字所暗示的,每一个这样的标识符都要在时空上保证唯一。
UUID类可表现为短整形(16或32位)和长整形(128位)UUID。
他提供了分别利用String和16位或32位数值来创建类的构造函数,提供了一个可以比较两个UUID(如果两个都是128位)的方法,还有一个可以转换一个UUID为一个字符串的
方法。
UUID实例是不可改变的(immutable),只有被UUID标示的服务可以被发现。
1.两边的UUID必须是一样的,这是一个服务的唯一标识,而且这个UUID的值必须是00001101-0000-1000-8000-00805F9B34FB因为什么呢?
因为这个是android的API上面说明的,用于普通蓝牙适配器和android手机蓝牙模块连接的。
2•在连接的时候,如果电脑作为server(一直监听是否有服务连接),android手机作为client(主动和电脑建立连接),则需要在手机端调用这样一行代码:
mmSocket.connect()其中mmSocket是一个BluetoothSocket类。
4.2Android关键程序
Android程序由蓝牙通信发送指令到单片机,以下发送的”S””E””W为三种状态,”S”示停止窗帘的开关;”E表示窗帘的开;”W表示窗帘的关。
//curtainup
mbutton_curtain_up.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//Sendamessageusingcontentoftheedittextwidget
Stringmessage="S";
sendMessage(message);
});
//curtaindown
mbutton_curtain_down.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//Sendamessageusingcontentoftheedittextwidget
Stringmessage="W";
sendMessage(message);
}
});
//curtainstop
mbutton_curtain_stop.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//Sendamessageusingcontentoftheedittextwidget
Stringmessage="E";
sendMessage(message);
}
});
classTD2extendsThread{
privatefinalintt;
publicTD2(intt){
super();
this.t=t;
}
@Override
publicvoidrun(){
try{
Thread.sleep(t*1000);
Stringmessage="E";
sendMessage(message);
Thread.sleep(5*1000);//电机转动5s后停止
Stringmessagel="S";
sendMessage(message1);
}catch(InterruptedExceptione){
e.printStackTrace();
}
};
}
定时功能部分代码,可以设置定时时长。
timer_curtain_down.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
Stringstr=et_time.getText().toString();
if(!
TextUtils.isEmpty(et_time.getText())){
finalintt=Integer.parseInt(str);
Toast.makeTex(BluetoothChat.this,"定时"+t+"秒",0).show();td2=newTD2(t);
if(t1!
=null&&t1.isAlive()){
t1.interrupt();
}
if(t2!
=null&&t2.isAlive()){
t2.interrupt();
}
if(td1.isAlive()){
td1.interrupt();
}
td2.start();
}else{
Toast.makeText(BluetoothChat.this,"请输入有效值!
",0).show();
return;
}
}
}
);
4.3实训项目总体效果
图4-1硬件总体效果图图4-2移动终端界面
如图4-2所示,当蓝牙完成配对时,点击UP电机正向转动,窗帘打开;点击
down电机反转,窗帘关闭;点击stop电机停止转动。
在定时框里可以填入要定时的时间,填完时间后可以点击up(定时)或down(定时)定时功能开始工作。
第五章实训心得
相对于其他的课程设计我更重视本门的课程设计,因为早在大一的时候我就对自己有了定位,我要学习硬件方面的知识,当真正接触了物联网的时候我才发现原来很奇妙的东西、听起来很复杂的东西也就是一些当下技术的拼接。
通过这些天我深刻的感觉到了做东西很能提高自身的技能水平,从毕业设计到这些天的课程设计,从超声波、红外、光电、电机驱动再到这次的蓝牙技术让我收获颇丰。
我感觉哪怕是再小的技术问题也要亲手尝试,因为这其中也会出现各种问题,我们就会从中获取很多经验,XX上可以查到知识点,经验却是只能自己体会。
当这次实训完成时,我们的大学生活也就快要结束了。
而我的学习体验之路才刚刚开始,怀念在一起学习的日子,怀念在一起收获的日子。
参考文献
[1]林立,张俊亮,单片机原理以及应用•电子工业出版社,2014.1.
[2]朱刚,谭振辉,周贤伟,蓝牙技术原理与协议[M].北京:
北方交通大学出版社清华大学出版社,2002.
[3]童诗白,华成英.模拟电子技术[M].北京:
高等教育出版社,2003.
[4]温涛.物联网应用系统开发[M].大连:
东软电子出版社,2012.11.