通過本文,你將了解如何使用 Conexio Stratus 套件和 Datacake 構建低成本(和低代碼)天氣數據記錄器
背景
建筑物的溫度讀數對于供暖專家、社會房東甚至房主來說可能是一個主要問題,以確保房屋內的溫度恒定且定期受控。適當管理的室內氣候可以保證為用戶提供舒適的環境并有助于節省能源。
本文將演示如何:
免費創建您自己的基于物聯網的天氣數據儀表板。
在 Datacake 上創建您的第一臺設備,并通過 MQTT 代理將運行 ZephyrRTOS 的 Conexio Stratus 連接到 Datacake 平臺。
組裝所需的硬件。
使用 Conexio Stratus 設備從 BME280 傳感器獲取重要的環境數據以及電池電壓、LTE 信號強度、固件版本和設備 IMEI 等其他生命體征數據,并將其推送到云端。
從世界任何地方可視化和跟蹤您的環境數據。
為什么選擇蜂窩網絡以及為什么選擇 Conexio Stratus 套件?
Wi-Fi 服務可能不是最可靠的,在某些地方甚至不是用戶的選擇。例如,如果您想在農場中間監控和部署一個傳感器設備,那里沒有 WiFi,但您有良好的蜂窩網絡覆蓋。這就是蜂窩連接派上用場的地方,這也是我決定使用基于蜂窩的 Conexio Stratus 開發套件的原因。盡管還有許多其他基于蜂窩的物聯網平臺,但以下是 Conexio Stratus 脫穎而出的一些原因。
Conexio Stratus 開發套件使我們能夠輕松地對 IoT 解決方案進行原型設計,因為它帶有 500MB 的預付費數據和 10 年的全球蜂窩服務。不需要合同。
該開發套件支持 LTE-M 和 NB-IoT 協議,還集成了 GPS,無需購買和集成外部 GPS 模塊。
它還具有板載環境傳感器,特別是來自 ST micro 的 Sensirion Sht4x 溫度和濕度傳感器和 LIS2DH 加速度計。
最后但同樣重要的是,該套件支持能量收集和太陽能電池充電。這是目前在許多物聯網設備中找不到的缺失功能之一。
除了 Stratus 設備,我還使用了 Stratus 擴展板,它支持 Sparkful QWIIC 連接器、用于 Mikroe click 板的 Mikro 總線,以及用于連接外部傳感器和執行器的 Grove I2C 連接器。使用此防護罩,我們連接了 Mikroe 的 BME280 天氣點擊板,用于測量溫度、濕度和壓力。這主要是為了演示無需焊接即可輕松地將第三方傳感器模塊連接到 Stratus 設備。
無需外部MCU
與其他需要專用 MCU 來控制 GPS、傳感器等其他外圍設備的基于蜂窩的 IoT 設備不同,Conexio Stratus 無需外部 MCU。它簡單地將主 MCU、單元和 GPS 模塊組合在一個由 nRF9160 SiP 支持的微型外形中。nRF9160 包含一個僅用于應用的 Arm Cortex-M33 應用處理器、一個完整的 LTE 調制解調器、射頻前端 (RFFE) 和一個電源管理系統,使其成為市場上最緊湊、最完整和最節能的蜂窩物聯網解決方案。此外,無需外部 MCU、蜂窩或 GPS 模塊,降低了設備集成成本和時間。
因此,讓我們深入設置所需的軟件和硬件配置。
組裝硬件以進行初始固件測試
以下是我們使用過的所有硬件:
對于初始測試,我們將主 Stratus 開發板和 Mikroe BME280 天氣點擊板插入 Stratus 防護板,如下所示。最終部署的完整硬件將在本文后面進行組裝和展示。
Datacake 注冊和設置
在此處在 Datacake 平臺上注冊并創建用戶帳戶。您的前兩個設備是免費的。
在通過 MQTT 存儲任何測量讀數之前,我們需要在 Datacake 平臺上設置一個設備。注冊和帳戶激活后,前往 Datacake 工作區的車隊視圖。
點擊右上角的添加設備,彈出如下彈窗。
在STEP 1中,選擇設備類型為“ API ”,在 Datacake Product 下選擇New Product 。然后在“產品名稱”下為您的設備分配一個名稱。在本教程中,我們將產品命名為“ Conexio Stratus ”。
在STEP 2中,您可以添加一個或多個 API 設備。接下來,分配設備名稱并點擊Next 。
最后,在STEP 3中,選擇 Datacake 計劃。要創建設備,必須選擇付款計劃。由于 Datacake 最多允許您免費創建兩個設備,因此您可以選擇“免費”計劃并單擊“添加 1 個設備”。
您的設備現在已經注冊到 Datacake 平臺,應該會出現在“ Fleet ”視圖中的設備下。單擊您注冊的設備,它將帶您進入其工作區。在STEP 2中,您可以添加一個或多個 API 設備。接下來,分配設備名稱并點擊Next 。
添加數據庫字段
好的。此時,我們需要在設備的數據庫中定義字段,這些字段將托管從 Stratus 設備通過 MQTT 發送的測量值。
在 Datacake 中,導航到“配置”選項卡并向下滾動到“字段”部分,然后單擊“添加字段”按鈕。
這將打開一個具有多種數據類型的模式。在本文中,我們將添加以“ Float ”類型的溫度開頭的多個字段。Datacake 會自動填寫“標識符”字段。有關詳細信息,請參閱下面的片段。
完成字段詳細信息后,單擊“添加字段”即可完成此字段。您將在下面看到我們為此示例應用程序添加的所有不同字段。這些字段包括:
RSRP - LTE 信號強度值
電池 - 用于記錄連接的鋰聚合物電池的電壓
IMEI - Conexio Stratus 國際移動設備識別碼 (IMEI) 號碼
版本 - 設備上運行的固件版本
溫度 - BME280 傳感器的環境溫度讀數
濕度 - BME280 傳感器的相對濕度讀數
壓力 - BME280 傳感器的環境壓力讀數
添加集成
接下來,在 Fields 部分的正下方,您將找到Integrations部分。要通過 MQTT 從您的設備轉發數據,必須建立與 Datacake 的連接。單擊配置,將彈出MQTT 集成信息窗口。
Datacake 平臺提供具有 TLS 加密的 MQTT 代理,它允許訂閱和記錄數據。
在該平臺的幫助下,您可以:
通過 MQTT 將傳入的設備數據轉發到外部服務
通過 MQTT 將數據存儲到 Datacake Cloud
為了將測量記錄到 Datacake Cloud,我們將把數據發布到相應的主題結構中,如 MQTT 集成窗口中所示。
注意:復制上面的代理名稱和我們稍后將在固件配置中使用的主題。
Datacake 的 MQTT 主題前綴遵循以下結構:
dtck-pub/《product_slug》/《device_id》/《field_name》
主題結構中的最后一個元素是測量值的字段名稱,它出現在我們之前創建的數據庫字段中。該字段(標識符)是我們將發布來自 Stratus 設備的不同測量值的地方。
生成訪問令牌
在 Datacake 平臺創建和注冊用戶帳戶時,會自動生成用戶訪問令牌。此 API 令牌充當安全性并允許設備訪問用戶的帳戶。
注意:我們將需要此令牌來使用 Datacake 平臺驗證我們的 Stratus 設備。
要查看您的個人訪問令牌,請單擊“ Edit Profile ”,然后單擊“ API ”。
要查看您的訪問令牌,請單擊“顯示”。現在將這個訪問令牌復制到一個安全的地方,因為我們稍后會需要它。
至此,我們已經具備了將 Conexio Stratus 設備中的數據連接和發布到 Datacake 所需的所有詳細信息。現在讓我們轉到設備固件方面。
MQTT 應用程序代碼
我們擴展了 nRF Connect SDK 中提供的示例 MQTT 應用程序,以便輕松地將 Stratus 套件連接到 MQTT 代理,從 Datacake 平臺發送和接收數據。
擴展的示例應用程序連接到 Datacake 并將數據發布到配置的發布主題。在按鈕按下事件時,應用程序將設備生命值發布到 Datacake 并定期發布環境數據,例如溫度和濕度。
完整的應用程序可以在本文下方找到。
將 Datacake 憑據添加到應用程序代碼
首先,我們必須將 Datacake 訪問令牌添加到應用程序代碼中。您將需要conexio_stratus_firmware/samples/datacake/prj.conf使用您的 Datacake 訪問令牌進行編輯。更新以下參數。
# MQTT application configuration authentication
CONFIG_MQTT_PASS="DATACAKE_ACCESS_TOKEN"
CONFIG_MQTT_USER="DATACAKE_ACCESS_TOKEN"
注意用戶名和密碼是一樣的。
MQTT 代理配置
接下來,我們需要配置 MQTT 代理主機名和端口。使用以下內容更新 Datacake 代理配置:
# MQTT broker configuration
CONFIG_MQTT_BROKER_HOSTNAME="mqtt.datacake.co"
CONFIG_MQTT_BROKER_PORT=8883
我們將使用使用 CA 簽名服務器證書的端口 8883。
MQTT 發布/訂閱配置
要將測量記錄到設備的特定數據庫字段,我們將更新 MQTT 發布主題,如下所示:
# MQTT topics for recording measurement values
# Change this as per your Datacake MQTT Integration and fields
CONFIG_MQTT_PUB_TOPIC_TEMP="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_HUM="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_PRES="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_VER="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_IMEI="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_BAT="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_RSRP="dtck-pub/
CONFIG_MQTT_PUB_TOPIC_BUTTON="dtck-pub/
# MQTT subscription topics
CONFIG_MQTT_SUB_TOPIC="dtck/conexio-stratus/
例如,使用 Product-Slug my-product , Device-ID 6b98a3bb-9ae1-418f-9375-f23091a849cd和 Field-IdentifierTEMPERATURE將發布消息到:
dtck-pub/my-product/6b98a3bb-9ae1-418f-9375-f23091a849cd/TEMPERATURE
有效負載將保存您要記錄到該特定數據庫字段中的值。
publish("dtck-pub/my-product/6b98a3bb-9ae1-418f-9375-f23091a849cd/TEMPERATURE", 25.00)
到這一步已經設置好了 MQTT 參數配置。
對 Stratus 設備進行編程
要編譯應用程序,請在應用程序目錄中打開一個終端窗口并發出以下west命令
west build -b conexio_stratus_ns
成功編譯應用程序后,連接 Stratus 設備并將其置于 DFU 模式。
使用 newtmgr 刷寫編譯好的固件:
newtmgr -c serial image upload build/zephyr/app_update.bin
打開串行控制臺并重置 Stratus 設備。終端中將顯示以下串行 UART 輸出。如果您是第一次連接 Stratus 設備,請花幾分鐘時間注冊到網絡并與塔建立 LTE 連接。由于 Stratus 設備已預先配置為自動連接到 LTE 網絡,因此無需額外的 SIM 激活。
*** Booting Zephyr OS build v2.6.99-ncs1 ***
+CEREG: 2,"412D","03382810",7
+CSCON: 1
+CEREG: 5,"412D","03382810",7,,,"11100000","11100000"
%CESQ: 35,1,10,1
建立 LTE 連接后,您會注意到 Stratus 連接到 Datacake MQTT 代理,之后它將傳感器數據發布到配置的主題。您的 Stratus 設備現在處于活動狀態并正在與 Datacake 云進行通信。
在 Datacake 儀表板上可視化天氣數據
固件啟動并運行后,返回 Datacake 儀表板并將圖形小部件添加到您的工作區。您現在將看到設備數據流入 Datacake 并填充漂亮的圖表。下面是我們創建的示例儀表板。
您可以從世界任何地方訪問實時設備儀表板和數據:https ://app.datacake.de/pd/f66e9fed-996e-4b84-b44f-e3d4e458cd3e
組裝最終部署就緒的硬件
現在我們已經啟動并運行了初始固件和儀表板,讓我們組裝完整的硬件以進行部署。在這里,我們將一個小型太陽能電池板連接到 Stratus 護罩,用于為 LiPo 電池充電。通過滑動 Stratus 主板側面的開關打開設備后,完整的硬件安裝在亞克力外殼內,如下所示:
結論
這篇文章演示了您可以使用 Conexio Stratus 蜂窩物聯網設備創建的眾多應用程序之一。現在我們有了像 Datacake 這樣的無代碼或低代碼云平臺,發送和可視化 IoT 設備數據變得比以前容易得多。借助預付的 500MB 蜂窩數據,您無需 WiFi、藍牙甚至 SD 卡即可從世界任何地方跟蹤和記錄您的天氣數據。
-
物聯網
+關注
關注
2903文章
44284瀏覽量
371325 -
蜂窩網絡
+關注
關注
2文章
208瀏覽量
21624 -
數據記錄器
+關注
關注
0文章
53瀏覽量
12680
發布評論請先 登錄
相關推薦
評論