Nordic Semiconductor云服務和nRF Cloud構成了一個專為Nordic Semiconductor無線設備優化的物聯網平臺。該平臺為使用Nordic Semiconductor芯片的原型和商用設備提供云連接和服務。
nRF Cloud的概況
nRF Cloud是一個為Nordic Semiconductor的無線設備優化的云服務平臺,它提供了云連接和服務,適用于使用Nordic Semiconductor芯片的原型和商業設備。它的概念和優勢如下:
它支持多種的傳輸協議,包括CoAP, MQTT和REST,使您可以根據您的應用場景選擇最合適的方式與云端進行通信。
它提供了一些商業可用的功能,如位置服務和固件遠程更新,可以幫助您的設備和客戶應用獲取快速和節能的位置信息,以及高效和靈活的設備固件管理 。
它提供了一個網頁端,讓您可以方便地查看和控制您的設備,以及查看設備的數據和狀態。
它提供了一個REST API,讓您可以使用任何編程語言或平臺來構建您自己的用戶界面或應用程序,以及與其他云服務進行集成。
它基于Amazon Web Services (AWS)構建,具有高可靠性,高安全性和高可擴展性。
它提供了不同的計劃和計費結構,讓您可以根據您的需求和預算選擇最合適的方案。
以下圖表提供了nRF Cloud組件的概覽:
nRF Cloud賬號管理
nRF Cloud的賬號類型是指在nRF Cloud平臺上注冊和使用的不同級別的賬號,它們決定了您可以使用的設備數量,服務功能,計費方式等。nRF Cloud的賬號類型主要有以下三種:
Develop:Develop是免費的賬號類型,適用于開發和測試階段的用戶。您可以創建一個團隊,并連接最多10個設備。您可以使用nRF Cloud提供的基本服務,如位置服務和固件遠程更新2您不需要提供任何付款信息。
Pro:Pro是付費的賬號類型,適用于商業化階段的用戶。您可以創建多個團隊,并連接最多2000個設備。您可以使用nRF Cloud提供的所有服務,如位置服務和固件遠程更新,以及一些高級功能,如設備分組和API密鑰。您需要提供有效的付款信息,并按照每月每個設備的費用進行結算。您的設備數據會永久保存在nRF Cloud上。
Enterprise:Enterprise是定制的賬號類型,適用于大規模部署階段的用戶。您可以創建多個團隊,并連接不限數量的設備。您需要與nRF Cloud的銷售團隊聯系,并根據您的需求和預算進行定價協商。您的設備數據會永久保存在nRF Cloud上。
nRF Cloud所支持的位置服務
目前nRF Cloud支持Single-cell, Multi-cell, Wi-Fi, A+P GPS, P-GPS, A-GPS。所以,功耗排列順序,Single cell最省電,A-GPS最耗電。定位精度也如圖所示,single cell精度最低,A-GPS定位精度最高。下圖比較了各種定位模式的功耗和精度:
AGPS和PGPS,很多人不容易搞明白,下表詳細介紹了A-GPS 與P-GPS區別:
A-GPS | P-GPS | |
---|---|---|
Main purpose | 幫助快速準確地獲得首次定位 | 幫助很少連接到云的設備獲得快速定位 |
Use scenario | 單定位模式、連續模式、周期模式 | 主要是周期模式 |
Triggered by | .NRF_MODEM_GNSS_EVT_AGPS_REQ | 應用程序直接請求,或由于沒有預測或用完或低于閾值而間接請求 |
Request content to nRF Cloud | AGPS 請求的幫助類型 + 小區信息 | P-GPS 配置 + 日期時間,可選小區信息 |
Data download from nRF Cloud | 衛星軌道數據、精確定時數據和粗略位置估計,用于請求的 PRN(調制解調器通常要求所有 32 個 SV) | 未來長達 2 周內每 4 小時進行一次星歷預測,存儲到閃存。 當預測集中的所有星歷表都過期后,P-GPS 將下載新的星歷表。 對于所有 32 個 SV |
Data injection to modem | 下載后立即 | .NRF_MODEM_GNSS_EVT_AGPS_REQ 在 TTFF 之前(當啟用 P-GPS 且未啟用 A-GPS 時),或每 4 小時從存儲中觸發定時器注入。 |
Main merit | 減少 GPS 設備估計其位置的時間 (TTFF) | 定期向調制解調器提供星歷表,以確保調制解調器始終具有有效的軌道。 減少 GPS 設備定期定位的時間 |
Known limitation | 如果應用程序使用 nrf_cloud_pgps_set_location() 反饋定位位置,并且設備在定位之間移動很長的距離,則下一次定位的時間可能比預期更長(不準確的 P-GPS 數據用作 A-GPS 注入) |
在量產階段的設備批量注冊
1. 在以下鏈接中,下載批量注冊腳本
~$ git clone https://github.com/nRFCloud/utils.git
2. 使用Python的pip工具安裝所需的包:
~$ pip3 install -r requirements.txt
3. Create CA Cert
該腳本創建一個自簽名的CA證書和相應的EC密鑰對。CA證書和私鑰可以用來創建設備憑證。通常情況下,只需要運行該腳本一次,然后可以使用其輸出生成多個設備憑證。
以下是輸出文件的格式:
_ca.pem _prv.pem pub.pem
usage: create_ca_cert.py [-h] -c, C, [-st ST] [-l L] [-o O] [-ou OU] [-cn CN] [-dv DV] [-e EMAIL] [-p PATH] [-f FILEPREFIX]
Create CA Certificate
optional arguments | |
---|---|
-h, --help | Show help message and exit |
-c, C | 2 character country code |
-st ST | State or Province |
-l L | Locality |
-o O | Organization |
-ou OU | Organizational Unit |
-cn CN | Common Name |
-dv DV | Number of days valid |
-e EMAIL, --email EMAIL | E-mail address |
-p PATH, --path PATH | Path to save PEM files |
-f FILEPREFIX, --fileprefix FILEPREFIX | Prefix for output files |
例如
python create_ca_cert.py -c CN -l CITY -o "COMPANY NAME" -ou "DEPARTMENT" -cn DOMAIN.cn -e FIRST.LAST@DOMAIN.CN -p ./my_ca Creating self-signed CA certificate... File created: /my_ca/my_company-0x3bc7f3b014a8ad492999c594f08bbc2fcffc5fd1_ca.pem File created: /my_ca/my_company-0x3bc7f3b014a8ad492999c594f08bbc2fcffc5fd1_prv.pem File created: /my_ca/my_company-0x3bc7f3b014a8ad492999c594f08bbc2fcffc5fd1_pub.pem
4. 對每個設備寫入證書
device_credentials_installer.py這個腳本自動生成并寫入設備證書,程序中必須支持AT指令,腳本通過串口寫入設備證書。
例如
python device_credentials_installer.py -d -t YOUR-DK1 --ca my_caxx.pem --ca_key my_caxx_prv.pem -a --csv closed_dk_prov.csv --devinfo closed_dk_info.csv --devinfo_append --term CRLF
5. 批量注冊,每1000個設備,執行一次腳本
python ./nrf_cloud_provision.py --apikey $API_KEY --csv example_prov.csv
云服務的模式
這節,重點講nRF Cloud支持的模式,主要分為三種,從設備到nRF Cloud,從客戶cloud到nRF Cloud,從設備到多個云。會以從云到云為重點講解。
1. 從設備到nRF Cloud
目前nRF Connect SDK 默認是從設備到nRF Cloud,這種模式客戶不需要修改。
2. 從設備到多個云
從設備端需要集成多個云接口,客戶需要開發除nRF Cloud接口之外的云接口。
3. 從設備到客戶cloud,從客戶cloud到nRF Cloud
Cloud to nRF Cloud是一種可以讓你的設備通過你自己的云端服務來連接nRF Cloud平臺的方法。這樣,你可以利用nRF Cloud提供的位置服務,固件更新服務,設備管理服務和安全服務,同時保持對你的設備通信流程的靈活性和控制。從客戶云到nRF Cloud,從設備到客戶云訪問接口,需要客戶自己開發。
3.1. 從云到云的要求
nRF Cloud Pro或Enterprise的賬戶類型。
必須使用代理服務器。
必須生成一個服務密鑰。
要使用Cloud to nRF Cloud,你需要遵循以下步驟:
在你自己的云端服務上注冊和配置你的設備,使其能夠與你的云端服務進行雙向通信。
在nRF Cloud平臺上創建一個賬戶,并在設置中啟用Cloud to nRF Cloud 功能。
在nRF Cloud平臺上生成一個API密鑰,并將其保存在你自己的云端服務中。
POST /devices: 用于在nRF Cloud平臺上注冊你的設備,并獲取一個設備ID。
GET /devices/{device_id}: 用于查詢你的設備在nRF Cloud平臺上的狀態和屬性。
PUT /devices/{device_id}: 用于更新你的設備在nRF Cloud平臺上的屬性,如名稱,標簽,元數據等。
DELETE /devices/{device_id}: 用于從nRF Cloud平臺上刪除你的設備。
POST /messages: 用于向你的設備發送消息,如位置請求,固件更新指令等。
GET /messages: 用于接收來自你的設備的消息,如位置響應,固件更新狀態等。
3.2. 下面以基站定位為例,說明從C2C模式的原理
首先我們講下,如何使用CLOUD to nRF Cloud中的JSON Web Token和service key
JSON Web Token是一種可以在不同方之間安全地傳遞信息的標準。它由三部分組成:頭部,有效載荷和簽名。頭部包含了JWT的類型和算法。有效載荷包含了JWT的主題,過期時間,發行者等信息。簽名是用來驗證JWT的完整性和來源的。
service key是一種可以用來簽署JWT的密鑰。它是由nRF Cloud平臺生成的,并且只能由團隊所有者獲取。service key可以用來啟用或禁用不同的位置服務,如A-GPS,P-GPS,SCELL,MCELL和Wi-Fi位置。
要使用CLOUD to nRF Cloud中的JSON Web Token和service key,你需要遵循以下步驟:
在nRF Cloud平臺上創建一個賬戶,并在設置中啟用CLOUD to nRF Cloud功能。
在nRF Cloud平臺上生成一個API密鑰,并將其保存在你自己的云端服務中。
在nRF Cloud平臺上生成一個service key,并將其保存在你自己的云端服務中。
在你自己的云端服務中,使用service key來簽署一個JWT,并將其作為Authorization: Bearer header來發送請求給nRF Cloud平臺。
在nRF Cloud平臺上接收并驗證JWT,并根據其有效載荷中的信息來提供相應的服務。
基站位置服務使你能夠根據設備當前連接的基站和它能夠通信的基站獲取設備的大致位置。關于基站的信息可以轉換為一個地理位置,并可以在地圖上顯示。
截圖顯示了一個設備的三個位置:
它最新的已知GNSS位置(一個藍色的點)。
基于它當前連接的cell的大致位置(黃色的圓)。
基于它當前連接的cell和它能夠接收信號的鄰近cell的大致位置(紅色的圓)。
運行在 nRF9160 上的固件需要獲取它所連接的移動網絡的信息,并將這些小區位置數據發送到 nRF Cloud。
3.2.1. 從設備發cell信息到cloud
運行在 nRF9160 上的固件需要獲取它所連接的移動網絡的信息,并將這些小區位置數據發送到 nRF Cloud。
在設備上,你可以使用 Modem information library 來獲取設備當前連接的網絡的信息。這些信息可以在后端用來解析設備的位置。Digital twin(在 AWS 上稱為設備影子)是一個存儲這些信息的好地方。信息可能如下:
{ "nw": "LTE-M GPS", "area": 2305, "mccmnc": 24202, "cell": 33703712 }
3.2.2. 將當前連接的cell和鄰近cell的信息發送到你的后端
%NCELLMEAS AT 命令掃描鄰近的小區,并返回當前連接的小區和零個或多個設備可以通信的鄰近小區。
這些信息可以在后端用來確定設備的位置。如果找到相鄰的小區,那么大概的位置就會更精確。因為報告的大小可能很大,所以在device shadow中存儲它是不可行的。因此,建議將它作為一個單獨的消息發送到一個自定義的MQTT主題上。如下是個例子:
{ "area": 2310, "adv": 65535, "mnc": 2, "rsrq": 8, "rsrp": 24, "mcc": 242, "cell": 34288908, "earfcn": 6300, "nmr": [ { "rsrp": 22, "cell": 291, "rsrq": 6, "earfcn": 6300 }, { "rsrp": 21, "cell": 129, "rsrq": 4, "earfcn": 6300 } ] }
3.2.3 將小區位置數據存儲在云端
設備發送的小區數據需要存儲到物聯網digital twin服務或數據庫中。這樣可以在以后的時間向應用程序提供這些信息,并使用nRF Cloud Cell Location服務REST API異步地將小區信息解析為地理位置。如果數據處理失敗,可以重試。
對于單個小區位置,這個存儲可以作為一個緩存。一個小區的位置信息可以被重用,如果有很多設備連接到同一個小區。它們的大概地理位置是相同的。
3.2.4. 解析小區位置信息
使用GetPositionFromCells API方法將小區位置數據解析為地理位置
存儲小區位置服務密鑰:使用服務密鑰簽名的JSON Web Token (JWT)對所有API調用進行身份驗證。在你的云端后臺以安全的方式存儲服務密鑰。
搭建小區位置解析器:你需要實現一個解析器,它使用存儲的單個cell或相鄰cell數據來查詢 GetPositionFromCells API 方法。它使用服務密鑰來驗證請求,并將結果存儲在數據庫中。你可以稍后檢索結果,并使用它們為設備提供歷史位置跟蹤。
位置解析器解析后的數據如下格式:
{ "lat": 45.524098, "lon": -122.688408, "uncertainty": 300, "fulfilledWith": "MCELL" }
完整圖:
以下完整圖表顯示了設備單元位置數據的流程,以及將這些數據解析為地理位置并使其可供 Web 應用程序使用所涉及的必要組件
3.2.5. 從云到云模式有以下幾個優點:
客戶可以使用自己熟悉和信任的云服務平臺,無需改變設備的配置或代碼。
客戶可以靈活地選擇使用哪些nRF Cloud服務,以及如何使用它們。
客戶可以更好地保護設備和數據的安全性和隱私性。
從云到云模式也有一些缺點:
客戶需要額外地搭建和維護一個代理服務器。
客戶需要付費購買nRF Cloud Pro或Enterprise計劃。
客戶需要定期更新JWT以保持對nRF Cloud服務的訪問權限。
總之,從云到云模式是一種適合高級用戶和商業用戶的使用nRF Cloud服務的方式,它提供了更多的靈活性和控制性。
審核編輯 黃宇
-
芯片
+關注
關注
459文章
52410瀏覽量
439308 -
NRF
+關注
關注
0文章
49瀏覽量
38204 -
云服務
+關注
關注
0文章
855瀏覽量
39657
發布評論請先 登錄
nRF54L15 # 超低功耗無線 SoC

NVIDIA推出AI平臺DGX Cloud Lepton
基于 Wi-Fi 的定位服務
Wi-Fi 定位服務流程
nRF Cloud Wi-Fi 定位服務
Nordic新產品nRF54L15和nRF52832參數對比

了解面向蜂窩物聯網的NRF9151 SiP
基于XIAO nRF52840的鑰匙尋找器

Commvault Cloud平臺提供Cloud Rewind功能
Spring Cloud Gateway網關框架

評論