由于作者水平有限,如有披漏欢迎指正。

测试流程:

1、前期开发准备(硬件)

2、开发环境准备(软件)

3、连接云

4、GPS测试

一、前期开发准备:

  1. nrf9160-DK版
  2. nRF Connect for Desktop(桌面版)
  3. NCS(官方最新开发SDK,笔者写这篇博客时更新到NCS1.9)
  4. 一张新的移动物联网卡(特别注意这一点,如果你使用电信的物联网卡无法联网,走不通,那么就换为移动的,笔者在测试时电信的没有成功,后采用移动物联网卡。还一点是要是激活的物联网卡,购买时让移动公司进行激活,因为设备会进行绑定,如果需要迁移到其余设备,需要去找移动客服进行解绑)。

特别注意:用官方DK开发板进行前期开发,nrf9160-DK版的版本不要太老,至少0.9版本以上。否则是连接不上的。如何查看版本:在DK板上有这样一张标签,如左图红色框柱的就是DK版版本为0.8.5,低于0.9的都不建议用。本次笔者选择的进行DK版为1.0.1版本。

二、开发环境准备

相关开发环境搭建在哔哩哔哩上、优酷有官方视频可以进行学习,直接搜索nordic半导体,但是对于连接云的官方教学视频比较老,有些地方存在变动。更加详细的也可以参看官方指导文档进行,下面是官方的文档连接:

Getting started with nRF9160 DK — nRF Connect SDK 1.9.99 documentation

2.1、nRF Connect安装——用于下载固件和调试

有了DK板后,先去官网下载nRF Connect for Desktop(桌面版),进行安装,下载链接如下:nRF Connect for Desktop - nordicsemi.com,(或者输入www.nordicsemi.com官网地址,在搜索选项中输入nRF Connect for Desktop进行跳转),下拉网页后选择Downloads,选择最新版然后点击.exe文件进行下载,下载后直接点击安装即可。(如下图)

安装好后,打开nrf connect桌面版,安装下图两个软件(由于我已经安装过,所以为Open选项)

2.2、IDE安装

在这用到两种开发环境,一是SES IDE、二是VS code,下面分开来讲解,值得注意的是在V2.0开始的NCS已经不在支持使用SES IDE,所以请优先选择VS code

2.2.1、SES IDE

在新版的NCS中已经放入了SES的可执行文件,不用单独去安装SES,我们直接就可以用,使用方式直接打开NCS在其目录下:v1.6.1\toolchain 有 SEGGER Embedded Studio.cmd直接就可以打开进行工程编辑

打开后即可选择工程进行开发了,那这如何选择我们工程,请看下图:

会打开如下界面,然后选择工程与板子(芯片);即可进行编译下载,或者进行开发了(在中文官方博客中也有相关刚更多的教程)

注:当然如果有需要使用的是SDK开发包,且要用到SES,可以接着看下面内容。否则请跳到2.2.3继续

在官方的中文博客中有关于SES IDE的讲解与安装,连接如下:Nordic nRF51/nRF52开发环境搭建 - iini - 博客园 (cnblogs.com),可以进行参考,直接下载链接为:https://www.segger.com/downloads/embedded-studio,在安装后需要进行激活(这是Segger公司为Nordic芯片量身打造的,对Nordic用户来说,永久免费,所以激活很有必要),步骤如下:

第一步:cmd命令窗口输入: Ipconfig /all 回车( ——>获取IP)获取你电脑的物理地址IP:

第二步:获取了这个IP后,浏览器打开:https://license.segger.com/Nordic.cgi,把其放在MAC中,填写相关内容,后获取注册码(会收到一封邮件)

第三步:打开ses IDE,选择tool

在选择License Manager

然后点击:

填入秘钥:

激活完毕,关闭重启即可使用了。

2.2.2、VS cold安装nrf开发插件

