Nordic Semiconductor云服務(wù)和nRF Cloud構(gòu)成了一個專為Nordic Semiconductor無線設(shè)備優(yōu)化的物聯(lián)網(wǎng)平臺。該平臺為使用Nordic Semiconductor芯片的原型和商用設(shè)備提供云連接和服務(wù)。
nRF Cloud的概況
nRF Cloud是一個為Nordic Semiconductor的無線設(shè)備優(yōu)化的云服務(wù)平臺,它提供了云連接和服務(wù),適用于使用Nordic Semiconductor芯片的原型和商業(yè)設(shè)備。它的概念和優(yōu)勢如下:
它支持多種的傳輸協(xié)議,包括CoAP, MQTT和REST,使您可以根據(jù)您的應(yīng)用場景選擇最合適的方式與云端進(jìn)行通信。
它提供了一些商業(yè)可用的功能,如位置服務(wù)和固件遠(yuǎn)程更新,可以幫助您的設(shè)備和客戶應(yīng)用獲取快速和節(jié)能的位置信息,以及高效和靈活的設(shè)備固件管理 。
它提供了一個網(wǎng)頁端,讓您可以方便地查看和控制您的設(shè)備,以及查看設(shè)備的數(shù)據(jù)和狀態(tài)。
它提供了一個REST API,讓您可以使用任何編程語言或平臺來構(gòu)建您自己的用戶界面或應(yīng)用程序,以及與其他云服務(wù)進(jìn)行集成。
它基于Amazon Web Services (AWS)構(gòu)建,具有高可靠性,高安全性和高可擴展性。
它提供了不同的計劃和計費結(jié)構(gòu),讓您可以根據(jù)您的需求和預(yù)算選擇最合適的方案。
以下圖表提供了nRF Cloud組件的概覽:
nRF Cloud賬號管理
nRF Cloud的賬號類型是指在nRF Cloud平臺上注冊和使用的不同級別的賬號,它們決定了您可以使用的設(shè)備數(shù)量,服務(wù)功能,計費方式等。nRF Cloud的賬號類型主要有以下三種:
Develop:Develop是免費的賬號類型,適用于開發(fā)和測試階段的用戶。您可以創(chuàng)建一個團隊,并連接最多10個設(shè)備。您可以使用nRF Cloud提供的基本服務(wù),如位置服務(wù)和固件遠(yuǎn)程更新2您不需要提供任何付款信息。
Pro:Pro是付費的賬號類型,適用于商業(yè)化階段的用戶。您可以創(chuàng)建多個團隊,并連接最多2000個設(shè)備。您可以使用nRF Cloud提供的所有服務(wù),如位置服務(wù)和固件遠(yuǎn)程更新,以及一些高級功能,如設(shè)備分組和API密鑰。您需要提供有效的付款信息,并按照每月每個設(shè)備的費用進(jìn)行結(jié)算。您的設(shè)備數(shù)據(jù)會永久保存在nRF Cloud上。
Enterprise:Enterprise是定制的賬號類型,適用于大規(guī)模部署階段的用戶。您可以創(chuàng)建多個團隊,并連接不限數(shù)量的設(shè)備。您需要與nRF Cloud的銷售團隊聯(lián)系,并根據(jù)您的需求和預(yù)算進(jìn)行定價協(xié)商。您的設(shè)備數(shù)據(jù)會永久保存在nRF Cloud上。
nRF Cloud所支持的位置服務(wù)
目前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,很多人不容易搞明白,下表詳細(xì)介紹了A-GPS 與P-GPS區(qū)別:
A-GPS | P-GPS | |
---|---|---|
Main purpose | 幫助快速準(zhǔn)確地獲得首次定位 | 幫助很少連接到云的設(shè)備獲得快速定位 |
Use scenario | 單定位模式、連續(xù)模式、周期模式 | 主要是周期模式 |
Triggered by | .NRF_MODEM_GNSS_EVT_AGPS_REQ | 應(yīng)用程序直接請求,或由于沒有預(yù)測或用完或低于閾值而間接請求 |
Request content to nRF Cloud | AGPS 請求的幫助類型 + 小區(qū)信息 | P-GPS 配置 + 日期時間,可選小區(qū)信息 |
Data download from nRF Cloud | 衛(wèi)星軌道數(shù)據(jù)、精確定時數(shù)據(jù)和粗略位置估計,用于請求的 PRN(調(diào)制解調(diào)器通常要求所有 32 個 SV) | 未來長達(dá) 2 周內(nèi)每 4 小時進(jìn)行一次星歷預(yù)測,存儲到閃存。 當(dāng)預(yù)測集中的所有星歷表都過期后,P-GPS 將下載新的星歷表。 對于所有 32 個 SV |
Data injection to modem | 下載后立即 | .NRF_MODEM_GNSS_EVT_AGPS_REQ 在 TTFF 之前(當(dāng)啟用 P-GPS 且未啟用 A-GPS 時),或每 4 小時從存儲中觸發(fā)定時器注入。 |
Main merit | 減少 GPS 設(shè)備估計其位置的時間 (TTFF) | 定期向調(diào)制解調(diào)器提供星歷表,以確保調(diào)制解調(diào)器始終具有有效的軌道。 減少 GPS 設(shè)備定期定位的時間 |
Known limitation | 如果應(yīng)用程序使用 nrf_cloud_pgps_set_location() 反饋定位位置,并且設(shè)備在定位之間移動很長的距離,則下一次定位的時間可能比預(yù)期更長(不準(zhǔn)確的 P-GPS 數(shù)據(jù)用作 A-GPS 注入) |
在量產(chǎn)階段的設(shè)備批量注冊
1. 在以下鏈接中,下載批量注冊腳本
~$ git clone https://github.com/nRFCloud/utils.git
2. 使用Python的pip工具安裝所需的包:
~$ pip3 install -r requirements.txt
3. Create CA Cert
該腳本創(chuàng)建一個自簽名的CA證書和相應(yīng)的EC密鑰對。CA證書和私鑰可以用來創(chuàng)建設(shè)備憑證。通常情況下,只需要運行該腳本一次,然后可以使用其輸出生成多個設(shè)備憑證。
以下是輸出文件的格式:
_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. 對每個設(shè)備寫入證書
device_credentials_installer.py這個腳本自動生成并寫入設(shè)備證書,程序中必須支持AT指令,腳本通過串口寫入設(shè)備證書。
例如
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個設(shè)備,執(zhí)行一次腳本
python ./nrf_cloud_provision.py --apikey $API_KEY --csv example_prov.csv
云服務(wù)的模式
這節(jié),重點講nRF Cloud支持的模式,主要分為三種,從設(shè)備到nRF Cloud,從客戶cloud到nRF Cloud,從設(shè)備到多個云。會以從云到云為重點講解。
1. 從設(shè)備到nRF Cloud
目前nRF Connect SDK 默認(rèn)是從設(shè)備到nRF Cloud,這種模式客戶不需要修改。
2. 從設(shè)備到多個云
從設(shè)備端需要集成多個云接口,客戶需要開發(fā)除nRF Cloud接口之外的云接口。
3. 從設(shè)備到客戶cloud,從客戶cloud到nRF Cloud
Cloud to nRF Cloud是一種可以讓你的設(shè)備通過你自己的云端服務(wù)來連接nRF Cloud平臺的方法。這樣,你可以利用nRF Cloud提供的位置服務(wù),固件更新服務(wù),設(shè)備管理服務(wù)和安全服務(wù),同時保持對你的設(shè)備通信流程的靈活性和控制。從客戶云到nRF Cloud,從設(shè)備到客戶云訪問接口,需要客戶自己開發(fā)。
3.1. 從云到云的要求
nRF Cloud Pro或Enterprise的賬戶類型。
必須使用代理服務(wù)器。
必須生成一個服務(wù)密鑰。
要使用Cloud to nRF Cloud,你需要遵循以下步驟:
在你自己的云端服務(wù)上注冊和配置你的設(shè)備,使其能夠與你的云端服務(wù)進(jìn)行雙向通信。
在nRF Cloud平臺上創(chuàng)建一個賬戶,并在設(shè)置中啟用Cloud to nRF Cloud 功能。
在nRF Cloud平臺上生成一個API密鑰,并將其保存在你自己的云端服務(wù)中。
POST /devices: 用于在nRF Cloud平臺上注冊你的設(shè)備,并獲取一個設(shè)備ID。
GET /devices/{device_id}: 用于查詢你的設(shè)備在nRF Cloud平臺上的狀態(tài)和屬性。
PUT /devices/{device_id}: 用于更新你的設(shè)備在nRF Cloud平臺上的屬性,如名稱,標(biāo)簽,元數(shù)據(jù)等。
DELETE /devices/{device_id}: 用于從nRF Cloud平臺上刪除你的設(shè)備。
POST /messages: 用于向你的設(shè)備發(fā)送消息,如位置請求,固件更新指令等。
GET /messages: 用于接收來自你的設(shè)備的消息,如位置響應(yīng),固件更新狀態(tài)等。
3.2. 下面以基站定位為例,說明從C2C模式的原理
首先我們講下,如何使用CLOUD to nRF Cloud中的JSON Web Token和service key
JSON Web Token是一種可以在不同方之間安全地傳遞信息的標(biāo)準(zhǔn)。它由三部分組成:頭部,有效載荷和簽名。頭部包含了JWT的類型和算法。有效載荷包含了JWT的主題,過期時間,發(fā)行者等信息。簽名是用來驗證JWT的完整性和來源的。
service key是一種可以用來簽署JWT的密鑰。它是由nRF Cloud平臺生成的,并且只能由團隊所有者獲取。service key可以用來啟用或禁用不同的位置服務(wù),如A-GPS,P-GPS,SCELL,MCELL和Wi-Fi位置。
要使用CLOUD to nRF Cloud中的JSON Web Token和service key,你需要遵循以下步驟:
在nRF Cloud平臺上創(chuàng)建一個賬戶,并在設(shè)置中啟用CLOUD to nRF Cloud功能。
在nRF Cloud平臺上生成一個API密鑰,并將其保存在你自己的云端服務(wù)中。
在nRF Cloud平臺上生成一個service key,并將其保存在你自己的云端服務(wù)中。
在你自己的云端服務(wù)中,使用service key來簽署一個JWT,并將其作為Authorization: Bearer header來發(fā)送請求給nRF Cloud平臺。
在nRF Cloud平臺上接收并驗證JWT,并根據(jù)其有效載荷中的信息來提供相應(yīng)的服務(wù)。
基站位置服務(wù)使你能夠根據(jù)設(shè)備當(dāng)前連接的基站和它能夠通信的基站獲取設(shè)備的大致位置。關(guān)于基站的信息可以轉(zhuǎn)換為一個地理位置,并可以在地圖上顯示。
截圖顯示了一個設(shè)備的三個位置:
它最新的已知GNSS位置(一個藍(lán)色的點)。
基于它當(dāng)前連接的cell的大致位置(黃色的圓)。
基于它當(dāng)前連接的cell和它能夠接收信號的鄰近cell的大致位置(紅色的圓)。
運行在 nRF9160 上的固件需要獲取它所連接的移動網(wǎng)絡(luò)的信息,并將這些小區(qū)位置數(shù)據(jù)發(fā)送到 nRF Cloud。
3.2.1. 從設(shè)備發(fā)cell信息到cloud
運行在 nRF9160 上的固件需要獲取它所連接的移動網(wǎng)絡(luò)的信息,并將這些小區(qū)位置數(shù)據(jù)發(fā)送到 nRF Cloud。
在設(shè)備上,你可以使用 Modem information library 來獲取設(shè)備當(dāng)前連接的網(wǎng)絡(luò)的信息。這些信息可以在后端用來解析設(shè)備的位置。Digital twin(在 AWS 上稱為設(shè)備影子)是一個存儲這些信息的好地方。信息可能如下:
{ "nw": "LTE-M GPS", "area": 2305, "mccmnc": 24202, "cell": 33703712 }
3.2.2. 將當(dāng)前連接的cell和鄰近cell的信息發(fā)送到你的后端
%NCELLMEAS AT 命令掃描鄰近的小區(qū),并返回當(dāng)前連接的小區(qū)和零個或多個設(shè)備可以通信的鄰近小區(qū)。
這些信息可以在后端用來確定設(shè)備的位置。如果找到相鄰的小區(qū),那么大概的位置就會更精確。因為報告的大小可能很大,所以在device shadow中存儲它是不可行的。因此,建議將它作為一個單獨的消息發(fā)送到一個自定義的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 將小區(qū)位置數(shù)據(jù)存儲在云端
設(shè)備發(fā)送的小區(qū)數(shù)據(jù)需要存儲到物聯(lián)網(wǎng)digital twin服務(wù)或數(shù)據(jù)庫中。這樣可以在以后的時間向應(yīng)用程序提供這些信息,并使用nRF Cloud Cell Location服務(wù)REST API異步地將小區(qū)信息解析為地理位置。如果數(shù)據(jù)處理失敗,可以重試。
對于單個小區(qū)位置,這個存儲可以作為一個緩存。一個小區(qū)的位置信息可以被重用,如果有很多設(shè)備連接到同一個小區(qū)。它們的大概地理位置是相同的。
3.2.4. 解析小區(qū)位置信息
使用GetPositionFromCells API方法將小區(qū)位置數(shù)據(jù)解析為地理位置
存儲小區(qū)位置服務(wù)密鑰:使用服務(wù)密鑰簽名的JSON Web Token (JWT)對所有API調(diào)用進(jìn)行身份驗證。在你的云端后臺以安全的方式存儲服務(wù)密鑰。
搭建小區(qū)位置解析器:你需要實現(xiàn)一個解析器,它使用存儲的單個cell或相鄰cell數(shù)據(jù)來查詢 GetPositionFromCells API 方法。它使用服務(wù)密鑰來驗證請求,并將結(jié)果存儲在數(shù)據(jù)庫中。你可以稍后檢索結(jié)果,并使用它們?yōu)樵O(shè)備提供歷史位置跟蹤。
位置解析器解析后的數(shù)據(jù)如下格式:
{ "lat": 45.524098, "lon": -122.688408, "uncertainty": 300, "fulfilledWith": "MCELL" }
完整圖:
以下完整圖表顯示了設(shè)備單元位置數(shù)據(jù)的流程,以及將這些數(shù)據(jù)解析為地理位置并使其可供 Web 應(yīng)用程序使用所涉及的必要組件
3.2.5. 從云到云模式有以下幾個優(yōu)點:
客戶可以使用自己熟悉和信任的云服務(wù)平臺,無需改變設(shè)備的配置或代碼。
客戶可以靈活地選擇使用哪些nRF Cloud服務(wù),以及如何使用它們。
客戶可以更好地保護設(shè)備和數(shù)據(jù)的安全性和隱私性。
從云到云模式也有一些缺點:
客戶需要額外地搭建和維護一個代理服務(wù)器。
客戶需要付費購買nRF Cloud Pro或Enterprise計劃。
客戶需要定期更新JWT以保持對nRF Cloud服務(wù)的訪問權(quán)限。
總之,從云到云模式是一種適合高級用戶和商業(yè)用戶的使用nRF Cloud服務(wù)的方式,它提供了更多的靈活性和控制性。
審核編輯 黃宇
-
芯片
+關(guān)注
關(guān)注
459文章
52494瀏覽量
440671 -
NRF
+關(guān)注
關(guān)注
0文章
49瀏覽量
38237 -
云服務(wù)
+關(guān)注
關(guān)注
0文章
855瀏覽量
39703
發(fā)布評論請先 登錄
nRF54L15 # 超低功耗無線 SoC

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

了解面向蜂窩物聯(lián)網(wǎng)的NRF9151 SiP
基于XIAO nRF52840的鑰匙尋找器

Spire.Cloud.Presentation說明

Commvault Cloud平臺提供Cloud Rewind功能
Spring Cloud Gateway網(wǎng)關(guān)框架

評論