2.2 模块介绍
本项目包括DS3231时钟模块、FPM10A指纹模块、舵机模块、ESP8266模块、云服务器模块和网页模块。下面分别给出各模块的功能介绍及相关代码。
2.2.1 DS3231时钟模块
本节包括DS3231时钟模块的功能介绍及相关代码。
1.功能介绍
DS3231时钟模块,可以在主机断电的情况下继续计算时间,便于以后使用,时钟产生秒、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿,这样的特性使其被广泛使用。
在本项目中DS3231时钟模块用于记录时间,以控制在特定合适的时间向服务器发送请求,使硬件部分得到网页端的响应,从而确定此时间段的预约用户,便于FPM10A指纹模块与用户指纹的比对。元件包括DS3231时钟模块、Arduino开发板和杜邦线若干,电路如图2-4所示。
图2-4 DS3231时钟模块与Arduino开发板电路连线
2.相关代码
2.2.2 FPM10A指纹模块
本节包括FPM10A指纹模块的功能介绍及相关代码。
1.功能介绍
指纹模块是指纹锁的核心部件,安装在指纹门禁或者硬盘等元件上,完成指纹的采集和识别。指纹模块主要由指纹采集模块、指纹识别模块和扩展功能模块组成。指纹采集一体机通过UART收发指令,具有1∶N识别及1∶1验证功能,可实现指纹特征数据的读、写功能。适当调节安全等级,支持360°旋转识别,干、湿手指适应性强。指纹识别电路主要由电源、传感器和系统资源三部分组成,电路通过传感器两次录入同一指纹合成模板存储在系统资源的指纹库中,系统在指纹库中依次访问进行逐一对比。
本项目对FPM10A指纹模块的应用主要有两方面:用户注册账号时录入指纹、用户预约成功时验证指纹信息以控制舵机开门。元件包括FPM10A指纹模块、Arduino开发板和杜邦线若干,电路如图2-5所示。
图2-5 FPM10A指纹模块与Arduino开发板电路连线
2.相关代码
1)录入指纹
2)指纹识别
2.2.3 舵机模块
本节包括舵机模块的功能介绍及相关代码。
1.功能介绍
舵机是一种直流电机,它使用一个反馈系统来控制位置。大多数舵机可以旋转180°。舵机大多用于对角度有要求的场合,例如,摄像头、智能小车前置探测器,需要在某个范围内进行监测的移动平台,可以用多个舵机,做小型机器人。舵机根据指令旋转到0~180°之间的任意角度,角度是通过调节PWM信号的占空比来实现的,需要使用Arduino开发板上的PWM引脚控制。
本项目中舵机用于预约的用户被指纹模块验证成功后驱动自习室门锁的打开,采用0~180°旋转的方式。元件包括舵机、Arduino开发板和杜邦线若干,电路如图2-6所示。
图2-6 Micro Servo舵机与Arduino开发板电路连线
2.相关代码
2.2.4 ESP8266模块
本节包括ESP8266模块的功能介绍及相关代码。
1.功能介绍
ESP8266是一款超低功耗的UART-WiFi透传模块,专为移动设备和物联网应用设计,可将用户设备连接到WiFi无线网络,进行互联网或局域网通信,实现联网功能。本项目使用AT指令实现硬件部分与服务器的连接,实现数据传输功能。可将特定时间的预约用户信息传输到硬件部分,为指纹模块提供比对库。元件包括ESP8266模块、Arduino开发板和杜邦线若干,电路如图2-7所示。
图2-7 ESP8266模块与Arduino开发板电路连线
2.相关代码
2.2.5 云服务器模块
云服务器模块提供了多种功能,用于构建可扩展、能够恢复故障的企业级应用程序。本项目中,为方便用户对网页端的使用,将文件上传到腾讯云服务器,使用户通过移动端访问公网IP,进行座位查看、预约等操作。
2.2.6 网页模块
本节包括网页模块的功能介绍及相关代码。
1.功能介绍
本项目使用django对网页进行搭建,框架使用bootstrap。网页具有不同时段的座位查看、预约及取消功能;按照用户自习的频率给予相应的奖励积分及称号;如用户预约后未能按时到场,经管理员举报后给予相应的记录和处罚。
2.相关代码