这个要注意版本,笔者使用的为1.66.1版本,或者在nordic官方网站上去下载,怎么下载和使用可以到哔哩哔哩或者优酷上搜索nordic半导体,有许多的官方关于VS code的讲解视频,可以去观看,下面进行简单操作讲解。

打开VS code然后直接搜索安装插件即可:

安装完成后重启,如果在平时开发过程在右下角弹出警告提示,一般不要管或者直接点击关闭,否则有些操作肯能导致NCS版本出错,如果你不知道如何修改回来,那就麻烦了。

1.3、下载NCS

可以直接参考这篇官方博客,进行下载

开发你的第一个nRF Connect SDK(NCS)/Zephyr应用程序 - iini - 博客园 (cnblogs.com)

截图如下:

还可以在VS code中进行下:但是可能超级慢(这种方式前面提到的VS code教学视频中也有讲解,不了解的可以去观看视频)

到此开发准备已经完毕。

三、连接云(nrf cloud)

3.1、modem固件下载

第一步先去官网上下载mfw_nrf9160的固件(这注意一下版本,固件版本和NCS版本是有对应的,官网下载固件处,点击向下的箭头直接查看适用于那个NCS版本),下载链接如下:

Compatible Downloads - nordicsemi.com

(或者在官网,搜索9160进入9160 DK,然后下拉网页同样找到如图界面进行下载)。

3.2、下载mfw_nrf9160固件到nrf9160

打开nrf connect 下的programmer软件,进行固件下载:

第一步链接开发板和PC端,然后打开programmer软件,链接开发板,然后擦除,在解压刚刚下载的nrf9160dk_fw_2022-02-17_ec486dab.zip其中有一个mfw_nrf9160_1.3.1.zip固件直接拖到文件添加区,然后点击write,进行烧写。

等待烧写完成:

这一步完成后我们就可以,打开SES或者VS code编译NCS中的官方程序进行程序下载。

因为nordic会不间断的更行nrf connect中的工具,有些时候更新后更改某些操作方式,如下是我更新版本后新的下载modem的方式,如果你发现和我的界面不一样了了,你可以多点击试试看,看能不能调出write:

3.3、APP编译下载

3.3.1、工程创建编译下载

利用SES或者VS code进行程序下载,打开VS code,按照如图所示操作,选择好先前下载NCS文件。

如下为选择的NCS和编译工具链,1为下载好的NCS目录,2为目录中的工具链目录toolchain,选择好有如图显示即可,笔者使用了NCS1.9,其余版本同样的选择。选择完毕不用其余操作。

然后建立镜像工程:流程如图,

在弹出的窗口中选择如下工程:asset_tracker_v2并创建工程。

建立后 有如图所示项目:

然后选择板子:

从而得到一个nrf9160的项目

打开该项目的prj.conf文件加入一个宏定义,然后保存编译下载,宏定义如下:

CONFIG_LTE_NETWORK_MODE_NBIOT_GPS=y

这里特别注意的是,如果有对配置文件(如prj.conf)进行更改,那么添加或者删除,并保存后要选择全编译,否则工程配置时不会覆盖的,如今进行修改了代码那么普通编译即可。

如图在buil后有一个更新图标,点击它既进行全编译。

3.3.2、下载出错

有是后在下载时会出现如下的下载报错,提示说west查错失败,要用west去复位擦除

这时请点击flash后面的双箭头进行下载,会进行复位擦除操作,也是在芯片有擦除保护时的解决办法。

3.4、nrf code证书获取

nordic云的证书获取,在浏览器输入一下网址:nRF Cloud,注册一个nordic的云,登录后第一个界面为下图所示,如果不是,请单击右上角的三条横杆选项,user account选项,进入

然后点击:provision devices

进入界面点击右上角设置图标

进入如下界面:输入IMEI码(要加上nrf-)和PIN码(DK板白色标签纸上可查看)

然后既可以得到一个证书文件:以.cert.json为后缀。

3.5、云证书上传

