【Nordic博文分享系列】如何使用nRFCloud

原创 Nordic半导体 2023-09-08 16:13

前言

作者:George Xiong Nordic Semiconductor

Nordic Semiconductor 云服务和 nRF Cloud 构成了一个专为 Nordic 无线设备优化的物联网平台。该平台为使用 Nordic 芯片的原型和商用设备提供云连接和服务。



nRF Cloud的概况

nRF Cloud 是一个为 Nordic 的无线设备优化的云服务平台,它提供了云连接和服务,适用于使用 Nordic 芯片的原型和商业设备。它的概念和优势如下:

  • 它支持多种的传输协议,包括CoAP,      MQTT和REST,使您可以根据您的应用场景选择最合适的方式与云端进行通信。

  • 它提供了一些商业可用的功能,如位置服务和固件远程更新,可以帮助您的设备和客户应用获取快速和节能的位置信息,以及高效和灵活的设备固件管理 。

  • 它提供了一个网页端,让您可以方便地查看和控制您的设备,以及查看设备的数据和状态。

  • 它提供了一个REST API,让您可以使用任何编程语言或平台来构建您自己的用户界面或应用程序,以及与其他云服务进行集成。

  • 它提供了一个MQTT API,让您可以使用任何支持MQTT协议的客户端或库来与云端进行双向通信。

  • 它基于Amazon Web Services (AWS)构建,具有高可靠性,高安全性和高可扩展性。

  • 它提供了不同的计划和计费结构,让您可以根据您的需求和预算选择最合适的方案。

以下图表提供了nRF Cloud组件的概览:



nRF Cloud账号管理

nRF Cloud的账号类型是指在nRF Cloud平台上注册和使用的不同级别的账号,它们决定了您可以使用的设备数量,服务功能,计费方式等。nRF Cloud的账号类型主要有以下三种:

DevelopDevelop是免费的账号类型,适用于开发和测试阶段的用户。您可以创建一个团队,并连接最多10个设备。您可以使用nRF Cloud提供的基本服务,如位置服务和固件远程更新2您不需要提供任何付款信息。

ProPro是付费的账号类型,适用于商业化阶段的用户。您可以创建多个团队,并连接最多2000个设备。您可以使用nRF Cloud提供的所有服务,如位置服务和固件远程更新,以及一些高级功能,如设备分组和API密钥。您需要提供有效的付款信息,并按照每月每个设备的费用进行结算。您的设备数据会永久保存在nRF Cloud上。

EnterpriseEnterprise是定制的账号类型,适用于大规模部署阶段的用户。您可以创建多个团队,并连接不限数量的设备。您需要与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区别:



在量产阶段的设备批量注册

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 this 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 Shenzhen -o "Nordic Semiconductor K.K." -ou "Sales" -cn nordic.cn -e george.xiong@nordicsemi.no -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 GEORGE-DK1 --ca my_ca\xx.pem --ca_key my_ca\xx_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,从设备到客户云访问接口,需要客户自己开发。

(1) 从云到云的要求

  • nRF Cloud Pro或Enterprise的账户类型。

  • 必须使用代理服务器。

  • 必须生成一个服务密钥。

要使用Cloud to nRF Cloud,你需要遵循以下步骤:

  • 在你自己的云端服务上注册和配置你的设备,使其能够与你的云端服务进行双向通信。

  • 在nRF Cloud平台上创建一个账户,并在设置中启用Cloud to nRF Cloud 功能。

  • 在nRF Cloud平台上生成一个API密钥,并将其保存在你自己的云端服务中。

在你自己的云端服务中,使用REST API来与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: 用于接收来自你的设备的消息,如位置响应,固件更新状态等。

(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。

1)从设备发cell信息到cloud

运行在 nRF9160 上的固件需要获取它所连接的移动网络的信息,并将这些小区位置数据发送到 nRF Cloud。

在设备上,你可以使用 Modem information library 来获取设备当前连接的网络的信息。这些信息可以在后端用来解析设备的位置。Digital twin(在 AWS 上称为设备影子)是一个存储这些信息的好地方。信息可能如下:

{      "nw": "LTE-M GPS",      "area": 2305,      "mccmnc": 24202,      "cell": 33703712}

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)将小区位置数据存储在云端

设备发送的小区数据需要存储到物联网digital twin服务或数据库中。这样可以在以后的时间向应用程序提供这些信息,并使用nRF Cloud Cell Location服务REST API异步地将小区信息解析为地理位置。如果数据处理失败,可以重试。

对于单个小区位置,这个存储可以作为一个缓存。一个小区的位置信息可以被重用,如果有很多设备连接到同一个小区。它们的大概地理位置是相同的。

4)解析小区位置信息

使用GetPositionFromCells API方法将小区位置数据解析为地理位置。

存储小区位置服务密钥:使用服务密钥签名的JSON Web Token (JWT)对所有API调用进行身份验证。在你的云端后台以安全的方式存储服务密钥。

