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

本教程假設您已經有一個 Helium 控制臺帳戶并且有足夠的覆蓋范圍來可靠地 ping 網絡。換句話說,將其視為Helium 文檔中快速入門指南的擴展。讓我們開始吧。
1.上傳Arduino腳本
X-NUCLEO-IKS01A3 的代碼看起來很像快速入門指南中的啟動腳本。您只需要包含各個傳感器的庫和 CayenneLPP 即可打包緩沖區。就我而言,我使用的是溫度、壓力和濕度傳感器,但防護罩也有陀螺儀和加速度計。這些輸入的用法非常相似 - 看看這個“Hello World”草圖。代碼的核心是 do_send(osjob_t *j) 函數:
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.
}
“lpp”是 CayenneLPP 數據包對象,它是一個 LoRaWAN 友好的 Arduino 傳感器數據編碼器。它支持多種常見數據格式,包括溫度、壓力、濕度、GPS 和加速度計,以及任意模擬/數字輸出。如果您有興趣了解更多信息,請查看CayenneLPP 文檔。設置設備的完整代碼包含在此Github 存儲庫中。不要忘記在第 19、24 和 29 行包含您自己的 DevEUI、AppEUI 和 AppKey。安裝您的屏蔽并通過 Arduino IDE 上傳腳本,您應該會在“設備”頁面上看到數據包開始傳播氦控制臺。
2.有效載荷解碼器功能
此時,傳感器數據的有效載荷被編碼為 base64 字符串。如果您要檢查上行鏈路 JSON 文件,您會看到如下內容:
{
"payload": AWcBAAJzJkMDaG0EAwAA
}
為了將此字符串恢復為可讀格式,我們的解碼器函數將首先使用 base64 解碼器來提取各個字節(在 Python 中,我們將使用內置的 base64.b64decode(payload_string) 之類的東西)。然后,它將根據用于生成數據包的編碼格式將字節轉換回浮點型傳感器讀數。現在,您可以從頭開始編寫自己的解碼器,但幸運的是,CayenneLPP 和 Helium 為我們省去了麻煩。在 Helium 控制臺中,打開“Functions”選項卡,然后單擊“Create New Function”。給它一個名字,選擇“解碼器”函數類型和“CayenneLPP”格式。如果您還沒有為您的設備分配標簽,您必須在“標簽”選項卡中快速創建它,并將其分配給您的新功能。滿意后,單擊“保存功能”。

就是這樣!現在,如果您要檢查 JSON 數據包,您現在會注意到正文中的“已解碼”字段,這將使相關數據的解析更加簡單:
"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 字節的有效負載!現在讓我們將這些數據包路由到有用的地方。
3. Pipedream 工作流程
Pipedream是一個數據集成平臺,用于(除其他外)通過自定義配方將事件觸發器連接到各種操作。圖形界面和基于表達式的框架使您無需編寫任何代碼即可創建復雜的“工作流程”。這樣,它類似于 Azure 邏輯應用程序。它們內置了對數百個應用程序的支持,例如 Twitter、Spotify 和 Slack,您甚至可以為 SMS 和電子郵件通知設置機器人。在這種情況下,我們將利用 Google Sheets API 將新行添加到電子表格中。轉到 Pipedream,然后導航到 Workflows 選項卡并創建一個新的工作流。對于觸發器,搜索“HTTP / Webhook”為我們的 POST 請求生成一個端點 URL。

復制 webhook URL 并返回 Helium 控制臺。轉到集成選項卡并添加自定義 HTTP 集成。將端點粘貼到 Connection Details 下,添加名稱,然后將與您提供給設備和解碼器功能的標簽相同。

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

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

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

要將 UNIX 時間戳轉換為更易于解釋的基于 UTC 的日期,請將此 Excel 函數應用于 B 列:

添加一些精美的圖表或您自己想要的統計指標并觀察有效負載的出現。不久之后,您將擁有自己的自定義(最重要的是免費)實時分析儀表板!

回顧
總結一下,讓我們考慮一下我們剛剛完成的工作:
- 我們連接了低功耗環境傳感器,通過基于 LoRaWAN 的 Helium 網絡將數據發送到互聯網。
- 為了遠距離傳輸它們(相對于 WiFi),我們將傳感器有效載荷編碼為數據高效的 CayenneLPP 數據包,然后使用 Helium 控制臺中的函數對其進行解碼。
- 使用 Pipedream 工作流,我們通過 webhook 端點路由來自 Helium HTTP 集成的 POST 請求,然后利用 Google Sheets API 自動將解碼的傳感器數據發送到電子表格,以進行特定于應用程序的實時分析。
- Pimoroni Enviro pHAT到Google表格記錄器
- 用于將數據從Google表單自動發布到Adafruit IO的Python腳本
- 使用Google Charts來可視化傳感器數據
- 使用Blues Wireless將BLE傳感器數據路由到云端
- 從NXP設備收集傳感器數據
- 使用Google表格監控溫度
- 無線傳感器網絡的多sink路由技術的詳細研究分析 8次下載
- 壓力傳感器從傳感器到單片機的信號調理路徑的詳細中文資料概述
- 無線傳感器網絡干擾感知路由 0次下載
- 從汽車到運動場基于傳感器的安全 0次下載
- 如何將慣性傳感器集成到可穿戴設備中 1次下載
- 無線傳感器網絡路由協議分析 138次下載
- 基于QoS的無線傳感器網絡路由協議的研究
- 無線傳感器網絡的路由協議
- 無線傳感器網絡異構驅動路由算法
- 傳感器的定義和分類 965次閱讀
- Arm Helium技術誕生的由來 997次閱讀
- 總結各種傳感器原理 1182次閱讀
- 如何從您喜愛的傳感器中獲取數據 1823次閱讀
- 智能傳感器:從大數據到人工智能智能數據 1466次閱讀
- 基于WSN路由算法在無線傳感器網絡檢測糧庫中的應用研究 2620次閱讀
- 邊緣計算日趨成熟,物聯網設備將不再需要網關聚合傳感器數據 2600次閱讀
- GSM調制解調器簡化傳感器網絡中的數據采集和處理 1400次閱讀
- 無線傳感器網絡在環境監測系統中的應用介紹 6335次閱讀
- 轉速傳感器的類型 2.2w次閱讀
- 基于無線傳感器網絡對環境監測系統的設計 3160次閱讀
- 為什么需要凈化傳感器數據 700次閱讀
- MEMS慣性傳感器到云傳感器融合系統的定位系統 3940次閱讀
- 基于IPv6的無線傳感器網絡邊界路由器的設計方案 4224次閱讀
- 無線傳感器網絡路由協議的研究與改進 1403次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論