对于爱车人士,相信很多人认为它宝贝的像是他的第二生命,因此车辆防盗绝对是一个重要课题。因此我们设计一个结合云端之指纹辨识器的防盗系统。当车门开启后即启动指纹辨识器,利用指纹辨识来确认进入人员是否为注册者,如果指纹认证错误或没操作,系统会立刻拍摄照片并通知车主。
本作品主要分为MCU指纹辨识端、车载系统与手机APP三大部分。它透过MCU、手机APP、车载系统与云端伺服器的结合,建立车用物联网,达到推播通知与身分辨识的功能,即使车辆不在身边,也可以在第一时间取得通知,可利用专用手机APP得知遭到入侵的讯息并查看图片。
车辆是许多家庭的重要交通工具之一,对于爱车人士,很多认为它是第二老婆,因此车辆防盗绝对是一个不可轻忽的环节。随着物联网的兴起,我们设计一个结合云端技术之指纹辨识器的防盗系统,它具有下列功能:
[1]车门开启后即启动系统与指纹辨识器
[2]利用指纹辨识来确认进入人员是否为车辆注册者,如果指纹认证错误或不予理会,系统会立刻利用车辆内架设好的相机拍摄照片并存到云端伺服器。
[3]当事件发生,系统会立即推播讯息告知车辆拥有者。
[4]车辆拥有者具有指纹的注册与管理权力。
[5]车辆拥有者使用专用APP查看拍摄的照片。
工作原理
工作方法
本作品使用盛群微处理器HT66F2390作为主要控制晶片,再MCU指纹辨识端侦测到指纹错误后,系统会透过MQTT(Message Queuing Telemetry Transport)发送讯息至车载系统与手机APP,这时车载系统会启动相机拍摄入侵者图片并上传至云端伺服器,而手机APP会接收到讯息并跳出通知,可利用专用手机APP得知遭到入侵的讯息并查看图片。
作品功能
本作品主要功能分为三个部分,分别为使
用者指纹的管理、指纹的认证及拍摄照片并通
知使用者。
使用者指纹的管理
使用者使用专用APP透过蓝芽与设备连线进入指纹管理程序,在APP中输入使用者名称,系统会利用使用者的名称去与云端资料库做ID的管理,并利用此ID与MCU做指纹的注册或删除。
指纹的认证
透过BS816A-1触控模组开启GTM-5210F12指纹模组辨识指纹是否被注册过,来确认进入车辆人员是否为车辆拥有者。
拍摄照片并通知使用者
在指纹认证错误或未认证时启动车载系统中事先架设好的相机拍摄照片透过HTTP POST方法将拍摄的照片丢到云端伺服器中、并利用MQTT推播讯息至已订阅讯息的APP中,跳出讯息来告知车辆遭到非法入侵,APP也可以利用HTTP GET方法从伺服器中取得拍摄的照片与时间。
使用HOLTEK MCU之主要核心功能
本作品利用HT66F2390作为主要控制核心,使用了程式记忆体(Flash Program Memory)、资料记忆体(Data Memory)、特殊功能暂存器(Special Function Register)、中断控制电路(Interrupt)、计时模组(Standard Type TM)、输入/输出(Input/Output)、通用非同步收发传输器(UART)、电子抹除式可复写唯读记忆体(EEPROM)等8种功能。
作品结构
本作品利用MCU HT66F2390透过网际网路与Apache HTTP和Mosquitto MQTT伺服器连线,与车载系统与手机APP作为结合达到讯息沟通的目的,本作品主要分为使用者管理系统、车载系统、手机系统与MCU身分辨识与推播讯息系统四大系统如图1所示。
使用者管理系统
HT66F2390利用Esp8266 WIFI模组与Apache HTTP伺服器和SQL资料库沟通达到云端管理使用者的功能。
车载系统
等待MCU发送事件发生讯号至事先架设于车内的车载系统,启动相机拍摄入侵者照片并透过HTTP POST方法将照片上传至云端资料库。
手机系统
透过专用APP可以利用蓝芽与MCU沟通注册使用者指纹,APP也可以与Mosquitto MQTT伺服器订阅讯息,在事件发生后可以在第一时间得知状况并透过Apache伺服器取得车内摄影机拍摄的照片。
MCU身分辨识与推播讯息系统
若MCU侦测到身分辨识错误,则透过ESP8266推播资料至Mosquitto MQTT伺服器,mosquito MQTT伺服器会负责将推播的资料发送至用户手机APP中。
GTM-5210F12指纹模组
GTM-5210F12是一款利用ARM Cortex M3 Core(Holtek HT32F22366)支援UART传输介面容易使用的指纹辨识模组,拥有简单快速高解析度(450DPI)的指纹注册、1:1指纹认证、1:N指纹辨识的功能,外观如图2所示。
ESP8266 WIFI模组
BS816A-1触控模组
BS816-A触控模组,外观如图5所示,此IC可透过外部的触摸按键感应人手的触摸动作,拥有抗电源干扰的能力,快速的触摸反应时间,本作品利用BS816A-1开启指纹模组。
ESP8266是一款超低功耗的UART-WIFI传输模组,专为移动装置和物联网应用设计,可将用户的物理装置连线到WIFI无线网路上,进行互联网或区域网路通讯,实现联网功能。外观如图3所示。
HC-05蓝牙模组
HC-05属于主从(Host/Slave)一体的模组,功能多样,可以设定为主端或从端。 HC-05拥有EN的脚位,输入高电压可启动AT命令模式,让我们可以透过UART传输一些ASCII的字串来改变模组参数设定,外观如图4所示。
BS816A-1触控模组
BS816-A触控模组,外观如图5所示,此IC可透过外部的触摸按键感应人手的触摸动作,拥有抗电源干扰的能力,快速的触摸反应时间,本作品利用BS816A-1开启指纹模组。
Apache HTTP伺服器
Apache是一个开放原始码的网页伺服器软体,可以在大多数电脑作业系统中运行。由于其跨平台和安全性,被广泛使用,是最流行的Web伺服器软体之一。 Apache伺服器负责接网路请求(HTTP Request),接收到后可以透过PHP程式执行功能并回应请求。于本作品中Apache HTTP伺服器担任MCU、车载系统与APP连接SQL伺服器之间的桥梁,透过HTTP请求的方式来达到云端存取的功能。
Mosquitto MQTT伺服器
Mosquitto是一个开放原始码MQTT伺服器。 MQTT是一种machine-to-machine(M2M)频宽很低的通讯协定,可以让各种设备互相沟通。
于本作品中Mosquitto MQTT伺服器为担任MCU、车载系统与APP之间讯息推播与转发的平台。
MQTT架构
在MQTT架构中,分为三种Publisher(发送讯息者)、Subscriber(接收讯息者)、Broker(转送讯息者)。而不同的讯息可能会需要传递给不同的接收者,所以讯息在发送的时候,发送者(publisher)必须标示这则讯息的主题(topic),而转送讯息者(broker)则会依照这则讯息的主题,将讯息传递给有订阅该主题的接收者(subscriber),架构图如图6所示。
软体系统
软体架构主要分为3大部分,为MCU主程式、指纹注册程序、图片拍摄的上传与下载。
MCU指纹辨识主程式
图7为MCU指纹辨识流程图,MCU利用微动开关来判断车门是否被开启,车门开启后启动指纹认证程式,若指纹认证错误或于10秒内未向指纹模组进行指纹辨识,则MCU会透过ESP8266发送指纹认证错误推播讯号至Mosquitto MQTT伺服器。
车载系统
于车内事先架设好的车载系统,连线至Mosquitto MQTT伺服器等待推播讯号,接收讯号后开启相机拍摄照片将格式转为JPEG格式(破坏性图像格式)并利用HTTP POST方法将图片上传至Apache伺服器中,并于SQL资料库中新增资料供APP进行图片的下载与查询,流程如图8所示。
手机APP MQTT接收程式
若手机从Mosquitto MQTT伺服器接收到推播讯号,手机会跳出Notification通知告知使用者车辆遭到入侵,流程图如图9所示。
MCU指纹注册程式
使用者利用手机APP透过蓝牙与MCU的连线进入指纹注册程式,使用者在输入使用者名称后透过管理者指纹的认证系统会透过Apache伺服器向SQL资料库进行用户名注册并取得指纹ID,取的指纹ID后MCU会启动GTM-5210F12的指纹注册程序,按压三次指纹后即完成指纹的注册,流程如图10所示。
测试方法
测试指纹注册
于APP内进入使用者管理介面如图11,透过蓝牙与MCU连线,输入使用者名称后按下设定指纹键,此时指纹模组会发亮开启并于APP显示「请认证管理者指纹」,管理者指纹认证后即进入指纹注册程式,指纹按压三次后如图12则完成指纹注册,MCU会将使用者ID储存于EEPROM中,并且可于SQL资料库内看见使用者注册讯息如图13所示。
测试指纹删除
于APP使用者管理介面内输入要删除的使用者名称,按下删除指纹键后,指纹模组灯亮起并于APP介面显示「请认证管理者指纹」,管理者指纹认证后APP显示「指纹删除成功」即完成指纹删除动作,MCU会将指纹ID从EEPROM中移除,可于图14所示使用者已从SQL资料库中删除。
测试车门开启后指纹认证与推播功能
测试车门开启
透过微动开关判断车门是否开启,车门开启后LED会闪红灯而蜂鸣器会叫「逼」一声表示开始进行指纹认证程序,如图15所示。
测试指纹认证
透过按压BS816A-1触控模组利用组合键如图16的方式开启指纹模组进行指纹认证,认证成功则LED显示蓝灯如图17所示,若认证错误则显示红灯如图18所示。

