当前位置: 首页 > news >正文

莆田网站建设技术托管温州微网站

莆田网站建设技术托管,温州微网站,文章分享网站模版,在什么网站做推广最好目录 1. 前言 2. MQTT介绍 2.1 什么是mqtt#xff1f; 2.2 特点 2.3 应用场景 2.4 MQTT协议实现方式 3. 硬件及接线方式 3.1 硬件准备 3.2 硬件介绍 3.3 接线图 4. 测试 4.1 MQTT测试流程图 4.2 相关代码 4.3 测试现象 5. 相关链接#xff1a; 1. 前言 随着物… 目录 1. 前言        2. MQTT介绍 2.1 什么是mqtt 2.2 特点 2.3 应用场景 2.4 MQTT协议实现方式 3. 硬件及接线方式 3.1 硬件准备 3.2 硬件介绍 3.3 接线图 4. 测试 4.1 MQTT测试流程图 4.2 相关代码 4.3 测试现象 5. 相关链接  1. 前言                随着物联网技术的快速发展MQTTMessage Queuing Telemetry Transport协议已成为一种广泛使用的通讯协议它适用于设备间低带宽、高延迟、不可靠的网络通信。W5500是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器同时也是一颗工业级以太网控制芯片。在以太网应用中使用 W5500 MQTT应用协议让用户可以更加方便地在设备之间实现远程连接和通信。本教程将介绍W5500以太网MQTT应用的基本原理、使用步骤、应用实例以及注意事项帮助读者更好地掌握这一技术。 2. MQTT介绍 2.1 什么是mqtt         MQTTMessage Queuing Telemetry Transport消息队列遥测传输协议是一种基于发布/订阅publish/subscribe模式的“轻量级”通讯协议该协议构建于TCP/IP协议上。MQTT最大优点在于用极少的代码和有限的带宽为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议使其在物联网、小型设备、移动应用等方面有较广泛的应用。 2.2 特点 轻量级MQTT协议非常轻量它的开销很小适用于低带宽、低功耗设备和网络。发布/订阅模式MQTT采用发布/订阅模式客户端可以订阅一个或多个主题Topic并且可以在不知道其他客户端的情况下发布消息到主题。QoS支持MQTT支持三种服务质量QoS等级可以在发布和订阅时指定。 这些等级为0、1、2提供不同的消息传递保证。遗嘱机制MQTT支持遗嘱Will机制当客户端异常断开连接时可以通过遗嘱机制通知其他客户端。保留消息MQTT支持保留消息Retained Message允许客户端发布一个保留的消息到主题而后连接到该主题的新订阅者可以立即接收到该消息。连接控制MQTT支持连接控制机制允许客户端在连接时指定自己的客户端ID、用户名和密码。安全性MQTT支持TLS/SSL加密通信协议以确保数据的安全传输。基于 TCP/IP 网络连接 2.3 应用场景 科学研究在科学研究中需要对实验数据进行采集和传输使用MQTT协议可以有效地解决数据传输过程中的丢包问题保证数据传输的稳定性和完整性。金融行业在金融行业中需要对交易信息进行实时监控和传输使用MQTT协议可以实现实时监控和传输并保证数据的稳定性和安全性。医疗行业在医疗行业中需要对患者的生命体征进行采集和传输使用MQTT协议可以有效地解决数据传输过程中的丢包问题保证数据传输的稳定性和完整性。能源行业在能源行业中需要对能源设备进行监控和控制MQTT协议正是满足这一需求而设计的它具有简单、可靠、灵活等特点在能源领域中得到了广泛应用。 2.4 MQTT协议实现方式         实现MQTT协议需要客户端和服务器端通讯完成在通讯过程中MQTT协议中有三种身份发布者Publish、服务器、订阅者Subscribe。其中消息的发布者和订阅者都是客户端消息代理是服务器消息发布者可以同时是订阅者。 MQTT传输的消息分为主题Topic和负载payload两部分 1Topic可以理解为消息的类型订阅者订阅Subscribe后就会收到该主题的消息内容payload 2payload可以理解为消息的内容是指订阅者具体要使用的内容。 2.5 遗嘱消息         客户端的遗嘱只在意外断线时才会发布如果客户端正常的断开了与服务端的连接这个遗嘱机制是不会启动的服务端也不会将客户端的遗嘱公布。         遗嘱消息可以看作是一个简化版的 PUBLISH 消息他也包含 Topic, Payload, QoS 等字段。遗嘱消息会在设备与服务端连接时通过 CONNECT 报文指定然后在设备意外断线时由服务端将该遗嘱消息发布到连接时指定的遗嘱主题Will Topic上。         一般建议设置遗嘱消息内容为client offline在我们的客户端连接上服务器时也向遗嘱主题发布一条client online消息。 3. 硬件及接线方式 3.1 硬件准备 W5100S-EVB-Pico开发板USB数据线、网线路由器pc 3.2 硬件介绍         W5100S-EVB-Pico是基于树莓派RP2040和全硬件TCP/IP协议栈控制器W5100S的微控制器开发板-基本上与树莓派Pico板相同但通过W5100S芯片增加了以太网功能。         W5100S采用WIZnet技术的硬件TCP / IP设计的一款嵌入式以太网控制器。在使用 W5100S时MCU 可以方便的处理 IPv4TCPUDPICMPIGMPARPPPPoE等TCP/IP 协议。W5100S 分别有 8KB 的发送缓存和接收缓存可以减少MCU 的开销。 主机可以同时使用 W5100S 的 4 个独立的硬件SOCKETs并基于每个硬件SOCKET 开发独立的互联网应用。 3.3 接线图 4. 测试 4.1 MQTT测试流程图 4.2 相关代码         我们打开例程中库文件的mqttx_client.c文件用到几个函数和定义         1.首先我们是对收发缓存大小和收发缓存数组进行定义         2.然后创建一个 MQTTCONNECTION结构体里面的参数有mqttHostUrl服务器网址port端口号clientid客户端idusername用户名password密码server_ip服务器ippubtopic发布主题subtopic1订阅主题QOS发布服务质量等级。         3.接下就是定义了一个mqtt_params结构体将结构体的参数填写进去其中mqttHostUrl服务器网址和server_ip服务器ip填写其中一个就可以端口固定为1883clientid客户端idclientid客户端id不能与同一个服务器下的clientid客户端id重名username用户名password密码可以任意填也可以选择不填订阅和发布根据自己来定保证与另一端客户端进行通信并且不受到别人干扰。服务质量等级也是根据自己的需求来定这里定义的是0消息最多传送一次。如果当前客户端不可用它将丢失这条消息 #define SOCKET_ID 0 #define ETHERNET_BUF_MAX_SIZE (1024 * 2)#define MQTT_SEND_BUFF_SIZE 2048 #define MQTT_RECV_BUFF_SIZE 2048 uint8_t mqtt_send_buff[MQTT_SEND_BUFF_SIZE] {0}; uint8_t mqtt_recv_buff[MQTT_RECV_BUFF_SIZE] {0}; typedef struct MQTTCONNECTION {char mqttHostUrl[1024];int port;char clientid[1024];char username[1024];char passwd[1024];uint8_t server_ip[4];char pubtopic[255];char subtopic1[255];int QOS; } mqttconn; mqttconn mqtt_params {.server_ip {54,244,173,190},.port 1883,.clientid 9a1d7719a8ac40d29311f26c5c5469dc,.username mqtt_username,.passwd 123456,.pubtopic 1234,.subtopic1 2345,.QOS 0, };1.定义一个net_info的结构体对静态网络参数进行配置mac地址不能与已经存在的mac地址有重复首位不能为偶数ip地址的设置如果连接路由器这必须与路由器在同一网段并且不能与路由器已经存在的ip有冲突下来是sn子网掩码常用的是255.255.255.0和gw网关路由器ipdns域名解析服务器然后dhcp设为静态获取网络 void network_init(void); wiz_NetInfo net_info {.mac {0x00, 0x08, 0xdc, 0x16, 0xed, 0x2e},.ip {192, 168, 124, 10},.sn {255, 255, 255, 0},.gw {192, 168, 124, 1},.dns {8, 8, 8, 8},.dhcp NETINFO_STATIC}; MQTTClient c {0};         1.NewNetwork是网络设置函数需传入的参数是网络配置的结构体指针和socket号         2.ConnectNetwork是连接网络函数需传入的参数是socket号、服务器ip、端口号         3.MQTTClientInit是客户端初始化函数需传入mqtt连接配置的结构体指针和网络配置的结构体指针、命令超时时间/ms、发送缓存和发送缓存大小、接收缓存和接收缓存大小。         4.将得到的数据存入到结构体 MQTTPacket_connectData中    void mqtt_init(void) {NewNetwork(n, 1); /*Obtain network configuration information*/ConnectNetwork(n, mqtt_params.server_ip, 1883); /*Connect to the MQTT server*/MQTTClientInit(c, n, 1000, mqtt_send_buff, MQTT_SEND_BUFF_SIZE, mqtt_recv_buff, MQTT_RECV_BUFF_SIZE);data.willFlag 0;data.MQTTVersion 4;data.clientID.cstring mqtt_params.clientid;data.username.cstring mqtt_params.username;data.password.cstring mqtt_params.passwd;data.keepAliveInterval 30;data.cleansession 1;sleep_ms(300);}烧录完程序后打开MQTTX工具信息配置好mqtt的信息。         订阅主题和发布主题以及遗嘱主题。 4.3 测试现象         我们可以看到串口打印信息中打印了网络连接上且配置好网络信息最后连接上了mqttx上的mqtt公共服务器。          用mqttx切换到发布消息将信息发送给W5100S_EVB_PICO。 最后可以看到串口打印了mqttx下发的消息表示发布成功。 5. 相关链接             本章例程链接http://examples/mqtt_client%20%C2%B7%20WIZnet%20HK/W5100S-EVB-PICO%E4%BE%8B%E7%A8%8B%20-%20%E7%A0%81%E4%BA%91%20-%20%E5%BC%80%E6%BA%90%E4%B8%AD%E5%9B%BD%20(gitee.com) MQTT V3.1.1官方文档链接http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf开发板资料链接http://docs.wiznet.io/Product/iEthernet/W5100S/w5100s-evb-pico WIZNET官方库连接https://github.com/Wiznet/ioLibrary_Driver/tree/ce4a7b6d07541bf0ba9f91e369276b38faa619bd
http://www.zqtcl.cn/news/684597/

