ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:169.32KB ,
资源ID:17043603      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17043603.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(arduino蓝牙电子锁解析.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

arduino蓝牙电子锁解析.docx

1、arduino蓝牙电子锁解析物联网应用系统设计报告成 绩 专业班级 物联网二班 姓 名 马祥博 同组成员 霍鑫磊 马祥博 董方旭 瞿炀炀 宁磊学 号 一项目名称 3.二,背景简介 3.三开发平台 3.1.Arduino 平台 3.2.eclipse+ADT 23.0.6+SDK 5.0.1 4.四情景模式 4.五总体设计 5.六功能模块 7.1.硬件清单 7.2.功能设计说明 7.3.蓝牙控制模块 7.4.温湿度采集模块 8.5.LCD 显示模块 9.6. 安卓移动端 1.1.七创新点 1.1.八心得体会 1.1.1.遇到的问题 1.1.2.体会 1.2.九.arduno 源码 13十安卓源码

2、 1.4.项目名称智能门锁智能门锁是指区别于传统机械锁的基础上改进的, 在用户安全性、 识别、管 理性方面更加智能化,简便化的门锁。,背景简介伴随互联网时代的快速发展, 智能家居设备已经走入了千家万户, 门锁作为 家庭生活的第一道入口。 在人工智能时代, 也经历了从普通的机械锁到具备更强 大安全性能的智能锁的迭代升级。门锁智能化在今天已经不仅仅是一种生活态 度,更是一种生活方式,为人们的出行,安全等方面带来了极大的便利。随着科学技术的不断进步, 人们对现代化办公和生活场所提出了更高层次的 安全管理需求,普通的门锁系统和手工出入管理已经不符合现代人的实际需求。 由于安防业的智能化和网络化, 为顺

3、应智能楼宇、 智能小区的发展, 门禁系统也 必须实现更可靠、 更安全和更方便的智能系统。 现代门禁系统综合利用了传感技 术、数字信息处理、计算机技术、多媒体技术和网络技术,以实现门禁系统信息 的采集、传输和处理。目前智能门锁已广泛用于工厂、学校、写字楼宇、物业小区、商店、金融系 统、电信系统、军事系统、宾馆等多种场合,大大提高了整体的工作效率、保障 了系统安全,智能、安全和高效的现代化门禁系统已经成为社会发展的必然趋势, 同时它也是现代化建筑的一个重要组成部分。三开发平台1.Arduino 平台Arduino 是一款便捷灵活、 方便上手的开源电子原型平台。 包含硬件和软件。 它构建于开放原始码

4、 simple I/O 介面版,并且具有使用类似 Java、C 语言的 Processing/Wiring 开发环境。 Arduino 主要包含两个主要的部分:硬件部分是 可以用来做电路连接的 Arduino电路板;另外一个则是 Arduino IDE,计算机中 的程序开发环境。只要在IDE中编写程序代码,将程序上传到Arduino电路板后, 程序便会告诉 Arduino 电路板要做些什么了。平台特点:Arduino 能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他 的装置来反馈、 影响环境。板子上的微控制器可以通过 Arduino 的编程语言来编 写程序,编译成二进制文件, 烧录进

5、微控制器。对 Arduino 的编程是利用 Arduino 编程语言 ( 基于 Wiring) 和 Arduino 开发环境 (基于 Processing) 来实现的。基 于 Arduino 的项目,可以只包含 Arduino ,也可以包含 Arduino 和其他一些在 PC 上运行的软件,他们之间进行通信来实现。(1)跨平台Arduino IDE 可以在 Windows、Macintosh OS X 、 Linux 三大主流操作系统上运 行,而其他的大多数控制器只能在 Win dows上开发。(2)简单清晰Arduino IDE 基于 processing IDE 开发。对于初学者来说,极易

6、掌握,同时有 着足够的灵活性。 Arduino 语言基于 wiring 语言开发,是对 avr-gcc 库的二次 封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行 开发。(3)开放性Arduino 的硬件原理图、电路图、 IDE 软件及核心库文件都是开源的,在开源协 议范围内里可以任意修改原始设计及相应代码。2.eclipse+ADT 23.0.6+SDK 5.0.1Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而 言,它只是一个框架和一组服务, 用于通过插件组件构建开发环境。 但是 Eclipse 附带了一个标准的插件集,包括 Java

7、开发工具。 Eclipse 主要由 Eclipse 项目、 Eclipse 工具项目和 Eclipse 技术项目三个项目组成, 具体包括四个部分组成 Eclipse Platform 、JDT CD和 PDE JDT支持 Java 开发、CDT支持 C开发、 PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了 一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无 须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Eclipse SDK (软件开发

8、者包)是 Eclipse Platform 、JDT和 PDE所生产的 组件合并, 它们可以一次下载。 这些部分在一起提供了一个具有丰富特性的开发 环境,允许开发者有效地建造可以无缝集成到 Eclipse Platform 中的工具。 Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组 合而成。Eclipse项目生产的软件以GPL发布,第三方组件有各自自身的许可协 议。四情景模式1.引用智能手机上进行操控如 android 系统平台进行远程控制, 只需要在手 机上安装移动应用端点击开门或关门进行控制, 门锁就会为你自动打开或关闭2.你以后再也不必担心你忘了带

9、钥匙或者钥匙丢失而烦恼, 你的家人也可以通过安装移动应用端来进行开锁。3.对于安全, 蓝牙智能门锁有更完善的保护机制, 只有授权过的人即拥有开 锁密钥的人才能开锁,上锁。4 . 在以下场所应用较多:。银行,政府部门(注重安全性) ,酒店,学校宿 舍,居民小区,别墅,宾馆,管理更加方便。5.智能门锁主要应用于智能家居、智能旅店 / 酒店、智能建筑等系统中。五总体设计1.系统结构智能门锁,相对于普通的门锁,具有支持蓝牙连接,周围环境温湿度的感知 以及将信息发送给用户等功能,适用于普通家居以及密闭空间等场景。 智能门锁 系统结构如图所示整体图片:2.基本组成1) 管理中心:一台智能机,通过蓝牙与门锁

