物联网MQTT通信------部署Easy IoT、SIoT

在这次的项目开始时,我们使用了ESP32开发板,当然,需要给设备联网,这个在代码中添加,

使用Easy IoT时,需要连接一个可以访问网络的WiFi,

在使用SIoT时只需要提供一个WiFi就可以,形成局域网,手机电脑的WiFi都可以

目录

一、MQTT概念

1.基本特点

2.基本概念

MQTT 客户端

MQTT 服务器

主题(Topic)

二、Easy IoT

1.如何注册和配置Easy Iot

2.代码实现

3.在电脑上通过Easy Iot管理掌控板

4.在手机上通过Easy Iot管理掌控板

三、SIoT

 1.运行服务器

2.发送端代码

3.接收端代码 

4.查看我们的设备信息


一、MQTT概念

MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。

MQTT 可以被解释为一种低开销,低带宽占用的即时通讯协议,可以用极少的代码和带宽的为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此 MQTT 协议在 IoT(Internet of things,物联网),小型设备应用,移动应用等方面有较广泛的应用。
IoT 设备要运作,就必须连接到互联网,设备才能相互协作,以及与后端服务协同工作。而互联网的基础网络协议是 TCP/IP,MQTT 协议是基于 TCP/IP 协议栈而构建的,因此它已经慢慢的已经成为了 IoT 通讯的标准。

1.基本特点

         MQTT是一种发布/订阅传输协议,基本原理和实现如下;

MQTT 协议提供一对多的消息发布,可以解除应用程序耦合,信息冗余小。该协议需要客户端和服务端,而协议中主要有三种身份:发布者(Publisher)、代理(Broker,服务器)、订阅者(Subscriber)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,而消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦

2.基本概念

  1. MQTT 客户端

    一个使用 MQTT 协议的设备、应用程序等,它总是建立到服务器的网络连接。

    • 可以发布信息,其他客户端可以订阅该信息
    • 订阅其它客户端发布的消息
    • 退订或删除应用程序的消息
    • 断开与服务器连接
  2. MQTT 服务器

    MQTT 服务器也称为 Broker(消息代理),以是一个应用程序或一台设备。它是位于消息发布者 和订阅者之间

    • 接受来自客户端的网络连接
    • 接受客户端发布的应用信息
    • 处理来自客户端的订阅和退订请求
    • 向订阅的客户转发应用程序消息
  3. 主题(Topic)

    • 连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。 
    •  要订阅的主题。一个主题可以有多个级别,级别之间用斜杠字符分隔。例如,/world 和 emq/emqtt/emqx 是有效的主题。
    • 订阅者的Topic name支持通配符#和+ : # 支持一个主题内任意级别话题,+ 只匹配一个主题级别的通配符,这里可能解释的不到位,请读者查阅资料
    • 客户端成功订阅某个主题后,代理会返回一条 SUBACK 消息,其中包含一个或多个 returnCode参数

二、Easy IoT

Easy Iot是一个旨在简化和加速物联网设备的连接和管理的物联网平台。它提供了易于使用的工具和界面,使用户能够轻松地将各种设备和传感器连接到云平台,并实时监控和控制这些设备。平台使用MQTT协议与开发板进行通信。MQTT是一种轻量级的通信协议,专为物联网设备和网络环境设计。它采用发布-订阅模式,其中消息发布者(可以是手机,也可以是物联网设备)将消息发送到特定的主题(Topic),而消息订阅者(可以是手机,也可以是物联网设备)则订阅感兴趣的主题,以接收相应的消息。

理解了发布者和订阅者的概念,也就好理解本实验设置Topic的用途了。Topic0的发布者是电脑,发布内容是指令,订阅者是开发板,用于接收电脑指令。

1.如何注册和配置Easy Iot

http://iot.dfrobot.com.cnicon-default.png?t=N7T8http://iot.dfrobot.com.cn

(1)在首页右上角选择“注册”,按提示注册账号

(2)登录平台后选择“工作间”,在左边查看账号、密码信息 (点击小眼睛就可以看得到)

(3)新添加1个设备,命名为“送文件机械人”,了解Topic概念,下一步编程会用到 

2.代码实现