图16 : 利用BS816A-1触控模组开启指纹模组 |
|
测试MQTT推播功能
若在车门开启后指纹认证错误或于10秒内未进行指纹认证,MCU会发送推播讯号至Mosquitto MQTT伺服器,并转发讯息至订阅者装置中,如图19所示,可以看见MCU发送讯息至MQTT伺服器,而伺服器转发讯息给车载系统与有订阅讯息的APP。
测试用户APP接收讯息并通知
手机APP透过MQTT接收到MCU发送的讯息后会跳出通知,如图20分别为指纹辨识错误与指纹未进行认证。
测试车载系统拍摄照片与APP浏览图片功能
若车载系统接收到从MCU透过MQTT发送的推播讯息,则会开启相机拍摄照片并利用HTTP POST方法将拍摄的图片上传至Apache HTTP伺服器,如图21可见,并且可于APP浏览图片视窗选取图片,选取后则可看见拍摄到的图片如图22所示。
结论
本系统为一个车辆防盗的系统,利用指纹辨识器辨识进入车辆人员是否为车辆拥有者,如果指纹辨识错误或未辨识时,则会透过MQTT将推播讯息,并且开启车内的相机进行图片拍摄上传至伺服器,而可利用专用手机APP得知遭到入侵的讯息并查看图片,达到车辆安全防盗的功能。
参考资料
[1] Holtek Semiconductor INC.,HT66F23xx DataSheet,http://www.holtek.com/documents/10179/116711/HT66F23x0v130.pdf
[2] ESP8266 MCU ,Datasheet,
http://download.arduino.org/products/UNOWIFI/0A-ESP8266-Datasheet-EN-v4.3.pdf
[3] Holtek Semiconductor INC., BS81xA DataSheet,http://www.holtek.com/documents/10179/116711/BS81xA-xv150.pdf
[4] Gingytech, GTM-521XF Series Datasheet, https://www.bestmodulescorp.com/amfile/file/download/file_id/203/product_id/72/
[5] 钟启仁,HT66Fxx Flash MCU 原理与实务- 组合语言篇,全华图书股份有限公司,民国 99 年,初版
[6] 孙宏明,Android程式设计入门、应用、到精通,碁峰资讯股份有限公司,民国107年,六版二刷
本文作者为国立虎尾科技大学光电工程系简刘全与林华川教授