在车辆互联网上应用MQTT

发布者:自在逍遥最新更新时间:2024-08-20 来源: elecfans关键字:MQTT 手机看文章 扫描二维码
随时随地手机看文章

车辆互联网是一种能够 连接车辆 与道路基础设施和其他设备实时通信。V2X包括V2V、V2I和V2P通信,使车辆能够实时地相互作用、基础设施和行人。V2X技术旨在改善道路安全,减少交通拥堵,提高驾驶经验,并使自主驾驶能力成为可能。


作为更广泛的事物生态系统互联网的一部分,印度地球物理学会融合了多种技术,如传感器、全球定位系统、云计算平台、数据分析工具和先进的网络解决方案。这些技术共同努力,从各种来源收集数据,例如船上诊断系统或外部交通监测服务,处理这些数据进行分析,并在连接车辆之间分享这些数据。


国际海洋生态系统的主要组成部分是:

· 车辆, 配备了传感器和电子控制装置(ECU),收集有关车辆性能和环境条件的数据。

· 传感器和设备, 部署在车辆或道路基础设施内,收集有关位置(全球定位系统)、交通、路标、天气状况等信息。

· 数据处理中心和云平台, 它利用机器学习技术分析收集到的数据,根据交通情况提供预测性维修警报或动态路线规划建议。

· 车辆网络和通信协议: 允许互联系统内所有组件之间无缝交换,同时确保所传输数据的安全性。


随着互联车辆数量的增加,越来越需要能够有效管理大量数据传输的通信协议,同时提供较低的延迟和可靠性。其中一个协议是MQTT(消息队列遥测传输),它最初是为受限制的环境而设计的,带宽和功率资源有限,因此非常适用于印度洋生态系统。


什么是MQTT?

或者消息队列遥测传输 是一种轻量级的消息传递协议,为资源有限和带宽低的设备设计。它是由IBM在1990年代后期开发的,目的是使石油管道传感器之间的通信通过卫星连接。今天,它是一个行业标准 机器对机器(M2M)通信 和物联网应用程序。


Mqtt使用简洁的二进制格式传输数据,与http等基于文本的协议相比,减少了每条消息所需的信息量。这些功能使得MQTT在数据开销和网络使用方面非常高效,因此适合资源有限或连接不可靠的应用程序。


MQTT如何运作

让我们深入研究mqtt如何运作。

服务质素

Mqtt提供三个QoS级别,根据应用程序需求帮助管理消息传递的可靠性:

· QOS级别0: 最多一次传递-消息只发送一次,没有任何来自接收者的确认。

· QO一级: 至少一次传递----消息在接收方确认之前重新传输,但可能导致重复发送。

· QO二级: 一旦发送--通过发送者和接收者之间的四个步骤握手过程确保不重复。

建立联系

首先,一个MQTT客户端通过一个特定端口上的TP或网络接口与代理建立联系。连接可以通过传输层安全性(TLS)来保证。在成功连接后,客户机发送一个连接包,其中包含客户机标识符、用户名/密码凭证等信息(如果需要的话),以及其他可选的参数(如保持活动时间间隔)。


出版订阅模式

在这种模式中,发布者发送消息(发布数据包),而不知道谁将接收到它们,而订阅者只收听他们感兴趣的特定主题。要订阅一个主题,客户端将发送订阅数据包。然后,客户端将根据其订阅的主题接收到已发布的消息。当代理从多个订阅了被称为“通配符”的类似主题或模式的客户端接收到这些数据包时,它会相应地合并订阅。


确认消息和保留数据

为了确保跨三个QoS的消息传递的可靠性,MQTT使用了各种确认数据包,如PUBACK、PUBREC和公共通信。客户端还可以发送PINGREQ数据包,以在不活动期间保持连接处于不活动状态。除了消息确认之外,MQTT还可以通过在发布时将消息标记为'保留'来保留数据。经纪人为每个主题存储这些保留的消息,以便新订户在订阅后立即收到最新信息。


关闭连接

为了优雅地关闭活动连接,客户端发送一个断开连接的包,允许经纪人在终止会话之前清理资源。如果客户机在没有发送此包的情况下突然断开连接,或者在保持-活间隔时间内没有响应,经纪人可能会强制关闭连接并删除相关的订阅。


MQTT协议是否适合独立的外部文件?

有几个原因,为什么MQTT是车辆应用互联网的一个很好的选择:

