mob boss 转 g s 上报 mptt 服务器案例讲解本案例以依据八千厘米采集温湿度传感器数据为例,将温湿度传感器连接到设备后,进入设备的可视化编程界面。首先添加注入节点,可手动或定期的将消息注入流中,其中消息类型可自定义,执行周期也可根据需求设定。本案例设置每五秒执行一次。 接着添加猫 boss 请求节点,配置猫的 boss 指令节点知识标准猫的 boss 协议。以上参数按照传感器类型配置即可。 然后添加创口节点,配置二二四八五参数,以上参数按照传感器类型配置即可。 接着添加猫 boss 解析节点,解析并读取数据,这里选择对应的猫 boss 请求节点。现在我们添加一个调试节点来查看是否获取到传感器 数据。部署后打开调试窗口,可以看到传感器数据已经成功获取,但是目前数据并非我们想要上报得审,我们继续添加修改属性节点来处理获取到的原始数据。将解析值除以时得到最终值,同时给该值赋予一个关键字并命名为 humidity。 接着再添加一个修改属性节点做同样处理,将解析值除以时得到最终值,同时给该值赋予一个关键字并命名为 temperature。 然后添加合并结点,将两条消息序列合并为一条消息,选择手动模式,以配偶为值, topic 为关键 字,将消息合并为建制对对象,这里设置消息数量为两条消息,等待时间为五秒。这时我们再次连接调试节点,查看数据是否处理成功。在调试窗口可以看到数据已经处理成功。 接着添加函数计算节点,将数据 jason 格式化,这里可根据需求写入对应的 javascraft 代码。 然后我们再次连接调试节点,查看数据是否格式化成功,在调试窗口可以看到数据已经格式化成功。 最后添加 mptt 发布节点,配置 mptt 服务器信息并上报数据,填写服务器 ip 地址,极端口号, 然后填写用户名级密码,接着输入要订阅的主题即可。 至此, mon boss 转 j 怎上报 mqtt 服务器流程就已搭建完成。这里我们还可以再添加一个 mqtt 订阅节点,进行自发自收,验证消息是否上报成功。连接相同的服务器并订阅同一个 mqtt 主题。 接着连接调试节点,并不属流程,然后清空日志。在调试窗口可以看到数据已经成功上报并接收。
粉丝2183获赞2880

你有没有想过,点外卖的时候,外卖小哥的位置是怎么传到你的手机上的?快递柜又是如何打开的?你的手机是怎么操作家里的空调的呢?其实这些看似简单的场景背后啊, 都有一个关键技术在默默工作,那就是 m q t t。 朋友们,今天我们就来聊一聊 m q t t 协议的底层原理。 首先呢,咱们先看看它是什么? mqdd 协议是一种基于发布订阅模式的消息传输协议,专门为低贷、宽、高延迟、不稳定的网络环境和资源受限的设备设计,也就是互联网。所以呢, mqdd 协议就是互联网设备的专用协议。 然后我们再看 mqdd 协议是如何工作的。协议里面有三个角色,代理, brooker、 发布者 publisher、 订阅者, subscriber。 为了好理解,我们就用短视频平台来打个比方,平台就是一个 brooker, 我是 文斌,是一个发布视频的博主,我就是 publisher, 你在手机面前看视频,发现我做的视频还不错,然后点击关注,你就是订阅者,当我发布视频的时候,你就会收到平台的推送通知。而 mqdd 协议和这个架构简直一模一样。 我们以手机远程控制灯光开启为例,在这个场景中,手机 app 灯以及厂家的云服务器分别对应了发布者、订阅者以及服务器 pro 智能灯连上网后会主动连接服务器,同时订阅了一个专属 topic, 比如客厅主灯控制, 意思是我只接收这个标签的消息,你在 app 点开灯,手机会连接同一个服务器,发送指令开灯,并且指定掏贝壳为客厅主灯控制, 意思是这条指令是给这个标签的设备用的,服务器在收到手机的指令后,会核对哪台设备,订阅了这个掏贝壳,然后转发给了智能灯。智能灯收到指令之后啊,就开启了,这也就是你的手机如何控制 灯开启的整个的数据流的过程。但问题来了,网络会波动,消息可能会丢。 mqdd 协议是如何保证清晰指令不掉链子的呢? 相对于这个问题啊,它设计了三种不同的服务质量等级,也就是 qs, 你 可以理解成三种不同的消息类型。 qs 零最多一次,意思就是我不管你收没收到,我反正就发一次。所以这种等级质量的信息呢,它容易丢。 q s 零呢,比较适用于温湿度这类型的数据,每秒都上传,丢个一次两次的无所谓,下一条紧接着就来了。然后我们再看 q s 一, 至少一次,意思就是我必须要收到你的回应,我才会停止发送, 如果你不给我回复,我就一直给你发。所以它的特点呢,就是你肯定能收到,但是会重复。 qs 一 的使用场景呢?比方说我们刚刚提到的远程控制灯开启的这种场景,它重要吧,也没有特别的重要,你重复执行一次啊,也问题不大。 然后我们再看 qs 二,恰好一次。它的特点就是最严格的,它有四次的握手机制,像是签合同一样,确保消息 有且仅有一次的精准送达。 q s 二的使用场景呢,就是一些消息特别重要,但是不能重复执行的场景。比方说远程开关门锁,或者是一些支付的指令,这种操作必须万无一失, 绝不丢失,也绝不重复。简单来说呢, q s 零是说了不管, q s 一 呢是说到你听见为止。 q s 二是我们签协议,确认你消息收到了, 工程师呢,根据不同的业务类型灵活的进行选择即可。所以呢, mqtt 也不是什么高深的网络协议,它就是用订阅和发布这种信息传输方式,用 topic 实现了信息的精准分流,然后用 qs 为消息赋予了不同的靠谱等级。 正是这种简单、高效、灵活的特质,让 mqdd 协议成为了万物互联时代设备之间通信的首选协议。还想了解哪些通信知识?欢迎大家在评论区给我留言,我是文秘,我们下期再见!


互联网项目别再死磕 t c p 直连, m q t t 才是高效选型核心原因,一次性说透,先理清楚关键前提, m q t t 并不是脱离了 t c p 独立存在,而是基于 t c p 打造的互联网专用应用层协议, 它保留了 tcp 可靠的传输特性,又针对性的解决了互联网场景的核心需求,这也是它成为行业主流的关键。 tcp 直连的核心痛点,需要手动解决所有的底层问题,包括海量设备的并发连接、断线重连、 心跳包设计、数据粘包、设备离线通知等等。开发成本极高,仅实现基础的功能就需要上千的代码,后续稳定性的测试和维护更加是耗时耗力。设备端和服务器端高度的藕合,任何一端要修改都需要联动调整, 携带的效率非常的低。 m q t t 的 核心优势,开箱即用省开发,只需要部署成熟的 m q t t 服务器,比如 e m q s 就 能够自动处理并发连接、断线、重连、离线、消息队列等问,无需从零编码,完全解偶提效率。设 备和后台程序都是连接 m q t t 服务器,通过发布订阅的模式,通讯两端修改互不影响, 携带更加灵活。功能全面适配互联网支持三种 qos 计量等级,保障消息可靠的送达。主题的订阅机制,可以实现一对多、 薄对多的通信需求。另外的协议适配那些低功耗的设备,移除消息功能可以实现设备掉线自动通知稳定性。经实战验证,像 emqs 这类服务器已经经过了百万级别甚至一级的连接考验,当集群支持 最高一亿并发连接消息延迟低至毫秒级,远超自定义 t c p 代码的可信。关于 m q t t 的 小劣势, m q t t 需额外维护一层服务器架构,复杂度略有增加,但这笔成本与 与节省的开发时间获得的高稳定性相比,几乎可以忽略不计。互联网开发的核心是高效落地, m q t t 就 相当于成熟的工具,让你不用重复造人机,直接就站在巨人的肩膀上推进项目。