10、连接,实现门锁信息的信息的处理和分析,并 发送控制指令,以及对相应的软件管理。2) arduino板:管理各个模块采集到的数据,实现分析处理以及与终端通信的功能。3) 温湿度传感器:用于周围温湿度的采集、传输和处理,4) 电子门锁:门禁系统的执行机构和关键设备,用于对物理通道的控制。5) 电力设备:采用直流电源作为整个系统的运行电源和门锁电源。6) LED显示器:可以显示目前门锁的状态以及周围环境的温湿度。3.功能特点1) 采用高效的蓝牙单独配对,可快速开锁,使用方便快捷,具有很高的安全性。2) 可以感知环境的温湿度,直接了解是否需要增添衣物。3) 系统APP连接,实现高效安全的管理。六功能模

11、块1.硬件清单器件数量Ardui no UNO 开发板1蓝牙模块1LCD显示屏1温湿度传感器11602IIC 模块1继电器1电磁锁1电源线1杜邦线若干2.功能设计说明结合实际需求、将系统分为四个主要功能模块,即蓝牙控制模块,温湿度采 集模块,LCD显示模块、安卓移动端。3.蓝牙控制模块蓝牙核心模块使用 HC-06模块,引出接口包括 VCC,GND,TXD,RX预留LED 状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接,led指示连接状态, 闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口,输入电压 3.66V,未配对时电流约30mA配对后约10mA输入电压禁止超过7V,在未建立蓝牙连

12、接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝 牙连接以后自动切换到透传模式。VCC 接 Arduino 的 5V。GND 接 Arduino 的 GNDTXD发送端,一般表示为自己的发送端,接 Arduino的RXRXD接收端,一般表示为自己的接收端,接 Arduino的TX=正常通信时候本身的TXD永远接设备的RXD正常通信时RXDS其他设备的TXD 线接好后,把Arduino上电后,led指示灯是闪烁的,表明没有设备连接上,LED 常亮,已经和An droid手机连接。蓝牙模块正面图:蓝牙模块反面图:4.温湿度采集模块温湿度采集模块采用的是数字温湿度传感器 DHT

13、11 DHT11数字温湿度传感 器是一款含有已校准数字信号输出的温湿度复合传感器。 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。 传感器包括一个电阻式感湿元件和一个 NTC测温元件,并与一个高性能8位单片 机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等 优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。 校准系数以程 序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校 准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗, 信号传输距离可达20米以上,使其成为各类应用甚至最

14、为苛刻的应用场合的最 佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求 而提供。接口说明:VDD VDDI 5K 1PinMCU -DHT114PinGMD典型应用电路引脚说明:Pin春注释1VDD供电 3-5. 5VDC2DATA串行数据,单总线3XC空脚,请悬空4GXD接地,电源负极|5.LCD显示模块LCD显示模块采用LCD1602 1602液晶也叫1602字符型液晶,它是一种专 门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符, 每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和

