技术标签: mqtt如何判断设备离线 mqtt 串口 mqtt调试助手 mqtt调试工具 华为云平台 mqtt profile 文件 stm32连接阿里云mqtt
点击上方蓝色字体,关注我们
1
硬件基础
最近调测移柯L620 NB-IoT模组, 特申请调测L620开发板(L620_ EVB),其专门为评估和测试L620模块而设计的,用于帮助开发人员进行开发、调试、测试L620模块。下图及其标注显示了L620开发板的主要功能。
L620是一款封装小,性能稳定可靠,LCC封装的NB-IoT模块,支持3GPP R13/R14规范下涵盖的低频/中频/高频全频段运作。L620的尺寸仅为17.6*15.8*2.3mm,可以满足客户对小尺寸模块产品的需求,同时方便客户减小产品尺寸并优化产品成本;采用的LCC封装可通过标准的SMT设备实现模块的快速生产,使其特别适用于各种IoT产品和设备中。
其特性如下:
1
云端部署
第1步:登录中国移动OneNet官网,注册账号。
填写注册信息。
OneNET提供企业认证、个人认证两种认证方式,注册账号完成后,用户可以可以根据实际需要选择一种方式进行认证,不同的认证等级具有不同的资源使用权限。
第2步:进入开发者中心,基于MQTT协议,创建物联网产品,这里使用旧版的MQTT协议,在多协议接入中(为什么不使用最新的MQTT物联网套件服务?臣妾没调通啊!,后期追更)。
填写产品信息,从这里开始,请各位小伙伴仔细参照云端的开发文档,理解相关的配置属性,即使官网的文档可读性真的差劲。
添加产品成功。
第3步:创建产品下的设备,准备创建两个设备。
创建设备:Sub_Node,鉴权信息为:1234。
创建设备:Pub_Node,鉴权信息为:5678。
创建成功后为离线状态,可以查看其详细信息。
NB-IoT云端通信将会使用到的核心参数。
全部创建完成后,可以查看产品概况信息。
1
软件调测
使用OneNet平台提供的调测软件进行测试。
下载完成后,查看打开MQTT软件,软件具体说明如下:
要想理解深刻,请一定、一定要读开发文档,举个例子,服务器IP、端口是多少?开发文档中有明确说明。
订阅、发布测试
第1步:打开MQTT调测软件,分别创建:Sub_Node和Pub_Node两个模拟设备应用。
第2步:Sub_Node虚拟设备开启设备订阅Topic,Pub_Node虚拟设备开启设备发布Topic,实现Pub_Node虚拟设备发布Topic后,Sub_Node虚拟设备可以订阅接收到Topic。
此时可以在Sub_Node虚拟设备的收到的Topic中查看到Pub_Node虚拟设备发送的Topic数据。
由说明文档可知,可自定义创建Topic,Topic名字,只能由英文,下划线,反斜杠组成,最长1024个字符,同一产品下topic name不重复,每个产品最多100个Topic。
设备通过发送HTTP请求进行topic的创建操作;
平台收到请求后创建topic并返回结果。
请求及响应定义如下:
订阅过程解析如下: 说明文档中对订阅和取消订阅也进行了说明,具体如下所示。
设备发起订阅请求.(报文格式参考4.9);
平台收到请求后更新topic列表;
平台给设备回复SubAck. (报文格式参考4.10);
注:subscribe的request qos级别可以为0、1、2。
取消订阅过程解析如下:
设备发起取消订阅请求. (报文格式参考4.11);
平台收到请求后更新topic列表;
平台给设备回复UnSubAck. (报文格式参考4.12)。
OneNet平台指令接收调测
随便关闭其中一个MQTT虚拟设备,保留一个可以实现下述操作,这里我保留Sub_Node虚拟设备。
在OneNet更多操作中点击下发命令。
这里我下发字符串类型数据。
在虚拟设备中可以查看到下发的数据。
可以对下发的数据进行响应回复。
如何得到Tocpic的呢 ,请参考相关手册,这里不再赘述,有疑问的小伙伴可以下方留言交流。
OneNet平台上传数据点
上传数据点有7种数据类型和3种Qos级别,具体方式参见说明文档。
这里我使用第3种数据类型上传数据点,Qos级别默认为0,也就是设备发布Qos0消息(上报数据点),平台收到上报数据点后保存起来。数据流会自动创建sensor节点,并保存数值。
4
L620模组调测
订阅、发布测试
第1步:打开串口调试助手,查看模组的入网配置信息,指令如下:
AT+CEREG? //检查网络状态+CEREG: 0,2OKCT-Self Register: Have already registered!AT+CESQ //检查信号质量+CESQ: 34,0,255,255,26,58OKAT*MBAND? //查看频道*MBAND: 5OKAT+CIICR //启动与NB-IoT网络的无线连接OK+IP: 10.214.60.155
第2步:网络配置无误后,与OneNet平台建立MQTT连接,这里使用OneNet平台上的Sub_Node节点完成下述操作。
AT+EMQNEW="183.230.40.39","6002",12000,2000 //建立新的MQTT连接
+EMQNEW: 0OK
指令解析如下:
AT+EMQCON=0,4,"571461182",1000,0,0,"296803","1234" //发送MQTT连接包OK
指令解析如下:
建立连接成功后可以看到云端设备是在线状态。
第3步:建立Topic订阅,订阅Topic为”pub_topic“的消息,指令如下所示:
AT+EMQSUB=0,"pub_topic",1 //Topic订阅OK
指令解析如下:
第4步:建立Topic发布,发布Topic为”pub_topic“的消息(字符串、十六进制转换在线工具),指令如下所示:
AT+EMQPUB=0,"pub_topic",0,0,0,22,"68656c6c6f20776f726c64" //Topic发布,发送hello world的十六进制OK
指令解析如下:
数据点订阅、发布
之前使用MQTT工具上传数据点,云端会自动在相应的设备中建立该数据点,接下来使用OneNet平台数据流模板创建数据点,并简要讲解其的使用。
第1步:添加数据流模板。
基于数据流模板创建的数据点是公共的,此时可以看到设备Sub_Node和Pub_Node均有sensor_1122数据点。
第2步:订阅数据点,指令如下所示:
AT+EMQSUB=0,"/571461182/sensor",1 //数据点订阅OK
"/571461182/sensor"参数参照说明文档,具体如下所示:
第3步:若修改数据点数值原理以及操作和发布一致,指令如下所示:
AT+EMQPUB=0,"$dp",1,0,0,42,"0300127b2273656e736f725f31313232223a38387d" //发送数据点{
"sensor_1122":88}OK
Sub_Node设备下的sensor_1122数据点效果如下所示:
这条指令较为复杂,具体解析如下:
数据点的Topic为 ”$dp“,参照说明手册,具体如下:
长度为42,后面的数据为字符串类型,每一位都是一个字符长度,共42位:"0300127b2273656e736f725f31313232223a38387d"
"0300127b2273656e736f725f31313232223a38387d" 代表含义参照下表,我使用的是数据类型3上传数据点,03代表数据点类型为第3种;0012代表后面数据字符的长度,后面的数据都是十六进制共18个,转换为十六进制是12,低位数据足够装载,故0012(转换为十六进制由于AT+EMQPUB指令只可以发十六进制,参照该指令说明);7b2273656e736f725f31313232223a38387d是{"sensor_1122":88}字符串的十六进制。
移远BC20模组使用LwM2M协议接入华为IoT平台
移远BC95使用CoAP协议接入华为IoT平台
AI人脸识别身份认证系统(4)—人脸识别
文章浏览阅读3.4k次。这个应用程序是用iOS 15.5 SDK构建的。从2023年4月开始,所有提交到应用商店的iOS应用程序都必须使用iOS 16.1 SDK或更高版本构建,包括在Xcode 14.1或更高版本中。目前iOS 开发工具Xcode 版本号是13.4.1 ,系统无法升级,也会导致Xcode无法升级。1、苹果官方提示: 2023年4月开始,开发必须使用 Xcode 14.1 以上的版本,2、目前此电脑无法在升级, 2023年4月开始 ,此电脑就无法正常开发使用,应用程序商店连接操作错误。_sdk version issue. this app was built with the ios 15.5 sdk. all ios and ipa
文章浏览阅读335次。接单平台汇总程序员客栈码市开源众包智慧外包实现网猿急送人人开发网开发邦点鸭网快码网英选网外包大师我爱方案网智筹网自由智客接单注意事项:1、没有第三方担保的个人单子,尽量少接2、无需求文档、没有具体要求的不接3、没有预付的不做,尽量用442的分步步骤方式4、没有金刚钻,别揽瓷器活5、急单勿接6、任何不付定金的单子都是耍赖7、不计得失,不怕吃亏..._excel接单平台
文章浏览阅读1k次。烤CPU的时候,占用率满了,CPU频率的槽有一些还是空的…… 有没有能跑分的软件?好像有的【聊电Jing】你的CPU性能如何? 来跑个分测试看看吧! | Cinebench R15 & R20 使用教学_哔哩哔哩_bilibili 好像还是免费的Cinebench - Maxon Cinebench - Microsoft Store Apps 频率为什么就是超不过3Ghz? 多核,100度了? 可能频率最高只能这么高,再高可能就烧掉了…… 多核结果.................._cpu跑分教程
文章浏览阅读498次。这是一种方法,而不是算法,因为它包含具有不同运行时间的几种实现。该方法依赖于三种重要思想:残留网络,增广路径和割我们先简单介绍下Ford-Fulkerson方法的基本思想。首先需要了解的是Ford-Fulkerson是一种迭代的方法。开始时,对所有的u,v属于V,f(u,v)=0(这里f(u,v)代表u到v的边当前流量),即初始状态时流的值为0。在每次迭代中,可以通过寻找一个“增广路径”来增加_ford capacity 详解
文章浏览阅读1.9w次,点赞69次,收藏379次。当我们跑深度学习的代码时,有时会遇到上古的代码,环境比较老,是低版本的 CUDA,此时我们就需要多个 CUDA 版本,并能灵活切换。本文是在已有CUDA11.2的环境下安装CUDA9.2。Windows10下多版本CUDA的安装与切换保姆级教学。_cuda版本
文章浏览阅读5k次,点赞5次,收藏25次。一.什么是数组的逆置呢?int a[10]={1,2,3,4,5,6,7,8,9,10};将数组变为 a[10]={10,9,8,7,6,5,4,3,2,1};这就叫做数组的逆置。二.1.循环实现数组的逆置这个是我们在初学C语言时最容易的实现方法!a.通过for循环实现//通过循环完成对数组的逆置#include<stdio.h>#define size 10void Inversion(int[], int);int main(void){ i_数组逆置
文章浏览阅读4.1k次。如果是update,delete类误操作且已经commit,优先考虑使用flashback query进行恢复。select * from test1 as of timestamp to_timestamp('2018-01-13 16:59:29','YYYY-MM-DD hh24:mi:ss');如果是drop或truncate table,则不能使用闪回查询,需要使用备库进行整库..._数据库 oracle时间戳闪回
文章浏览阅读660次。在本地运行django1.python3.42.安装django,安装特定版本pip3 install django==2.03.测试安装python3import djangoprint(django.get_version())4.django使用创建一个新目录test_djangopython -m django --version_docker django print
文章浏览阅读2.6k次,点赞3次,收藏11次。Ros话题发布与订阅节点的编写(C++)_话题订阅频率和发布频率一样
文章浏览阅读509次。Qt Creator 安装 VLD2015-04-14 16:52:55你好L阅读数 2325更多分类专栏:qt版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/lin_jianbin/article/details/45044459一、环境说明1、VLD内存..._qtcreater vld
文章浏览阅读120次。软件集成开发环境(代码编辑、浏览、编译、调试)Emacs http://www.gnu.org/software/emacs/Source-Navigator 5.2b2 http://sourceforge.net/projects/sourcenavAnjuta http://anjuta.sourceforge...._linux上安装flawfinder
文章浏览阅读109次。SpringIoC DI AOPspring底层用的是ConcurrentHashMap解耦合:工厂模式:需要一个模板控制反转 IoC将原来有动作发起者(Main)控制创建对象的行为改成由中间的工厂来创建对象的行为的过程叫做IoC一个类与工厂之间如果Ioc以后,这个时候,动作发起者(Main)已经不能明确的知道自己获得到的对象,是不是自己想要的对象了,因为这个对象的创建的权利与交给我这个对象的权利全部转移到了工厂上了所用包:DOM4j解析XML文件lazy-init = _spring的beanfactory是hashmap吗