今天学习下 plc 协议转 mqtt, 老规矩,我们以三零 plc 为例子,没有 plc 的 可以创建虚拟 plc, 然后打开客户端连接到 plc, 成功读写数据。为了方便看到实际的效果,我们在虚拟 plc 里写入一个变化的数据, 转 m q t t 有 两种方式,分别是服务器和客户端,两种方式我们都演示下,先演示 m q t t 服务器,打开界面后就可以点击启动服务按钮,找到下面的数据转发此界面。 现在我们开始添加需要读取的点位数据信息,选择需要读取的设备对象,地址,数据名,选择数据类型,填写完成后确认返回。 实际上可以创建不止一个数据标签,也可以来自不同 plc, 这里的长度信息不填就是表示单个数据输入大于零,表示数组。我们再创建一个 float 类型的数据标签, 这有一个选项用来表示是否整合到一个 topic 发布,确认好后点击开始操作,点击开始按钮,后台开始读取数据, 这时候其他的 m q t t 客户端可以连接该服务器了,连接成功之后就可以订阅主题,主题就是刚才设置的 a, 我 们可以在主题词界面里看到更详细的一些信息,双击之后就可以看到数据的变化,订阅主题多的时候很方便。 以上就是转 m q t t 服务器的情况,接下来演示下客户端,因为 m q t t 客户端需要发布数据出去,也是要先有服务器,所以我们先启动一个服务器,再启动客户端,连接上服务器, 点击客户端的数据转发界面,开始添加标签信息,这里的操作和刚才演示的 m q t t 服务器转发是一样的,我们同样添加两个数据标签,方便观察。需要注意的是,上面的设备选择是必须要选的, 也就是说标签可以来自不同的 plc, 然后组合发布数据。添加完成后,就可以点击 start 开始采集并发布数据。发布的主题就是上面的 a 发布到远程服务器去了,所以我们回到刚才的服务器上面查看, 确实收到了数据,非常完美。数据格式是一个三数据,可以给第三方使用。谢谢观看,下次专门讲解 m q t t。

大家好,我叫范尼,前一节课程简短介绍了开雅客互联网平台,这这一节课来简单介绍一下基于 m 2 t t 协议怎么样连接设备进行交互, 然后现在所看到的是产品这一块的功能,然后我们点进去,然后再跳转到设备接入, 对吧?然后在消息协议这一块有相相关的认证说明,对吧?然后这一面是 kind id username, 然后 password, 然后下面是 m q t d 认证配置,然后是 这里是 secure id, 然后 secure t, 对 吧?然后配置好了之后可以带进去,然后去生成 u z n 跟 password, 对 吧?然后这一块的话是上下 行数据说明,对吧?然后我们今天所要看的是怎么样去调用功能,还有调用调用功能,然后然后这是调用功能回复,对吧? 然后在这个,然后我们再跳转到设备这这一块功能,对吧?然后点到这个 这个大江北阿段豹纹魔杵,对吧?然后点进去,然后在这一面的话你可以修针对于这一块设备,然后去修改它的 m q t d 认证配置, 就是 secret id, 然后 secret key 你 都可以进行修改,针对于这个设备, 然后我们到这个,比如说这个设备功能,对吧?然后它里面有常规模式跟窗口模式,对吧?然后我们现在用常规模式,用常规模式,然后我们现在利用一个工具来 来连接这个 m q t t 的 这个协议,对吧?然后这一块的话 ip 的 话,就是我这篇 这边线上环境,对吧?这个线上环境,然后然后这个端口就是就是你这个配置的网络组建的,这个端口是安五,对吧? 然后这个用户 id 就是 你这个设备标识, 然后订阅主题,对吧?然后你可以设置两个这上面工具,可以设置两个的订阅,然后会显示在这个这个文本框里面,然后我们来看一下,对吧?缩小一下, 然后可以输入一个指令,对吧?五五,对吧? 我们先连接,还没连接呢,然后这连接成功呢,我们再订阅,对吧? 然后这里开始执行,对吧?然后这里会返回一个 mash 去 id, 对 吧?把这个 i mash 去 id, 把它 d 换了, 你看然后他这里就返回了,这样的话就就操作成功了,对吧?然后今天的课程就到这里,然后谢谢大家。 好,嘿,好在针对于上上一个视频,然后进行补充,对吧?然后我们看到这个设备功能里面,然后它里面会有关闭,还有开启,对吧?这个都是我在物模型里面定义好的,就说功能,对吧?功能定义, 然后它里面有开开启和关闭功能,对吧?然后我们现在就是上上一个视频所 所操作的,就是针对于这个关闭,然后做的相关的调用设备,对吧?调用设备的功能,对吧? 然后我们再看一下,然后我们操作的话,他这个是不影响他的内存的,对吧?然后这个都一直都是没有进行关闭的,然后都一直没关闭,然后一直都是保持在 五十兆左右的内存,所以说性能上还是比较稳定的哦。