#include <DFRobot_Iot.h>
// 函数声明
void obloqMqttEventT0(String& message);
// 静态常量
const String topics[5] = {"vUbidcvIg","","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;


// 主程序开始
void setup() {
	Serial.begin(9600);
	myIot.setMqttCallback(msgHandles);
	myIot.wifiConnect("Xiaomi 13", "123456789");
	while (!myIot.wifiStatus()) {}
	myIot.init("iot.dfrobot.com.cn","AvPM-----","","AvPGi-----",topics,1883);
	myIot.connect();
	Serial.println("hello");
	while (!myIot.connected()) {}
	myIot.publish(topic_0, "hello");
}
void loop() {

}

// 事件回调函数
void obloqMqttEventT0(String& message) {
	Serial.print(message);
}

在这里把vUbidcvIg改成自己的Easy IoT的主题就行

 

const String topics[5] = {"vUbidcvIg","","","",""};

在这里把"AvPM-----"改为自己的lot_id,vvv"AvPGi-----"改为自己的lot_pwd 

 

 

myIot.init("iot.dfrobot.com.cn","AvPM-----","","AvPGi-----",topics,1883);

 

 

3.在电脑上通过Easy Iot管理掌控板

登录Easy Iot平台查看Topic0接收到的信息,也可以在这里发送信息

在这里我们就可以看到开发板发送过来的信息 

4.在手机上通过Easy Iot管理掌控板

在手机微信搜索“Easy Iot”小程序,用在电脑上注册的账号登录平台,界面和电脑有一定区别,但操作逻辑和功能是一样的,可以按照博主的步骤来做。

三、SIoT

SIoT为一个为教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(simple)的意思。SIoT支持Win10、Win7、Mac、Linux等操作系统,一键启动,无需用户注册或者系统设置即可使用。

SIoT为“虚谷物联”项目的核心软件,是为了帮助中小学生理解物联网原理,并且能够基于物联网技术开发各种创意应用。因为其重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。

这里博主分享了SIoT的包,下载使用即可,也可以去官网下载

链接:https://pan.baidu.com/s/1rfKQJz64B0NjTIH2aO4Ecg?pwd=1ozm 提取码:1ozmicon-default.png?t=N7T8https://pan.baidu.com/s/1rfKQJz64B0NjTIH2aO4Ecg?pwd=1ozm

 1.运行服务器

下载后打开我们的目录下的应用程序

 在最下面找到127.0.0.1

 然后在浏览器中复制改地址,在后面加上:8080(要注意这里是英文输入法才行)  

这里的账号:siot,密码是:dfrobot

2.发送端代码

import siot
import time

SERVER = "127.0.0.1"            #MQTT服务器IP
CLIENT_ID = ""                  #在SIoT上,CLIENT_ID可以留空
IOT_pubTopic  = 'xzbot/001'       #“topic”为“项目名称/设备名称”
IOT_UserName ='siot'            #用户名
IOT_PassWord ='dfrobot'         #密码

siot.init(CLIENT_ID, SERVER, user=IOT_UserName, password=IOT_PassWord)
siot.connect()
siot.loop()

a= ''

try:
    while True:
        a=str(input('请输入:'))
        siot.publish(IOT_pubTopic, "value %s"%a)
        print(a)
except:
    siot.stop()
    print("disconnect seccused")

3.接收端代码 

import siot
import time

SERVER = "127.0.0.1"        #MQTT服务器IP
CLIENT_ID = ""              #在SIoT上,CLIENT_ID可以留空
IOT_pubTopic  = 'xzbot/001'   #“topic”为“项目名称/设备名称”
IOT_UserName ='siot'        #用户名
IOT_PassWord ='dfrobot'     #密码

def sub_cb(client, userdata, msg):
    a=str(msg.payload)
    #print("\nTopic:" + str(msg.topic) + " Message:" + a)
    print(a[-2])

siot.init(CLIENT_ID, SERVER, user=IOT_UserName, password=IOT_PassWord)
siot.connect()
siot.subscribe(IOT_pubTopic, sub_cb)
siot.loop()

try:
    while True:
        pass
except:
    siot.stop()
    print("disconnect seccused")

4.查看我们的设备信息

打开我们的设备名称

 

在这里可以看到开发板端发送过来的信息

 

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: MQTTClient-C是一个基于C语言开发的MQTT客户端库。MQTT是一种轻量级的消息传输协议,被广泛应用于物联网等场景中。MQTTClient-C可以方便地实现MQTT客户端的开发,提供了一套简洁易用的接口。 首先,使用MQTTClient-C可以快速实现MQTT客户端的开发,无需从头开始设计和实现MQTT协议的通讯细节。库中封装了MQTT协议的各种细节,包括连接、订阅、发布等操作,开发者只需调用相应的接口即可完成。 其次,MQTTClient-C提供了多种不同层次的应用编程接口,可满足不同开发需求。开发者可以根据自身需求选择合适的API进行开发,使得代码更加简洁易读。 此外,MQTTClient-C还提供了丰富的可配置选项,可以根据实际需求灵活配置客户端参数。比如可以设置重连间隔、心跳频率、最大重试次数等,以适应各种网络环境和设备限制。 最后,MQTTClient-C具备良好的可移植性和跨平台性。它可以在不同的操作系统和硬件平台上运行,包括嵌入式设备和服务器等。这使得开发者能够更加灵活地选择合适的平台进行开发和部署。 综上所述,应用MQTTClient-C可以方便地实现MQTT客户端的开发,并且具备灵活的可配置性和跨平台性,是一种非常实用的工具。无论是在物联网领域还是其他场景中,MQTTClient-C都可以帮助开发者快速搭建稳定可靠的MQTT系统。 ### 回答2: MQTTClient-C是一个用于C语言的MQTT客户端库,用于与MQTT代理服务器进行通信。该库提供了一组API,使开发者能够轻松地建立与MQTT服务器的连接,发布和订阅消息。 使用MQTTClient-C,可以实现以下功能: 1. 建立与MQTT服务器的连接:使用MQTTClient-C,可以通过提供MQTT服务器的地址和端口号来建立与服务器的连接。 2. 发布消息:通过调用MQTTClient-C提供的API,可以向MQTT服务器发布消息。可以指定消息的主题,质量、消息内容等参数。 3. 订阅消息:使用MQTTClient-C,可以通过提供订阅的主题来订阅特定的消息。可以指定消息的质量等级。 4. 处理消息回调:MQTTClient-C允许开发者为接收到的消息注册回调函数。当接收到订阅的消息时,会调用注册的回调函数进行处理。 5. 支持SSL连接:MQTTClient-C支持通过SSL加密来建立与MQTT服务器的安全连接。 6. 消息持久化:MQTTClient-C支持消息持久化,即当未成功发送的消息被储存在本地,直到成功发送为止。 7. 支持遗嘱消息:MQTTClient-C支持发布遗嘱消息,即当客户端异常断开连接时,会自动发布指定的遗嘱消息。 总结来说,MQTTClient-C是一个功能强大的MQTT客户端库,适用于C语言开发者。它提供了一组API,使开发者能够轻松建立与MQTT服务器的连接,发布和订阅消息,并支持SSL连接和消息持久化等功能,有助于开发者构建可靠和安全的MQTT应用程序。 ### 回答3: MQTTClient-C 是一种用于在C语言环境下进行MQTT通信的开源客户端库。它基于MQTT协议实现了与MQTT代理服务器进行数据交互的功能。 MQTTClient-C 提供了一套简单易用的API,使开发人员能够快速地在C语言项目中实现MQTT通信功能。使用MQTTClient-C,我们可以轻松地订阅主题、发布消息以及处理订阅消息的回调。 MQTTClient-C 的特点包括: 1. 轻量级:MQTTClient-C 代码库非常小巧,可以轻松地嵌入到各种资源有限的嵌入式系统中,适用于各种物联网设备。 2. 跨平台:MQTTClient-C 支持各种主流操作系统,如Windows、Linux、FreeRTOS等,可以在不同平台上无缝地进行移植和集成。 3. 稳定可靠:MQTTClient-C 实现了MQTT 3.1.1版本的协议,支持QoS级别0、1和2,可以确保消息的可靠传输及交付。 4. 灵活可扩展:MQTTClient-C 提供了多样化的配置选项,可以根据需要进行灵活的参数设置,从而满足不同场景的需求。 使用MQTTClient-C,我们可以快速地实现物联网设备与服务器之间的即时通信和数据交换。例如,我们可以将传感器数据通过MQTTClient-C发布到MQTT代理服务器上,并通过订阅机制实现实时数据的传输和处理。同时,我们也可以通过MQTTClient-C订阅特定主题,实时接收服务器发送的指令或控制信息。 总而言之,MQTTClient-C 是一个功能强大且易于使用的C语言MQTT客户端库,使我们能够快速地开发出高效可靠的物联网应用程序。无论是开发嵌入式设备还是服务器端应用,MQTTClient-C 都是一个非常有价值的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪猪爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值