· 轻量级和高效: Mqtt的轻量级设计使它适合于iv。它使用的带宽最小,代码足迹很小(嵌入式设备上小于1kb)。这种效率对于资源有限的车辆通信系统是理想的。

· 可伸缩性: Mqtt的QoS能力使根据需要调整能力变得容易,同时使IVV系统中的每个元素都具有所需的可靠性水平。这对于大规模部署连接车辆至关重要。

· 可靠性: Mqtt的发布-订阅模型确保车辆网络的可靠性,即使在传输过程中连接暂时丢失或变得不稳定。在恢复连接时,仍将发送信息。

· 安保: 确保车辆通信安全是防止未经授权进入和确保司机、乘客和其他道路使用者安全的关键。MQTT支持传输层安全加密,并为连接到代理的客户端提供用户名/密码认证。

Mqtt还有一些关键的局限性:

· 缺乏直接沟通: mqtt依靠一个中央代理在设备之间路由消息。虽然这简化了网络管理,但也可能引入单一的故障点,并可能限制车辆之间的直接通信,而这对于某些V2V或V2I的交互至关重要。

· 对高速的支持有限: 在高速实时通信必不可少的情况下,例如在自主驾驶或安全关键应用中,MQTT可能不是最合适的选择。它的QOS2(准确一次)确保可靠的交付,但可能引入延迟的四个步骤握手过程。

· 持久连接的间接费用: Mqtt在经纪人和客户机之间保持持久的联系,对于极低功率的设备或者那些需要进入睡眠模式以节约能源的设备来说,这可能是效率低下的。


结论

最后,MQTT协议为提高车辆与一切的通信的效率、可靠性和安全性提供了重要的机会。MQTT具有轻量级设计,能够有效地实时处理大量数据,对车辆通信的动态世界至关重要。它的服务水平、发布订阅模型和确认机制的质量确保了可靠性和可适应性,使不同的IVV应用程序。


然而,承认MQTT在IVV环境中的潜在局限性也很重要。缺乏直接通信、在高速情况下潜在的延迟以及持久连接的开销,可能需要某些应用程序的替代技术或补充技术,特别是那些要求直接和超高速车辆与车辆之间相互作用的应用程序。


总体而言,MQTT的优势在很大程度上补充了日益增长的IVV环境的需求,并将被证明对未来的车辆网络非常有用。尽管如此,与任何技术一样,应根据具体情况评估其适用性,同时考虑到每个应用程序的具体需要和限制。随着车辆互联网的不断发展,使之能够更安全、更高效和连接道路的技术也将不断发展。


关键字:MQTT 引用地址:在车辆互联网上应用MQTT

上一篇:当前每一个汽车产品设计需要注意的四个要点
下一篇:汽车激光雷达的方向是选择095纳米还是1550纳米

推荐阅读最新更新时间:2026-03-20 04:44

