資料介紹
入室盜竊是大多數(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)入住宅的每一扇門或窗戶都需要一個(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ò)打破窗戶或踢開(kāi)門強(qiáng)行進(jìn)入家中(來(lái)源)。Safe Sound 系統(tǒng)利用這一點(diǎn)來(lái)偵聽(tīng)強(qiáng)行進(jìn)入的跡象。所以它可以放在家里的任何地方,如果附近的窗戶破了,或者有人開(kāi)槍,它就會(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)樗鼘W⒂诎踩?。它?nèi)置了許多安全功能,包括微控制器單元中的內(nèi)置硬件安全性、專為抵御物聯(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)行分類,以查找表明有人闖入的音頻事件。如果它檢測(cè)到此類事件,它會(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ù)流
音頻分類是直接在 Azure Sphere 上使用機(jī)器學(xué)習(xí)實(shí)現(xiàn)的。創(chuàng)建一個(gè)兩層門控循環(huán)單元 (GRU) 網(wǎng)絡(luò),并根據(jù)收集的數(shù)據(jù)和用各種事件標(biāo)記的數(shù)據(jù)進(jìn)行訓(xùn)練。在這種情況下,使用了三個(gè)類別:窗戶破裂、槍聲和背景噪音。背景噪音包括通常在家中聽(tīng)到的聲音,包括寂靜。Azure Sphere 將音頻連續(xù)分類為三個(gè)類別之一。如果預(yù)測(cè)的類別是背景噪聲(大多數(shù)情況下都是如此),則丟棄預(yù)測(cè)并檢查下一個(gè)音頻塊。如果預(yù)測(cè)的類別是其他類別,則設(shè)備會(huì)向所有者發(fā)送有關(guān)檢測(cè)到的事件的通知。
1 / 2 ?窗戶破裂的音頻波形
收集音頻數(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ū)都被送入音頻分類器,預(yù)測(cè)是否有音頻事件發(fā)生,例如玻璃破碎,這表明窗戶被打破了。
執(zhí)行音頻分類
如前所述,音頻分類直接在 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 是專門用于在嵌入式設(shè)備上轉(zhuǎn)換和運(yùn)行機(jī)器學(xué)習(xí)模型的庫(kù)。雖然可以從 Sphere 連續(xù)流式傳輸音頻數(shù)據(jù),然后使用 Azure 機(jī)器學(xué)習(xí)等工具在云中執(zhí)行分類,但在本地進(jìn)行分類有幾個(gè)優(yōu)點(diǎn):
隱私和安全
通過(guò)在本地進(jìn)行分類,Azure Sphere 收集的音頻數(shù)據(jù)永遠(yuǎn)不會(huì)離開(kāi)設(shè)備。它沒(méi)有存儲(chǔ)在某處的服務(wù)器上,因此不太可能意外暴露或被黑客收集。相比之下,如果將音頻數(shù)據(jù)發(fā)送到云端以執(zhí)行模型推理(分類),那么有權(quán)訪問(wèn)云服務(wù)器的人就有可能收聽(tīng)家中發(fā)生的一切。
速度
由于通過(guò)互聯(lián)網(wǎng)通信引入的延遲,云上的機(jī)器學(xué)習(xí)比使用本地處理簡(jiǎn)單模型要慢得多。在這個(gè)項(xiàng)目中,這可能意味著不可能實(shí)時(shí)執(zhí)行音頻分類,而是將事件檢測(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 的音頻分類輸出示例
因此,音頻分類是在 Azure Sphere 上連續(xù)進(jìn)行的。大多數(shù)時(shí)候,Sphere 會(huì)檢測(cè)到正常的背景噪音。但是,如果有人在 Sphere 的聽(tīng)力范圍內(nèi)打碎玻璃或開(kāi)槍,它會(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 入門套件硬件開(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)該適用于錄制和分類一般音頻。
要計(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 專注于維護(hù) IoT 設(shè)備的安全性,因此設(shè)置比其他微控制器要復(fù)雜一些。在加載此特定項(xiàng)目的代碼之前,您需要安裝 Azure Sphere SDK、聲明您的設(shè)備并將其與租戶相關(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 租戶 ID:
?
azsphere tenant show-selected
?
將返回值復(fù)制到 app_manifest.json 中的 DeviceAuthentication 字段。
4. 登錄到Azure 門戶并找到您的設(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)用程序用戶并管理他們有權(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ī)類型,但可以在此處找到在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)目名稱。
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)用程序并使用與之前類似的過(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 門戶并單擊 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ì)劃類型選擇消耗。請(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ù)帳戶選項(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 并單擊其名稱,然后單擊底部中心的控制臺(tái)。
4.使用以下命令安裝firebase-admin SDK
?
npm install firebase-admin
?
5. 單擊右側(cè)的查看文件,然后單擊上傳。在文件選擇器對(duì)話框中,選擇在第 2 步中下載的 JSON 文件。
6. 打開(kāi) SafeSound 存儲(chǔ)庫(kù)(或從Github 此處)中的 azure_function.js 文件,復(fù)制所有代碼并將其粘貼到 Azure Function 的在線編輯器中。單擊保存。
7. 單擊您的 Function App 的名稱,然后單擊 Configuration。
8. 單擊新建應(yīng)用程序設(shè)置并將名稱字段設(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)行分類的機(jī)器學(xué)習(xí)模型是使用此 Python notebook構(gòu)建的,該notebook 在瀏覽器中的 Google Colab 上運(yùn)行,無(wú)需安裝。
可以將其他功能添加到設(shè)備中。一個(gè)重要的是在線訓(xùn)練分類模型的能力。通過(guò)這種方式,該設(shè)備將不斷學(xué)習(xí)(通過(guò)用戶反饋)并更好地檢測(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ù)覽 570次閱讀
- 助力采用MCU的自主系統(tǒng)實(shí)現(xiàn)自主安全性 393次閱讀
- 使用MM32F3270基于Azure RTOS定時(shí)器組的應(yīng)用 1477次閱讀
- 使用MM32F3270基于Azure RTOS動(dòng)態(tài)內(nèi)存管理的應(yīng)用 792次閱讀
- 使用MM32F3270基于Azure RTOS信號(hào)量的應(yīng)用 866次閱讀
- Azure Percept DK的硬件介紹與設(shè)置使用 945次閱讀
- DIY一個(gè)電子卡鎖安全系統(tǒng) 1954次閱讀
- 分享一個(gè)不錯(cuò)的安全系統(tǒng)報(bào)警電路圖 2960次閱讀
- 如何利用MFRC522制作RFID讀卡安全系統(tǒng) 2867次閱讀
- 汽車安全氣囊的技術(shù)特點(diǎn)及應(yīng)用開(kāi)發(fā)設(shè)計(jì) 5521次閱讀
- 防護(hù)嵌入式安全的方法有哪些 1555次閱讀
- 設(shè)計(jì)一個(gè)家庭安全控制系統(tǒng)的詳細(xì)資料概述 5932次閱讀
- 互聯(lián)汽車的安全系統(tǒng)與開(kāi)放應(yīng)用的關(guān)鍵 535次閱讀
- 智能安防系統(tǒng)真的安全嗎_家庭安防系統(tǒng)告訴你 1.6w次閱讀
- 汽車安全系統(tǒng)技術(shù)架構(gòu)分析 1065次閱讀
下載排行
本周
- 1感應(yīng)筆電路圖
- 0.06 MB | 6次下載 | 免費(fèi)
- 2美的電磁爐維修手冊(cè)大全
- 1.56 MB | 4次下載 | 5 積分
- 3Cortex-M3/M4F指令集技術(shù)用戶手冊(cè)
- 2.28MB | 3次下載 | 免費(fèi)
- 4基于PLC的拉絲機(jī)張力控制系統(tǒng)研究
- 0.14 MB | 2次下載 | 5 積分
- 5LZC3106G高性能諧振控制器中文手冊(cè)
- 1.29 MB | 1次下載 | 1 積分
- 6JL2233B集成電平轉(zhuǎn)換功能的LDO中文手冊(cè)
- 0.50 MB | 1次下載 | 免費(fèi)
- 7如何PC訪問(wèn)內(nèi)網(wǎng)及VPN
- 19.15 MB | 1次下載 | 1 積分
- 8萬(wàn)用表UT58A原理圖
- 0.09 MB | 1次下載 | 5 積分
本月
- 1使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
- 2.96 MB | 44次下載 | 免費(fèi)
- 2UC3842/3/4/5電源管理芯片中文手冊(cè)
- 1.75 MB | 17次下載 | 免費(fèi)
- 3DMT0660數(shù)字萬(wàn)用表產(chǎn)品說(shuō)明書(shū)
- 0.70 MB | 13次下載 | 免費(fèi)
- 43314A函數(shù)發(fā)生器維修手冊(cè)
- 16.30 MB | 13次下載 | 免費(fèi)
- 5華瑞昇CR216芯片數(shù)字萬(wàn)用表規(guī)格書(shū)附原理圖及校正流程方法
- 0.74 MB | 11次下載 | 3 積分
- 6TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
- 1.02MB | 8次下載 | 免費(fèi)
- 7STM32F101x8/STM32F101xB手冊(cè)
- 1.69 MB | 8次下載 | 1 積分
- 8HY12P65/HY12P66數(shù)字萬(wàn)用表芯片規(guī)格書(shū)
- 0.69 MB | 6次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評(píng)論
查看更多