大家好,上一讲呢,我们已经把 a t。 指令的基本概念和程序框架进行了一个分析,有了这个框架之后呢,我们就可以在这个基础之上进行更多的功能模块的扩展。 我们的这个 e c 八百 m 它是具有很多这个功能模块的,其中呢就包含 t c p u d p m q t t h t p 还有这个呃文件传输,打电话、发短信等等这些功能模块。 那么我们在应用的时候呢,就根据我们具体的这个需求呢,在这个 a t。 指令的这个框架的基础上进行相应的扩展就可以了。所以呢我们的第十一点呢,就是在上一节的这个基础之上,进行 m q t t。 的 这个客户端的这个程序的实现。 好在讲解这个程序之前呢,我们先给大家补充一下这个 m q t t。 通讯的这个基本概念的东西,我们可以到咱们的这个配套资料包里面,呃,文档手册里面有一张图叫做 m q t t。 通讯。 好,这个就是我们的 m q t t。 通讯的一个基本的框架图,我们这里只对这个 m q t t。 通讯的一个基本概念和基本的流程进行一个简单的讲解。关于 m q t t。 通讯的更加深入的内容呢,大家可以到网上去查,有相应的资料, 我们可以看到这张图,这张图里面呢就包含了 m q t t。 通讯的两个角色,其中呢第一个叫做 m q t t。 代理服务器,这个代理服务器呢,它主要的作用是负责啊接收多个 m q t t。 客户端的连接,然后呢负责数据的这个转发的作用。 还有呢第二个就是 m q t t 客户端这个角色,这个客户端呢,它是可以有多个,对吧?多个的客户端呢,它首先需要连接连接上这个 m t t 服务器,然后接下来呢才能进行这个数据的发送和接收。 并且呢这个通讯呢,这个机制呢,它是基于呃发布和订阅的这个机制来实现数据的转发的作用的。其中呢它发布的这个消息,它是包含了消息的这个主题和消息的这个数据内容。 我们这里可以举个例子,是吧?比如说这边右边这个 m q t t 客户端,它负责发送数据,就是发布数据,它是作为当前,是作为发布者,它会把它发布的这个呃数据就包含主题和消息,把它发布到这个 m q t t 代理服务器上面去。 然后左边这边呢,它是作为 m q t 的 客户端,它是作为订阅者,它只作为数据的接收。首先它连上这个 m q t 服务器之后呢,它首先需要订阅,订阅这个呃消息, 他订阅了这个消息,他就包含了这个消息的主题,如果右边的这个客户端,他发送数据的时候呢, m q t 服务器,他会自动的把这个数据转发到右边的这个 m q t 的 这个客户端上面去。 但是呢他这个转发的规则呢?他是按照主题的这个方式进行转发的,这个是他的这个基本的规则。我们这里举个例子,比如说你这个右边这个客户端,你想发一二三四五六七八九十这数据, 然后呢你发数据的时候呢,你要把这个主题给带上,假设主题是呃一串字母叫 abc, 是 吧? abc, 然后这边这边这个后端他呃连上 a k 服务器之后他要订阅,他订阅一个主题叫做也叫做 abc, 接下来这边一发送之后,然后这个服务器呢,它会自动把这个主题是 abc 的 数据会转发到这边的这个后端上面去, 所以它这个基本的这个原理就是按照主题进行发布和订阅这个规则的转发的这个作用 好,我们可以看到下面这个,下面这个客户端,它既可以作为发布者,又可以作为订阅者,是吧? 你看它发数据发到服务器上面去,它也可以订阅这个其他的这个主题的数据,这个就是它这个基本的这个通讯的这个模式。我们这里给大家举个例子,大家就知道它这个具体是怎么通讯的了。 好,我们先打开咱们的配套资料包里面,这里有两个 m q t t 客户端的调试工具,其中第一个呢,我个人认为是比较好用的,但是呢它的缺点是没办法进行十六禁制格式的数据输入和发送, 因为我们后面的这个通讯协议呢,它是基于十六禁制格式的数据进行发送的,所以如果你安装这个呢,就没办法模拟这个十六禁制的数据进行发送了,对吧?然后第二个呢,我个人认为是不是很好用,但是呢它是支持十六禁制的数据格式输入的, 所以呢我这里两个工具都给安装上,然后我们再演示一下这两个工具具体是怎么操作的。好,我们再看到这张图,我们现在这张图呢,呃,左边这个和右边这两个侧端呢?现在我们用这两个工具来模拟它,首先我们打开这两个工具。 好,我们已经打开了,接下来呢我们用这个客户端模拟的是这张图里面左边的这个客户端,用这个客户端模拟的是呃右边的这个客户端,对吧?然后我再演示一下它的这个通讯流程是怎么样的。首先第一步我们需要把这两个客户端都连上这个 m p t 代理服务器, 那么这个 m k 代理服务器它的 ip 地址和端口号是多少呢?如果大家自己有的话,呃可以用你们自己的,如果没有的话,大家可以呃用这个公版的,我们可以打开这个双微机,上面这里呢有这个呃,给大家推荐了一个公版的这个服务器给大家去学习使用的。好,首先第一步 我们需要呃设置一下这个工具的连接的这个服务器的 ip 地址和端口号。然后呢这个呃用户名和密码,这里不用设置,因为我们的这个呃服务器呢,它是不需要这个用户名和密码的,设置完了之后呢就可以点击连接 好,现在是连接上来了,然后左边这个怎么连接呢?也是一样新建一个连接,这里取一个连接名,我们随便取一个 test, 下面这个就是我们的服务器的 id 地址和这个端口号以及用户名和密码,下面的这个用户名和密码就不用写,我们点连接好,接下来呢已经连接成功了。 好,接下来呢我们要呃进行一个数据传输,之前我们讲这个数据传输是按照主题和这个消息的这个机制来进行传输的,是吧?所以 啊,右边这个后端他要发送数据给左边这个后端呢,就有一个要求,就是他发送了这个数据,他的主题跟这边这后端订阅的主题是一致的,他才能进行一个数据传输,是吧?所以我这里举个例子,假设啊,右边的这后端他发送的数据主题叫做 pc 杠 dv, 发送数据内容是一二三四五六七八九零, 好,然后左边的这个后端呢,他需要订阅这个同样这个主题,对吧?我们新建一个订阅主题,就是我们的这个主题 好,确定订阅成功,然后我们右边这个客户端发送数据,好,这边已经收到,是吧?一二三四五六七八九零发送。 同样道理呢?如果你想左边的这个客户端发送的数据能够在这个右边的这个客户端里面去接收到的话,那么右边的这个客户端首先要订阅它的主题,我们再取一个,呃主题叫做 dv 杠 pc, 一 二三,对吧?然后点击订阅 好定义了之后,这边的这个端你要发送数据,数据的话,那么你要发送这个主题呢?就是也是这个才能他才能收到,对吧?所以我们这里发送数据的话,把这个主题缩进去, 你看这里可以以十六以这个字母串的形式发送,点一下这个发送好发送,你看这边已收到,是吧?再发送一次,好,第二条,然后如果你想以十六键字的格式发送呢?比如说你选择啊 text 十六键字,你发送这串东西,十六键字, 然后这边的话它是可以接收呃数据按照十六帧格式显示的,比如说十六帧格式显示。好,现在这边发送的这串十六帧呢,在这边呢已经收到了,是吧? 好,把 m q t t。 的 通讯原理讲完了之后呢,接下来呢我们直接看到咱们的第十六个历程, m q t t 客户端, 关于咱们的这个 e c 八百 m 的 m q t t 相关的 a t。 指令呢,我们可以看到它这里有个手册,叫做 m q t t 应用直达手册,我们可以带大家去浏览一下这手册,首先它这里有一张呃流程图, 比如说我们的发片机呢,首先第一步需要对这个一七八百元进行一个 m q t。 的 一些参数配置,然后呢第二步打开这个 m q t 的 这个服务器和端口号,然后接下来呢是连接这个服务器,然后这个是订阅相应的这个主题, 还有这边呢是发布数据,这边是接收数据完了之后呢,下面这里是断开连接,还有这个断开整个 m q t。 好, 我们可以看到第一个叫做配置指令, 比如说这里呃它这个配置内容呢就比较多,我们讲到重点来讲,比如说这个是 m k t 的 啊饱和时间,这个是绘画类型传输的超时值,还有这个是遗嘱,遗嘱消息 啊,这个是传输模式,关于这个 m v t 的 这个基本参数呢啊,大家可以去网上呃详细查一下,这里我就不讲解。然后它这里还有一些比较特殊的功能,比如说它可以呃配置连接咱们的这个阿里云的 iot 平台,还可以连接这个呃中移的 windows 这个平台,以及呢华为云的这个 iot 平台等等。 好,再往下第二个是打开咱们的这个 m q t, 这里有个参数,就是这个服务器的这个 ip 地址和端口号,对吧?然后下面这里是关闭链接,关闭客端啊,关闭客端,然后下面这个就是连接服务器, 连接服务器的时候,它这里有个参数叫做用户名和密码,还有这个是断开,呃,服务器断开服务器,以及这里是订阅主题,订阅主题这个是退出订阅,就是取消订阅主题,还有发布数据以及呢接收数据, 然后这边它还有个叫做 u r c 的 东西,你看这里如果它接收到数据的时候呢,它会有个 u r c 的 这个数据上报。好,我们可以直接看一下咱们的这个程序具体是。呃怎么实现的?可以看到这部分。 首先我们的这个程序呢,这里呢做了很多的这个配置,因为刚才我们可以看到它这个配置,这个指令嘛,它是有很多的这个参数配置,是吧?所以呢我们这里实现了一个是一个配置,是传输模式,我们可以看到它这有个叫做传输模式的东西, 这里是吧?这是传输模式。然后下面这里呢第二个这个数据模式,大家可以看一下这个活宝时间,保活时间,也就是咱们的这个, 这里是吧?还有我们的绘画,绘画类型,这实现了 n k t 的 每一种配置,用一个函数进行封装,然后最终呢封装成了一个函数,一个配置函数,在这里 这个配置函数呢就包含了配置什么内容呢?可以配置这个结构体里面所指示内容,比如说 u r c。 呃,这个是否包含这个强度信息,还有这个发送模式,接收格式,还有保护时间,还有这个绘画清除,还有遗嘱的这个信息等等。 所以呢我们用一个这个配置函数,把这个 app 的 常用的一些参数呢统一全部一次性给配置完了,对吧?然后第二个这个是打开, 打开我们给的是这个 ip 地址和端口号,还有关闭,还有连接,还有断开连接,还有发布消息订阅和取消订阅,对吧?大家都可以根据根据这个手册里面的指定,然后跳到这个函数具体是怎么实现的, 我们这个实现方法其实就是调用前一章前我们所讲的这个 a t 的 框架,是吧?发送命令,然后等待,然后解析数据,就这样的一个处理方法, 然后下面这里有个叫做定位相关的这个接口,关于定位的这个指令呢,我们可以看到这里有个叫做 g n s s 的 这个应用指导,也是同样的方法,大家可以啊进入这个文件里面去看它里面相关的这个指令,然后呢看我们的这个程序具体是怎么去实现的它这个指令的。好,我们再看一下咱们这里还有个叫做 m q c t 点 h 点 c 的 这个文件,这个文件呢是在咱们的这个 at 指令的这些基本的这个函数接口基础之上呢,进一步把这个客户端的相关的这个功能给进行分装了一次, 我们可以看到这里是怎么封装的。首先第一步这里呢定义了我们一些这个默认的 m q t 的 连接叉数,如果大家想改这叉数的话,可以直接改这个红就可以了,比如说这里是 m q t 的 这个服务器和端口号,对吧?然后密码和用户名和密码,还有活宝时间, 然后下面这里呢,我们用一个结构来表示它的连接叉数,比如说 ip 地址,端口号,是吧?用户名,还有刚才说的那些叉数,全部封装在这个结构里面, 然后再往下这里定义了一个这个消息接收回调的一个结构,这个结构就包含了你要接收的这个主题,还有这个质量等级,还有这个回调所要调用的函数,对吧? 再往下就是我们的这个 m p t 的 接口,首先 m p t 抽象,然后呢如果你要呃修改它这个连接呢,就设置下这个 m p t 的 连接参数,然后再连接这个 mvp 服务器,断开 mvp 服务器发布主题订阅和取消订阅主题,是吧?具体的这个呃接口的实现,大家可以跳到这个呃原文件去看一下具体代码实现方法。 好,我们可以看到咱们的这个主程序,我们的主程序首先第一步扣断数据库,然后等待网络的注网成功,然后设置咱们的这个呃 m q t t 的 连接参数,这个连接参数呢,我们用的是默认的这些预定义的这参数,然后再往下呢是连接到咱们的这个 m q t 的 服务器, 然后接下来这里呢,我们订阅了一二三四五,我们订阅了五个主题,是吧?订阅五个主题,其中这个主题怎么给呢?我们是通过这个 这个结构给的,这个结构在前面这里已经定好了,比如说第零到第四个这样的结构里面呢,都写明了,这个我要定义的是哪个主题,是吧?你看 p c 杠 d v 零到 d v 四,还有呢?我接收到这个数据之后,具体要调用什么函数呢?这里也列出了这个函数, 一共四个函数,五个函数,对吧?五个函数,然后再往下定时的去发送这个这串数据,发的是发到这个主题,对吧?首先把这个串口调试助手打开, 然后我们把这个程序载进去,打开串口调试,看一下打印信息, 好,现在连接上了,对吧?全部都是全部都是返回零,说明都是成功的。然后现在定时的是五秒钟发送一次这个计算数据,那我们怎么查看这个现象呢?我们可以还是用这个工具去订阅, 比方说它这里发送的是这个主题,对吧?这个主题,那么我们在这边呢就需要订阅这个主题,订阅好,你看现在是可以看到,我们可以通过这个自创来查看, 好,你看五秒钟我就收到了一次,它这里就收到这里的一次的数据的发送,然后我们再,然后我们再演示下它这个接收数据,我们同样用这个工具来演示,比如说我要发送,是吧?我发送的是第一个它订 阅,比如说我发送的是 pc d e v 零,对吧?然后我发送的是一二三四五六七八九零,然后这边我们看一下这个接收的情况,发送好,这就接收到了,是吧?再发送,再发送,都是可以正常接收到了。然后第二个呢? d e v e, 我 们再发送这个主题,看它是否能接收到 d e v e 好, 发送,你看也是接收到了,是吧?同样道理,比如说四 也是接收到,是吧?好,说明我们的这个呃 m q c t 后端这个程序呢?测试是没有问题的,能够正常地进行。呃消息的发送,还有呢消息的订阅和接收。

