MQTT协议的历史、优点及实验

韫龄 程序笔记MQTT协议的历史、优点及实验已关闭评论104

工程师们为了监测广阔的石油管道、天然气管道的运转情况,迫切需要一种能在低功耗、低带宽情况下传输一些消息。石油和天然气的监测无需超低延迟和高实时性,主要是在缺乏电能的野外长时间低功耗运行,因为监测的面积庞大,采用卫星通信,为了方便信号传输,那么就需要低带宽,为此IBM工程师们在1999年发明了MQTT协议,以达到目的。

MQTT协议与传统网络通信不同。传统网通中客户端和服务器直接相互通信。MQTT 使用发布/订阅的模式将消息发送者与消息接收者解耦。使用第三个组件(就是代理)来处理发送者和接收者之间的通信。文章源自韫龄笔记-https://www.liuyunling.com/295

现在,我们使用mqtt协议的地方很多,比如智能家居,物联,甚至有一部分人用来实时聊天。优点轻量、高效,比较可靠,可支撑千万级设备的消息并发,阿里云的mqtt服务不便宜,怎么办自己搭建吧。文章源自韫龄笔记-https://www.liuyunling.com/295

自制智能wifi插排,手机端实时控制,定时控制开关等。文章源自韫龄笔记-https://www.liuyunling.com/295

硬件:ESP32,公牛插排,光耦继电器等。文章源自韫龄笔记-https://www.liuyunling.com/295

手机端部分代码文章源自韫龄笔记-https://www.liuyunling.com/295

Private serverURI As String = "tcp://8.134.116.xx:1883"   '服务器ip,需安装mqtt服务,放开相关端口
mqtt.Initialize("mqtt", serverURI, "gongniu")
Dim mo As MqttConnectOptions
mo.Initialize("gongniu", "12345")
mqtt.Connect2(mo)
mytopic = "3j"' & mqtt.ClientId
mqtt.Subscribe("aa", 0)
Lblallxx.Text = Lblallxx.Text & CRLF & DateTime.GetHour(DateTime.Now) & ":" & DateTime.GetMinute(DateTime.Now) & ":" & DateTime.GetSecond(DateTime.Now) & CRLF & BytesToString(Payload,0,Payload.Length,"UTF8") & "--" & Topic

'esp32采用C或Python,快捷可用图形编程。
'国内服务器使用域名反代需备案

待增加功能,功率计量模块(负责监测实时功耗)文章源自韫龄笔记-https://www.liuyunling.com/295

 文章源自韫龄笔记-https://www.liuyunling.com/295 文章源自韫龄笔记-https://www.liuyunling.com/295

 
韫龄
  • 本文由 韫龄 发表于 2024年7月31日 19:45:43
  • 转载请务必保留本文链接:https://www.liuyunling.com/295