NB-IoT使用CoAP协议接入华为IoT平台教程


该文章为本人原创,首发在华为云社区

上一次我们讲了“华为IoT平台环境搭建”,只用了虚拟设备进行演示,今天我们用真实的NB-IoT模块来进行通信。

1、准备

要完成这次实验需要以下几个东西。

1.1、NB-IoT模组

目前NB-IoT厂商与模组主要有以下几个

公司模组名称使用芯片支持频段通讯协议
上海移远BC95-B5/8/20/28华为Hi2110B5/B8/B20/B28UDP/CoAP
BC26联发科MT2625B1/B2*/B3/B5/B8/B12*/B13*/B17*/B18*/B19*/B20/B25*/B26*/B28*/B66*TCP/CoAP/MQTT
BC28华为Hi2115B1/B3/B5/B8/B20/B28*UDP/TCP/CoAP/LWM2M/MQTT
BC35-G华为Hi2115B1/B3/B5/B8/B20/B28UDP/TCP/CoAP/LWM2M/MQTT
中移物联M5310华为Hi2110B8LWM2M
高新兴ME3612高通MDM9206B3/B5/B8CoAP、TCP/UDP、MQTT、OMA-LWM2M

我这次用的模组是BC35-G,支持移动、联通、电信三大运营商的NB卡,应该也是目前市面上占有率比较大的一款NB-IoT模组。
1

1.2、NB-IoT SIM卡

SIM 卡的作用是鉴权使用,NB设备接入核心网需要核心网认证,SIM 卡里存放认证的信息和密钥等。
简单来说就跟我们平常的手机卡的作用差不多,就是用来连接上网络,该SIM卡一般只用来连接网络,不打电话和收发短信。
目前市面上NB-IoT SIM卡主要有三大厂家的:中国电信、中国移动、中国联通。
(NB SIM卡去营业厅你可能买不到,因为运营商自己不卖,承包给第三方进行销售的,对该卡的充值方式也与普通SIM卡不一样,某宝上有售,一般买NB-IoT模块有送NB SIM卡,卡的充值与激活方式详情问卖家)

1.3、IoT平台

IoT平台目前主要有:华为物联网平台(OceanConnect),电信IoT平台(不面向个人开发者,电信购买的是华为的平台,所以电信IoT平台与华为物联网平台操作一样)、阿里云物联网平台、OenNET移动物联网平台、以及各个大小企业或个人搭建的平台。

如果还不了解华为物联网平台的可以点击这里看我上个帖子。
在这里插入图片描述

2、模块配置与IMEI号的获取

在上次创建完虚拟设备后,我们现在来创建真实设备
第一步:获取IMEI号(国际移动电话设备识别码)
IMEI号在NB-IoT模块上有写,或者通过扫描上面的二维码来获取IMEI号,或通过下方所说的AT指令进行获取
在这里插入图片描述

将模块通过串口连接上电脑,选择正确的端口号(不一定是10),波特率选择9600(IoT模块默认波特率为9600),勾选Send With Enter,如下图。(如果没有安装驱动得先安装驱动)
在这里插入图片描述

点击Open Port–>输入框里输入AT–>点击Send Command进行发送指令
在这里插入图片描述
在这里插入图片描述

返回OK,代表通讯正常。(如果没有反应,检查串口、波特率是否设置正确以及模块是否正常通电)
在这里插入图片描述

然后依次发送以下指令:

AT指令含义说明
AT+CIMI查询SIM卡上的IMEI号,该命令可以判断卡是否正常插上
AT+CGSN=1获取设备IMEI号,也就是我们在华为IoT平台上注册设备需要的号码
AT+CSQ获取网络信号强度,返回的第一个十进制数字最好在12~30之间
AT+CEREG?获取模块注网状态,开机后需查询到返回x,1 才能代表联网成功,才能进行后续的操作
AT+NCDP=ip配置服务器地址,其中ip地址在左右的对接信息中可以找到(位于左侧应用–>对接信息–>设备接入信息–> 49.4.85.232:5683 (CoAP),如下图所示),所以我们输入:AT+NCDP=49.4.85.232
AT+NMGS=length,data[,<seq_num>]发送数据指令,length表示后续数据(data)的长度(10进制表示data数据的字节长度),data表示需要发送的数据,例如AT+NMGS=3,AA11BB

