廣東石油化工學(xué)院電子信息工程學(xué)院 伍思源 馬遠(yuǎn)佳 羅 佩
密碼鎖在我們生活中并不少見(jiàn),無(wú)論是高功率、高成本的GPRS開(kāi)鎖,還是芯片數(shù)量大、差異大等問(wèn)題的藍(lán)牙解鎖。通過(guò)了解當(dāng)前共享單車智能鎖存在的很多問(wèn)題,我們研發(fā)了免通訊與低功耗的共享單車密碼鎖,有效的解決共享單車密碼鎖中存在的低安全性、高功耗、高成本等問(wèn)題。針對(duì)目前共享單車密碼鎖中存在的這些痛點(diǎn)進(jìn)行探索和研究,作為本項(xiàng)目的主要方向。故通過(guò)結(jié)合App Inventor開(kāi)發(fā)軟件和單片機(jī)技術(shù)設(shè)計(jì)了一種免通訊模塊、密碼偽隨機(jī)性、低功耗的共享單車密碼鎖。其中密碼鎖硬件設(shè)計(jì)部分使用低功耗MSP430的單片機(jī)可以進(jìn)行免通迅從而減少繁鎖的開(kāi)鎖、太陽(yáng)能電池板給電池充電從而給單片機(jī)和模塊供電、按鍵模塊輸入密碼、AT24C02存儲(chǔ)器模塊儲(chǔ)器密碼、蜂鳴器提示等模塊;軟件通過(guò)開(kāi)發(fā)一款基于App Inventor的Android出行應(yīng)用程序,其主要功能是實(shí)現(xiàn)人臉識(shí)別注冊(cè)與登錄、掃描獲取解鎖密碼、定位與計(jì)時(shí)等。
隨著我國(guó)在“互聯(lián)網(wǎng)+”和“中國(guó)制造2025”兩大戰(zhàn)略上不斷取得的突破,我國(guó)人們的生活正在呈現(xiàn)出數(shù)字化、網(wǎng)絡(luò)化、智能化。與此同時(shí),隨著優(yōu)步、滴滴打車的出現(xiàn)以及它們?cè)谑袌?chǎng)經(jīng)濟(jì)中取得的巨大成功,共享經(jīng)濟(jì)的興起和發(fā)展受到了全社會(huì)的廣泛關(guān)注和熱議,同時(shí)掀起大量的市場(chǎng)資本投入到共享經(jīng)濟(jì)的狂潮。
當(dāng)前我國(guó)正在解決人們出行的最后一公里的難題,共享單車能夠很好的解決這一問(wèn)題,但是單純依靠機(jī)械鎖降低單車成本的做法在運(yùn)營(yíng)中的缺點(diǎn)日益突出。試圖使用傳統(tǒng)的機(jī)械鎖運(yùn)營(yíng)的共享單車,在具體的實(shí)踐中逐漸被證明是不可能的,并且現(xiàn)在的無(wú)線通訊過(guò)于麻煩,帶來(lái)了一系列的問(wèn)題。藍(lán)牙開(kāi)鎖,原理是通過(guò)業(yè)務(wù)層校驗(yàn),手機(jī)下載指令加密包,再將包發(fā)送到藍(lán)牙,從而完成解鎖的。但藍(lán)牙的芯片版本兼容太差,華為能開(kāi)的話,魅族和小米不一定能開(kāi),何況市場(chǎng)上數(shù)十種的安卓手機(jī),同樣是華為的在不同的版本都有兼容問(wèn)題,目前的主要原因是因?yàn)椴少?gòu)的藍(lán)牙芯片差異太大。因此通訊過(guò)于繁瑣,給我們開(kāi)鎖帶來(lái)不便。我們通過(guò)去研究低功耗的智能密碼鎖,使用更低功耗的單片機(jī)MSP340去產(chǎn)生與手機(jī)相同的密碼,且密碼是復(fù)雜可變的。以密碼鎖在共享單車行業(yè)中所出現(xiàn)的各種問(wèn)題為出發(fā)點(diǎn),通過(guò)結(jié)合App Inventor開(kāi)源開(kāi)發(fā)軟件和單片機(jī)開(kāi)發(fā)技術(shù),設(shè)計(jì)了一種免通訊模塊、高安全性、低功耗的共享單車密碼鎖,它能夠有效的解決共享單車中的密碼鎖出現(xiàn)的密碼單一、低安全性能、高功耗等問(wèn)題。而且我們的密碼是隨機(jī)產(chǎn)生的,安全性能高。智能鎖在共享單車中的作用也是越來(lái)越明顯,智能鎖的性能影響著整個(gè)共享單車的利益鏈。除了密碼鎖的基本功能外,使用微處理器的智能電子密碼鎖還可以引入智能化管理,使電子密碼鎖具備更高的安全性和可靠性。
其中硬件設(shè)計(jì)部分由MSP430F413單片機(jī)、按鍵模塊、AT24C02存儲(chǔ)器、蜂鳴器等構(gòu)成。采用MSP430F413單片機(jī),是TI推出的超低功耗混合信號(hào)16位單片機(jī)系列中的一種。單片機(jī)的三種工作模式分別為:正常工作模式、空閑模式、休眠模式。單片機(jī)的空閑模式能夠有效的降低系統(tǒng)的功耗,提升了電源的續(xù)航能力。當(dāng)單片機(jī)處于空閑模式時(shí),單片機(jī)的某些寄存器都會(huì)保留著原來(lái)的數(shù)據(jù),如隨機(jī)存取機(jī)器、堆棧指針、程序計(jì)數(shù)器、程序狀態(tài)字、累加器等。單片機(jī)正常工作模式利用其做密碼控制系統(tǒng),我們可以通過(guò)手機(jī)掃描已經(jīng)做好的二維碼,從而在手機(jī)獲取一個(gè)隨機(jī)不同的密碼,再輸入密碼給MSP430單片機(jī)開(kāi)鎖。當(dāng)輸入的密碼與單片機(jī)已經(jīng)產(chǎn)生偽隨機(jī)碼相同時(shí),便可以開(kāi)鎖。而且利用AT24C02是一種串行E2PROM,它遵循I2C-BUS的存儲(chǔ)元件,遵循二線制協(xié)議,由于它有許多優(yōu)點(diǎn)如體積小,接口便利,數(shù)據(jù)在掉電之后不會(huì)無(wú)緣無(wú)故的丟失等優(yōu)點(diǎn),從而可以儲(chǔ)存好隨機(jī)密碼,做好相關(guān)密碼儲(chǔ)存。
使用App Inventor網(wǎng)站進(jìn)行Andord手機(jī)客戶端的設(shè)計(jì)。手機(jī)客戶端主要是實(shí)現(xiàn)用戶注冊(cè)與登錄界面、掃碼獲取解鎖密碼模塊算法、用戶騎行定位與計(jì)時(shí)等的開(kāi)發(fā)。該智能鎖的手機(jī)端APP有人臉識(shí)別登錄的功能,使用戶方便登錄使用。APP還通過(guò)調(diào)用高德地圖搜索中靜態(tài)地圖URL顯示用戶的位置,能夠給用戶準(zhǔn)確的位置信息。這將大大提高用戶對(duì)該智能鎖及APP的體驗(yàn)和認(rèn)可。
用戶點(diǎn)擊的是“注冊(cè)”按鈕時(shí),拍照完后,調(diào)用“TaifunImage”組件將圖片修改為小于500×500px尺寸的圖片。首先我們要對(duì)人臉進(jìn)行識(shí)別(Detect Face),并獲得這個(gè)人臉的標(biāo)識(shí)值,根據(jù)api文檔,我們將使用base64編碼上傳圖片,于是調(diào)用“SimpleBase64”組件對(duì)圖片進(jìn)行Base64編碼,然后執(zhí)行POST文本請(qǐng)求提交相應(yīng)的請(qǐng)求參數(shù)“api_key”“api_secret”“image_base64”。將圖片上傳至Face++曠視平臺(tái)建立人臉集合即完成用戶的注冊(cè)。
當(dāng)用戶點(diǎn)擊登錄按鈕拍照獲得圖片后,獲取SearchAPI返回值,首先根據(jù)列表長(zhǎng)度判斷是否識(shí)別到人臉,然后從返回的列表中提取拍照的臉和人臉集合中的臉的匹配度confidence,范圍為[0,100],這里的邏輯設(shè)計(jì)中設(shè)置是匹配度達(dá)到85則登錄成功。如圖1所示。
圖1 人臉注冊(cè)與登錄
制作了特定的二維碼,二維碼主要作用是標(biāo)注車輛的編號(hào)信息。當(dāng)用戶點(diǎn)擊“掃碼騎車”按鈕時(shí)會(huì)調(diào)用“二維碼”組件掃描制作好的二維碼。獲取到車輛信息后進(jìn)行處理隨機(jī)生成五位數(shù)的密碼,再將五位數(shù)的解鎖密碼傳遞給“密碼文本”。如圖2所示。
圖2 掃碼獲取密碼及車輛信息
用戶進(jìn)入掃碼界面時(shí),手機(jī)客戶端會(huì)根據(jù)位置傳感器獲取當(dāng)前位置的經(jīng)緯度,通過(guò)高德地圖的靜態(tài)地圖URL將位置傳感器獲取的經(jīng)緯度信息傳輸進(jìn)行搜索,將搜索所得的圖片顯示在“地圖”組件之中。如圖3所示。
通過(guò)手機(jī)客戶端掃描共享單車上的二維碼獲取解鎖密碼,這樣做的方法雖然給平凡枯燥的生活帶來(lái)許多的便利和方便。同時(shí),在共享單車上輸入獲得的解鎖密碼即可使用共享單車。如果輸入密碼不正確會(huì)進(jìn)行報(bào)警,提醒用戶當(dāng)前輸入的密碼是錯(cuò)誤的。也是當(dāng)前主流的方案。如圖4所示。
圖3 用戶騎行時(shí)的導(dǎo)航、定位與計(jì)算騎行時(shí)間
圖4 按鍵開(kāi)鎖流程圖
本項(xiàng)目的類型為軟硬件開(kāi)發(fā),軟件運(yùn)行在Android手機(jī)APP上,硬件使用低功耗MSP430單片機(jī)。然后將硬件部分和軟件部分這兩部分分開(kāi)進(jìn)行調(diào)試與測(cè)試,將每個(gè)部分的具體功能進(jìn)行測(cè)試,檢查是否能夠正常運(yùn)行。每個(gè)功能都能夠?qū)崿F(xiàn)的情況下,再進(jìn)行整個(gè)項(xiàng)目的整體調(diào)試。通過(guò)這樣的方法,可以盡量減小開(kāi)發(fā)的難度、縮小項(xiàng)目的設(shè)計(jì)周期從而更好的實(shí)現(xiàn)所需要的功能。即使在調(diào)試過(guò)程中遇到了問(wèn)題,也能快速找到問(wèn)題出現(xiàn)的原因并進(jìn)行處理。然后一一去排除軟件和硬件的問(wèn)題,這樣不僅大大的改善了系統(tǒng)調(diào)試效率,而且也能確保系統(tǒng)更加穩(wěn)定,后期的維護(hù)與完善也比較方便。
(1)登錄進(jìn)入軟件后顯示的人臉注冊(cè)與登錄頁(yè)面上是否有注冊(cè)與登錄的按鈕;
(2)點(diǎn)擊注冊(cè)按鈕能否調(diào)用手機(jī)的相機(jī);
(3)上傳照片至“Face++曠視”人工智能平臺(tái)能否完成注冊(cè);
(4)點(diǎn)擊登錄按鈕能否調(diào)用手機(jī)的相機(jī);
(5)點(diǎn)擊登錄按鈕拍照后能否與“Face++曠視”人工智能平臺(tái)的數(shù)據(jù)庫(kù)進(jìn)行對(duì)比;
(6)“Face++曠視”人工智能平臺(tái)的數(shù)據(jù)庫(kù)與對(duì)比后能否成功登錄;
(7)定位與計(jì)時(shí)頁(yè)面是否有在地圖上顯示當(dāng)前位置的標(biāo)識(shí)。
共享單車智能鎖APP生成智能鎖解鎖密碼具有一定的隨機(jī)性,同時(shí)也存在著前后兩個(gè)密碼一致的可能。因?yàn)榻怄i密碼的生成機(jī)制中有兩個(gè)數(shù)字車輛的編號(hào)和三個(gè)偽隨機(jī)的數(shù)字所確定的,如果在同一輛車掃描兩次共享單車上的二維碼則存在一定概率是相同的。在APP生成解鎖密碼功能初步實(shí)現(xiàn)的情況下,增加前后兩次生成的解鎖密碼對(duì)比的算法,進(jìn)一步降低解鎖密碼重復(fù)的概率提升智能鎖的安全性。經(jīng)過(guò)軟件端和硬件系統(tǒng)的各個(gè)功能模塊測(cè)試后,再對(duì)密碼鎖的解鎖功能進(jìn)行全面的測(cè)試,通過(guò)這種方法發(fā)現(xiàn)仍存在的問(wèn)題,并可以避免各個(gè)模塊功能不兼容的問(wèn)題。經(jīng)過(guò)反復(fù)的調(diào)試與完善,共享單車密碼鎖的解鎖功能已基本實(shí)現(xiàn)。解鎖功能是共享單車智能鎖最重要的功能,關(guān)系到整個(gè)項(xiàng)目能否正常工作的關(guān)鍵。本部分是針對(duì)密碼鎖的解鎖進(jìn)行硬件系統(tǒng)和軟件端的同步測(cè)試,以檢驗(yàn)是否實(shí)現(xiàn)密碼同步、密碼鎖解鎖是否有反饋信號(hào)等問(wèn)題。
結(jié)論:本文設(shè)計(jì)了一個(gè)基于免通訊與低功耗的共享單車密碼鎖,低功耗、無(wú)線通信的特點(diǎn),將大大減少了共享單車的成本及后期的維護(hù)成本。通過(guò)不斷探索和完善共享單車的密碼鎖,更好突出共享單車的優(yōu)勢(shì),促進(jìn)共享單車市場(chǎng)朝著更好、更快、更高的方向發(fā)展。所以是本項(xiàng)目的不僅僅只能應(yīng)用在共享單車上,我相信,在未來(lái),要需要“鎖”的地方,就有本項(xiàng)目及以后設(shè)計(jì)的智能鎖出現(xiàn)。