資料介紹
描述
概述
本周早些時(shí)候,我收到了自己的 Helium 開發(fā)工具包。該套件包含開始使用 Helium 網(wǎng)絡(luò)所需的一切:一個(gè) LoRaWAN 開發(fā)板和兩個(gè)傳感器護(hù)罩。在較早的項(xiàng)目中,我展示了如何將坐標(biāo)數(shù)據(jù)從 GNSS1A1 GPS 屏蔽發(fā)送到 Cayenne myDevices 儀表板,以構(gòu)建基于 LoRa 的基本資產(chǎn)跟蹤器。雖然 myDevices 平臺(tái)非常適合快速啟動(dòng)簡單的數(shù)據(jù)記錄項(xiàng)目,但您仍受制于 Cayenne 相對有限的分析和導(dǎo)出功能。要執(zhí)行您自己的分析,無論是 Excel 中的簡單盒須圖還是 Tensorflow 中的遞歸神經(jīng)網(wǎng)絡(luò),您唯一的選擇(在 Cayenne 框架內(nèi))是手動(dòng)導(dǎo)出 CSV 文件,這在某種程度上違背了實(shí)時(shí)數(shù)據(jù)采集。據(jù)我了解,Cayenne 曾經(jīng)為此目的支持 REST API,但出于某種原因(也許它沒有)今年早些時(shí)候停用該平臺(tái)。
幸運(yùn)的是,對于不想在 AWS 或 Azure 上托管一個(gè)完整的數(shù)據(jù)庫來監(jiān)控后院花園中的濕度水平的麻煩和費(fèi)用,原型制作者還有其他(免費(fèi))選項(xiàng)。在本教程中,我將向您展示如何通過氦網(wǎng)絡(luò)傳輸來自 X-NUCLEO-IKS01A3 防護(hù)罩的環(huán)境傳感器數(shù)據(jù),并將其記錄在 Google 表格中以進(jìn)行快速、實(shí)時(shí)的分析。在高層次上,工作流程如下所示:

