• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于虛位密碼的MQTT 智慧門鎖

      2023-10-05 08:10:52馬雷漆為民
      電子設(shè)計(jì)工程 2023年19期
      關(guān)鍵詞:門鎖按鍵管理員

      馬雷,漆為民

      (江漢大學(xué)人工智能學(xué)院,湖北武漢 430000)

      現(xiàn)如今,機(jī)械門鎖仍然占領(lǐng)著大半部分的市場,但它已經(jīng)逐漸不能滿足居民對于安全性、私密性的需求[1]。智能門鎖自上世紀(jì)二十年代誕生,到如今的技術(shù)相對純熟,經(jīng)歷了3 個階段的發(fā)展。在發(fā)展初期,智能門鎖主要應(yīng)用于酒店等環(huán)境中,開門方式為磁卡和密碼,不適合作為家庭使用推廣[2]。發(fā)展中期加入了指紋、面容等生物特征比對,而由于當(dāng)時技術(shù)原因,生物模塊價格令人望而卻步。在現(xiàn)階段,各種新概念智能鎖層出不窮,智能鎖的發(fā)展也逐漸多功能化,技術(shù)的成熟也讓智能鎖的成本逐漸降低至為大眾所能接受[3]。

      1 功能概述

      1)虛位密碼解鎖開門:通過智能門鎖上的電容按鍵輸入開門密碼,密碼為6 位數(shù)字,用戶隨意輸入10 位連續(xù)數(shù)字,系統(tǒng)識別到輸入數(shù)字中有連續(xù)正確的密碼即可開門。

      2)指紋解鎖開門:通過半導(dǎo)體指紋模塊對指紋與已注冊指紋進(jìn)行比對,比對成功即可打開門鎖,用戶可通過管理員界面注冊或刪除指紋。

      3)門卡解鎖開門:通過RFID 讀寫模塊比對門卡序列號是否已注冊,若已注冊則打開門鎖,通過管理員界面注冊或刪除門卡。

      4)云端交互:通過阿里云界面查看管理員密碼、開門密碼、開門情況、已注冊信息。并可通過阿里云虛擬按鈕打開和關(guān)閉門鎖。

      5)人機(jī)交互:通過輸入管理員密碼進(jìn)入管理員界面,根據(jù)語音提示,可對已注冊信息進(jìn)行管理以及門鎖、管理員密碼的更改。

      2 硬件設(shè)計(jì)

      2.1 硬件總體設(shè)計(jì)

      該系統(tǒng)以STM32F401RET6 為主控芯片,指紋模塊采用ZY002-INT 模塊,門禁卡模塊采用RC522 模塊,按鍵采用BS8116 電容模塊,廣域網(wǎng)采用ESP32藍(lán)牙/WIFI 模塊,語音播報采用MY1680 模塊,上述模塊與門鎖電機(jī)配合使用完成系統(tǒng)設(shè)計(jì),并搭配TFTLCD屏幕完成顯示。硬件總體設(shè)計(jì)圖如圖1所示。

      圖1 硬件總體設(shè)計(jì)圖

      2.2 硬件選型

      2.2.1 主控芯片

      以Cortex-M4 為內(nèi)核架構(gòu)的STM32F401RET6比意法公司Cortex-M3 系列芯片擁有更強(qiáng)的DSP 能力[4],且其內(nèi)置MPU 內(nèi)存保護(hù)組件,功率效率方面也遠(yuǎn)遠(yuǎn)超過Cortex-M3 系列芯片,支持庫函數(shù)開發(fā),適用于對穩(wěn)定性、安全性要求較高的智慧門鎖系統(tǒng)。

      2.2.2 BS8116電容按鍵

      由合泰半導(dǎo)體公司生產(chǎn)的BS8116 電容按鍵提供了標(biāo)準(zhǔn)IIC 串行數(shù)據(jù)接口,該型號電容按鍵共12個按鈕,具有集成度高以及準(zhǔn)確性高的特點(diǎn)[5]。

      2.2.3 ZY002-INT半導(dǎo)體指紋模塊

      由中山名光科技公司生產(chǎn)的ZY002-INT 半導(dǎo)體指紋識別模塊以Cortex-M3 為內(nèi)核,利用電容、電場、溫度、壓力等實(shí)現(xiàn)指紋圖像采集,在硬件上具有耐磨、耐腐蝕、耐靜電等優(yōu)點(diǎn)[6-7]。該模塊只識別活體指紋,可穿透皮膚,安全性更高。模塊內(nèi)置FLASH和SRAM,指紋的存儲不需要占用主控內(nèi)部存儲空間,節(jié)約了內(nèi)存。

      2.2.4 RC522射頻卡讀寫模塊

      RC522 射頻卡模塊自帶NXP 公司生產(chǎn)的型號為MIFARE-S50的NFC卡,這類卡片內(nèi)置線圈,通過固定頻率的電磁波與讀寫器進(jìn)行通信[8],通信距離為10 cm,每個卡片預(yù)置一個獨(dú)一無二的序列號,亦可在卡片16個扇區(qū)的第三塊寫入卡密碼[9]。在開發(fā)過程中,RC522讀寫器可使用NXP公司提供的庫函數(shù),高效方便。

      2.2.5 ESP32藍(lán)牙/WIFI模塊

      擁有雙核處理器的ESP32 模塊擁有更多的GPIO,支持藍(lán)牙4.2 協(xié)議,操作性更強(qiáng)[10],處理性能和連接能力是常用的ESP8266WIFI 模塊的兩倍,適用于要求穩(wěn)定性、安全性更高的環(huán)境中。

      2.2.6 1.3寸TFTLCD液晶顯示屏

      TFT 型LCD 屏幕由薄膜晶體管構(gòu)成,該類型屏幕支持標(biāo)準(zhǔn)IIC、SPI、8080 等多種接口,該模塊應(yīng)用ST7789VW 驅(qū)動芯片,響應(yīng)速度快[11-12]??稍跓o外部操作時鐘的情況下執(zhí)行顯示數(shù)據(jù)RAM 讀/寫操作,最大程度上降低了功耗。

      2.2.7 MY1680語音模塊

      該設(shè)計(jì)采用千佰度電子科技公司生產(chǎn)的微集成MP3 模塊實(shí)現(xiàn)語音播報功能,該模塊需接入揚(yáng)聲器使用,支持MP3、WAV 格式雙解碼[13]。自帶16 MB 內(nèi)存,可將語音文件直接存儲在其中,不占用主控內(nèi)存空間,可通過文件目錄對存儲的音頻文件進(jìn)行操作,使用更方便[14]。

      2.2.8 存儲芯片

      STM32F401RET6 內(nèi)置W25Q64 芯片內(nèi)存大小為512 kB,而顯然不足以承擔(dān)整個智慧門鎖的運(yùn)轉(zhuǎn),于是該設(shè)計(jì)添加了AT24C02 存儲芯片[15]。兩種存儲芯片都是電擦除ROM,生產(chǎn)生活中,將按字節(jié)擦寫的AT24C02 稱為EEPROM,將按塊擦寫的W25Q64 稱為FLASH。EEPROM 存儲具有高可靠性,保存時間更長[16]。

      3 軟件設(shè)計(jì)

      3.1 程序軟件總體設(shè)計(jì)

      為了提高系統(tǒng)的實(shí)時性和CPU利用率,此處引入UCOSII操作系統(tǒng)。程序軟件設(shè)計(jì)流程圖如圖2所示。

      圖2 軟件設(shè)計(jì)流程圖

      3.2 虛位密碼設(shè)計(jì)

      在用戶輸入密碼時,很難保證周圍無人偷窺,智慧門鎖密碼通常為6 位及以下,這樣就有了密碼泄露的風(fēng)險,經(jīng)常更換密碼也并不方便。因此該設(shè)計(jì)引入了基于KMP 模式匹配算法的虛位密碼設(shè)計(jì),用戶可在正確密碼前后輸入任意數(shù)字(內(nèi)部承接轉(zhuǎn)化為字符型),最大為10 位,只要整串?dāng)?shù)字中有完整且未拆分的正確密碼,即可驗(yàn)證成功。

      3.2.1 軟件設(shè)計(jì)

      當(dāng)系統(tǒng)檢測到有人輸入任意位數(shù)密碼并按下確定按鍵,或者輸入的密碼達(dá)到10 位,則使用一個字符串?dāng)?shù)組承接。通過KMP 算法進(jìn)行比對,若其中包含門鎖密碼,則打開門鎖,若包含管理員密碼,則顯示管理員界面。部分代碼段如圖3 所示。

      圖3 虛位密碼部分代碼段

      3.2.2 KMP算法引入

      在字符串比對過程中,可以通過使用指針的暴力匹配算法,而其時間復(fù)雜度為O(mn),會浪費(fèi)大量CPU 資源。KMP 算法在此基礎(chǔ)上進(jìn)行改進(jìn),在匹配失敗后,對已匹配的字符串的子串進(jìn)行搜索,找出最長前綴與后綴,并使它們重疊,用于下次匹配,以此減少匹配方式。如圖4 所示,在第一次匹配至字母c時,匹配失敗,第二次字串直接從c 后開始進(jìn)行匹配。該算法時間復(fù)雜度為O(m+n),真正做到了快速匹配,該設(shè)計(jì)大大提高了系統(tǒng)反應(yīng)速度。

      圖4 KMP示意圖

      3.3 指紋軟件設(shè)計(jì)

      ZY002-INT 模塊通過USART 串口與主控進(jìn)行通信,在智慧門鎖設(shè)備待機(jī)時,如檢測到手指按下指紋模塊,則脫離低功耗狀態(tài),對指紋特征進(jìn)行比對,比對成功主控下發(fā)開鎖指令即可打開門鎖。該部分同時也完成了指紋的采集工作,在采集時先將指紋與數(shù)據(jù)庫進(jìn)行比對,若指紋不存在,則進(jìn)行3 次指紋特征值采集,若存在,則結(jié)束,ZY002-INT 指紋模塊最大存儲指紋數(shù)量為100。指紋軟件設(shè)計(jì)流程圖如圖5 所示。

      3.4 門卡軟件設(shè)計(jì)

      RC522 模塊通過標(biāo)準(zhǔn)SPI 通信接口與主控進(jìn)行數(shù)據(jù)傳輸,刷卡開鎖設(shè)定了防沖突機(jī)制,多張卡同時放置在RC522 讀寫模塊時,模塊會輪流對卡的信息進(jìn)行讀取。在用戶使用門卡開鎖時,RC522 模塊通過對NFC 卡第三扇區(qū)卡密碼進(jìn)行比對,若已注冊該門卡,則打開門鎖。部分重要代碼段如圖6 所示。

      圖5 指紋軟件設(shè)計(jì)流程圖

      圖6 門卡軟件設(shè)計(jì)代碼段

      3.5 云端交互功能設(shè)計(jì)

      在進(jìn)行云端交互設(shè)計(jì)時,為用戶預(yù)留了一個WIFI 接口,在用戶第一次使用該設(shè)備時,可通過一鍵配網(wǎng)微信小程序?yàn)橹腔坶T鎖連接WIFI,WIFI 連接成功自動連接阿里云,用戶亦可以選擇離線模式登錄門鎖系統(tǒng)。

      主機(jī)與阿里云通過MQTT 通信協(xié)議進(jìn)行連接與通信,通信過程中數(shù)據(jù)格式為json 格式,在阿里云界面可以查看用戶設(shè)置的用戶密碼、管理員密碼、已注冊門禁卡、指紋信息以及今日開門次數(shù)、總開門次數(shù)。當(dāng)家中無人,又有客人或者家政服務(wù)上門時,用戶可以通過虛擬開關(guān),遠(yuǎn)程打開門鎖。阿里云界面如圖7 所示。

      3.6 人機(jī)交互功能設(shè)計(jì)

      圖7 阿里云交互界面

      鑒于設(shè)備的安保性能,在主屏幕不做開門提示。在智慧門鎖系統(tǒng)檢測到門卡、指紋時,自動進(jìn)行比對、開鎖。密碼可輸入10 位及以下任意數(shù)字,等于10 位,則直接進(jìn)入密碼判斷,執(zhí)行對應(yīng)開鎖、切換界面功能,此處引入防沖突機(jī)制,若密碼恰巧同時包含門鎖密碼與管理員密碼,則在門鎖打開后進(jìn)入管理員界面。若不足10 位,可按#號確認(rèn),按下按鍵有嘟聲,為防止密碼外泄,密碼返回到屏幕上為*號。主屏幕界面如圖8 所示。

      圖8 主屏幕界面

      當(dāng)解析密碼為管理員時進(jìn)入管理員界面,在該頁面,每執(zhí)行一步操作MY1680 語音模塊都會有對應(yīng)的提示,管理員可在此處對密碼進(jìn)行更改,注冊和刪除指紋、門卡信息,調(diào)整MP3 播放器音量,同時也可對設(shè)備進(jìn)行恢復(fù)出廠設(shè)置操作(需再次確認(rèn)管理員密碼),管理員界面如圖9 所示。

      圖9 管理員界面

      聯(lián)網(wǎng)模式下,人機(jī)交互功能與云端交互配合使用,每次打開門鎖以及注冊、修改信息會上傳至云端界面。

      4 結(jié)束語

      該文介紹了一種以STM32 為主控的智慧語音交互門鎖。在開發(fā)過程中,該設(shè)計(jì)應(yīng)用了較為創(chuàng)新的云端交互及虛位密碼設(shè)計(jì)。為提高密碼識別速率,該文引入了KMP 模式匹配算法。同時,該設(shè)計(jì)也存在一些不足,不同于門禁卡注冊時寫入了卡密碼,指紋在數(shù)據(jù)庫中只有生物信息,若要刪除指定指紋,需重新進(jìn)行生物特征掃描,如此操作有些麻煩,這也是該設(shè)計(jì)的后續(xù)改進(jìn)之處。

      猜你喜歡
      門鎖按鍵管理員
      我是小小午餐管理員
      基于有限狀態(tài)機(jī)的按鍵檢測程序設(shè)計(jì)
      電子制作(2021年3期)2021-06-16 03:14:26
      我是圖書管理員
      我是圖書管理員
      一種簡易氣門鎖夾安裝設(shè)備
      可疑的管理員
      6款熱門智能門鎖推薦
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
      電子制作(2016年1期)2016-11-07 08:43:05
      鑰匙門鎖對對碰
      豐田威馳車門鎖隨速鎖止功能失效
      凤庆县| 香河县| 灵丘县| 汶上县| 乌拉特前旗| 乐业县| 运城市| 增城市| 垫江县| 东乌珠穆沁旗| 东阿县| 哈尔滨市| 罗田县| 兰州市| 德兴市| 罗田县| 炉霍县| 读书| 安宁市| 武穴市| 翁源县| 洪洞县| 长宁县| 夏邑县| 瓦房店市| 昆明市| 通山县| 乌苏市| 鹤岗市| 水城县| 荥阳市| 巴彦淖尔市| 永和县| 修文县| 三河市| 阿拉尔市| 新龙县| 乌兰察布市| 乐至县| 杨浦区| 扎赉特旗|