搭建小区位置解析器:你需要实现一个解析器,它使用存储的单个cell或相邻cell数据来查询 GetPositionFromCells API 方法。它使用服务密钥来验证请求,并将结果存储在数据库中。你可以稍后检索结果,并使用它们为设备提供历史位置跟踪。

位置解析器解析后的数据如下格式:

{     "lat": 45.524098,     "lon": -122.688408,     "uncertainty": 300,     "fulfilledWith": "MCELL"}

完整图:

以下完整图表显示了设备单元位置数据的流程,以及将这些数据解析为地理位置并使其可供 Web 应用程序使用所涉及的必要组件。

5)从云到云模式有以下几个优点:

  • 客户可以使用自己熟悉和信任的云服务平台,无需改变设备的配置或代码。

  • 客户可以灵活地选择使用哪些nRF Cloud服务,以及如何使用它们。

  • 客户可以更好地保护设备和数据的安全性和隐私性。

从云到云模式也有一些缺点:

  • 客户需要额外地搭建和维护一个代理服务器。

  • 客户需要付费购买nRF Cloud Pro或Enterprise计划。

  • 客户需要定期更新JWT以保持对nRF Cloud服务的访问权限。

总之,从云到云模式是一种适合高级用户和商业用户的使用nRF Cloud服务的方式,它提供了更多的灵活性和控制性。

【联系我们】

中文官网:www.nordicsemi.cn

英文官网:www.nordicsemi.com

微信公众号:nordicsemi


【Nordic 开发者论坛】

https://devzone.nordicsemi.com


【销售接洽】

北京分公司: +86 10 6410 8596

上海分公司: +86 21 6330 0620

深圳分公司: +86 755 8322 0147

sales.cn@nordicsemi.no


按下方提示星标 Nordic🌟

以免错过半导体行业深度好文👇




点击阅读原文” 进入Nordic半导体中文官网