本教程假設(shè)您已經(jīng)有一個(gè) Helium 控制臺(tái)帳戶并且有足夠的覆蓋范圍來可靠地 ping 網(wǎng)絡(luò)。換句話說,將其視為Helium 文檔中快速入門指南的擴(kuò)展。讓我們開始吧。
1.上傳Arduino腳本
X-NUCLEO-IKS01A3 的代碼看起來很像快速入門指南中的啟動(dòng)腳本。您只需要包含各個(gè)傳感器的庫和 CayenneLPP 即可打包緩沖區(qū)。就我而言,我使用的是溫度、壓力和濕度傳感器,但防護(hù)罩也有陀螺儀和加速度計(jì)。這些輸入的用法非常相似 - 看看這個(gè)“Hello World”草圖。代碼的核心是 do_send(osjob_t *j) 函數(shù):
void do_send(osjob_t *j) {
// Check if there is not a current TX/RX job running
if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending"));
} else {
float humidity = 0, temperature = 0;
HumTemp->GetHumidity(&humidity);
HumTemp->GetTemperature(&temperature);
// Read pressure and temperature.
float pressure = 0;
PressTemp->GetPressure(&pressure);
lpp.reset();
lpp.addTemperature(1, temperature);
lpp.addBarometricPressure(2, pressure);
lpp.addRelativeHumidity(3, humidity);
//LMIC_setTxData2(1, mydata, sizeof(mydata) - 1, 0);
LMIC_setTxData2(1, lpp.getBuffer(), lpp.getSize(), 0);
Serial.println(F("Packet queued"));
}
// Next TX is scheduled after TX_COMPLETE event.
}
“l(fā)pp”是 CayenneLPP 數(shù)據(jù)包對象,它是一個(gè) LoRaWAN 友好的 Arduino 傳感器數(shù)據(jù)編碼器。它支持多種常見數(shù)據(jù)格式,包括溫度、壓力、濕度、GPS 和加速度計(jì),以及任意模擬/數(shù)字輸出。如果您有興趣了解更多信息,請查看CayenneLPP 文檔。設(shè)置設(shè)備的完整代碼包含在此Github 存儲(chǔ)庫中。不要忘記在第 19、24 和 29 行包含您自己的 DevEUI、AppEUI 和 AppKey。安裝您的屏蔽并通過 Arduino IDE 上傳腳本,您應(yīng)該會(huì)在“設(shè)備”頁面上看到數(shù)據(jù)包開始傳播氦控制臺(tái)。
2.有效載荷解碼器功能
此時(shí),傳感器數(shù)據(jù)的有效載荷被編碼為 base64 字符串。如果您要檢查上行鏈路 JSON 文件,您會(huì)看到如下內(nèi)容:
{
"payload": AWcBAAJzJkMDaG0EAwAA
}
為了將此字符串恢復(fù)為可讀格式,我們的解碼器函數(shù)將首先使用 base64 解碼器來提取各個(gè)字節(jié)(在 Python 中,我們將使用內(nèi)置的 base64.b64decode(payload_string) 之類的東西)。然后,它將根據(jù)用于生成數(shù)據(jù)包的編碼格式將字節(jié)轉(zhuǎn)換回浮點(diǎn)型傳感器讀數(shù)。現(xiàn)在,您可以從頭開始編寫自己的解碼器,但幸運(yùn)的是,CayenneLPP 和 Helium 為我們省去了麻煩。在 Helium 控制臺(tái)中,打開“Functions”選項(xiàng)卡,然后單擊“Create New Function”。給它一個(gè)名字,選擇“解碼器”函數(shù)類型和“CayenneLPP”格式。如果您還沒有為您的設(shè)備分配標(biāo)簽,您必須在“標(biāo)簽”選項(xiàng)卡中快速創(chuàng)建它,并將其分配給您的新功能。滿意后,單擊“保存功能”。

就是這樣!現(xiàn)在,如果您要檢查 JSON 數(shù)據(jù)包,您現(xiàn)在會(huì)注意到正文中的“已解碼”字段,這將使相關(guān)數(shù)據(jù)的解析更加簡單:
"decoded": {
"payload": [
{
"channel": 1,
"name": "temperature",
"type": 103,
"unit": "celcius",
"value": 25.6
},
{
"channel": 2,
"name": "humidity",
"type": 104,
"unit": "hPa",
"value": 979.5
},
{
"channel": 3,
"name": "humidity",
"type": 104,
"unit": "percent",
"value": 54.5
}
]
所有這些都來自 11 字節(jié)的有效負(fù)載!現(xiàn)在讓我們將這些數(shù)據(jù)包路由到有用的地方。
3. Pipedream 工作流程
Pipedream是一個(gè)數(shù)據(jù)集成平臺(tái),用于(除其他外)通過自定義配方將事件觸發(fā)器連接到各種操作。圖形界面和基于表達(dá)式的框架使您無需編寫任何代碼即可創(chuàng)建復(fù)雜的“工作流程”。這樣,它類似于 Azure 邏輯應(yīng)用程序。它們內(nèi)置了對數(shù)百個(gè)應(yīng)用程序的支持,例如 Twitter、Spotify 和 Slack,您甚至可以為 SMS 和電子郵件通知設(shè)置機(jī)器人。在這種情況下,我們將利用 Google Sheets API 將新行添加到電子表格中。轉(zhuǎn)到 Pipedream,然后導(dǎo)航到 Workflows 選項(xiàng)卡并創(chuàng)建一個(gè)新的工作流。對于觸發(fā)器,搜索“HTTP / Webhook”為我們的 POST 請求生成一個(gè)端點(diǎn) URL。

復(fù)制 webhook URL 并返回 Helium 控制臺(tái)。轉(zhuǎn)到集成選項(xiàng)卡并添加自定義 HTTP 集成。將端點(diǎn)粘貼到 Connection Details 下,添加名稱,然后將與您提供給設(shè)備和解碼器功能的標(biāo)簽相同。

現(xiàn)在,每當(dāng)您的設(shè)備通過 Helium 網(wǎng)絡(luò)發(fā)送有效負(fù)載時(shí),它都會(huì)通過 POST 請求將數(shù)據(jù)發(fā)送到我們的 Pipedream webhook。對于接下來的步驟,如果您已經(jīng)通過網(wǎng)絡(luò)發(fā)送了一些 JSON 文件,這將很有幫助,以便 Pipedream 了解如何解析它們。要將信息路由到 Google 表格,請返回 Pipedream,單擊觸發(fā)器下方的加號(hào)并搜索“將行添加到表格”。您必須登錄您的 Google 帳戶來驗(yàn)證請求,然后創(chuàng)建一個(gè)空白工作表并復(fù)制您的電子表格 ID,即網(wǎng)址的這一部分:

將此 ID 與工作表名稱一起粘貼到 Pipedream 操作中的必填字段中,該名稱可能仍為“Sheet1”。最后,您只需準(zhǔn)確定義將發(fā)送到電子表格的信息。出于我的目的,我想記錄解碼后的傳感器值和 UNIX 時(shí)間戳。這有助于已經(jīng)有一些 JSON 文件可以使用,因?yàn)?Pipedream 將使用過去的請求為您提供一些您打算發(fā)送的數(shù)據(jù)的用戶友好預(yù)覽。總而言之,行參數(shù)應(yīng)該看起來像這樣(空白列將在一秒鐘內(nèi)有意義):