大家好,欢迎大家来到 c m t x 系列功能应用教学课程,本节课主要以 c m t 二幺零九 s 二触摸屏型号为例和大家进行讲解 m q t t 通讯功能应用。下面呢大家可以看到我们这张图,这张图呢我们来简单的介绍一下,什么是 m q t m q t 呢?它处于云端层,它主要就是解决数据上云的一个问题,那它呢是一个轻量化的通讯, 它主要呢有两个,一个是发布,一个是订阅,那发布呢,就利用我们的一个 c m t g 的 网关,通过它呢我们把一些现场采集的数据进行上传到一个云端服务器, 比如说阿里云服务器,百度云服务器,腾讯云服务器,上传到这些服务器以后,把数据呢放到这个服务器当中去,然后我们再通过 触摸屏端啊,或者说可以支持这个 m q t t 的 端进行订阅。那订阅的话呢,就是我们向这个云端里边的数据呢进行采集,采集之后并不是全部,比如说你想要的一些数据就可以采集,不想要的数据呢我们就不用采集,这样的话呢就可以减少我们的一个 流量的消耗,以及我们这个效能,而省我们的流量。 那么它们中间呢主要的一个功能就是订阅跟发布机制,然后呢它还有个类似于加密的机制跟保护, 就是我们有一些数据安全加密的一个保护系统,另外我们触摸屏端也可以作为服务器,也可以作为客户端。然后第五个的话呢,像我们支持的机型就是 mt 系列中的 i e 以及 c m t 的 全系列 都可以去支持 m q t t 的 通讯功能应用,这是我们 m q t t 的 一个简单的一个介绍。首先大家可以看到这是我们整个的一个程序,这是通过一个 vnc 进行去监控的啊,它有一个实体的触摸屏,大家在使用过程当中 m q t t 通讯一定要有实际的触摸屏啊,仿真的是不行的啊,仿真是通讯不上的啊。然后呢现在呢我们给大家看一下啊,我们通过一个内部的一个软件啊,作为一个客户端啊,作为一个客户端,然后进行去通讯,现在连接状态是连接上的, 然后现在呢我们在这个触摸屏端,我们给他写一个一百的数值,然后再给他写一个中文名称, 然后我们再把按钮出发好,然后再回到我们的软件当中去, 大家可以看到我们现在呢下面发布的这个软件当中已经有了 l w 两百的一百,然后微软通上个中文制服 我们的开关按钮,大家可以看到我们已经发布过来了。好,这个软件发布到上面去之后呢,同样的我们还可以订阅,那订阅的话呢,我们需要在这个客户端上面去进行去 一个发布,比如说我们回到这个发布端,发布端之后呢,我们比如说我们在这个地址里边,我们给他写个数值,比如写个两百,然后这边呢我们再给他写一个字母文通,然后这边的话我们可以给他改,先不改,然后点击发布。 发布之后大家可以看到这里边已经有数值,当前是两百,包括制服是 w l t 啊, w l t 那 指示灯现在是熄灭的,由于它是 fast 熄灭的,那我们可以通过,如果说大家觉得嫌麻烦的话,你可以通过这里啊,通过这里的一个 chess 进行去复制, 然后复制复制到这里边来了之后呢,然后再进行去,然后再大家仔细看, 按下去,好,他的指示灯是不就点亮了,等于说从我们客户端向触摸屏端的服务器进行去发布,然后触摸屏来订阅, 然后上面这个呢是我们触摸屏端来进行去发布,然后客户端来进行去订阅,那它的双向都是可以的啊,都是没有问题的, 这个就是我们今天所要讲到的程序,下面呢我们来大家一一的一的给拿进去讲解啊,怎么去做?首先第一步呢,我们要在软件当中啊,找到这个 iot 的 能源管理,然后最左边这边有一个 mqtt, 打开之后的话呢,我们这边要启动它,正常是没有启动的,把它启动它之后,你点击设置,设置之后打开它的云端服务器,这边是通用, 正常就选择通用,然后通讯协议的话呢,你就选择这个三点一就可以了啊,默认也就可以了,如果说你的版本过高的话,你就根据你的版本去调节就可以了。然后 ip 这里边的话呢,你要注意,如果说你设置的是默认的幺二七点零点零点一,就代表触摸屏端作为一个服务器 啊,如果说你使用网易名称也可以,就根据你的网易名称来使用就行了啊。如果说你想作为一个客户端,那你这边就需要填写你的冲屏 ip 地址 端口号这边呢默认是幺八八三啊,也就默认就好了,如果是多台的话,你就往后去延伸就行了。然后这边还有一个 id, 这个 id 就是 要识别你的一个,相当于是个标识符吧,这个 id 的 话呢,它有两个 有不同的一个,比如说你百分之零,就代表你这里边一定要跟你的客户端或者说服务器去对应你的触摸屏的名称, 如果是百分之二就随机码,这随机的这个你没有说去对应关系,还有两个百分号,就是制服加百分号,那这边我就采用的是百分之二就是随机码,随机码的话呢,它会比较是 不会说名称固定,都是只要是随机的,那就可以了啊,也是可以不一样的。然后测试时间,时间轴这些都不用管啊,其他默认就勾选就行了。然后回到地址这边呢,有一个状态地址这边需要大家去设置一下,这边呢我们给他一个内部地址, 内部地址当中呢,我们给他一个 l w 一 百,然后里边的话如果说他反馈一个一就代表是断线了,就没有连接上,如果是二代表是已连接,就是连接上了,然后还可以去监控他的一个错误啊,是否是错误,这里边大家在通讯的时候建议使用这个状态地址判断你是否是正常连接的。 还有这个 t l s 和系统主题这边都不需要任何的设置啊,默认就好了,然后选择确定,选择确定完之后呢,下面就会有一个主题发布跟主题订阅。主题发布的话呢,就是我们要双击打开,如果没有的话你就点新增就可以了,那比如点新增自己去创建一个, 如果说我这边创建好了,给大家打开看一下,比如说他的别名这边呢,你就是自己去随便去设置一个啊,这个没有要求 主题的话呢,跟刚才差不多,如果说你是百分之零,就是用触摸屏的名称,那这里边呢我可以自定义啊,不一定我非要用它的下面四个,我也可以自定义,比如说我就用 abc 啊,方便识别,然后下面的数字变化,有发送啊,有发送,然后还可以用周期周期式, 周期式的话就是间隔一秒钟进行发布,然后这边的话数字变化的意思就是说当我发布这个端如果说数字有变化的时候呢,他就给我发送一次,给客户端发送一次。你周期性的话呢,就是你不管有没有变化,就是隔一秒钟发布一次,隔一秒钟发布一次啊,根据你的现场的识别, 然后下面这些都不用管,什么压缩啊,百分之啊,这边就默认就好了,也不用管的。然后地址这块呢也是非常重要的,就是你要发布的话呢,那你肯定要有一个发布写入的地址,这个既可以采集到你的外部的 p、 l、 c 的 设备,或者说你充屏内部的设备都可以的。 那这边呢我们就用了一个十六位的无符号数,还有一个字串,还有一个位啊,作为一个发布,三个不同的数据类型进行发布, 安全这里边呢一般就没有什么了,不需要设置,然后点击确定就可以了。然后还有一个是主题订阅,主题订阅的话呢,我们这边是需要用到另外一个名称,那这个名称一定要跟主题发布的名称不能一样, 包括别名,包括主题不能一样。然后这边呢我改成一个 bca 啊, bca, 然后下面都不变啊,都是默认勾选上就可以了。地址的话呢,这边也是一样的,你发布的话呢,你是需要由 地址进行去写入的,但是你的订阅你要有地址进行取的啊,你这个地址要有取,比如说我同样的还是一样用到了一个十六位的无符号数和一个字串,再加上一个位啊,就可以了,安全,这边也不用设置点击确定, 然后这个时候呢在触摸屏端 m q t t 的 通讯应用,这样就可以设置完成了,就没有任何设置。然后呢我们打开一个软件,这个软件是我们从网站上下的,大家也可以在网站上去搜索到一个 m q t t 的 一个 客户端的一个调试的一个软件啊,在线调试软件。然后这边的话呢我们需要怎么去设置呢?那这边的话呢,你是需要在这个设置里边要打开的,那打开之后呢,这边名称这个是你可以默认的啊,这个默认就好了。然后这边的话呢,你一定要选择 m q t t 的 这个, 这个服务器相当是 b i o 的 这个内容啊,选择它,那选择它以后呢,那这边的 ip 地址是填写你电脑的啊,因为你是通过电脑端来通过这个软件来进行仿真的,那这个位置要填到你电脑当前的 ip 地址啊,不是你触摸屏,是你电脑的 ip, 然后这个端口号幺八八三,要跟你触摸屏创建的端口号是一样的,然后这个随机码,你就点击这里边随机就行了啊,随机码,这不需要一样 啊,下面这些都默认就好了,比如三十、六十啊,这些啊,这些都不用改的啊,这名称都不用改。如果说你是有一些用户名加密的,你就在这边加密,如果没有就不需要了啊,然后这边点击就点击一个 ok 保存就行了。那保存完之后呢,我们要判断出它有没有连接上的选择,这个 好看完之后呢,他这边就会出现一个绿色的这个指示灯,就锁解开了,代表就是连接上了啊,如果说没有连接的话,就会出现一个红色的一个指示灯啊,说要注意, 那连接上以后的话呢,那我们一定要通过实体的触摸屏,你仿真是不行的,你在线仿真也不行,那我们这里就用一个 vnc 进行磁体的在线去监控 好,然后呢这边在线监控呢,我们就可以看得到它的连接状态呢,是已连击,代表已经连接上了,那连接上了以后呢,我们就可以进行发布了啊,比如说我们在这个位置我们也可以搜索啊,比如说我们不知道它的名称的话呢,我们可以从这里进行搜索, 这下面是搜索,搜索之后呢,我们要进行让它变化,比如说从一百变为五十,然后再看它就会下面搜索到了一个 abc, 就是 我们刚才创建的发布,那双击点它就会上面,上面我们就可以对它来进行监控,那此时我再对它变化,比如说八百, 那他这里边就会创建收到一个信息,信息这边就会有啊,他发布的格式啊,八百,然后维能通这个地址以及结束的一个发布时间啊,都会有显示的, 这个就是发布嘛,然后我们订阅的话要需要另外一个设置,这个是发布的,我们来订阅。订阅的话呢,我们这里边要需要相关的设置呢,是需要在这里,在这里的话呢正常是没有这个格式的, 正常是没有这个格式的,那你必须呢啊,你要在这里面直接复制从这里边的格式,把它全部都复制过来 啊,复制到这里边,复制到这里边以后呢,要改一下它的地址,比如说我们的地址是一个三百的地址,这是一个六百的地址 啊,这个是二十的地址。好,那么写完这个地址以后呢,我们要确认一下它的地址是否是一样的,我们从 m q t t 客户端,然后这边是有一个主题订阅 三百六百二十,对吧?好,没有问题,那回到这里三百六百二十二十之后呢?然后我们在这里选完之后,我们首先我们要主题吗?那主题对应的是 bca 吗?对吧?那我们就需要在这个冲屏端这边呢,我们选上一个 bca, 输入一个 b c a b c a。 之后呢,然后我们现在改数值,比如说这里边呢改成一个四百,那这边呢,我们给他改一个数值啊,改成一个 w l, 或者说,呃,或者说改成一个 abc 吧,直接写进去啊,然后点击这个发布 啊,发布之后大家可以看到现在的数值已经四百,然后 abc 指示灯没有点亮呢,是你没有显示,你可以显示 clear, 再点击发布好它的指示灯现在就点亮了,大家可以看到 已经点亮了,说明我们这边呢发布跟订阅就已经演示完成了,那我们这边点击它的按钮,同样的也可以啊,比如说我们在触摸屏外部,比如说给它点击这个按钮,大家可以看一下 它是不是有立刻就有一个信息啊?就有一个信息来进行发进来啊,收进来。那这个呢,就是我们关于 m q t t 的 通讯功能应用教学,那么这节课呢,我们就讲到这里,谢谢大家。