15、行间距的作用。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 1602采用标准的16脚接口,其中:第1脚:GN助电源地第2脚:VCCg 5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时 对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器 调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令 寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳

16、变时执行 指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。 15脚背光正极,16脚背光负极。LCD接线图LCD实物显示图6.安卓移动端安卓移动端主要实现给蓝牙串口发送特定的字符串,来控制电磁锁的开锁和上锁,并且接收arduno开发板采集到的温湿度数据,并将数据实时的显示出来 主要界面如下所示:七仓I新点1) 使用蓝牙控制门锁为了解决忘带钥匙而无法进门的尴尬情形, 我们以此为出发点,设计了这款智能 门锁的雏形,它的连接机制很简单,不需要通过 WIFI,而是使用蓝牙,你可以 使用智能手机与其配对,当手机控制开锁时,门锁便会打开。2) 将蓝牙门锁与温湿度数据的采集显示结合在

17、一起,增加了其实用性。除了基础的门锁控制,我们还将温湿度数据通过LCD显示屏显示在门锁上,使得 使用者可以在出门前具体了解环境情况, 以此决定是否需要增减衣物,小小的附 加功能也具有很大的实用价值。3) 蓝牙控制APP的改进,增加安全性。在蓝牙控制Arduino板的实现中,为增加使用的安全性,将发送的表示控制电磁 锁开关,即改变Arduino板串口状态的预设字符串封装起来,对用户隐藏,即, 非用户即使连接上电磁锁,无法发送正确字符串,无法进行操作,此方法大大增 加安全性。八心得体会1.遇到的问题(1)问题一:LCD1602引脚太多,接到面包板之后线路比较杂,容易掉线,不 方便移动。解决:采用1

18、602IIC模块,将16引脚转化为4引脚,方便移动,排线整齐,能 更好的将硬件封装在一起。(2)问题二:关于面包板的使用,由于以前没有使用过面包板,所以不了解面 包板的接线方法。解决:通过在网上查询资料得知: 面包板在左右两边各有两列, 这两列习惯上作 为电源的正负极插接, 同一列中每五个栅格作为一组, 这五个栅格是导通的, 但 是行与行之间是不导通的,最中间的位置有一条凹槽,用于隔断左右两部分。(3)问题三:在接继电器控制电磁锁的时候,一开始只是用了继电器的开关功 能,导致在控制 12V 电磁锁的时候电压太小,不能控制电磁锁的开关。 解决:经过上网查询资料后, 按照正确的接线方式接线后, 使

19、得常闭端输出的电 流增大,从而能控制 12V 电磁锁的开锁和上锁。(4)问题四:在开发安卓移动端时,由于以前安卓开发的基础较少,所以在遇 到许许多多的问题。解决:主要是通过在网上下载了一个安卓端蓝牙串口助手的源码, 然后根据自己 的实际需求在源码中增删, 选择自己需要的部分, 在这个过程中也遇到了许多的 问题同时也学到了许多知识, 恰好正在上安卓移动开发的课程, 通过在课上寻找 老师帮助和课下查询资料,修改代码最后终于修改成功。2.体会通过这次的 arduno 实验,从一开始确定题目,到动手开始做再到最后成功 完成蓝牙电磁锁的功能, 通过这整个流程熟悉了整个开发的流程, 提高了自己的 动手能力

20、。 以前上课做的项目都是只有一部分, 要么是软件代码部分, 要么是硬 件而且硬件也只是学习部分功能, 从来没有真正将软件和硬件结合起来实践。 这 次的实验时间跨度久, 老师给了充足的时间来完成这个小项目, 正是足够的时间 才使得我们能在遇到问题时自己动手查找资料自己来修改代码切实提高自己动 手能力,并实现了基本功能后还有时间来不断的增加新的功能, 进一步动手实践。 比如一开始仅仅实现了使用网上下载的蓝牙串口助手发送一个字符来控制继电 器,电磁锁来上锁和开锁,到添加温湿度模块采集温湿度信息和 LCD莫块显示温 湿度信息和实时显示门的状态,再到最后自己动手写安卓 APP用蓝牙串口接收温 湿度数据和