在这里插入图片描述
在这里插入图片描述

3、设备注册

现在我们的模块已经配置完毕了,现在我们回到平台上把设备注册一下。
点击设备管理 --> 新建真实设备
在这里插入图片描述

选择对应的产品
在这里插入图片描述

然后输入设备名称,及我们获取到的IMEI号–>点击确定
在这里插入图片描述

PSK码是为加密设备使用的(如果使用的是加密端口就需要PSK码,如果以后用到可以把这设备删除,然后重新创建,重新获取PSK码,当然你也可以先保存下来)
在这里插入图片描述

然后我们就多了这个真实设备,目前是离线状态
在这里插入图片描述

通过查询官方的AT指令集了解到发送数据指令为:
AT+NMGS=length,data[,<seq_num>]
length表示后续数据(data)的长度(10进制表示data数据的字节长度),data表示需要发送的数据(16进制),例如:AT+NMGS=3,AA11BB
在这里插入图片描述

我们根据编解码插件里的数据结构来进行发送数据
发送:AT+NMGS=1,50
返回OK代表发送成功
在这里插入图片描述

此时设备变成在线,我们进入产品调试
在这里插入图片描述

接收到数据80(十进制)
在这里插入图片描述

我们尝试从云平台发送数据
在这里插入图片描述

同时串口助手也会收到十六进制的ASCII码
在这里插入图片描述

这样我们就完成了NB-IoT与华为物联网平台的连接

切记:NB-IoT采用低功耗模式,发送完数据大概20s后就会休眠,所以云端下发的数据是在下一次上传数据成功后,才会下发到设备。