上一个视频手把手跟大家讲了一下我们的串口跟串口服务器,再把数据同步到我们系统是怎么做的?那今天我也搞了一个新的设备回来,做了一个两种的模式去做我们的数据采集同步,看一下我们系统上面这是我们监控的大屏啊, 这里呢有我们的两种的数据采集模式,一个是 tcp 服务器,一个是 m q t t 服务器啊,那 我们这两种都支持去总部的,我们 t c p 服务器,我们会提供一个啊 ip 地址和一个端口,那外面的我们的串口连到串口服务器上面去呢?串口就发送这个 t c p 请求到这个地址就可以了,我们看一下 这个就是我们 t c p 客户端的模拟器,那我们在这里呢,我们设定这个 ip 地址啊,在这里比如说我们发送的五十七就是我们的检测项目 id 逗号六点六六就是我们的检测值,那我点发送啊,我们看着这边大屏点发送,这里大屏呢它就马上会去变了啊,那我们再改一个数据, 八点八八可以看到大家这个就是我们 t c p 服务器的一个工作模式采集的模式。 接下来我们看看 m q t t 这种模式,那关于 m q t t 什么的话,我就在这里不详细说明它,那我们这里有设定 m q t t 的 消息服务器的地址,还有端口,那还有我们这个订阅的主题,比如说我们 item 杠 id 杠五十七就是五十七这个检测项目的,那我们再来到我们这边 连接上我们的消息服务器,那我们就发送这个是这是主题啊,啊,我们这个呢用这个前缀五十七就是我们这个剪辑项目的 id。 那 我们发送一个七点四五六过去看下效果, 大家可以看到这个是马上可以反馈的啊,我们再出一个八点九九 这两种通讯协议呢,在我们的串口服务器上面基本上都是支持的,这样的话就可以覆盖了我们百分之百的串口的数据采集的功能了。

根据鼠标位置打开所需代码, 打开浏览器,登录 one nate 平台,根据视频添加产品开发,添加设备管理, 点开设备详情,需要记住密钥与 id, 打开时间戳工具,选一个时间,记住时间戳, 根据鼠标指引打开应用 粘贴时间戳,生成密钥。 下载代码进终端和协调器 传感器上的效果,串口接收的效果。 one night 平台接收的效果。