21、门的状态信息在手机 APP显示。这个过程中遇到了很多的问题,通不 断的上网查询资料和向同学和老师请教,算是有条不紊的将问题一个个顺利解 决,最后成功实现了预期的功能和后来拓展的功能。在这次实验中我主要负责蓝牙模块和安卓移动端程序的编写以及整合Arduno方面其他组员编写的LCD和温湿度传感器模块代码在一起。在这次实验 中,从一开始上面提到的问题中, 面包板都不会接到最后没有基础的情况下自己 动手编写安卓移动端的代码, 通过不断上网查询资料, 将之前所学的知识和所做 项目结合起来,最终做完这个实验的同时也提高了自己的能力。通过这次实验中学到的不仅仅是蓝牙模块的使用,或是继电器等硬件的使 用,又或

22、是安卓APP的开发。我觉得最重要的是通过这次的实验将以前所学的知 识亲自动手与实践相结合,在学习到新知识的同时增深了对以前所学知识的理 解,虽然一开始担心什么都不会最后做的不好, 在这个过程中也确实遇到了很多 的问题,但正是在遇到问题时不断地解决问题,也才是提高能力的机会。九 arduno 源码#include #include LiquidCrystal_I2C lcd(0x3F,16,2);int humi;/ 湿度int tol;/ 校对码int temp;/ 温度int j;char d =C;unsigned int loopCnt;int chr40 = 0;/ 创建数字数组,用来

23、 存放 40 个 bit unsigned long time;#define pin 2void setup()pinMode(3, OUTPUT);Serial.begin(9600);void loop()bgn: delay(2000);pinMode(pin,OUTPUT); digitalWrite(pin,LOW);delay(20);/digitalWrite(pin,HIGH); delayMicroseconds(40);digitalWrite(pin,LOW); /设置 2 号接口模式:输入 pinMode(pin,INPUT);/高电平响应信号 loopCnt=100

24、00;while(digitalRead(pin) != HIGH)if(loopCnt- = 0)/如果长时间不返回高电平,输出个提 示,重头开始。Serial.println(HIGH);goto bgn;/低电平响应信号 loopCnt=30000; while(digitalRead(pin) != LOW)if(loopCnt- = 0)/如果长时间不返回低电平,输出个提 示,重头开始。Serial.println(LOW);goto bgn;/开始读取 bit1-40 的数值for(int i=0;i50)chri=1;elsechri=0;/湿度,8位的bit,转换为数值humi

25、=chr0*128+chr1*64+chr2*32+chr3*16+chr4*8+chr5*4+chr6*2 +chr7;/温度,8位的bit,转换为数值temp=chr16*128+chr17*64+chr18 *32+chr19*16+chr20*8+chr21*4+ chr22*2+chr23;/校对码,8位的bit,转换为数值 tol=chr32*128+chr33*64+chr34*3 2+chr35*16+chr36*8+chr37*4+ch r38*2+chr39;/输出:温度、湿度、校对码Serial.print(temperature:);Serial.println(tem

26、p);Serial.print( humidity:);Serial.print(humi);Serial.println(%RH);Serial.print(tol:);Serial.println(tol);/ 校对码输出至串口 lcd.init();lcd.backlight();lcd.print(t:);lcd.print(temp);lcd.print(char)223);lcd.print(C); / 显示摄氏度符号lcd.print( h:);lcd.print(humi);lcd.println(%RH);/ 空两行 防止出 现乱码,同时将湿度单位输出到 LCD lcd.se

27、tCursor(0,1);/ 在 LCD 上换行 /lcd.print(OPEN);while(Serial.available()char c=Serial.read();if(c=O) digitalWrite(3,HIGH); Serial.println(door open); c=X;d=O;if(c=C)digitalWrite(3,LOW);/ 熄灭 LED 。Serial.println(doorclosed);c=X;d=C;if(d=O)lcd.print(DOOR HAVE OPEN); if(d=C)lcd.print(DOOR IS CLOSED); 十安卓源码1)B

28、TClient.javapackage com.test.BTClient;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.UUID;importcom.test.BTClient.DeviceListActivity;import android.app.Activity;import android.app.AlertDialog;impo

29、rtandroid.bluetooth.BluetoothAdapter; importandroid.bluetooth.BluetoothDevice; importandroid.bluetooth.BluetoothSocket;importandroid.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.view.LayoutInflater;/import android.view.Menu;/如使用菜单加入此三包/import android.view.MenuInflater;/import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.w

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2