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