好,咱们接着进入第十三点通讯协议的分析,咱们的这个开发版呢,它是支持 rs 四八五,蓝牙串口还有 can, 还有四 g m q c t 的 通讯方式。所以呢我们这里呢定制了三套通讯协议的这个文档,我们可以看到咱们的这个配套资料包里面 有三个通讯协议的文档。首先第一个呢是 rs 四八五和蓝牙的通讯,我们将四八五和蓝牙的这个通讯呢呃统一成了一个通讯协议。然后呢第二个是 ken 的 通讯协议。第三个呢是四 g 的 通讯协议。 首先我们可以先看到四八五和蓝牙的这个通讯协议的这个文档。首先第一点讲解的是这个通讯规则,首先我们使用的是串口的这个通讯方式,规定了它这个波特率和起始位,数据位停止位。 还有第二点呢,我们规定了这个通讯方式必须是由主站呃发起这个数据传输重站进行响应的这个模式。我们的这个插板呢,它是作为重站上位机,或者是你要对接自己的这个呃其他的这个板子的话,它是作为主站。 然后呢我们的这个数据呢,需要对呃这一帧数据进行一些呃功能码,还有这个标志位还有校验码进行一个呃属性的校验。 然后下面一点呢,是我们规定了每一针的这个传输呢,他必须要有一个五十毫秒以上的这个间隔,否则呢他会认为是同一针,对吧? 下面一点呢表示的是数据传输的这个字节的先后顺序,比如说我们的这个数据零 x 一 一二二三三四四这个十六进四,他的传输顺序呢,是先传低字节再到高字节的,比如说这里呢,他先传的是四四三三二二一, 他是按照这个顺序来传输的,是吧?所以在主机那边再收到这个四个字节的时候,就应该知道如何去解析这个数值了,对吧?然后下面点呢,是我们规定的是浮点数,这个浮点数的这个编码方式就是我们司仪员通常用的这个啊编码方式,这里可以大家去了解一下这个标准。 然后第二点呢,是我们的这个通讯的这个帧的结构,这个帧呢主要包含以下那么几个字段,首先是从像地址一个字节,然后是帧标志,接着是一个数据的缩影,然后是数据的内容,最后是一个核消验的这个编码。 比如说第一个,这个穹像地址呢,我们规定了这个,呃是占用一个字节,这个版式是可以自行去配置的,其中呢我们规定了零为广播地址。然后第二个呢是真标示,真标示,我们规定了他的三个操作,第一个是写,第二是读,第三个是响应。 虽然我们可以通过这个帧标志可以判断你接收到这帧数据呢,它到底是写数据还是读数据还是响应的数据,对吧?好。然后下面一个字段呢,是表示数据所引,这个数据所引呢,它是表示接下来这帧数据,它是要访问的是具体是哪一个数据,对吧? 然后再往下呢,是数据的内容,这个数据内容是根据这个数据所引不同,然后数据内容就对应的是不同了,对吧?它是一一对应的。 下面这个是核校验,这个核校验它的范围呢是从从占地址开始,一直校验到这个数据内容。它这个校验方法就是把这些数值啊,把这些数据全部加起来求和,然后保留第字节,放到最后一个字节就可以了,对吧? 然后下面第三点呢,给出了一个数据的缩影表,比如说啊,第一个数据缩影值是零,零的时候,也就是我们这个帧格式里面 这个字断数据锁影,是吧?表示重启,还有呢,如果是一的话,就是默示管的开关控制,这把线呢是设备信息 a f e 的 保护参数, a f e 的 扩展参数,还有实时数据,还有这个开路电压 s o c 表, 然后这里呢,这个真标志是表示的是你这个数据锁影,它所支持的这个真标志,也就是这个字断,是吧?我们举个例子,比如说这个默示管的控制,它是支持的是 w, 也就是它可以进行写操作, a 呢是响应,也可以进行一个响应,他是不支持这个读操作,对吧?同理呢,这个实时数据他支持的是读数据,还有响应数据,不支持写数据,对吧?好,这个就是我们,呃基本的这个数据帧格式和相应的这个数据缩影,然后再往下呢,呃,就是 描述的是不同的这个数据所引他具体的这个数据内容,他的这个格式是怎么样的?我们可以带大家去看一个,比如说重启,是吧?重启这个怎么看呢?比如说这里标志和所引标志是零,那么也就说在这个帧里面呢,这个帧标志是零,说明他是写操作,是吧? 因为我们这个是写操作,所以这个肯定是零的,然后所引呢是零零,也就是对应的是这个数据所引,也就是重启对应的是零零,对吧? 然后数据内容,也就是数据内容,这里对应的是一个字节的长度,然后它的类型是 u 八类型,然后这里的值呢?表示空前重启,还是立即重启,对吧? 发完了这个写操作呢?呃,这个板子它需要响应,响应的话,那么它响应的这个结构呢?它的标志是二,二是什么意思呢?二是响应的意思,是吧?然后呢 零零这个也是一样的,同样的投影,然后响应的内容呢?也就是响应的是这个数据内容是什么东西呢?是啊,操作结果也是一个字节啊,数据类型是 u 八响应失败还是成功好?再往下这里呢都是类似的这个分析方法。然后比如说我们再看一个, 比如说我这里写 a、 f、 e 的 保护参数,那么接下来呢,这里有一到九九个字段,是吧?每个字段呢?这里呃给出了这个字节长度, 然后这个字段它到底这个数值表示什么内容呢?这里也有这个注值,是吧?比如说我这个字段放电短路延时,那么零是表示七十微秒的,这个值就参数二表示两百微秒,这参数是吧?好,大家就按照这个方法去阅读这个文档手册,应该是没有什么大问题。 好,完了之后,我们再接着看一下这个 m q t t 的 这个同协议。 首先第一个是通讯规则,同样我们也是采用这个二进字的数据格式传输,然后呢第二点呢,也是一样,要对这个数据进行一个呃校验,然后第三点呢也是一样,这个数据的传输格式呢,也是先传低字节,再传高字节,对吧?然后也是支持这个浮点数, 然后下面这里有一张图,这个就是我们之前所讲的 m q t t 的 这个通讯架构。下面这里呢是我们的板子,很多的这个呃插板都可以同时连到这个 m q t 服务器,对吧? 然后我们的这个应用服务器可以是我们的这个上位机,也可以是我们的自己去开发一套这个云服务器,也是可以的,或者说用这个手机 app 都可以,也是通过这个 m q t 的 这个方式去连接这个服务器。 然后他们的这个数据通讯呢?之前我讲过 npt 的 这个传输的这个原理,是吧?他们是基于主题的这个方式,呃发布和订阅这个机制来进行通讯的,所以我们这里规定了我们的开发版所需要订阅的这个主题呢,有两个。第一个是广播请求它的这个主题固定是这串东西, 这个有什么用呢?比如说我们这个在这里呢接了很多了这个开板,是吧?全部都是连接到这个服务器上面去,然后呢这个应用服务器他发布这个主题就是表示广播,是吧?然后下面这里的所有设备呢,他都会接收到对应的这个信息,是吧? 比如说我应用服务器想重启所有开板,那么你就发一条重启的指令,是吧?然后下面的所有的设备都会重启, 然后第二个设备还要呃订阅这个设备请求这条呃主题,这个主要是干嘛呢?比如说我这个服务器想获取设备信息,那么服务器他会发布一条呃获取这个设备信息的指令,是吧?那么他发布了这条数据的这个主题呢,他就是必须是 这串东西,其中呢这里是 id 号,是表示呃你这个板子的唯一号,也就说呢,我可以针对指定的他板去发送一条请求指令的 好,然后下面第二点呢,就是设备的发布主题,其中第一个是响应,比如说我上面这个服务器它发了这条请求的这条指令,是吧?设备接收到了之后呢,它是通过这个主题进行一个响应的,同样呢它也会把它自己的这个 id 号给给带上。 好,下面一个是设备上报这个主题,我们的这个开版呃 nq 通讯的时候,它会主动定时的去上报设备的信息,上报数据的这个主题呢,也是规定好了,其中它也是要带上它的这个 id 号的 好。然后下面呢这个帧格式跟我们的这个四八五其实是差不多了,是吧?首先第一个是帧调式,然后数据投影,还有数据长度,还有数据内容,这里呢没有这个校验,因为我们的这个 m p v t 呢,它底层呢,这里已经有相应的校验了,一般都是非常可靠的,所以呢我们这里把这个校验给去掉了, 然后这边的这针标志跟刚才那个差不多,其中呢多了一个叫做啊上报的这个针标志,也就说呢,我们的这个呃服务器可以主动的去发送一条毒指令,然后呢设备会响应一条指令,除了这个方法之外呢,我们这个设备也会主动的去上报这个数据给这个服务器的。 好,下面这里呢都是一样的道理,是吧?然后这个四 g 通讯所具备的数据锁影呢,也是跟之前的这个四八五差不多。 好,大家可以去稍微去看一下,然后这里会指明这个数据它的这个发送方式,谁接收方是谁啊?所所属的主题,也就说你这条指令呢,它可以广播,也可以直接给指定的这个设备进行发送,对吧? 那么我们这里是重启啊,默示控制,还有这个设备信息这三条指令呢,它是支持广播的这个操作的,其他呢只能支持对单一的设备进行一个请求操作,对吧? 然后接下来这里的每一条数据首页的描述呢,跟我们四八五的这个协议呢,是基本上是一致的。好,下一个是我们的这个 can 通讯的协议。 好,我们先看一下通讯规则,首先第一点规定这个 ken 的 这个数据帧呢,是用的是扩展帧,也就是二十九位的这个帧 id, 然后 ken 的 这个数据呢是二百五十 k, 下面这两个呢也是跟之前的这个协议是一样的,一个是自己的自己的顺序,还有一个是呃浮点数的这个呃变化方式。 然后我们可以看到数据格式,这个是我们的这个真真的这个格式,我们的这个之前讲过这个 can 的 这个原理,是吧?首先是真 id 啊,还有一个是最多是八个字典的这个数据长度,跟我们这个标准的这个真的这个数据格式是一样的,是吧? 然后下面我们规定了这个真 id 这二十九个位里面,它再进行一个分段的划分,其中呢真标志占用了这里的两位,然后呢节点地址占用了这个字节八位,然后数据首引,呃,占用了八位,还有这里有个指首引的这个长度也是占用八位 啊。我们可以看到第一个时段真标志,跟之前我们这个四八五的这个真标志啊,也是差不多,是吧?也是有这个写读响应,还有个是主动上报,跟我们 m q d t 的 这个通讯协议也是一样,也有一个主动上报的这个啊真标志,然后下面这里呢也是节点地址, 然后我们这里多出来一个叫子所隐。这个子所隐是什么意思呢?是这个主所隐,下面还可以区分有很多个子所隐,也就是说呢,我要访问到一个具体的数据呢,我们首先要知道一个叫主所隐,这个主所隐下面的具体是哪个子所隐对应的数据,我们可以通过这个方法来进行一个区分,对吧? 好,那么下面这里有个数据表,这个数据所隐呢,跟我们之前那个两个同学也是差不多,也重启控制默认信息,对吧?但是这些呢, f 一 的参数我们这里没有做。 还有这里这个真标志呢,指明你这个锁影它支持写操作、响应操作,还有主动上报操作,对吧?指明它这条数据锁影是支持什么样的一个真标志和操作的。然后再往下呢?这里呢跟之前呢这两个协议有点不太一样,我们这里稍微讲一下, 呃,比如说这个模式控制,那么这里是一个标志,是零,是吧?零,也就是写操作,对吧?写操作,然后呢 零 x 零一,零零是表示什么意思呢?这个是我们的叫做缩影,是吧?缩影,我们的缩影是八加八,一共是两个字节,所以呢我们这么描述呢,是表示,呃,零一是表示主缩影,零零呢表示的是指缩影,对吧? 然后这里呢就是我们的这个啊,真的这个输入内容,然后这里呢有两条比较特殊的这个指令,都是属于上报指令,是吧?其中呢它的这个上报内容呢,它是有一个表的,比如说 赋 a, 如果之所以是零的话,表示的是设备 id 的 这个高八位,是吧?比如说如果之所以是零四的话,那么那么它表示的是谁的版本号, 这里也给出了这个操作属性,读或者写,还有他这个数据类型,还有这个数据长度,对吧?那么我们这个是指首引,那么他主首引是哪里呢?可以看到咱们这里有个描述,比如说这是零五,是吧?零五,零五是表示什么呢? 是实时数据,是吧?然后呢之所以呢是叉叉,叉叉表示什么意思呢?表示它这个副路里面所对应的呃这个止,所以比如说这个叉叉等于等于这个实时数据等于零一的时候呢,它是表示的是 r t t e 这个呃止,所以的数据,然后包含一共八个字节,对吧? 好,这个就是我们的这个通讯协议文档的描述,然后我们可以接着看一下咱们的这个程序是如何实现的,可以看到咱们的第十八个历程。 好,我们这个历程增加了呃四个文件,其中第一个是协议文件,一个是呃 m q t t 的 这个服务,还有一个是串口,这个串口呢就包含了蓝牙和四八五是统一在一起的这个服务。还有第三个是 pen 的 这个服务, 我们首先看到这个头文件协议的这个头文件,首先我们定义真标志,是吧?这个真标志也就是我们的这个协议里面, 协议里面规定了这个真标志零一、二三,它分别表示且读响应和上报,对吧?我们这里都定好了,那接下来呢,这里定了一个是数据缩影,我们可以看到这三个文档,这三个文档里面它的这个数据缩影都是统一的,对吧?你可以看一下零零表示重启,这个文档呢,看呢, 零零也是两次重启,然后这个四 g 的 呢,零零也是两次重启,所以呢它这个值啊,这个数据所引的这个值呢,是一一对应的三个文档都是统一的,对吧?所以呢我们这里就统一的定义成一个叫做数据所引的这个红。然后这网线呢,我们定了一个是 pin id 的 这个呃结构,也就是我们这个 pin 协议里面 这个结构,是吧?帧标志节点地址,呃数据所引,还有这个子所引,那么我们这里就分别定义出来这个结构了,方便后续我们去访问这个帧 id 里面的每一个呃时段,对吧? 然后下面这里定义的是 k 的 一个子所引的数据,也就是我们以下的这些这些表,对吧?这些表。 然后下面这两个就是我们之前上一讲呃所定义的这个数据结构,一个是 bs 的 状态,还有一个是实数据,我们把它放到这个文件,接着我们首先看一下这个串口的这个 服务是如何实现这个通讯协议的,首先我们这里定义了一个呃操作系统的这个现成的这几个参数,然后呢定义了这个数据结构,也就是我们的这个四八五, 四八五它这个结构是这样子的,是吧?那么我们这里定义了一个结构体,方便这个数据包的这个访问,然后下面呢 对这个呃 com 口进行一个初步化,我们初步化的时候,你看首先初步化这个窗口,然后呢创建了一个信号量, 之前我们呃是不是讲过这信号量使用,是吧?我们这信号量使用呢,主要是它的作用是如果我收到了一个数据包之后呢我会发送一个信号,然后呢到另外一个任务和现场里面去处理这个呃数据包的解析的作用, 所以我们这里接下来又定了一个县城,然后启动县城,后面呢 在这个县城里面去等待那个信号量,然后呢读取这个数据包,然后按照这个数据包的这个数据所引进行一个对应的这个解析,是吧? 好,这个就是我们的这个基本的框架。然后我们再看一下这个四 g 的 m q t t 的 这个服务,它是如何啊实现,首先我们也是定义了一个现场的参数,我们需要创建一个现场来处理这个 m k t 的 这个数据请求,然后呢我们定义了这几个主题的一个缩影号, 我们可以看到咱们的这个四局的这个同协议是不是已经规定了这几个啊?主题,对吧?我们把这几个主题的访问呢啊 定义成这几个红来进行一个访问就比较方便,对吧?然后呢我们在这个呃解析文件里面,你看这里是不是我们规定好的这个主题啊,对吧?这几个主题, 然后再往下我们这里定了一个这样的一个消息的这个数据结构,用来保存呃服务器请求这个消息,或者是我我发送到服务器的这个消息,对吧?其中就包含主题真标志,还有这个数据库隐藏度和消息内容等等。 然后下面这里呢,我们在之前我们这个 m q t t 客户端这个文件里面,呃进一步了这个封装,封装成了一个叫做呃取消订阅,订阅和取消订阅主题,还有订阅所有的主题,这个所有的主题呢,就包含了我们这里所有这些呃主题,对吧?一次性一个函数这样玩, 然后下面发布数据,还有接收数据等等,我们可以看到这个初步化里面大概出了什么内容。首先我们先要把这个呃 这个主题的这个值呢进行一个抽象,因为我们这里这个主题呢,它有一个变量,叫做这个设备 id 的, 对吧?所以呢我们在这个抽象的时候呢,要把这个设备 id 传进来,然后去改动改动我们前面定义好的这个这个值,是吧?把这个值改了,因为每个版子它这个 id 号是不一样的。 然后接下来呢创建了一个这个消息队列,把这个呃结构发送到咱们这个消息队列里面去,并且呢在另外一个任务另外一个县城里面去获取这个呃这个结构,然后再进行一个解析,对吧? 然后接下来我们再创建一个叫做消息处理的一个任务,我们可以跳到里面去看一下,你看我们这里,首先我们先开启这个 g n s 的 这个定位,然后接下来呢我们就一直在等这个消息队列,对吧?小队列获取完这个消息队列的值呢?我们保存到这个变量里面,然后呢就按照这个主题和这个数据缩影进行一一的进行一个解析。 好,那么我们这个消息队列它是在哪里发送呢?它是在呃我收到了这个服务端这边发送的这个数据请求了之后,我再去呃发送这个消息队列,是吧?那我们在哪里调用呢?我们可以看到,看到这里,你看我们这里有一个叫做, 呃,叫做回调函数的东西,是吧?回调函数,因为之前我们讲这个 m q t t 扣端的时候,是不是你要这个,呃 接收这个订阅的时候是不是要注册一个回调函数,是吧?那我们就在这个回调函数里面,如果接收到了这个数据之后呢,那我们就把它封装在这个结构里面,然后呢再发送到这个呃小队里面,同理呢如果是下面这里的这个设备的请求,因为刚才这里呢是广播请求这条,呃主题是吧?这里呢是设备请求的主题 也是一样,如果收到这个数据的时候呢,我也是封装到这个结构里面,然后呢发送到这个小队列里面,发送了之后呢后面它我们这个系统啊,它会在这个,呃,在这个在这个任务里面去接收这个队列,然后再进行一个一一的解析,对吧? 好,这是我们的这个 m q t t 的 服务的实现方法。然后我们再看一下这个宪的这个服务, 我们这个 k 服务也是一样,我们要定义一个呃县城来处理这个 k 的 这个请求数据,我们直接跳到这个抽象里面,首先我们呃对这个 k 一 进行一个抽象,抽象的这个波特率是二百五十 k, 接着呢设置一个滤波器,这里呢我们 相当于设置的是没有绿波,是吧?你什么数据都可以进来,大家如果是想绿波的话,大家可以看一下前面我们看的这个章节是如何去设置这个绿波的。然后这里呢也是一样,跟我们的这个 nct 的 方式处理模式一样,也是创建一个呃消息队列,然后再创建一个 can 处理的这个线程, 然后我们这里设置一个这个片接收的这个回调,在回调里面呢,我们就发送数据到这个队列里面,是吧?发送了这个数据到队列里面呢,后面系统呢,他会在这个 这个县城里面去接收这个队列。接收完这个数据之后呢,我们就在这个函数里面进行一个数据的解析和按照这个数据导引进行一个一一的这个处理,对吧? 好,这个就是我们的这个呃 can 的 这个服务的程序分析,因为这个程序代码比较多,所以呢我这里呢只能带大家去呃浏览一下我们的这个程序的基本的这个架构和流程。 好,这是我们的这个通讯协议的这个讲解。然后在下一点呢,我们可以直接看到最后一个历程,就是我们的这个完整程序第十九个这个完整程序我们主要呃增加什么内容呢?我们可以看到咱们这个完整程序, 其实这个文件并没有增加,是吧?我们只是在这个主程序里面做了一些处理,给大家分析一下。首先第一步啊,对这个配置文件进行了一个初步化,然后呢 bms 进行一个初步化,然后我们这里呢通过一个按键 呃来选择,你用的是这个四八五还是用的是蓝牙,因为四八五的触屏话和蓝牙触屏话他是不一样,是吧?那么我这有注示的,是吧?如果你是开机的时候,你一直长按着这个按键的话,那么听到这一个蜂鸣器响声的时候,说明你配置是蓝牙模式,是吧?否则呢你配置是四八五模式。 然后下面这里是监的这个服务抽象 m q t t 的 这个,呃,抽象这个就是跟我们之前讲的这个 m q t 通讯那个例子差不多,是吧?抽象这个 m q t 扣端,然后呢等待注网成功,然后呢这个就是我们的这个 m q t t 这个消息服务的抽象,也就是呃我们 这个文件里面的一个抽象函数,对吧?呃,然后接下来呢连接服务器,接下来呢订阅所有的这个主题, 这网线呢是 gps 的 这个啊开启,对吧?然后看门狗把它给初步化,然后接下来在这个主程序里面进行一个循环,首先是这个 ps 的 用户处理,然后呢四 g 数据上报,这里呢是定时的去上报到我们的这个服务器,是吧? 然后接下来这里是我们的这个监的这个数据上报,还有呢喂狗,大概也就是这样的一个处理模式。 好,到此为止呢,我们已经把咱们的这个开发板上面的这个板子上面的这个程序已经讲解完了,这个程序呢可能内容比较多, 对于这个初学者或者是对这个编程不是很熟悉的同学的话,大家可以去仔细的去研究下里面的这个源码具体是怎么实现的,如果有问题的话可以到咱们的这个技术交流群里面去交流提问。

