摘要:近几年来,智能门锁市场发展迅速,越来越多的家庭选择使用智能门锁。除了比较普遍的指纹开锁,密码开锁和卡片开锁外,很多智能门锁还实现了手机开锁,手机通过蓝牙,WIFI等连接智能门锁,输入密码或直接按开锁按钮就能打开门锁。毫无疑问,这是十分不安全的。为了解决这个问题,本文提出了一种基于蓝牙的指纹解锁系统。本系统通过对Android的深入开发,使手机和HC-05蓝牙模块连接,在调用指纹识别API后,通过蓝牙通信协议向HC-05模块发送信息,HC-05模块通过串口传输数据到STC89C52单片机。STC89C52单片机在收到信息进行判断后,通过将引脚置0使继电器吸合并点亮指示灯。本系统深入网络编程,使手机和服务器之间通过socket通信,手机在调用指纹识别API后能够从服务器获取到临时密码,STC89C52通过行列扫描矩阵按键后得到输入的临时密码,通过串口发送到PC,PC通过串口监听获取信息,验证通过后将开锁信息通过串口发送给STC89C52单片机。临时密码存在106种可能,不用担心遭到破解。
关键词:Android;HC-05蓝牙模块;STC89C52单片机;socket通信
目录
摘要
Abstract
1. 前言-1
1.1 背景及意义-1
1.2 国内外研究现状和发展趋势-1
1.3 课题研究的主要内容-2
1.4 本章小结-2
2. 相关技术简介-3
2.1 指纹识别原理-3
2.2 加密和解密-3
2.3 网络通信-3
2.3.1 TCP/IP-3
2.3.2 socket通信-4
2.3.3 socket通信流程-4
2.4 本章小结-5
3. 云服务器环境搭建-6
3.1 云服务器概述-6
3.2 云服务器配置-6
3.3 安装JDK-7
3.3.1 下载JDK-7
3.3.2 配置环境变量-8
3.4 MySQL配置-8
3.4.1 安装MySQL-9
3.4.2 MySQL账号管理-9
3.4.3 Navicat Premium-10
3.5 远程连接云服务器-11
3.6 本章小结-13
4. 系统硬件设计-14
4.1 开发板的选择-14
4.2 通信模块的选择-14
4.3 本章小结-16
5. 系统软件设计-17
5.1 系统总体结构-17
5.2 Android程序设计-17
5.2.1 主程序流程图-17
5.2.2 指纹识别实现-18
5.2.3 蓝牙通信实现-22
5.2.4 socket通信实现-23
5.3 服务器端程序设计-24
5.3.1 连接mysql-24
5.3.2 sql操作-24
5.4 单片机程序设计-25
5.4.1 矩阵按键-25
5.4.2 程序设计-26
5.5 本章小结-27
6. 系统的功能测试-28
6.1 指纹解锁测试-28
6.2 临时密码测试-29
6.3 本章小结-30
7. 总结-31
7.1 论文总结-31
7.2 困难及解决方案-31
参 考 文 献-32