———————————————————————————————————————————————
end

  • 8
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
NB-IoT现阶段访问一个服务器只能通过IP地址加端口的方式,省去了DNS解析,如果产品以后的IP变化或者改变了服务端的IP地址,就需要一个DNS解析的功能。 通过DNS解析某个域名的IP地址,获取到IP地址后再进行通信。 如果NB-IoT模块只能绑定一个IP,则可以通过这个IP先获取其他IP列表,然后统一经过这个IP进行转发。 参考: 1.1.2 NB卡准备 模组使用的SIM卡为中国电信物联网专用NB卡,如下图正面(留意NB字样,无此字样的均为不合法的NB卡): 背面(留意其ICCID号,在让运营商开放IP白名单时可能需要此号码,相当于手机卡的手机号): 重要:收到卡后,需要致电背面的客服电话, 使其将您自己的IP地址加入访问白名单,此一步完成后,方能进行下面的步骤,切记切记 。 如何判定服务器IP已被加入访问白名单,使用如下两种方式: 1. AT+NPING 指令,通过PING自己的服务器地址,如返回ERROR,则多半(尚需继续排除防火墙因素)未就绪; 2. UDP通讯,如能与自己的服务器直接连接UDP通讯,那可以证明一定就绪; 1.1.3 服务器准备  首先您需要有一个固定IP的公网服务器,由于目前BC95暂不支持域名解析,故必须使用IP地址配置方式。  服务器可以使用阿里云服务器,目前本CoAP端暂未开源,有Windows 32位、Windows 64位、Linux CentOS 6、CentOS 7的可执行文件,请暂时选择以上指定系统;  CoAP标准协议使用 UDP 5683 端口,当然您也可以自定义此端口,必须让防火墙放通UDP 的指定端口;  CoAP网关需要使用WEB方式进行设备管理、用户管理等,默认使用 TCP 8080 端口,同 理,防火墙必须放通此端口; 1.1.4 模组准备 推荐使用 串口调试助手 sscom 来调试NB模组,如下,首先将您的NB模组上电使其启动,使用AT指令能收到OK的回复,证明已启动完毕,按如下步骤进行: 基础配置 1. 配置 NCDP 服务器,使用的指令序列为 AT+CFUN=0 +NCDP=103.37.149.19,5683 AT+NRB 留意 IP 地址必须为您自己指定的IP地址,如果暂时没有,也可以用 如上 地址临时使用(但 WEB 设备管理地址也需换成这个IP),完成后重启了设备; 2. 等待设备附着网络后,使用 AT+NPING=103.37.149.19 尝试PING自己的服务器,当返回ERROR时,极有可能是 IP 白名单未成功配置的缘故; 3. 使用 AT+CGSN=1 查询设备 IMEI 号,并将设备的 IMEI 注册到 WEB 平台,如果在上面操作 过,可忽略。
NB-IoT的中文指令集,基于BC95 657 SP2版本翻译的。 —————————————————————— AT 命令 描述 实现的状态 3GPP Commands (27.007) AT+CGMI 查询制造商 ID B350+ AT+CGMM 查询模块型号 B350+ AT+CGMR 查询固件版本 B350+ AT+CGSN 查询模块序列号 B350+ AT+CEREG 查询网络注册状态 B350+ AT+CSCON 查询信号连接状态 B350+ AT+CLAC 列出可用命令 B350+ AT+CSQ 获取信号强度 B350+ AT+CGPADDR 显示 PDP 地址 B350+ AT+COPS 选择接入的网络 B350+ AT+CGATT PS 连接或分离 B350+ AT+CGACT 激活或停用 PDP 上下文 B657SP1+ AT+CIMI 查询国际移动设备身份码 B350+ AT+CGDCONT 定义一个 PDP 上下文 B350+ AT+CFUN 设置终端功能 B350+ AT+CMEE 报告移动终端错误 B600+ AT+CCLK 返回当前日期和时间 B656+ AT+CPSMS 省电模式设置 B657SP1+ AT+CEDRXS eDRX 设置 B657SP1+ AT+CEER 扩展错误报告 B657SP1+ AT+CEDRXRDP eDRX 阅读动态参数 B657SP1+ AT+CTZR 时区报告 B657SP1+ ETSI Commands(正在开发中) AT+CSMS 选择短消息服务 B657SP1+ AT+CNMA 模块消息提醒 B657SP1+ AT+CSCA 服务中心地址 B657SP1+ AT+CMGS 发送短消息 B657SP1+ AT+CMGC 发送短信命令 B657SP1+ AT+CSODCP 通过控制层发送原始数据 B657SP1+ AT+CRTDCP 通过控制层传送终端数据 B657SP1+ General Commands 通用命令 AT+NMGS 发送消息到 CDP 服务器 B350+ AT+NMGR 接收 CDP 服务器消息 B350+ AT+NNMI 接收消息标志 B350+ AT+NSMI 发送消息的标志 B350+ AT+NQMGR 查询接收到的消息量 B350+ AT+NQMGS 查询发送的消息量 B350+ AT+NMSTATUS 信息注册状态 B657SP1+ AT+NRB 模块重启 B350+ AT+NCDP 配置和查询 CDP 服务器设置 B350+ AT+NUESTATS 获取的操作统计 B350+ AT+NEARFCN 指定搜素频率 B350+ AT+NSOCR 创建 Socket B350+ AT+NSOST 发送数据 B350+ AT+NSOSTF 发送有标记数据 B656+ AT+NSORF 接收命令 B350+ AT+NSOCL 关闭 Socket B350+ +NSONMI 指示 Socket 消息到达(只响应) B350+ AT+NPING 测试 IP 网络连接到远程主机 B350+ AT+NBAND 设置频段 B600+ AT+NLOGLEVEL 设置日志级别 B600+ AT+NCONFIG 配置模块的功能 B650+ AT+NATSPEED 配置 UART 端口波特率 B656+ AT+NCCID 卡片识别 B657SP1+ AT+NFWUPD 通过 UART 更新固件 B657SP1+ AT+NRDCTRL 控制无线配置 B657SP1+ AT+NCHIPINFO 读取系统信息 B657SP1+ Temporary Commands 临时命令
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Micahㅤ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值