據(jù)估計(jì),全球有近 90% 的家庭用上了電,這意味著當(dāng)我們停電時(shí),我們中近 90% 的人不可避免地會(huì)感到煩惱。
雖然大多數(shù)時(shí)候這只是一種煩惱,但失去電力(尤其是當(dāng)我們?cè)陔x開(kāi)或睡著時(shí)沒(méi)有意識(shí)到它時(shí))可能會(huì)導(dǎo)致災(zāi)難性的后果。這可能意味著非常多不可估計(jì)的意外情況,從恢復(fù)供電時(shí)由于電流浪涌導(dǎo)致的設(shè)備損失,到危重護(hù)理環(huán)境中的生命線。
在這個(gè)項(xiàng)目中,我們將介紹如何構(gòu)建我認(rèn)為最簡(jiǎn)單的全球可用、支持蜂窩的斷電檢測(cè)器,并配備由 Twilio 提供支持的即時(shí) SMS 通知。
這個(gè)項(xiàng)目不需要用到以往曾頻繁使用的烙鐵,但它也并沒(méi)有因此變得更容易!
我們將使用Blues Wireless Cellular Notecard,將其連接到Blues Wireless Notecarrier-A,并使用新發(fā)布的 Notecard 固件功能,該功能允許在沒(méi)有主機(jī)微控制器的情況下自主報(bào)告 GPIO 狀態(tài)更改。
我們還需要一個(gè)帶 JST 連接器的小型 LiPo 電池(任何容量都可以)和一根微型 USB 電纜(帶墻上插座適配器)。
使用蜂窩網(wǎng)絡(luò)的原因
當(dāng)發(fā)生停電時(shí),我們不能依賴本地網(wǎng)絡(luò)硬件來(lái)啟動(dòng)和運(yùn)行(例如 Wi-Fi)。在這種情況下,蜂窩網(wǎng)絡(luò)是唯一可靠的選擇。
Blues Wireless Notecard 有Wi-Fi和蜂窩兩種版本。蜂窩模型在全球范圍內(nèi)適用于LTE-M、NB-IoT 和 Cat-1 協(xié)議,與傳統(tǒng)的蜂窩物聯(lián)網(wǎng)產(chǎn)品不同,因?yàn)樗鼈冾A(yù)付了 500MB 的數(shù)據(jù)和 10 年的全球蜂窩服務(wù)。
Notecard 成功的秘訣是,一旦你打開(kāi)它,它就知道要去哪里。Notecard 不在公共互聯(lián)網(wǎng)上,只能通過(guò)私有 VPN 隧道進(jìn)行通信(使其成為非常安全的設(shè)備)。不需要證書(shū)管理或手動(dòng)密鑰輪換。
Notecard 與什么通信?它自動(dòng)與Blues Wireless 云服務(wù) Notehub.io 同步,后者又可以將數(shù)據(jù)安全地路由到幾乎任何云服務(wù)(如 AWS、Azure、Google Cloud)、RESTful 端點(diǎn)或支持 MQTT 的服務(wù)。
您只需打開(kāi) Notecard 的電源,使用基于 JSON 的 Notecard API中的命令之一,它就能夠與云進(jìn)行通信。
構(gòu)建一個(gè)斷電檢測(cè)器
如前所述,我們將使用 Notecard 和 Notecarrier-A。Notecarriers是開(kāi)發(fā)板,可讓您使用 Notecard 輕松構(gòu)建 IoT 解決方案的原型。Notecarrier-A 提供板載天線、JST 連接器、用于外圍設(shè)備的 Qwiic 連接器,并暴露了 Notecard 上的所有引腳。
首先,我們只需將 Notecard 插入 Notecarrier-A 上的 M.2 邊緣連接器:
然后我們將MAINNotecarrier-A 上的 u.fl 連接器連接到MAINNotecard 上的 u.fl。這允許使用 Notecarrier 上的板載蜂窩天線:
注意:您也可以選擇連接GPSu.fl 連接器,這樣您就可以使用蜂窩 Notecard 上的 GPS 模塊。
接下來(lái),我們需要使用短跳線連接VUSB到AUX1Notecarrier-A。通過(guò)正確的card.auxNotecard API 請(qǐng)求,Notecard 可以自動(dòng)報(bào)告任何AUX引腳 (1-4) 上的狀態(tài)變化。通過(guò)連接VUSB到AUX1,我們將自己設(shè)置為能夠?qū)嚯姷臓顟B(tài)變化報(bào)告到VUSB:
通過(guò)JST 連接器將 LiPo 電池連接到 Notecarrier 。LIPONotecarrier 的另一個(gè)優(yōu)點(diǎn)是,當(dāng)它通過(guò) USB 供電時(shí),它將保持連接的 LiPo 電池的電量:
最后,Notecarrier 可以通過(guò) micro USB 電纜連接到您想要監(jiān)控的墻上插座。
設(shè)置Notecard
Notecard 使用一種語(yǔ)言:JSON。
所有Notecard API 命令都是 JSON 格式,這也意味著任何可以讀寫(xiě)字符串的編程語(yǔ)言也可以與Notecard 通信。如果您使用的是 MCU 或單板計(jì)算機(jī),則有Blues Wireless 支持的適用于 Python、C/C++、Arduino 和 Go 的 SDK(以及社區(qū)支持的適用于Rust和.NET 的 SDK)。
使用dev.blues.io 提供的瀏覽器內(nèi)終端,我們可以通過(guò) Web Serial 的魔力直接連接到我們的 Notecard 并發(fā)出基于 JSON 的 API 命令:
嘗試發(fā)出一個(gè)示例命令,例如{“req”:“card.version”},從記事卡中獲取一些識(shí)別信息:
》 {“req”:“card.version”}
{
“body”: {
“org”: “Blues Wireless”,
“product”: “Notecard”,
“version”: “notecard-3.3.1”,
“ver_major”: 3,
“ver_minor”: 3,
“ver_patch”: 1,
“ver_build”: 14612,
“built”: “May 18 2022 11:21:51”
},
“version”: “notecard-3.3.1.14612”,
“device”: “dev:864475040543182”,
“name”: “Blues Wireless Notecard”,
“sku”: “NOTE-NBGL-500”,
“board”: “1.11”,
“api”: 3
}
注意:這是檢查 Notecard 固件版本的好機(jī)會(huì)!我們即將使用的新 API 功能至少需要固件 v3.3.1。
接下來(lái),我們可以在 Notehub.io 上設(shè)置一個(gè)新的(免費(fèi))帳戶并創(chuàng)建我們的第一個(gè) Notehub 項(xiàng)目。
在這個(gè) Notehub 項(xiàng)目中,我們將看到來(lái)自 Notecard 的傳入數(shù)據(jù),并使我們能夠使用 Twilio 發(fā)送 SMS 消息:
創(chuàng)建 Notehub 項(xiàng)目后,我們需要保存項(xiàng)目的唯一標(biāo)識(shí)符(ProductUID ),例如:
com.your-company.your-name:power_outage
接下來(lái),返回瀏覽器內(nèi)終端,將此 Notecard 與我們剛剛創(chuàng)建的 Notehub 項(xiàng)目相關(guān)聯(lián)。為此,我們使用hub.set API:
{
“req”:“hub.set”,
“product”:“com.blues.rlauer:power_outage”,
“mode”:“continuous”
}
然后,我們可以使用hub.sync API 快速測(cè)試蜂窩連接,如下所示:
{“req”: “hub.sync”}
幾秒鐘后,我們就可以回到我們的 Notehub 項(xiàng)目,看到 Notecard 已經(jīng)成功建立了蜂窩連接:
現(xiàn)在我們來(lái)看看好東西!我們可以使用card.aux API 的一項(xiàng)新功能,通過(guò)以下命令自動(dòng)報(bào)告 AUX 引腳上的狀態(tài)變化:
{
“req”:“card.aux”,
“mode”:“gpio”,
“usage”:[
“input-pulldown”,
“off”,
“off”,
“off”
],
“sync”:true,
“file”:“power-outage.qo”
}
請(qǐng)求
數(shù)組中元素的順序usage對(duì)應(yīng)于 AUX 引腳。所以數(shù)組中的第一項(xiàng) == AUX1(我們的跳線連接到它)并且它使用input-pulldown選項(xiàng)將引腳設(shè)置為下拉輸入。
該“sync”:true參數(shù)告訴我們的 Notecard立即將任何狀態(tài)更改傳達(dá)給我們的 Notehub 項(xiàng)目。
最后,該“file”:“power-outage.qo”參數(shù)提供了一種在 Notehub 中識(shí)別/命名這些狀態(tài)更改事件的簡(jiǎn)單方法。
測(cè)試
假設(shè)我們的硬件已插入并以正確的方式連接,并且我們的 Notecard 與 Notehub 成功通信,我們已準(zhǔn)備好測(cè)試斷電!
只需從 Notecarrier-A 上拔下 micro USB 電纜即可。LiPo 電池將立即成為 Notecard 的活動(dòng)電源,并且將記錄狀態(tài)更改。AUX1您可能會(huì)注意到 Notecard 的綠色 LED 亮起,讓您知道它正在與云通信并向 Notehub 發(fā)送便箋:
這很棒!在提供的 JSON 中,我們看到陣列中的 AUX1 引腳狀態(tài)為“低”,這意味著 USB 電源已丟失:
{“state”:[{“l(fā)ow”:true},{},{},{}]}
我們還可以重新插入 Notecarrier以查看恢復(fù)電源時(shí)狀態(tài)更改事件的樣子:
{“power”:true,“state”:[{“high”:true},{},{},{}]}
看到這個(gè)停電數(shù)據(jù)顯示在 Notehub 中,雖然很好,但并不能真正幫助我們采取任何行動(dòng)。
我們的下一步是設(shè)置 SMS 消息,以便在停電幾秒鐘內(nèi)收到一條短信。這是通過(guò)Notehub的路由功能實(shí)現(xiàn)的。
啟用短信功能
Notehub 路由讓您可以將數(shù)據(jù)路由到任何第三方云服務(wù)。這可能是 AWS、Azure 或 Google Cloud 等大型云,也可能是 Datacake、Ubidots、Adafruit.io 或 Losant 等物聯(lián)網(wǎng)平臺(tái)。它甚至可以是 MQTT 服務(wù)或通用 RESTful HTTP/S 服務(wù),就像 Twilio 提供的消息端點(diǎn)一樣:
https://api.twilio.com/2010-04-01/Accounts/[twilio_account_sid]/Messages.json
請(qǐng)按照 Blues Wireless 提供的廣泛的 Twilio SMS 路由指南來(lái)啟用對(duì) Twilio 的消息傳遞 API 的訪問(wèn)。
正如您在該指南中看到的,我們可以對(duì) Notehub 路由進(jìn)行一些小的自定義,以更改發(fā)送的 SMS 消息。
首先,讓我們確保僅在將這些事件發(fā)送到 Notehub時(shí)才收到通知。為此,請(qǐng)確保在配置 Notehub 路由時(shí)提供的字段中輸入:power-outage.qopower-outage.qo
其次, Notehub允許您使用JSONata 動(dòng)態(tài)轉(zhuǎn)換JSON。上面的 Twilio 指南中對(duì)此進(jìn)行了概述,我將包含我使用的 JSONata 表達(dá)式:
“&Body=” & (body.state.low ? “Your power is out!
-
檢測(cè)器
+關(guān)注
關(guān)注
1文章
856瀏覽量
47604 -
Wireless
+關(guān)注
關(guān)注
0文章
78瀏覽量
19092
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論