大家好,接下来介绍一下我们本组的期末作业,首先打开这个文件,这个 b, 打开毕业片终端,点击第一个,我们小组作是第一个,然后打开或者 点击第一个,然后点击这个,然后跳到这个软件中,然后我们要修改的部分是第一个协调器的, 点击这个好的,修改这个 显示这个平台的,等一下再给大家讲解。需要修改的是这五行,这个是时间戳,这个是平台的 id, 产品 id, 这个是热点和热点的 wifi 密码,然后是这个终端的, 点击这个好,我们设置了这个终端的 id 是 ff 二好,弄完之后就讲解完这个软件代码部分之后要讲解这个云端, 云端是我们先设置了这个产品,设置完产品之后点击设备接入管理,点击设备管理,然后查看一些详细数据, 然后点击这个产品开发,点击这个设备管理好,看到我们的这个产品,然后点击这个详细, 有相关消息后,这个是设备的密钥,这个是产品 id。 后面再讲一下他们的用处,他这是属性,这是我们设置好的属性,湿度、光照强度、油浓度和温度。网上我们讲解一下其他的所用到的工具, 然后我们所用的一些工具是这个,点击这个文件有这个好,所用的是这个生成器, 点击完这个,这个是第一个要第四个要改的,第一个是改的就是那个产品 id, 也就是这个产品信息这个产品 id, 然后这第四个就是产品的名称,就是这个他时间戳,自己去上网去搜索,时间戳换就能用了,他这个是产品秘药,用完之后他会生成一个这个东西,然后弄进, 弄进这个逍遥气代码这里面进行更换,更换完之后基本弄完之后就点击创口,然后发送指令,这是我们发送好的数据 成果就是你连接到了之后,这个消消器会显示我们的数据, t 和 h 就 代表温度和湿度,然后这个 f f 二就是刚才我们在终端设置好的产品 id 名称, 然后这个就是温度、湿度和烟雾以及光敏的一些 数据。现在就是我们插面插入了这个光敏,然后变化一下,反应有点慢,我希望遮住它变成九十九, 然后这是温湿度,这个是温湿度模块, 然后这个是延误的。有打火机吗? 我在旁边打火试一下,看那个 nq 的 值, 我打完火之后反应有点慢,这就变成三十二。 ok, 我 们小组的作品已经演示完毕,谢谢大家。