部署工作流程后,您可以啟用它并等待您的 LoRa 設(shè)備通過 Helium 發(fā)送新的有效負(fù)載,或者為了更快的反饋,使用“發(fā)送測試事件”功能。如果一切順利,您應(yīng)該開始看到新的行正在傳播您的電子表格!

要將 UNIX 時(shí)間戳轉(zhuǎn)換為更易于解釋的基于 UTC 的日期,請將此 Excel 函數(shù)應(yīng)用于 B 列:

添加一些精美的圖表或您自己想要的統(tǒng)計(jì)指標(biāo)并觀察有效負(fù)載的出現(xiàn)。不久之后,您將擁有自己的自定義(最重要的是免費(fèi))實(shí)時(shí)分析儀表板!

回顧
總結(jié)一下,讓我們考慮一下我們剛剛完成的工作:
- 我們連接了低功耗環(huán)境傳感器,通過基于 LoRaWAN 的 Helium 網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到互聯(lián)網(wǎng)。
- 為了遠(yuǎn)距離傳輸它們(相對于 WiFi),我們將傳感器有效載荷編碼為數(shù)據(jù)高效的 CayenneLPP 數(shù)據(jù)包,然后使用 Helium 控制臺(tái)中的函數(shù)對其進(jìn)行解碼。
- 使用 Pipedream 工作流,我們通過 webhook 端點(diǎn)路由來自 Helium HTTP 集成的 POST 請求,然后利用 Google Sheets API 自動(dòng)將解碼的傳感器數(shù)據(jù)發(fā)送到電子表格,以進(jìn)行特定于應(yīng)用程序的實(shí)時(shí)分析。
- Pimoroni Enviro pHAT到Google表格記錄器
- 用于將數(shù)據(jù)從Google表單自動(dòng)發(fā)布到Adafruit IO的Python腳本
- 使用Google Charts來可視化傳感器數(shù)據(jù)
- 使用Blues Wireless將BLE傳感器數(shù)據(jù)路由到云端
- 從NXP設(shè)備收集傳感器數(shù)據(jù)
- 使用Google表格監(jiān)控溫度
- 無線傳感器網(wǎng)絡(luò)的多sink路由技術(shù)的詳細(xì)研究分析 8次下載
- 壓力傳感器從傳感器到單片機(jī)的信號(hào)調(diào)理路徑的詳細(xì)中文資料概述
- 無線傳感器網(wǎng)絡(luò)干擾感知路由 0次下載
- 從汽車到運(yùn)動(dòng)場基于傳感器的安全 0次下載
- 如何將慣性傳感器集成到可穿戴設(shè)備中 1次下載
- 無線傳感器網(wǎng)絡(luò)路由協(xié)議分析 138次下載
- 基于QoS的無線傳感器網(wǎng)絡(luò)路由協(xié)議的研究
- 無線傳感器網(wǎng)絡(luò)的路由協(xié)議
- 無線傳感器網(wǎng)絡(luò)異構(gòu)驅(qū)動(dòng)路由算法
- 傳感器的定義和分類 965次閱讀
- Arm Helium技術(shù)誕生的由來 997次閱讀
- 總結(jié)各種傳感器原理 1182次閱讀
- 如何從您喜愛的傳感器中獲取數(shù)據(jù) 1823次閱讀
- 智能傳感器:從大數(shù)據(jù)到人工智能智能數(shù)據(jù) 1466次閱讀
- 基于WSN路由算法在無線傳感器網(wǎng)絡(luò)檢測糧庫中的應(yīng)用研究 2620次閱讀
- 邊緣計(jì)算日趨成熟,物聯(lián)網(wǎng)設(shè)備將不再需要網(wǎng)關(guān)聚合傳感器數(shù)據(jù) 2600次閱讀
- GSM調(diào)制解調(diào)器簡化傳感器網(wǎng)絡(luò)中的數(shù)據(jù)采集和處理 1400次閱讀
- 無線傳感器網(wǎng)絡(luò)在環(huán)境監(jiān)測系統(tǒng)中的應(yīng)用介紹 6335次閱讀
- 轉(zhuǎn)速傳感器的類型 2.2w次閱讀
- 基于無線傳感器網(wǎng)絡(luò)對環(huán)境監(jiān)測系統(tǒng)的設(shè)計(jì) 3160次閱讀
- 為什么需要凈化傳感器數(shù)據(jù) 700次閱讀
- MEMS慣性傳感器到云傳感器融合系統(tǒng)的定位系統(tǒng) 3940次閱讀
- 基于IPv6的無線傳感器網(wǎng)絡(luò)邊界路由器的設(shè)計(jì)方案 4224次閱讀
- 無線傳感器網(wǎng)絡(luò)路由協(xié)議的研究與改進(jìn) 1403次閱讀
下載排行
本周
- 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 12次下載 | 4 積分
- 2世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 3電源測試報(bào)告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 11次下載 | 免費(fèi)
- 4PWM控制器的控制方法
- 0.39 MB | 3次下載 | 4 積分
- 5電流檢測芯片F(xiàn)P135應(yīng)用說明
- 1.24 MB | 3次下載 | 免費(fèi)
- 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
- 1.27 MB | 1次下載 | 4 積分
- 7HC88L051F4低功耗芯片規(guī)格書
- 4.76 MB | 1次下載 | 免費(fèi)
- 8CIU32D655x5數(shù)據(jù)手冊
- 2.14 MB | 1次下載 | 免費(fèi)
本月
- 1常用電子元器件使用手冊
- 2.40 MB | 52次下載 | 免費(fèi)
- 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
- 2.27 MB | 33次下載 | 10 積分
- 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 12次下載 | 4 積分
- 4世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 5電源測試報(bào)告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 11次下載 | 免費(fèi)
- 6USB拓展塢PCB圖資料
- 0.57 MB | 11次下載 | 免費(fèi)
- 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊
- 4.51 MB | 9次下載 | 免費(fèi)
- 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊
- 0.70 MB | 9次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191424次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81600次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
評論