MQTT协议问题之如何搭建物联网空调的服务器

简介: MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。

问题一:设备端SDK是否支持MQTT协议的断线重连?


设备端SDK是否支持MQTT协议的断线重连?


参考回答:


支持。

测试场景描述:开发板通过Wi-Fi连接路由器。把网线拔掉后,MQTT协议的设备端会自动尝试和服务器重新建立连接。重连尝试时间间隔是1s、2s、4s、8s、…。C SDK重试的最大间隔时间默认是60秒,即断网超过60s后仍未连接成功,设备端会每隔60秒尝试与服务器进行重连。您可以自定义最大间隔时间。

Android和Java SDK最大间隔时间为128秒,不支持自定义最大间隔时间。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/281936?spm=5176.28261954.J_7341193060.493.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@281936._.ID_281936-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_28


问题二:MQTT协议pub消息payload格式是怎么样的?


MQTT协议pub消息payload格式是怎么样的?


参考回答:

物联网平台没有制定pub消息payload的具体字段有那些。您根据应用场景制定自己的协议,然后以JSON格式放到pub消息载体里面传给服务端。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/279052?spm=5176.28261954.J_7341193060.498.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@279052._.ID_279052-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_29


问题三:如何用MQTT协议搭建一个物联网空调的服务器


想问一下,如何用MQTT协议搭建一个物联网空调的服务器,刚开始学这些东西还有很多不懂的,希望大佬教一下,谢谢


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/231711?spm=5176.28261954.J_7341193060.502.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@231711._.ID_231711-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_30


问题四:MQTT协议pub消息payload格式是怎么样的?


设备端SDK使用问题 MQTT连接


参考回答:


阿里云IoT套件没有制定pub消息payload具体字段有那些,需要客户根据应用场景制定自己的协议,然后以JSON格式放到pub消息载体里面传给服务端。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/130330?spm=5176.28261954.J_7341193060.509.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@130330._.ID_130330-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_31


问题五:阿里云利用MQTT协议,如何多个手机同时在线控制一个设备?


阿里云利用MQTT协议,如何多个手机同时在线控制一个设备?


参考回答:

MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。   我们可以从这里下载该项目的实例代码,并且可以找到一个采用PHP书写的服务器端实现。   架构如下所示:   wmqtt.jar 是IBM提供的MQTT协议的实现。你可以从如下站点下载它。你可以将该jar包加入你自己的Android应用程序中。   Really Small Message Broker (RSMB) ,他是一个简单的MQTT代理,同样由IBM提供。缺省打开1883端口,应用程序当中,它负责接收来自服务器的消息并将其转发给指定的移动设备。   SAM是一个针对MQTT写的PHP库。你可以从这个下载它.   send_mqtt.php是一个通过POST接收消息并且通过SAM将消息发送给RSMB的PHP脚本。   实例代码:   Ø 采用XMPP协议实现Android推送   这是我在项目中采用的方案。事实上Google官方的C2DM服务器底层也是采用XMPP协议进行的封装。   XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。   androidpn是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。经过源代码研究我发现,该服务器端基本是在另外一个开源工程openfire基础上修改实现的,不过比较郁闷的是androidpn的文档是由韩语写的,所以整个研究过程基本都是读源码。它的实现示意图如下:   androidpn客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿来使用。客户端利用asmack中提供的XMPPConnection类与服务器建立持久连接,并通过该连接进行用户注册和登录认证,同样也是通过这条连接,接收服务器发送的通知。   androidpn服务器端也是java语言实现的,基于openfire开源工程,不过它的Web部分采用的是spring框架,这一点与openfire是不同的。Androidpn服务器包含两个部分,一个是侦听在5222端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。服务器架构如下:   最上层包含四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。   服务器端界面如下,分别对应了上述的几个功能模块:   发送以后,我们可以在手机端看到接收的消息:

答案来源网络,供参考,希望对您有帮助


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/136565?spm=5176.28261954.J_7341193060.514.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@136565._.ID_136565-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_32


问题六:有用esp32 刷microPython 用mqtt协议连上 接入物联网的么?


环境

esp32 wroom-32

microPython v1.12

simple.py MQTTClient

控制台已经配置好了。

mqttClientId

mqttUsername

mqttPassword

三个值使用 MQTT.qx客户端可以连上(在控制台可以看见) ,但是用microPython 报

raceback (most recent call last):

File "boot.py", line 53, in

File "simple.py", line 86, in connect

IndexError: bytes index out of range


参考回答:

网络上已经有使用python 模拟设备接入阿里云,手里刚好有块ESP32的小板子,在上面跑过Alios Things,然后接入阿里云。但是终究感觉麻烦,有的时候只是做一个很简单的应用,跑os确实不太方便。使用micropython直接操作ESP32很是方便,就想着如果能通过micropython 直接接入物联网,那就方便多了。可以非常简单地接入云端,而且操作简单。先放上主干部分,有时间再补充细节