大家好,我是墙面活络,活络哥今天给大家讲一下一只这个 m q t t 到这个幺幺幺二六 b, 呃,这个 m q t t 我 一般用的不多,我一般就是给它们把这个继承到系统里面 啊,我今天也就是把这个测一下,它这个一般情况下就是有一个服务 m q 的 一个服务 q t t 的 一个服务器,然后,呃,有多个这个客户端, m q t 的 这个客户客户端 client, 然后一个 client 发布一个消息,另外一个如果订阅的话,他就能收到。由于我现在住的这个地方,这个门口我不知道他那个路由器在哪呢? 我只能用个无线网,然后所以这个幺幺二六 b 没没法拿网线直接连他那个路由器,我就用这个 wifi 这个联网,然后这幺二六 b 上面有这个这块这个网卡,把这网卡提提起来就行啊,这个得需要就编内核的时候编进去,首先你要把设备数要配对, 首先把设备数配对啊,这个是我,我做的系统的那个啊,设备数 啊,这个是是,嗯,相当于是我的虚拟机,这是设备啊,他这个在具体在哪我找一下。 嗯,这个是我的 s d k, 呃,它这个在这个内内盒啊,在这个抱起内盒里面的 ark, 这个是这样,顺序是反的, ark ark 六十四 box, 字有点小,然后有个瑞星微在下面 来搜一个活络,这个这 二六 b 啊,这上面我,我以为是我,我自己修改的葫芦,看,这是我,我编的十一月份编的 这个,这个里面你得按硬件的那个接口定义,把这个定义好,然后把那个拼挡住,这是它,它先它里面有块蓝牙 啊,我这边是把这个部件已经变好了。嗯,然后他这个驱动。驱动在哪啊?驱动 我的桌面,我的桌面,我的桌面,我的桌面 在 在这个里面,这驱动在这,这算驱动。 这样把这个用,用那个 s d 编出来,那个交叉编一段,把这个要翻译一下,然后就是原厂的这个固件也得有, 就是这个,你把你的骨架放到这,呃,你打那个钢件系统的时候,它就会,就是那个 update, 它闭眼的时候它会把这个给拷到钢件系统去。 好,现在就看一下 啊,现在看一下这个网卡应该是起来了, wifi 亮,然后它 这里面有这个咋提?用网的,咋开网发信息的。现在呢?咱就查一下这个有哪些?这个无线网 看,我这边这有这个,我就是用这个, 这边就用的是这个。哎呀,这个到处找,然后这个的密码是这,我这边是这把密码配一下 他,他就会把这个配置文件保存到这,生成配置文件这个,然后这个就是让连去连的,用 wifi 连那个光猫那一块啊,就路由器那一块啊,出现这种错误,大家不用担心,没问题。然后咱获取一下这个 ip, 哎,冲过去成功,过去成功了,这个他那个 ip 地址已经有了。嗯,看,然后咱们拼一下百度,看能拼到 通了,也是能拼,能百度。然后 这个这里面有 m q t t 的, 我找到了一些原码。 呃,这个原码在这上面是有的,这个是有的啊,我这个原码我放到这, 我放到 m q t g 这,然后我这个里面的教程编辑点我是最好的,他直接能找到。嗯,你编的时候直接编, 用这个 g c c 再进去编一个吧。 啊,直接调 make feel, make feel 就 可以编。 小妹子可怜一下,我刚编过了一次, 好,这个是不是要装那个?要装一些东西?我在这编过的,哦,再在这编一下,我在这编过的,这是我自己的,这他是不是把它弄起来?先把这关掉,关掉 这关掉。这这这这这这,我在这配了一些东西, 是不是刚才那个那个程序在用的? 看我刚才是咋编的啊?我看一下,看我刚才是咋编的。 哦,是这样的,是大写的 c c 弄错了, 大写的 c c 这边写错了,是这个, 这变成了,可以把这个清一下。 这是个小写的啊, 这变成了,应该是它那个库就在这个交叉编码里面, 然后就是,呃,要让这个咱这个设备听音乐。嗯, 定在这个服务器的啊,主题 啊,设备里面,我已经把它拷到设备里面来了,粘不上了。拷到设备里面来,就在这个楼梯下,你看这 就是这个,我粘的是那个。 好,这应该是已经定的, 你看定,定了,然后,嗯,让这个,嗯,汪兔给这个里面发个消息,咱们就能收到。 汪兔这个这个工具要装了。这个装,嗯,在网上搜一下命令应该是有的。 我看一下啊, 这个无光头也要保证能上网。你看他这个发了一条,我再给他发一条 发两条,你看咱设备这边输了两条消息,说明这 m q t t 移植成功了。呃,今天就讲这么多吧?