给9160提供访问云的CA证书,打开LTE Link,然后连接设备,插入SIM物联网卡,输入AT指令AT+CFUN=4点击发送让设备进入到离线模式,并用AT+CFUN?确认进入到离线模式(返回4)。

然后点开如下的界面加载证书,等待正式上传完毕,

确定上传完毕:

然后可以断电重启一下。

3.6、nrf9160设备上网

1、经过上面步骤后:你会发现LED3有规律的闪烁,闪烁一样看下图,也可以直接查看官方文档介绍(如果有APP更新,可能某些状态进行了改变,需要直接去看对应版本的文档),链接如下:

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/applications/asset_tracker_v2/doc/ui_module.html#led-indication

查看你的开发板LED3是否有双脉冲闪烁现象,如果有那就可以在nrfcloud 上添加设备了。

3.7、设备上网问题解决:

(关于AT指令集,请在官网进行下载,在9160目录下)

1.1、如果LED3没有双脉冲闪烁现象:那请注意输入下列语句,并确认返回正确:

AT+CFUN=4  进入离线模式

AT%XSYSTEMMODE=0,1,0,0  //选择NB网络

AT+CEREG=5   //打开调整解调器

AT+CFUN=1  //开始联网

1.2、如果还不行请查看你的网络连接状态:

AT+CGATT?

//确定是否连接运营商网络  0为没连接  1为连接,如果没连接需要和运营商确定SIM卡的网络状态。

1.3、其余情况可以根据报错,到 Nordic DevZone (nordicsemi.com) 进行搜索

3.8、nrf cloud云设备添加

打开nrf cloud点击加号进行设备添加

在点击LTE Device后进入带SIM卡号添加界面,如果你是在国内,那你不能使用和DK一起配套的SIM卡,因为该卡的网络在国内没有,只适合与欧洲或有相同网络覆盖的地区,因此也不需要添加激活官方的SIM卡,所以我们直接跳过,这一步已经在你购买移动物联网卡并且激活SIM卡时代替了。

在上报添加界面输入对应的IMEI和PIN号

点击添加设备会有一下界面,如果你的LED灯正确闪烁,那么你添加后等待一会会提示你添加设备成功。如果添加设备成功,但是没有设备显示,请从新刷新界面

这个过程中,如下报错,说明你的设备并没有连接到云,需要从新确定前面步骤是否有错。

添加成功并 找到设备可以找到如下界面

这时在LTE端也可以看到数据在上传:

3.9、数据显示

在完成以上步骤后,云端数据显示如下:在右上角配置按钮处可以配置你需要显示哪些界面,如果没有刷新出下面页面你可能要翻一下墙。

四、GPS测试

如果需要测试GPS定位,请去到室外进行测试。

