嵌入式AIoT必看!30+行業(yè)場(chǎng)景技術(shù)分享,重塑端側(cè)硬件
Screen-Lock智能藍(lán)牙指紋鎖基于樂鑫ESP32C3模組構(gòu)建, 搭載 RISC-V 32 位單核處理器,并使用海凌科ZW101及LD2402模塊實(shí)現(xiàn)智能屏鎖功能,支持人體檢測(cè),適用于學(xué)習(xí)監(jiān)督,員工統(tǒng)計(jì),信息安全保護(hù)。
Screen-Lock智能藍(lán)牙指紋鎖采用Espressif ESP32C3模組作為本項(xiàng)目主控,提供WIFI及藍(lán)牙能力;采用Hi-Link ZW101指紋模組,實(shí)現(xiàn)指紋解鎖輸入密碼功能;采用Hi-Link LD2402人體雷達(dá),實(shí)現(xiàn)人體距離檢測(cè)功能;采用TP4054充電IC,實(shí)現(xiàn)鋰電池充電功能;支持3V振動(dòng)馬達(dá),用于提醒,總體功能清單如下:
藍(lán)牙HID輸入
離開工位時(shí)自動(dòng)鎖屏
回到工位時(shí)指紋解鎖
統(tǒng)計(jì)工作時(shí)長(zhǎng)及離開時(shí)長(zhǎng)
統(tǒng)計(jì)休息次數(shù)
統(tǒng)計(jì)經(jīng)過時(shí)的次數(shù)
久坐提醒
用眼距離過近提醒
Web控制中心
Screen-Lock智能紋鎖架構(gòu)設(shè)計(jì)
主控電路這里選用ESP32C3芯片,借助C3的藍(lán)牙功能通過HID實(shí)現(xiàn)鎖屏和輸入密碼,借助C3的WIFI功能通過局域網(wǎng)搭建Web服務(wù)實(shí)現(xiàn)可視化數(shù)據(jù)及設(shè)備控制中心。C3芯片價(jià)格便宜且引腳IO足夠。
指紋模塊選用Hi-Link ZW101模塊,由于該模塊默認(rèn)串口波特率較低,所以使用軟件模擬串口進(jìn)行通訊,把C3的硬件串口留給LD2402使用,這里還引出了一條T_OUT信號(hào)線,這是一條觸摸信號(hào)線,你可以把他當(dāng)作觸摸按鍵使用。
人體檢測(cè)模塊選用HI-Link LD2402人體存在24G毫米波雷達(dá)模塊,這個(gè)模塊的串口波特率為115400,比較高,所以這里使用硬件串口通訊,模組帶一個(gè)輸出IO,用于判斷是否有人存在,不過這個(gè)IO比較多余,可以去除掉,因?yàn)榇跁?huì)實(shí)時(shí)發(fā)送數(shù)據(jù)告訴人體距離,如果你有擴(kuò)展需求可以去掉這個(gè)IO接其他外設(shè)。
供電電路使用LDO方案,這里選用ME6217C33M5G芯片,尺寸小巧,外圍器件較少。
充電IC選用TP4054,價(jià)格便宜,而且體積小,很適合集成,CHRG這里也引出一條IO,可以反饋電池充電狀態(tài)。
屏幕選用SSD1306,0.91寸屏,用作信息提示。
振動(dòng)馬達(dá)也是用作提醒功能使用,3.3V使用NMOS通過IO控制,我這里用的AO3400A支持5.7A,可以選便宜點(diǎn)的,馬達(dá)額定電流只有80mA。
Screen-Lock智能紋鎖軟件開發(fā)
開發(fā)環(huán)境
軟件環(huán)境:VSCode+PlatformIO
開發(fā)語言:C/C++
依賴庫
EspSoftwareSerial:軟串口驅(qū)動(dòng)庫
Adafruit SSD1306:屏幕驅(qū)動(dòng)庫
藍(lán)牙HID驅(qū)動(dòng)
藍(lán)牙HID基于BleKeyboard庫修改,原庫年久失修,由于安全協(xié)議問題會(huì)導(dǎo)致最新Windows及Android系統(tǒng)拒絕與其通訊。通過在原庫 void BleKeyboard::begin (void) 中添加以下兩行解決
pSecurity->setCapability(ESP_IO_CAP_NONE);//安全設(shè)置pSecurity->setInitEncryptionKey(ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK);
指紋驅(qū)動(dòng)
指紋庫基于Hi-Link提供的例程修改,原例程缺少一些數(shù)據(jù)位判斷及適當(dāng)延時(shí),導(dǎo)致接收到的數(shù)據(jù)包未過濾而返回通訊失敗。通過對(duì)原庫receiveResponse()函數(shù)改良,添加數(shù)據(jù)位判斷,以及init初始化添加等待延時(shí)解決。
boolreceiveResponse(){uint8_t response[64];uint8_tindex=0;uint32_t startTime = millis();//先等待包頭 EF01bool headerFound = false;while(millis() - startTime 2000) { ?//?延長(zhǎng)等待時(shí)間到2秒if?(fingerprintSerial.available()) {uint8_t b = fingerprintSerial.read();if?(!headerFound) {if?(index?==?0?&& b ==?0xEF) {? ? ? ? response[index++] = b;? ? ? } elseif (index?==?1?&& b ==?0x01) {? ? ? ? response[index++] = b;? ? ? ? headerFound = true;? ? ? }?else?{? ? ? ? index?=?0;?//?重新開始找包頭? ? ? }? ? }?else?{? ? ? response[index++] = b;if?(index?>=9) {//包長(zhǎng)度在第7和8字節(jié)uint16_t packetLen = ((uint16_t)response[7] <8) | response[8];if?(index?>=9+ packetLen) {//收到完整包break; } } } }}#if defined(HLK_DEBUG)Serial.println("Received response:");printResponse(response,index);#endif// 簡(jiǎn)單校驗(yàn)包頭和確認(rèn)碼if(index>=12&& response[0] ==0xEF&& response[1] ==0x01&& response[9] ==0x00) {returntrue;}returnfalse;}
固件燒錄
首次燒錄連接設(shè)備時(shí),主控可能會(huì)不斷重啟導(dǎo)致端口不穩(wěn)定,這時(shí)候要先按住BOOT鍵,然后再按RST鍵,最后松開BOOT鍵進(jìn)入下載模式即可。
如果你通過源碼燒錄,不需要自己設(shè)置分區(qū),platformio會(huì)自動(dòng)按照默認(rèn)分區(qū)表配置分區(qū)燒錄,你只需要點(diǎn)擊燒錄箭頭即可自動(dòng)編譯,自動(dòng)查找端口,自動(dòng)燒錄。
為了簡(jiǎn)化燒錄,附件中提供的固件是bootloader.bin + partitions.bin + firmware.bin 合并后的固件,所以如果你使用附件提供的合并固件,僅需設(shè)置燒錄地址為0即可。
如果你通過源碼編譯,則會(huì)在build目錄下產(chǎn)生bootloader.bin partitions.bin firmware.bin這三個(gè)bin文件,所以在燒錄時(shí)請(qǐng)按照下圖提供的分區(qū)地址燒錄。
原理圖
PCB板
Screen-Lock智能紋鎖成品
-
模塊
+關(guān)注
關(guān)注
7文章
2811瀏覽量
52293 -
嵌入式
+關(guān)注
關(guān)注
5174文章
19967瀏覽量
324296 -
指紋門鎖
+關(guān)注
關(guān)注
0文章
12瀏覽量
2393
發(fā)布評(píng)論請(qǐng)先 登錄
哪位大神教教我怎么入門嵌入式??!
【華強(qiáng)芯城指紋模塊試用申請(qǐng)】指紋門鎖
【華強(qiáng)芯城指紋模塊試用申請(qǐng)】智能門鎖
藍(lán)牙智能門鎖解決方案 BLE藍(lán)牙指紋智能門鎖開發(fā)方案
智能指紋鎖成智能家居入口,或迎來大規(guī)模爆發(fā)
基于W600 RT-Thread智能指紋門鎖的設(shè)計(jì)方案
基于STM32F103做的WIFI指紋智能門鎖
嵌入式指紋鎖的設(shè)計(jì)與實(shí)現(xiàn)

智能指紋門鎖有什么優(yōu)勢(shì)
一步一步教你用Zview擬合交流阻抗譜

ZW651指紋識(shí)別模塊資料
大神教你30條PCB設(shè)計(jì)時(shí)提升降噪與抗電磁干擾能力的技巧,必看!
新品 | 智能觸摸解鎖ZW302x系列指紋模塊 支持存儲(chǔ)100枚指紋

評(píng)論