from umqtt.simple import MQTTClient
import usocket as socket
import time
import wifi
 
wifi.connect()
 
#Demo_01
ProductKey = "a1Mf4HZ5k**"
ClientId = "1234|securemode=3,signmethod=hmacsha1|"
DeviceName = "Demo_01"
DeviceSecret = "****************************"
 
strBroker = ProductKey + ".iot-as-mqtt.cn-shanghai.aliyuncs.com"
Brokerport = 1883
 
user_name = "Demo_01&a1Mf4HZ5k**"
user_password = "***************************************"
 
print("clientid:",ClientId,"\n","Broker:",strBroker,"\n","User Name:",user_name,"\n","Password:",user_password,"\n")
 
 
def connect():
  client = MQTTClient(client_id = ClientId,server= strBroker,port=Brokerport,user=user_name, password=user_password,keepalive=60) 
  #please make sure keepalive value is not 0
  
  client.connect()
 
  temperature =25.00
  while temperature < 30:
    temperature += 0.5    
  
    send_mseg = '{"params": {"IndoorTemperature": %s},"method": "thing.event.property.post"}' % (temperature)
    client.publish(topic="/sys/a1Mf4HZ5kET/Demo_01/thing/event/property/post", msg=send_mseg,qos=1, retain=False)
    
    time.sleep(3)
 
  while True:
    pass
 
  #client.disconnect()

连接成功后和可以在设备运行状态下看到上传的温度数据

bad8af1f5f8ab29423b767426d8d5261b2490592

demo中做了一个温度递增的上传,以下是数据记录:

1efed9107b0c5b3a6e1c579d12a76fed099b9e84

做的过程中参考了一下链接,放在这里,读者可以阅读,以获得更多细节:

子设备接入

https://help.aliyun.com/document_detail/66641.html

ESP8266 and MicroPython - Part 2

https://www.home-assistant.io/blog/2016/08/31/esp8266-and-micropython-part2/

使用MQTT客户端连接阿里云MQTT服务器

https://yq.aliyun.com/articles/592279

使用Python模拟设备接入阿里云物联网的MQTT服务器

https://yq.aliyun.com/articles/162978


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/282972?spm=5176.28261954.J_7341193060.518.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@282972._.ID_282972-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_33


问题七:用MQTT协议接收消息时乱码


最近在用阿里的MQ收发消息,两边的项目都是UTF-8的,发送成功的消息,在控制台下载看了是正常。接收时中文就乱码了,请问一下是怎么回事?


参考回答:

是否显示问题,可以先把字节流打印出来比较一下,理论上都是字节流传输,MQTT和MQ的body是对应的,没有特殊转换处理


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/86129?spm=5176.28261954.J_7341193060.525.40c22f3d058OAB&scm=20140722.S_community@@%E9%97%AE%E7%AD%94@@86129._.ID_86129-RL_mqtt%E5%8D%8F%E8%AE%AE-LOC_search~UND~community~UND~item-OR_ser-V_3-P0_34

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
3月前
|
消息中间件 安全 物联网
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
易易互联科技有限公司是吉利集团旗下专注于换电生态的全资子公司,致力于打造安全、便捷、便宜的智能换电网络。公司依托吉利GBRC换电平台,基于电池共享与车辆全生命周期运营,已布局超470座换电站,覆盖40多个城市,计划2027年达2000座。面对海量设备高并发连接、高实时性要求及数据洪峰挑战,易易互联采用阿里云MQTT与RocketMQ构建高效物联网通信架构,实现稳定接入、低延迟通信与弹性处理,全面支撑其全国换电网络规模化运营与智能化升级。
290 1
海量接入、毫秒响应:易易互联基于 Apache RocketMQ + MQTT 构筑高可用物联网消息中枢
|
3月前
|
数据采集 传感器 监控
Modbus 与 MQTT 协议兼容:MyEMS 的泛在能源数据采集技术实现
MyEMS深度融合Modbus与MQTT协议,破解能源数据采集中协议碎片化、网络异构、数据孤岛等难题。通过Modbus接入95%以上工业设备,实现现场数据精准“拉取”;依托MQTT构建高效物联网传输通道,支持多源数据主动“推送”与云端集成。边缘侧采集规整,中心侧汇聚分析,形成统一、可靠、低延迟的数据流。该架构兼具高兼容性、强扩展性与低运维成本,广泛应用于工业园区、商业楼宇及集团型企业,支撑实时监控、AI分析与跨系统融合,打造泛在互联的能源数据底座,助力企业实现全面智慧能源管理。
307 6
|
7月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
2617 42
|
8月前
|
数据采集 监控 网络协议
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
880 40
​MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
|
7月前
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
620 37
|
6月前
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
1139 0
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
280 10
|
2月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
2月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
426 8
|
2月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。

相关产品

  • 物联网平台