nrf9160开机测试(做主控)——连接nrfcloud云的更多相关文章

  1. nrf9160做主控连接阿里云——(mqtt_simple例程)

    简介:基本每一个云都支持MQTT,这种轻量级协议在数据量不大的应用上是一个很好的选择.上一篇博客使用SLM例程去连接了阿里云,本次使用mqtt_simple去连接云进行测试,关于一些已近在前面文章中演 ...

  2. nrf9160 做modem—— 连接云(接入方式MQTT)

    今天测试把nrf9160作为modem的例程Serial LTE Modem程序(后面简称slm),何为做modem,通俗来说就是将nrf9160作为无线模块,主控由其余MCU做,主控通过AT命令控制 ...

  3. nrf9160做modem——测试连接阿里云

    简介:在前面有讲过如何使用nrf9160去连接一个云,然后进行发布订阅信息,但是当时连接的是一个免费的测试云,在国内的话许多人想要连接阿里云或者华为云,下面就来测试一下连接阿里云.这里为什么要和上一篇 ...

  4. jdbc连接阿里云服务器上的MySQL数据库 及 数据库IP限制

    问题1:Jdbc 如何连接阿里云服务器上的MySQL数据库? 解决: 上截图: 其中IP是阿里云服务器的公网IP地址. 问题2:   刚开始接手开发的时候,使用Navicat连接阿里云服务器上的数据后 ...

  5. 阿里云物联网平台: Android 连接阿里云物联网平台

    说明 这节是是为下一节做铺垫的 只要是按照我提供的学习路线一节一节的认认真真学过来的,这节就十分的简单 有了前两节的基础,这节呢咱让Android 连接阿里云物联网平台 使用这节的代码  https: ...

  6. 使用MQTTBox连接阿里云平台

    这篇只做一个简单的介绍,和上一篇没有根本的区别.只是就两个客户端的差异介绍一下. 一.需要参考的内容: 使用MQTT.fx连接阿里云平台: https://www.cnblogs.com/mhtc/p ...

  7. FineReport如何用JDBC连接阿里云ADS数据库

    在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...

  8. Windows Azure HandBook (10) 测试本地网络到微软云的延迟

    <Windows Azure Platform 系列文章目录> 之前遇到一些微软云的客户,在使用海外数据中心的时候,需要评估本地网络到微软云网络的延迟. 我们建议部署到微软云上的服务,离最 ...

  9. Navicat通过云主机内网连接阿里云RDS

    背景 公司为了安全起见,RDS设置只允许阿里云主机的内网端可以访问.这就意味,如果要操作RDS就需要连接到云主机上之后通过mysql shell操作.操作起来很复杂麻烦,今天看同事用Navicat f ...

随机推荐

  1. linux centos 系统盘文件系统损坏-已解决

    当我们使用的Linux虚拟机(云服务器/vps)磁盘出现xfs文件系统损坏时,该如何进行修复? xfs格式文件系统损坏,是运维常见的一个场景,经常发生在强制重启.异常关机.软件冲突.误删文件等事件后, ...

  2. 详解MySQL隔离级别

    一个事务具有ACID特性,也就是(Atomicity.Consistency.Isolation.Durability,即原子性.一致性.隔离性.持久性),本文主要讲解一下其中的Isolation,也 ...

  3. [CF1526D] Kill Anton(逆序对,搜索)

    题面 A N T O N \rm ANTON ANTON 的基因由 A , N , T , O \rm A,N,T,O A,N,T,O 四种碱基排列组成. A N T O N \rm ANTON AN ...

  4. [CF1386C] Joker (IOI 赛制,分治,整体二分+可回退并查集)

    题面 给一个 N N N 点 M M M 边的简单无向图,询问 Q Q Q 次,每次问你把编号在 [ l i , r i ] [l_i,r_i] [li​,ri​] 之间的边删掉后,该图是否存在奇数环 ...

  5. shellcode 注入执行技术学习

    shellcode 注入执行技术学习 注入执行方式 CreateThread CreateRemoteThread QueueUserAPC CreateThread是一种用于执行Shellcode的 ...

  6. python自学笔记10:while循环和for循环

    条件控制和循环控制是两种典型的流程控制方法,前面我们写了 if 条件控制,这节讲 for 循环和 while 循环. 循环是另一种控制流程的方式,一个循环体中的代码在程序中只需要编写一次,但可能会连续 ...

  7. openstack中Keystone组件简解

    一.Keystone服务概述 在Openstack框架中,keystone(Openstack Identity Service)的功能是负责验证身份.校验服务规则和发布服务令牌的,它实现了Opens ...

  8. 数据卷之Docker File

    DockerFile 是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本.后面再详细了解 DockerFile ! 1.我们在宿主机 /home 目录下新建一个 docker-tes ...

  9. KingbaseES ALTER TABLE 中 USING 子句的用法

    using子句用于在修改表字段类型的时候,进行显示的转换类型. 1.建表 create table t(id integer); 2.插入数据 insert into t select generat ...

  10. winform,隐藏窗体

    public Form1()        {            InitializeComponent();            this.WindowState = FormWindowSt ...