相关文章:

  • 网站地图制作软件机械加工网免费铺货
  • 网站上线有什么线上活动可以做龙华建网站多少钱
  • 门户网站系统开发建设电脑优化
  • 公司建网站多少钱一个月服务佳的广州网站建设
  • 怎么创建网站建设徐州网站建设要多少钱
  • 微网站功能列表菜市场做建筑设计图库的网站设计
  • 制作网站支付方式定制网站开发哪里好
  • 常州网络网站建设行情软件app网站大全下载
  • 出台网站集约化建设通知彩票网站开发的
  • 怎样创建个人的网站怎么学做网站
  • 小江高端网站建设网站建设中可能升级
  • 网站建设的原则有哪些内容wordpress的底部版权
  • 一个网站建立团队大概要多少钱大连专业网站建设
  • 宁波网站公司相册插件wordpress
  • 科技网站域名大型网站开发团队
  • 温岭建设规划局网站注册新公司网上怎么核名
  • dede网站移动端怎么做golang 网站开发 开源
  • 织梦网站导航固定沈阳男科医院在线咨询免费
  • 四川华鸿建设有限公司网站网站建设需求文案
  • 汕头东莞网站建设怎么制作微信小程序app
  • 网站建设预算方案模板怎么做网络推广网站
  • 顺义网站开发wordpress内容主题模板下载
  • 永康做网站的化工网站模板免费下载
  • 潍坊高密网站建设如何做网页推广
  • 杭州房产网站建设wordpress 替换谷歌字体
  • 陕西省建设工程质量安全监督总站网站开发公司与施工单位工程造价鉴定报告
  • 嘉兴网站建设企业阿里巴巴国际贸易网站
  • 临沂手机网站建设珠海手机网站建设价格
  • 56m做图片视频的网站是什么软件开发和大数据哪个前景好
  • 郑州网站建设哪家做快消品的网站