我如果要出門,常常是連背包都沒有,錢包、手機,各一邊的口袋就出門了,不想要帶鑰匙的時候,又沒人在家時,就需要一個智慧門鎖,我們的智慧門鎖有指紋辨識、刷卡辨識、手機遠端開門,有沒有很晚回家時,家裡黑漆漆的,找不到電燈,或電燈很遠?我們做了一個在進門後自動開燈,可以設定時間,甚麼時段進門想要燈亮,這樣回家的時候就會有溫暖的感覺。
我們用的開發版是ESP32,它具有低功耗,接腳多、板載wifi,藍芽,雙核心cpu,程式撰寫容易,價格低廉。諸多優點而選擇了此開發版。
我們選用光學指紋辨識器,原因是,函式簡單易學,門鎖需要大量掃描指紋,故選光學指紋辨識器比較耐用,還有觸碰感應(獨立運作)利用此功能,加裝電晶體讓指紋感測器通電,只要觸摸指紋感應器就會開機,開始掃描。
在很多地方都能看見它的身影,公車,超商,火車站,學生證,當然門禁也不例外,很多學校使用學生證,來實施門禁管理。我們註冊卡片時在卡片的rom裡加上使用者編號,並把卡號及使用者資料傳入資料庫保存。就算有心人士複製了卡片號碼也無法刷卡成功,大大增加安全性。若是再把卡片加密,安全性又更好了。
我主要負責的是硬體的部分,真多虧另一名負責設計app的隊員,我們經過很多溝通,才把兩者結合在一起,硬體方面,我遇到最多的問題是,相容性問題,資料型態轉換,程式運作不順。
使用esp32構建RTOS可以立即反映所有狀態,cpu時脈很快,運算很快,但遇到一個不好解決的問題,wifi密碼怎麼設定?關於這個問題我們想出一個方法,利用藍芽設定wifi,再連上網路。
還有資料庫部分esp32要和資料庫溝通有官方給的函示庫,但是這個函式庫有很多漏洞,包括反應速度慢,無法監控資料庫的資料有無改變(串流),我上網爬文,解讀標頭檔,一點一點的克服了,
我們使用的資料庫是Firebase,會選用它是因為它很新,樹狀資料結構,訊息推播,第三方登入,伺服器運算功能。
資料庫在我們的專題裡占了很大一部份因為我們的功能很多都要使用網路,資料庫也是我們搭建物聯網的橋樑。
資料庫提供的第三方驗證,需要用Email註冊方可登入。
為解決有很多門的情況發生,我們增加了裝置序號,有點像產品序號,這樣一來要量產也不是大問題了。
為了回家有一種有人在家等你的感覺設置了,進屋開燈的設計,雖然我們用的是LED但是是用繼電器通電的,要接市電110V也沒問題。
我們使用flutter,它是一個新的app開發套件,可以一次開發ios、android兩個平臺,不用分開開發。
●指紋頁面,顯示所有指紋使用者名稱及使用者指紋號碼,點擊下方加號可新增指紋。
●卡片頁面,顯示所有卡片使用者名稱及卡片號碼,點擊下方加號可新增卡片。
●訊息通知頁面,任何使用者做的任何事都會在此顯示,每個帳號也都有自己的使用者名稱喔!
在和負責做模型屋的同學討論門鎖設計時,把我家的門改成簡易的網路開門,在門上加裝伺服馬達,控制伺服馬達角度,達到開關門。改造後還找來家人,試用,大家都說很棒。
在做的過程中遇到很多問題,但是我用我 之所學,經驗,上網找資料,或和隊友討論,任何問題都得以迎刃而解,在此次專題製作裡學到許多,資料庫的運作、晶片的省電模式的運作,更學到團隊合作,互相溝通。