迅为IMX6Q开发板 Buildroot文件系统mqtt测试
以开发板作为服务器, Ubuntu 开俩个终端作为订阅者和发布者进行测试 我们打开/etc 下面的 mosquitto.conf 文件,添加 user root。如下图所示: ignore_js_op 使用以下命令启动开发板的 mosquitto 服务 mosquitto -d -c /etc/mosquito/mosquitto.conf 如下图所示: ignore_js_op 查询是否启动成功,命令如下: ps -ef |grep mosquitto 如果成功如下图所示: ignore_js_op 使用 ping 命令 ping 一下自己的 Ubuntu,这里一定要 ping 通,否则下面的步骤不成功,命令如下,IP 为
[单片机]
迅为IMX6Q开发板 Buildroot文件系统<font color='red'>mqtt</font>测试
玩转 ESP32 + Arduino (十二) 通过MQTT协议上传数据至OneNet云平台
这里我们使用了一个库: PubSubClient 中移动ONENET平台 IP地址: 183.230.40.39 旧版MQTT端口号: 6002 一. 在ONENET平台添加MQTT设备(旧版) 1. 添加 找到多协议接入入口 添加旧版MQTT产品 添加产品 添加产品成功 然后添加设备 2. 旧版MQTT关键信息 接下来我们来找到旧版MQTT关键的信息: 产品ID(在产品页面) 2.设备ID(在设备界面) 3.设备鉴权信息 二. ESP32连接ONENET旧版MQTT 思路: 1.连接网络 2.登录ONENET 3.发布主题信息 #include Arduino.h #include
[单片机]
玩转 ESP32 + Arduino (十六) 通过mqtt协议连接阿里云
需要用到的库: PubSubClient : 发送和接收MQTT消息 ArduinoJson : Json字符串转换库 AliyunMqttArduino: 阿里云相关 先做一件事!!!!!! 引入 PubSubClient.h 后 #include PubSubClient.h 打开 PubSubClient.h 修改如下内容: 一. 阿里云MQTT协议 关于MQTT协议, 请参考文章:https://zhuanlan.zhihu.com/p/89057819 请参考我之前整理的文档: 【腾讯文档】MQTT连接阿里云示例(1)https://docs.qq.com/sheet/DWXBaUE9nWmZVa
[单片机]
玩转 ESP32 + Arduino(三十) onenet5.0 全新MQTT设备连接体验
一. 体验新版更新内容 onenet5.0是一个大改版, 连用了多年的LOGO都换掉了, 现在的logo更简约美观了 1. OneNET Studio 更新后推出了一个OneNET Studio 的概念, 所有接入服务放在了这里面 进入 OneNET Studio 发现其整合相当一部分的业务, 而且分的非常明晰 2. 设备接入 现在, 我们关心的主要内容是设备接入 3. 产品管理和创建产品 产品管理界面简介美观 添加产品很容易 这里有了第一个概念 OneJson 4. OneJson概念 OneJson 就是OneNet能自动解析的JSON, 如果你按照这个格式上传json数据, 会省略上传数据解析过程
[单片机]
为什么要用Modbus转MQTT网关?
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。 Modbus协议有分为Modbus RTU,Modbus ASCII,Modbus TCP,其中Modbus RTU,Modbus ASCII走了的RS232和RS485总线上,Modbus TCP跑在以太网上。在工业4.0大环境下,设备联网已经大势所趋,Modbus协议作为工业领域使用最多的协议,应用最广,那么Modbus设备如何联网呢? 方法一、
[嵌入式]
为什么要用Modbus转<font color='red'>MQTT</font>网关?
[ESP32][esp-idf] https和mqtt同时签名冲突解决
现象:HTTPS建立连接的同时,MQTT也建立连接。双方都在签名证书,导致CPU抢占,致使看门狗超时。 解决:在tls层加互斥锁,防止同时建立连接。 修改文件:xEspressifcomponentsesp-tlsesp_tls_mbedtls.c 部分代码如下。 #include freertos/FreeRTOS.h #include freertos/semphr.h SemaphoreHandle_t _semaphore = NULL; /** * @brief Create TLS/SSL server session */ int esp_mbedtls_server_session_
[单片机]
[ESP32][esp-idf] https和<font color='red'>mqtt</font>同时签名冲突解决
NodeMCU学习(十一)--MQTT的订阅与发布
NodeMCU实现订阅和发布主题。 1、要点扫盲 1.1 MQTT 《MQTT协议--MQTT协议简介及原理》 《MQTT协议--MQTT协议解析》 1.2 OneNET 《NodeMCU学习(十)--发送数据到OneNET物联网平台》 《NodeMCU学习(九)--连接OneNET物联网平台》 《OneNET物联网平台介绍》 OneNET物联网平台 《设备终端接入协议-MQTT》 2、主要API 2.1 WiFi (1)wifi.setmode() (2)wifi.sta.config() (3)wifi.sta.connect() 关于API的使用方法,可以参考博客《NodeMC
[单片机]
NodeMCU学习(十一)--<font color='red'>MQTT</font>的订阅与发布
u-blox的IoT通信即服务解决传感器网络连接挑战
本文作者:u-blox公司高级副总裁Carl Bellanca Jr 今年4月,u-blox宣布收购物联网服务提供商Thingstream。此次收购将为我们的客户带来许多优势,这些客户正在为其大型传感器物联网寻找更低、更可预测的运营成本。通过u-blox提供的独特的芯片到云解决方案,消除了大规模实施物联网传感器网络的许多连接难题,同时降低了主要物联网投资的总成本。 通过Thingstream的集成,u-blox现在可以基于广泛用于物联网数据传输的行业标准MQTT(用于“消息队列遥测传输”)协议及其变体MQTT-SN,为全球物联网连接提供全面的端到端解决方案,专为大型低功耗物联网传感器网络的高效运行而设计。这项名为MQTT
[网络通信]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved