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

这篇具有很好参考价值的文章主要介绍了物联网MQTT通信------部署Easy IoT、SIoT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

在这次的项目开始时,我们使用了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参数

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

二、Easy IoT

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

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

1.如何注册和配置Easy Iot

http://iot.dfrobot.com.cnhttp://iot.dfrobot.com.cn

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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的主题就行

 物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能 

 

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

 

 

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

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

三、SIoT

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

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

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

链接:https://pan.baidu.com/s/1rfKQJz64B0NjTIH2aO4Ecg?pwd=1ozm 提取码:1ozmhttps://pan.baidu.com/s/1rfKQJz64B0NjTIH2aO4Ecg?pwd=1ozm

 1.运行服务器

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

 在最下面找到127.0.0.1

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

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.查看我们的设备信息

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能

打开我们的设备名称

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能 

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

物联网MQTT通信------部署Easy IoT、SIoT,开发板,物联网,物联网,iot,python,人工智能 文章来源地址https://www.toymoban.com/news/detail-762599.html

到了这里,关于物联网MQTT通信------部署Easy IoT、SIoT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用MQTT.fx模拟温度设备联调阿里云IOT物联网平台

    阿里云iot入门(2)初识物模型及利用属性和事件上报数据 阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制

    2024年02月07日
    浏览(63)
  • IOT(物联网)的七大通信协议

    在物联网协议中,我们一般分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信;通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。 上图为物联网联接的问题空间,其中物

    2024年02月07日
    浏览(49)
  • Modbus TCP/BACnet IP/MQTT物联网网关IOT-810介绍及其典型应用

    伴随着计算机技术以及互联网的发展,物联网这个概念已经逐渐进入我们的日常生活,例如智能泊车,智能家居,智能照明,智能楼宇等。智能楼宇是将传统的楼宇自控系统与物联网技术相融合,把系统中常见的传感器、设备、嵌入式计算机接入到网络,在云端统一进行管理

    2024年02月17日
    浏览(60)
  • IOT开发---Android MQTT使用

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议。 该协议构建于TCP/IP协议上,它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于

    2024年02月10日
    浏览(46)
  • 【IoT网络层】STM32 + ESP8266 +MQTT + 阿里云物联网平台 |开源,附资料|

    🌟博主领域:嵌入式领域人工智能软件开发 本节目标: 通过MQTT.fx模拟连接或通过串口连接ESP8266发送AT命令,实现阿里云物联网平台发送数据同时接收数据,IOT studio界面显示数据。具体来说:使用ESP8266 ESP-01来连接网络,获取设备数据发送到阿里云物联网平台并显示且oled显

    2024年02月04日
    浏览(61)
  • 单片机与阿里云的mqtt简单通信(塔石nb-iot篇)

    目录 前期准备: 阿里云部分 塔石部分 单片机部分 这篇文章主要记录了一次单片机通过塔石的模块,实现与阿里云的mqtt通信(仅能简单传递信息,不涉及更深入操作)的过程。 其中会包括如,阿里云物联网平台中“产品”与“设备”的创建,塔石nb-iot模块的使用等。 1.塔石

    2024年02月09日
    浏览(43)
  • 物联网协议NB-IoT,LORA,wifi,蓝牙,zigbee,MQTT,COAP之间的关系

    NB-IoT,LORA,WIFI,蓝牙,zigbee,4G都是物理层的,这几个都需要芯片模组支持(硬件支持) 而MQTT,COAP,HTTP都是应用层协议,这些需要开发服务器,或者对接云平台厂商(软件支持) 所以(MQTT,COAP,HTTP)是居于(NB-IoT,LORA,WIFI,蓝牙,zigbee,4G)的上层协议 不需要网关:

    2024年02月15日
    浏览(56)
  • Mainflux IoT:Go语言轻量级开源物联网平台,支持HTTP、MQTT、WebSocket、CoAP协议

    Mainflux是一个由法国的创业公司开发并维护的 安全、可扩展 的开源物联网平台,使用 Go语言开发、采用微服务的框架。Mainflux支持多种接入设备,包括设备、用户、APP;支持多种协议,包括HTTP、MQTT、WebSocket、CoAP,并支持他们之间的协议互转。 Mainflux的南向接口连接设备,北

    2024年02月01日
    浏览(114)
  • IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤

    ​​ 必要软件环境 进入原网页# 务必保证至少需要给 docker 分配:1 核 CPU 以及 4G 以上的运行内存! JDK : 推荐使用 Oracle JDK 1.8 或者 OpenJDK8 ,理论来说其他版本也行; Maven : 推荐使用 Maven 3.8 ,理论来说其他版本也行; IDE : IntelliJ IDEA 或者 Eclipse ,理论来说其他 Java IDE 也行;

    2024年02月11日
    浏览(49)
  • PandaX : Go语言企业级 IoT 物联网平台快速开发框架

    PandaX  是一个基于前后端分离架构开发的开源企业级物联网平台低代码开发基座,后端系统采用 Go 语言和前端基于 VUE3 开发,支持设备接入、设备管控,规则链引擎,云组态,可视化大屏,报表设计器,表单设计器,代码生成器等功能,帮助你快速建立企业 IoT 物联网平台相

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包