MQTT 使用场景

MQTT 应用场景

物联网英文名称为The Internet of thingsIoT便是物联网的英文缩写,物联网是基于互联网、广播电视网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化3个重要特征。

物联网是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络,物联网就是“物物相连的互联网”。

用一句话概括就是,把所有物品通过信息传感设备与互联网连接起来,进行信息交换,即物物相息,以实现智能化识别和管理。

智能家居物联平台的应用框图:
在这里插入图片描述
client层:指的是IoT设备,可以是冰箱、空调,也可以是一些温湿度传感器。

gateway层:大多数场景中gateway是家里的WiFi路由器,也有小部分是基于Zigbee或蓝牙的网关设备。智能生活场景中的gateway数量相对于工业领域要少很多,在工业领域存在大量的边缘计算放在gateway层进行处理(雾计算)。

cloud云层:这里是集中处理业务的地方。

应用层:这一层是直接与用户打交道的地方,可以是通过电脑的Web浏览器、手机App,也可以是有屏幕的智能设备的显示器。随着语音技术的发展,无屏设备也可以通过语音交互,作为一个应用存在于物联网的交互层。

MQTT是一个长连接的通讯应用层协议,最大的特点是数据精简、消息可靠、Publish-Subscribe模式灵活易用。MQTT已经成为IoT传输的标准协议,应用非常广泛。下图中Client指的是物联网设备。Client通过对Topic的订阅和发布数据管理应用中的数据流动,而BrokerMQTT应用中用于管理Topic的角色。Server是物联网应用中的服务端,用于处理业务逻辑。
在这里插入图片描述

温度传感器用于接收温度,并把文档通过MQTT发送到Server端,在Server端进行业务处理,根据温度计算出穿衣提示,通过MQTT把数据发送到特定的Topic,App订阅Topic获取数据后进行展现。

在这里插入图片描述

在Java中配置MQTT(Message Queuing Telemetry Transport)通常涉及使用支持 MQTT 协议的客户端库,如Paho MQTT Java客户端或 Eclipse Paho。以下是一个简要的配置步骤: 1. **添加依赖**: 首先,你需要在你的项目中添加MQTT客户端库的依赖。如果你使用Maven,可以在pom.xml文件中添加: ```xml <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.5</version> <!-- 更新到最新稳定版本 --> </dependency> ``` 2. **创建连接**: 创建MQTT连接的基本步骤如下: ```java MqttClient client = new MqttClient("tcp://your_mqtt_broker_address:1883", "your_client_id"); client.connect(); ``` 替换`your_mqtt_broker_address`为你的MQTT服务器地址,`your_client_id`为你的客户端唯一标识。 3. **订阅主题**: ```java MqttTopic topic = new MqttTopic("your_topic"); client.subscribe(topic, QoS.AtLeastOnce); ``` `your_topic`是你要订阅的主题,QoS(Quality of Service)设置消息的可靠性。 4. **发布消息**: ```java MqttMessage message = new MqttMessage("your_message".getBytes()); client.publish(topic, message, QoS.AtLeastOnce); ``` 5. **监听事件**: 为了处理接收到的消息,你可以监听`MqttCallback`接口: ```java MqttCallback callback = new MqttCallback() { @Override public void connectionLost(Throwable cause) { // 处理连接丢失 } @Override public void messageArrived(String topic, MqttMessage message) throws Exception { // 处理新消息 } @Override public void deliveryComplete(IMqttDeliveryToken token) { // 消息发送完成 } }; client.setCallback(callback); ``` 6. **关闭连接**: 当完成操作后,记得关闭连接: ```java client.disconnect(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值