Nordic半导体 Nordic 半导体开发支持蓝牙智能、ANT+和2.4GHz应用的超低功耗短距无线通信技术,用于物联网 、可穿戴产品、智能家居、玩具等应用。Nordic 提供现成可用的设计框架、世界级文档资料和支持,以加快专业工程师和业余爱好者的开发速度。
评论
  • 在高速数据传输的现代世界中,光模块扮演着至关重要的角色。它们如同信息高速公路上的“快递员”,负责将电信号转换为光信号进行远距离传输,再将光信号转换回电信号供设备使用。然而,在这看似简单的光-电转换过程中,有一个不起眼却不可或缺的元件在默默工作——它就是晶振,或称石英晶体振荡器。晶振:电子设备的“心跳”晶振的核心功能是产生稳定的时钟信号。想象一下,如果一场音乐会没有统一的节拍,演奏会变得混乱不堪。同样,在电子设备中,晶振提供的高精度时钟信号就像乐队的指挥,确保所有部件同步工作。在光模块中,这个“指
    TKD泰晶科技 2026-01-04 15:34 1747浏览
  • 2026年1月6日,美国CES展会上有一则重磅消息,芬兰初创公司Donut Lab正式推出全球首款可量产全固态电池,该电池不仅实现5分钟满电、10万次循环寿命的性能飞跃,更已完成OEM量产适配,搭载该电池的电动摩托车将于今年第一季度交付用户。这一突破标志着长期停留在实验室阶段的全固态电池技术正式迈入商业化落地阶段,有望彻底解决传统锂电池续航短、充电慢、安全隐患三大核心痛点,为新能源产业带来颠覆性变革。这款全固态电池的性能参数堪称“碾压级”超越传统锂电池。据官方披露,其能量密度达到400Wh/kg
    面包超人Tech 2026-01-09 09:23 1295浏览
  • 在智能家居的网络架构中,Wi-Fi、蓝牙、Zigbee与Thread等通信协议是实现设备无线互联与协同控制的底层逻辑。然而,这些协议在标准体系、寻址方式与网络管理机制上却彼此独立,缺乏统一的互操作框架,在进行跨协议组网时需要依赖中心网关作为“翻译桥梁”,这不仅抬高了全屋智能的部署成本,还增加了系统的网络复杂度与不稳定性。在此背景下,行业迫切地需要一种能跨协议、跨生态与跨品牌通信的统一标准来破局,从而在根本上解决智能家居场景中设备难互联、生态难融合与通信不稳定等问题,将智能家居从“平台主导”阶段全
    华普微HOPERF 2026-01-07 11:08 1168浏览
  • 在全球变暖、环境污染与生物多样性下降的生态危机下,发展科技的目的已不仅仅在于为各行各业提质增效,还在于促进人与自然的和谐发展。LoRaWAN作为一种面向大规模部署应用的低功耗IoT通信技术,正凭借着低功耗、远距离、大规模连接和低部署成本等特性,成为连接人类社会与自然生态的重要“沟通桥梁”。这座“沟通桥梁”不仅能将自然环境中原本难以察觉、零散分布的生态变化持续转化为可采集与分析的数据形态,使森林、河流、湿地与野生生物“开口说话”,还能帮助管理者在广袤、偏远、环境恶劣的区域中长期、稳定地获取生态数据
    华普微HOPERF 2026-01-13 15:58 165浏览
  • 坚 守2025年于风雨飘摇中逝去。多年来,我如老牛耕垦,在这片希望的田野上持续耕耘。尽管每年收成不一、亦因人而异,但“老骥伏枥,志在千里”的古训,始终激励着我前行。过去一年,职场中虽遇波澜,然心境渐趋平和。恰如苏轼《观潮》诗中所喻:庐山烟雨浙江潮,未至千般恨不消。到得还来别无事,庐山烟雨浙江潮。历事后方知,潮起潮落不过常态,唯有坚守本心、专注所为,方能穿透迷雾、踏实前行。一、专利布局与维护全年围绕核心技术及新产品,累计申报发明专利3项、实用新型专利1项,其中2项发明专利已进入实质审查阶段。系统
    广州铁金刚 2026-01-09 10:40 1309浏览
  • 文:候煜、陈昊编辑:cc孙聪颖多年前,中国入世谈判首席代表龙永图在接受《华尔街科技眼》创始人采访时曾抛出一个鲜明观点:家电行业是国内“最皮实”的行业。在入世初期各领域普遍需要政策保护,唯独家电行业未受特殊庇护,却走出了相对稳健的发展路径。无论是全球市场知名度,还是行业整体营收规模,家电行业长期保持着稳固态势。而且,相较于始终站在风口、聚焦聚光灯下的互联网行业,家电行业始终略显低调。“稳”意味着行业变数少,也意味着从业者可以有一定的路径依赖。曝光度低意味着相对较少的关注和解读,于职业经理人而言,反
    华尔街科技眼 2025-12-30 12:56 2262浏览
  •   今天,做清理,想把闲置有点毛病了的一个老收录机看看还能不能用?  拿起电源线,呵呵,这线早就变硬了,拿到插头,准备插到电源插座上,哈哈,不声不响,插头断掉啦!  拿到了工作台,准备行动,拆解、检查、判断可否修复?  这可是一台够老的机器啦!1985年7月3日买的一台三洋牌手提式立体声收录机,那时是很时兴时髦的产品,发票和说明书都在。  前后左右上下都看了看,   SANYO STEREO RADIO CASSETTE RECORDER MODEL NO. M9805F  SANYO ELE
    自做自受 2026-01-06 21:15 1511浏览
  •        面包板社区选品绝对优品!首先感谢面包板及工作人员在这之前策划了很多可以赚取E币的活动(发技术帖、分享项目经验、回答问题、参会、11-12月每天坚持签到领E币),每一个都几乎与了,所以获利不少,这次活动力度之大更是前所未有,买东西返现!!!再次感谢,比心!!!来看看我买了哪些好宝贝:                     
    甜椒的尾巴 2025-12-31 09:37 2516浏览
  • 文:郭楚妤编辑:cc孙聪颖在硬核的美国科技展上,看到软萌的国宝大熊猫,是不是有一种反差感?这次,长虹将这份独特的“AI科技+国宝熊猫文化”带到了美国拉斯维加斯的CES展上,通过熊猫主题AI家电,以及全品类AI产品,在全球舞台上讲述着属于“东方智慧”的故事。于是,在此次CES展会上,你可以看到AI科技被赋予了文化的温度和脉络。打开长虹AI TV,智能体伙伴“熊猫小白”上线,化身全天候全场景的陪伴者。打开电视里的“熊猫乐园”,能够实时看到熊猫啃竹子、玩耍的治愈画面,仿佛把四川的竹林生态带到了身边。长
    华尔街科技眼 2026-01-08 15:22 1176浏览
  • 2026年了,过去的一年工作和家庭事情都比较多,来面包板比较少。2026年事情好了很多,可以多来面包板分享自己的工作。 在新的一年里。工作方面,继续努力,自己的公司把业务都办理完成,能顺利营业就可以,主要也是为了自己工作方便。主业还是多参加比赛。具体的目标:(1)公司工商注册等都完成。(2)参加教学比赛2次。(3)完成论文3篇,一个项目论文,一个会议论文,这个是确定的,必须完成,自己在写一个论文。(4)参加一次技能比赛,视觉的比赛。 有时候运气也很重要,不是自己的也不去强求了
    curton 2026-01-05 09:59 77538浏览
  • ESP32S3小智开发板烧录指南ESP32S3小智开发板烧录核心需做好硬件接线、烧录模式操作与软件配置,步骤如下: 1. 硬件接线:用USB转TTL模块连接,3.3V接板载3.3V(严禁5V)、GND共地,模块TX接开发板RX(GPIO44)、RX接TX(GPIO43),确保接线无松动。 2. 进入烧录模式:按住板载BOOT键不松,快速按EN复位键,先松EN再松BOOT,此时开发板进入烧录模式。  3. 软件配置:IDF环境下先执行`idf.py set-
    丙丁先生 2026-01-10 12:33 69139浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