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

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

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

Spire.Cloud.Presentation說(shuō)明

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

評(píng)論