資料介紹
入室盜竊是大多數(shù)人永遠(yuǎn)不想經(jīng)歷的事情。一個(gè)人的個(gè)人物品被拿走,房屋和家具可能會(huì)受損,最糟糕的是當(dāng)一個(gè)人的神圣、受保護(hù)的空間受到侵犯時(shí),會(huì)感到恐懼。
有一些方法可以降低被盜的風(fēng)險(xiǎn)。沒(méi)有家庭安全系統(tǒng)的房屋被闖入的可能性比有一個(gè)的房屋高 300%(來(lái)源)。盡管如此,大多數(shù)人并不費(fèi)心去建立這樣一個(gè)系統(tǒng)。為什么?
它們很難設(shè)置。進(jìn)入住宅的每一扇門(mén)或窗戶(hù)都需要一個(gè)特殊的傳感器,這些傳感器都需要與基本單元通信。
它們相對(duì)昂貴。成本因房屋大小而異,但設(shè)備成本從 250 美元到 1500 美元不等,安裝成本增加到總成本,監(jiān)控成本平均每年額外增加 360 美元(來(lái)源)。
他們很不方便。家庭安全系統(tǒng)是另一件要記住打開(kāi)/關(guān)閉的事情,忘記這樣做會(huì)導(dǎo)致系統(tǒng)無(wú)效或誤報(bào)。
我們可以使用基于 Microsoft Azure Sphere 構(gòu)建的 Safe Sound 家庭安全系統(tǒng)做得更好。Safe Sound 系統(tǒng)是一個(gè)集中式家庭監(jiān)控系統(tǒng),無(wú)需特殊安裝,并將通知所有者任何檢測(cè)到的事件。大多數(shù)入室盜竊都是吵鬧的:95% 的盜竊案涉及通過(guò)打破窗戶(hù)或踢開(kāi)門(mén)強(qiáng)行進(jìn)入家中(來(lái)源)。Safe Sound 系統(tǒng)利用這一點(diǎn)來(lái)偵聽(tīng)強(qiáng)行進(jìn)入的跡象。所以它可以放在家里的任何地方,如果附近的窗戶(hù)破了,或者有人開(kāi)槍?zhuān)蜁?huì)向配套應(yīng)用程序發(fā)送通知。
?
1 / 2 ?安裝了 Safe Sound
為 Safe Sound 構(gòu)建的應(yīng)用程序適用于 Android 和 iOS 設(shè)備,并具有許多功能,包括更新系統(tǒng)的事件冷卻時(shí)間(報(bào)告連續(xù)事件之間等待的時(shí)間)、查看最近的事件歷史記錄、模擬窗口破裂、在事件發(fā)生時(shí)接收通知,以及啟用/禁用 Azure Sphere 設(shè)備的能力。
Azure Sphere 非常適合這個(gè)項(xiàng)目,因?yàn)樗鼘?zhuān)注于安全性。它內(nèi)置了許多安全功能,包括微控制器單元中的內(nèi)置硬件安全性、專(zhuān)為抵御物聯(lián)網(wǎng)威脅而設(shè)計(jì)的定制操作系統(tǒng),以及一致的安全更新。這確保了 Safe Sound 設(shè)備本身是安全的,因?yàn)樗梢员Wo(hù)您的家。
經(jīng)營(yíng)概況
該項(xiàng)目由幾個(gè)不同的組件組成,這些組件必須協(xié)同工作以提供強(qiáng)大的安全服務(wù)。在高層次上,Azure Sphere 使用麥克風(fēng)收集音頻數(shù)據(jù)并不斷對(duì)其進(jìn)行分類(lèi),以查找表明有人闖入的音頻事件。如果它檢測(cè)到此類(lèi)事件,它會(huì)向 Azure 云服務(wù)發(fā)送通知,該服務(wù)會(huì)向關(guān)聯(lián)的應(yīng)用程序發(fā)送通知。其他狀態(tài)消息,例如控制設(shè)備是否處于武裝狀態(tài),也通過(guò) Azure 云服務(wù)在應(yīng)用程序和設(shè)備之間來(lái)回傳送。
有關(guān)不同部分之間連接的直觀視圖,請(qǐng)參見(jiàn)下圖。
服務(wù)和設(shè)備之間的數(shù)據(jù)流
音頻分類(lèi)是直接在 Azure Sphere 上使用機(jī)器學(xué)習(xí)實(shí)現(xiàn)的。創(chuàng)建一個(gè)兩層門(mén)控循環(huán)單元 (GRU) 網(wǎng)絡(luò),并根據(jù)收集的數(shù)據(jù)和用各種事件標(biāo)記的數(shù)據(jù)進(jìn)行訓(xùn)練。在這種情況下,使用了三個(gè)類(lèi)別:窗戶(hù)破裂、槍聲和背景噪音。背景噪音包括通常在家中聽(tīng)到的聲音,包括寂靜。Azure Sphere 將音頻連續(xù)分類(lèi)為三個(gè)類(lèi)別之一。如果預(yù)測(cè)的類(lèi)別是背景噪聲(大多數(shù)情況下都是如此),則丟棄預(yù)測(cè)并檢查下一個(gè)音頻塊。如果預(yù)測(cè)的類(lèi)別是其他類(lèi)別,則設(shè)備會(huì)向所有者發(fā)送有關(guān)檢測(cè)到的事件的通知。
1 / 2 ?窗戶(hù)破裂的音頻波形
收集音頻數(shù)據(jù)
如圖所示,音頻數(shù)據(jù)是通過(guò) Mic 2 Click 收集的,它可以感應(yīng)聲波引起的壓力變化,并將它們輸出到 Azure Sphere 上的模數(shù)轉(zhuǎn)換器 (ADC)。Sphere 每秒從 ADC 獲取 16, 000 個(gè)樣本并將其存儲(chǔ)在一系列緩沖區(qū)中 - 本質(zhì)上這是脈沖編碼調(diào)制 (PCM) 音頻格式。每個(gè)緩沖區(qū)都是一大塊音頻數(shù)據(jù),在本例中為 512 個(gè)數(shù)據(jù)點(diǎn)。每個(gè)緩沖區(qū)都被送入音頻分類(lèi)器,預(yù)測(cè)是否有音頻事件發(fā)生,例如玻璃破碎,這表明窗戶(hù)被打破了。
執(zhí)行音頻分類(lèi)
如前所述,音頻分類(lèi)直接在 Azure Sphere 上執(zhí)行。Sphere 在內(nèi)存和處理能力方面相當(dāng)受資源限制,這可能會(huì)使運(yùn)行機(jī)器學(xué)習(xí)模型變得困難。對(duì)于此任務(wù),使用了 Microsoft 開(kāi)發(fā)的嵌入式學(xué)習(xí)庫(kù)(ELL)。ELL 是專(zhuān)門(mén)用于在嵌入式設(shè)備上轉(zhuǎn)換和運(yùn)行機(jī)器學(xué)習(xí)模型的庫(kù)。雖然可以從 Sphere 連續(xù)流式傳輸音頻數(shù)據(jù),然后使用 Azure 機(jī)器學(xué)習(xí)等工具在云中執(zhí)行分類(lèi),但在本地進(jìn)行分類(lèi)有幾個(gè)優(yōu)點(diǎn):
隱私和安全
通過(guò)在本地進(jìn)行分類(lèi),Azure Sphere 收集的音頻數(shù)據(jù)永遠(yuǎn)不會(huì)離開(kāi)設(shè)備。它沒(méi)有存儲(chǔ)在某處的服務(wù)器上,因此不太可能意外暴露或被黑客收集。相比之下,如果將音頻數(shù)據(jù)發(fā)送到云端以執(zhí)行模型推理(分類(lèi)),那么有權(quán)訪問(wèn)云服務(wù)器的人就有可能收聽(tīng)家中發(fā)生的一切。
速度
由于通過(guò)互聯(lián)網(wǎng)通信引入的延遲,云上的機(jī)器學(xué)習(xí)比使用本地處理簡(jiǎn)單模型要慢得多。在這個(gè)項(xiàng)目中,這可能意味著不可能實(shí)時(shí)執(zhí)行音頻分類(lèi),而是將事件檢測(cè)限制為每隔幾秒進(jìn)行一次。
網(wǎng)絡(luò)要求
從本質(zhì)上講,在云端使用機(jī)器學(xué)習(xí)需要互聯(lián)網(wǎng)連接,因此沒(méi)有網(wǎng)絡(luò)連接的設(shè)備將無(wú)法使用機(jī)器學(xué)習(xí)。此外,可能需要額外的帶寬來(lái)處理向機(jī)器學(xué)習(xí)服務(wù)器發(fā)送數(shù)據(jù)的設(shè)備增加的負(fù)載。對(duì)于此項(xiàng)目,即使 Sphere 的互聯(lián)網(wǎng)連接中斷,也會(huì)檢測(cè)到音頻事件,但不會(huì)發(fā)送通知,因?yàn)樗鼈冃枰B接。
改進(jìn)
雖然在這個(gè)項(xiàng)目中沒(méi)有實(shí)現(xiàn),但在邊緣運(yùn)行機(jī)器學(xué)習(xí)模型的能力也允許在設(shè)備上更新這些模型,從而改進(jìn)未來(lái)的功能。
來(lái)自 Azure Sphere 的音頻分類(lèi)輸出示例
因此,音頻分類(lèi)是在 Azure Sphere 上連續(xù)進(jìn)行的。大多數(shù)時(shí)候,Sphere 會(huì)檢測(cè)到正常的背景噪音。但是,如果有人在 Sphere 的聽(tīng)力范圍內(nèi)打碎玻璃或開(kāi)槍?zhuān)鼤?huì)將其檢測(cè)為音頻事件并向所有者發(fā)送通知。
發(fā)送通知
在 Sphere 上檢測(cè)到事件時(shí)的操作流程
Azure 云服務(wù)用于處理和發(fā)送通知。整個(gè)流程從 Azure Sphere 檢測(cè)音頻事件并將遙測(cè)事件發(fā)送到它配置連接到的 Azure IoT 中心開(kāi)始(請(qǐng)參閱下文了解如何配置該中心)。IoT 中心接收此通信并將其轉(zhuǎn)發(fā)到另一個(gè) Azure 服務(wù) Event Hub,該服務(wù)允許將事件路由到不同的端點(diǎn)。在這種情況下,事件中心將事件消息傳遞給自定義 Azure 函數(shù),該函數(shù)使用 Google Firebase Messaging API 請(qǐng)求向任何已注冊(cè)的 Android 或 iOS 設(shè)備發(fā)送通知(請(qǐng)注意,對(duì) iOS 設(shè)備的通知也會(huì)通過(guò) Apple 的服務(wù)器)。Firebase Messaging 然后將實(shí)際通知傳送到所有者的手機(jī)。
構(gòu)建安全完善的家庭安全系統(tǒng)
組裝一個(gè) Safe Sound 家庭安全系統(tǒng)包括五個(gè)主要步驟:首先準(zhǔn)備好硬件;然后將軟件加載到 Azure Sphere 上;接下來(lái),配置必要的 Azure 云服務(wù)和 Firebase 消息傳遞(如果您有 iOS 設(shè)備,還需要配置 Apple 通知服務(wù));最后,3D 打印設(shè)備外殼并將其放在方便的地方。接下來(lái)的幾個(gè)部分將更詳細(xì)地介紹這些步驟。
準(zhǔn)備硬件
雖然 Azure Sphere 入門(mén)套件硬件開(kāi)箱即用,但 Mic 2 Click 需要進(jìn)行一些調(diào)整才能與 Sphere 配合使用。如Azure Sphere MT3620 的硬件說(shuō)明中所述,當(dāng)輸入引腳配置為與 ADC 一起使用時(shí),輸入電壓不能超過(guò) 2.5V。但是,未修改的 Mic 2 在 3.3V(或 5V)下工作,并根據(jù)它感知到的聲音強(qiáng)度輸出 0 - 3.3V。由于 Mic 2 的電阻主要取決于兩個(gè)相對(duì)恒定的組件,即駐極體電容麥克風(fēng)和運(yùn)算放大器,因此可以使用簡(jiǎn)單的分壓器將電壓降至 2.5V。
駐極體電容麥克風(fēng)和運(yùn)算放大器均可在 2.5V 電壓下工作,但用于調(diào)節(jié)運(yùn)算放大器增益的可編程電位器至少需要 2.7V 才能工作。所以加了分壓器后,增益就不再可調(diào)了。然而,這不是一個(gè)大問(wèn)題,因?yàn)槟J(rèn)增益應(yīng)該適用于錄制和分類(lèi)一般音頻。
要計(jì)算分壓器所需的電阻器,請(qǐng)查看Mic 2 數(shù)據(jù)表并假設(shè)穩(wěn)態(tài)運(yùn)行。在仔細(xì)解決問(wèn)題并參考麥克風(fēng)數(shù)據(jù)表和運(yùn)算放大器數(shù)據(jù)表后,分壓器的輸出阻抗可以計(jì)算為 439 歐姆(主要是由于功率 LED 電阻)??紤]到這一點(diǎn),在 Mic 2 電路之前串聯(lián)一個(gè) 150 歐姆的電阻器應(yīng)該可以將輸入電壓降低到 2.5V。使用烙鐵拆焊下圖中圈出的現(xiàn)有 0 歐姆電阻器,然后焊接到新電阻器上。將點(diǎn)擊板插入 Azure Sphere 上的插槽 #1,您就可以準(zhǔn)備軟件了。
用 150 歐姆電阻替換圈出的電阻(圖片來(lái)源:www.mikroe.com/mic-2-click)
設(shè)置 Azure Sphere 軟件
由于 Azure Sphere 專(zhuān)注于維護(hù) IoT 設(shè)備的安全性,因此設(shè)置比其他微控制器要復(fù)雜一些。在加載此特定項(xiàng)目的代碼之前,您需要安裝 Azure Sphere SDK、聲明您的設(shè)備并將其與租戶(hù)相關(guān)聯(lián),然后配置網(wǎng)絡(luò)。此處的文檔中指定了每個(gè)步驟的更多詳細(xì)信息。確保您一直執(zhí)行“配置網(wǎng)絡(luò)”。
有多種方法可以將代碼部署到 Azure Sphere,但如果您想試驗(yàn)或更改代碼,最合適的方法是將設(shè)備置于文檔中指定的開(kāi)發(fā)模式。要將設(shè)備置于開(kāi)發(fā)模式,請(qǐng)將 Sphere 插入已加載 Azure Sphere SDK 的計(jì)算機(jī),打開(kāi) Azure Sphere 開(kāi)發(fā)人員命令提示,然后發(fā)出以下命令:
?
azsphere device enable-development
?
在開(kāi)發(fā)模式下,Sphere 可用于本地調(diào)試并且禁用云應(yīng)用程序更新。
現(xiàn)在 Azure Sphere 已準(zhǔn)備好向其加載一些代碼。使用以下方法將 SafeSound 存儲(chǔ)庫(kù)克隆到方便的位置:
?
git clone https://github.com/jdpwebb/safe-sound.git
?
為了編譯代碼并將其加載到 Azure Sphere,我們將使用 Visual Studio 2019,因?yàn)樗褂闷饋?lái)簡(jiǎn)單流暢。但是,還有其他選項(xiàng)(目前處于預(yù)覽狀態(tài)),如果您更喜歡使用命令行,可以嘗試按照此文檔進(jìn)行操作。對(duì)于 Visual Studio,請(qǐng)執(zhí)行以下步驟:
1、打開(kāi)Visual Studio 2019,選擇File > Open > CMake...,打開(kāi)SafeSound repo > SafeSound_code > CMakeLists.txt下的CMakeLists.txt文件。
2. 選擇 Build > Build All 并確保代碼編譯沒(méi)有任何問(wèn)題。
3. 使用 USB 線將 Azure Sphere 連接到計(jì)算機(jī)。
4. 在工具欄中間的“選擇啟動(dòng)項(xiàng)”下,選擇 GDB 調(diào)試器 (HLCore)。
設(shè)置啟動(dòng)項(xiàng)為 GDB Debugger
5. 點(diǎn)擊“GDB Debugger (HLCore)”旁邊的綠色播放按鈕,等待Visual Studio開(kāi)始調(diào)試。
應(yīng)用程序開(kāi)始調(diào)試后,您會(huì)看到一些錯(cuò)誤,因?yàn)?Sphere 未連接到 Azure IoT Hub。但是,您仍然可以通過(guò)按下按鈕 A 來(lái)測(cè)試一切是否正常,這將模擬窗口破裂事件?,F(xiàn)在讓我們將 Sphere 連接到 IoT Hub!
連接到 Azure 物聯(lián)網(wǎng)中心
調(diào)試和配置與 Azure IoT 中心的通信相對(duì)簡(jiǎn)單,因?yàn)?Azure Sphere 應(yīng)用程序代碼自動(dòng)管理設(shè)備預(yù)配和與中心的連接。執(zhí)行以下步驟以允許 Sphere 與 IoT Hub 通信:
1. 按照此處的文檔設(shè)置 IoT 中心和設(shè)備配置服務(wù)。
2. 打開(kāi) SafeSound repo > SafeSound_code > app_manifest.json 下的 app_manifest.json。X 的字符串以及集線器連接端點(diǎn)都需要替換。
3. 打開(kāi) Azure Sphere 開(kāi)發(fā)人員命令提示并發(fā)出以下命令以打印您的 Sphere 租戶(hù) ID:
?
azsphere tenant show-selected
?
將返回值復(fù)制到 app_manifest.json 中的 DeviceAuthentication 字段。
4. 登錄到Azure 門(mén)戶(hù)并找到您的設(shè)備配置服務(wù)。復(fù)制 ID Scope 并將其粘貼到 app_manifest.json 中的 CmdArgs 字段中。請(qǐng)參閱下圖以了解可以在何處找到 ID 范圍。
在哪里可以找到 ID 范圍和鏈接的 IoT 中心
5. 在左側(cè)的設(shè)置下,單擊鏈接的物聯(lián)網(wǎng)中心(見(jiàn)上圖)。復(fù)制 Hub 的服務(wù)終結(jié)點(diǎn)值并替換 app_manifest.json 的 AllowedConnections 字段中的“Daedalus.azure-devices.net”。
6. 保存 app_manifest.json 文件并通過(guò)單擊綠色播放按鈕運(yùn)行代碼。您應(yīng)該會(huì)看到幾條消息,表明設(shè)備已成功預(yù)配并連接到 IoT 中心。
現(xiàn)在 Safe Sound 家庭安全設(shè)備可以與 Azure IoT 中心通信,它需要一個(gè)發(fā)送通知的地方:一個(gè)應(yīng)用程序!
智能手機(jī)應(yīng)用程序概述
如前所述,為 Safe Sound 構(gòu)建的應(yīng)用程序可以控制家庭安全設(shè)備,包括布防/撤防和調(diào)整某些設(shè)置,并允許所有者查看最近事件的歷史記錄。此外,當(dāng) Safe Sound 系統(tǒng)檢測(cè)到事件時(shí),它將收到通知。該應(yīng)用程序是使用Flutter構(gòu)建的,因此只需最少的額外配置即可在 Android 和 iOS 手機(jī)上運(yùn)行。請(qǐng)參閱下面的 Safe Sound 配套應(yīng)用程序的一些圖片。
1 / 4 ?控制屏幕
設(shè)置應(yīng)用程序
在手機(jī)上構(gòu)建和加載應(yīng)用程序之前,必須填寫(xiě)一些變量,以便應(yīng)用程序可以連接到 IoT 中心以發(fā)送和接收來(lái)自 Safe Sound 設(shè)備的消息。導(dǎo)航到 SafeSound repo > SafeSound_app > lib 并打開(kāi) main.dart。文件頂部是三個(gè)需要填寫(xiě)的常量:sharedAccessKey、deviceID、iotHubEndpoint。iotHubEndpoint 與之前在 app_manifest.json 中輸入的字符串相同。deviceID 是 IoT 中心提供給 Azure Sphere 的 ID??梢酝ㄟ^(guò)打開(kāi) IoT 中心找到它,單擊側(cè)面菜單中的“IoT 設(shè)備”,然后選擇您的設(shè)備。請(qǐng)參閱下圖以進(jìn)行視覺(jué)演練。
1 / 2 ?在左側(cè)菜單中選擇物聯(lián)網(wǎng)設(shè)備
sharedAccessKey 是與 IoT Hub 關(guān)聯(lián)的密鑰,它授予持有者以特定方式與 Hub 交互的權(quán)限。對(duì)于此項(xiàng)目,共享訪問(wèn)密鑰需要具有“服務(wù)連接”權(quán)限。請(qǐng)注意,此密鑰授予對(duì)您的 IoT 中心的訪問(wèn)權(quán)限,不應(yīng)向任何人透露或簽入源代碼管理。此外,企業(yè)物聯(lián)網(wǎng)服務(wù)將使用后端服務(wù)器來(lái)驗(yàn)證應(yīng)用程序用戶(hù)并管理他們有權(quán)訪問(wèn)的服務(wù)。然而,就此項(xiàng)目而言,將共享訪問(wèn)密鑰直接放在應(yīng)用程序中更簡(jiǎn)單、更容易。要找到共享訪問(wèn)密鑰,請(qǐng)轉(zhuǎn)到您的 IoT 中心,單擊“共享訪問(wèn)策略”,選擇“服務(wù)”策略,然后復(fù)制“主密鑰”。請(qǐng)參閱下圖以獲取視覺(jué)指南。
1 / 2 ?在左側(cè)菜單中選擇共享訪問(wèn)策略
填寫(xiě)變量后,現(xiàn)在可以構(gòu)建應(yīng)用程序并將其安裝在您的手機(jī)上。首先你需要安裝 Flutter 。安裝 Flutter 后,只需幾步即可構(gòu)建該應(yīng)用程序。以下說(shuō)明描述了如何為 Android 手機(jī)構(gòu)建應(yīng)用程序,因?yàn)檫@是我的手機(jī)類(lèi)型,但可以在此處找到在iOS 設(shè)備上構(gòu)建和加載應(yīng)用程序的說(shuō)明。
要?jiǎng)?chuàng)建應(yīng)用程序的 Android 版本,首先創(chuàng)建一個(gè)簽名密鑰并為應(yīng)用程序簽名(注意:僅按照“為應(yīng)用程序簽名”的說(shuō)明進(jìn)行操作;到達(dá)“啟用 Proguard”后停止)。然后通過(guò)打開(kāi) flutter 命令提示符并發(fā)出以下命令來(lái)構(gòu)建 APK(這可能需要幾分鐘才能完成):
?
cd /SafeSound_app flutter build apk --split-per-abi
?
要安裝該應(yīng)用程序,請(qǐng)先在您的 Android 手機(jī)上啟用開(kāi)發(fā)者選項(xiàng)和USB 調(diào)試。將手機(jī)連接到計(jì)算機(jī),然后在 flutter 命令窗口中鍵入以下內(nèi)容:
?
cd/SafeSound_app flutter install
?
恭喜!該應(yīng)用程序現(xiàn)已安裝,您可以測(cè)試布防/撤防 Safe Sound 家庭安全系統(tǒng)。該應(yīng)用程序現(xiàn)在可以控制 Azure Sphere,但還需要執(zhí)行幾個(gè)步驟來(lái)設(shè)置檢測(cè)到闖入事件時(shí)的通知。
設(shè)置事件通知
為 Safe Sound 系統(tǒng)啟用通知包括兩個(gè)主要部分:將應(yīng)用程序連接到 Firebase Cloud Messaging(如果您有 iOS 設(shè)備,則連接到 Apple Push Notification Service),并設(shè)置 Azure Functions 以在檢測(cè)到事件時(shí)發(fā)送實(shí)際通知由 Azure Sphere。
將應(yīng)用程序連接到 Firebase
要將應(yīng)用程序連接到 Firebase 云消息傳遞,首先要?jiǎng)?chuàng)建一個(gè) Firebase 項(xiàng)目。
1. 打開(kāi) Firebase 控制臺(tái)并單擊“創(chuàng)建項(xiàng)目”并輸入項(xiàng)目名稱(chēng)。
2. 單擊繼續(xù),然后禁用該項(xiàng)目不需要的 Google Analytics。
3. 單擊“創(chuàng)建項(xiàng)目”。
?
1 / 3 ?單擊創(chuàng)建項(xiàng)目
下一步是配置您的手機(jī)以使用 Firebase。和以前一樣,此處將顯示配置 Android 設(shè)備的說(shuō)明,但如果您有 iOS 設(shè)備,請(qǐng)按照這些說(shuō)明進(jìn)行操作。
要為 Android 設(shè)備啟用通知,請(qǐng)執(zhí)行以下步驟:
1、點(diǎn)擊安卓上圖“添加應(yīng)用開(kāi)始”。
2.填寫(xiě)Android包名“com.jwebb.safe_sound_app”,點(diǎn)擊“注冊(cè)應(yīng)用”。
3. 下載 google-services.json 文件并將其放在 /android/app/ 中。
4. 重建應(yīng)用程序并使用與之前類(lèi)似的過(guò)程將其安裝到您的設(shè)備上:
?
cd /SafeSound_app flutter build apk --split-per-abi flutter install
?
現(xiàn)在應(yīng)用程序可以接收通知,但我們?nèi)匀恍枰渲靡粋€(gè) Azure Functions 來(lái)發(fā)送它們。
創(chuàng)建一個(gè) Azure 函數(shù)來(lái)發(fā)送通知
完成以下步驟以設(shè)置用于推送通知的 Azure 函數(shù)。查看圖像以進(jìn)行視覺(jué)演練。
1. 導(dǎo)航到Azure 門(mén)戶(hù)并單擊 Function App > Create(如果沒(méi)有為您顯示 Function App,請(qǐng)?jiān)谒阉鳈谥兴阉魉?/p>
2. 填寫(xiě)Function App name,Runtime stack選擇Node.js,Region選擇Central US。如果您愿意,可以嘗試選擇不同的區(qū)域,但并非所有區(qū)域都具有相同的配置選項(xiàng)。單擊下一步:托管>
3. 如果尚未選擇,請(qǐng)為操作系統(tǒng)選擇 Windows,為計(jì)劃類(lèi)型選擇消耗。請(qǐng)注意,消費(fèi)計(jì)劃會(huì)按月向您收費(fèi),但成本很小。我每周為 Azure 函數(shù)和存儲(chǔ)支付 1 美分。點(diǎn)擊下一步:監(jiān)控 >
4. 禁用Application Insights(本項(xiàng)目不需要),然后點(diǎn)擊Review + create。
5. 仔細(xì)檢查配置(見(jiàn)下圖五)并單擊創(chuàng)建。
6. 成功部署資源后,單擊轉(zhuǎn)至資源并單擊 + 添加新功能(功能旁邊)。
7. 向下滾動(dòng)并選擇 In-portal,然后選擇 Continue。
8. 向下滾動(dòng)并選擇更多模板...,然后選擇完成并查看模板。
9. 向下滾動(dòng)到 IoT 中心(事件中心)并選擇它。出現(xiàn)提示時(shí)安裝擴(kuò)展,安裝完成后按繼續(xù)。
10. 在 New Function 窗口中,單擊 Event Hub connection 下的 new。
11. 在彈出窗口中選擇 IoT Hub 并接受默認(rèn)值。
12. 最后,在“新建函數(shù)”窗口中單擊“創(chuàng)建”。
1 / 13 ?創(chuàng)建一個(gè)新的功能應(yīng)用程序
現(xiàn)在Function App 已經(jīng)調(diào)試完成,需要配置它通過(guò)Firebase 發(fā)送通知。這涉及設(shè)置憑據(jù)以授予 Azure Functions 通過(guò) Firebase 發(fā)送通知的權(quán)限。執(zhí)行以下步驟:
1. 轉(zhuǎn)到Firebase 控制臺(tái)的項(xiàng)目概覽頁(yè)面,點(diǎn)擊項(xiàng)目概覽旁邊的齒輪圖標(biāo),然后點(diǎn)擊項(xiàng)目設(shè)置。
2. 選擇服務(wù)帳戶(hù)選項(xiàng)卡并向下滾動(dòng)到 Admin SDK 配置片段。單擊生成新私鑰并下載生成的 JSON 文件。它包含訪問(wèn)此 Firebase 項(xiàng)目的憑據(jù),將在下一步中使用。
1 / 2 ?單擊項(xiàng)目概覽旁邊的齒輪圖標(biāo),然后單擊項(xiàng)目設(shè)置
3. 切換回 Azure Function 并單擊其名稱(chēng),然后單擊底部中心的控制臺(tái)。
4.使用以下命令安裝firebase-admin SDK
?
npm install firebase-admin
?
5. 單擊右側(cè)的查看文件,然后單擊上傳。在文件選擇器對(duì)話(huà)框中,選擇在第 2 步中下載的 JSON 文件。
6. 打開(kāi) SafeSound 存儲(chǔ)庫(kù)(或從Github 此處)中的 azure_function.js 文件,復(fù)制所有代碼并將其粘貼到 Azure Function 的在線編輯器中。單擊保存。
7. 單擊您的 Function App 的名稱(chēng),然后單擊 Configuration。
8. 單擊新建應(yīng)用程序設(shè)置并將名稱(chēng)字段設(shè)置為 GOOGLE_APPLICATION_CREDENTIALS。Value 字段應(yīng)設(shè)置為 /home/site/wwwroot/IoTHub_EventHub1/.json。
9. 單擊確定,然后單擊保存。
1 / 6 ?打開(kāi)控制臺(tái)并安裝 firebase-admin SDK
全部完成!現(xiàn)在已為該應(yīng)用程序設(shè)置通知。打開(kāi)應(yīng)用程序,選擇“事件”選項(xiàng)卡,然后按“模擬事件”對(duì)其進(jìn)行測(cè)試。
添加案例
通過(guò) 3D 打印外殼進(jìn)行最后潤(rùn)色。下載附加的 STL 文件并打印它們,或制作您自己的文件。如果您使用附帶的外殼設(shè)計(jì),則應(yīng)打印外殼的上半部分,以便按扣水平(即外殼頂部的突出物應(yīng)與層的方向相同)。這是確保按扣足夠堅(jiān)固所必需的。如果不以這種方式打印,由于打印層之間固有的弱點(diǎn),按扣很可能會(huì)折斷。
1 / 2 ? Safe Sound 設(shè)備的 3D 打印外殼
試驗(yàn)機(jī)器學(xué)習(xí)模型
用于對(duì)音頻進(jìn)行分類(lèi)的機(jī)器學(xué)習(xí)模型是使用此 Python notebook構(gòu)建的,該notebook 在瀏覽器中的 Google Colab 上運(yùn)行,無(wú)需安裝。
可以將其他功能添加到設(shè)備中。一個(gè)重要的是在線訓(xùn)練分類(lèi)模型的能力。通過(guò)這種方式,該設(shè)備將不斷學(xué)習(xí)(通過(guò)用戶(hù)反饋)并更好地檢測(cè)家庭入室盜竊。
?
- 基于遠(yuǎn)程家庭安全系統(tǒng)的設(shè)計(jì)
- 構(gòu)建結(jié)合Azure Sphere安全性和FreeRTOS的漫游者
- Azure Sphere I2C掃描儀
- 家庭報(bào)警安全系統(tǒng)開(kāi)源分享
- 全美自動(dòng)化家庭安全系統(tǒng)
- 用于安全物聯(lián)網(wǎng)的Azure Sphere和Azure云服務(wù)
- 使用Azure KeyVault和Azure Sphere安全自動(dòng)登錄
- 基于Azure Sphere的安全防盜設(shè)備
- 如何使用AVNET Azure Sphere套件
- 使用Azure Sphere監(jiān)控警報(bào)安全面板
- 帶有ESP8266的家庭安全系統(tǒng)
- 使用ESP32 CAM和Telegram App的家庭安全系統(tǒng)
- 微軟 Azure Sphere MCU技術(shù)、生態(tài)探析
- 遠(yuǎn)程家庭安全系統(tǒng)的研究 42次下載
- 無(wú)線多功能家庭安全系統(tǒng)
- Azure Kinect Body Tracking For LabVIEW更新預(yù)覽 801次閱讀
- 助力采用MCU的自主系統(tǒng)實(shí)現(xiàn)自主安全性 480次閱讀
- 使用MM32F3270基于Azure RTOS定時(shí)器組的應(yīng)用 1751次閱讀
- 使用MM32F3270基于Azure RTOS動(dòng)態(tài)內(nèi)存管理的應(yīng)用 992次閱讀
- 使用MM32F3270基于Azure RTOS信號(hào)量的應(yīng)用 1071次閱讀
- Azure Percept DK的硬件介紹與設(shè)置使用 1149次閱讀
- DIY一個(gè)電子卡鎖安全系統(tǒng) 2128次閱讀
- 分享一個(gè)不錯(cuò)的安全系統(tǒng)報(bào)警電路圖 3334次閱讀
- 如何利用MFRC522制作RFID讀卡安全系統(tǒng) 3112次閱讀
- 汽車(chē)安全氣囊的技術(shù)特點(diǎn)及應(yīng)用開(kāi)發(fā)設(shè)計(jì) 5849次閱讀
- 防護(hù)嵌入式安全的方法有哪些 1615次閱讀
- 設(shè)計(jì)一個(gè)家庭安全控制系統(tǒng)的詳細(xì)資料概述 6019次閱讀
- 互聯(lián)汽車(chē)的安全系統(tǒng)與開(kāi)放應(yīng)用的關(guān)鍵 597次閱讀
- 智能安防系統(tǒng)真的安全嗎_家庭安防系統(tǒng)告訴你 1.6w次閱讀
- 汽車(chē)安全系統(tǒng)技術(shù)架構(gòu)分析 1124次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論