esp8266

您所在的位置:网站首页 发布订阅是什么意思 esp8266

esp8266

2024-01-26 11:48| 来源: 网络整理| 查看: 265

前言:esp8266推出已久,esp8266-01/01s是常见的两款,本文通过抓包原始数据使用tcp透传来做简单的功能测试。

01和01s区别不大,一样使用即可,下图实为01s

*这里在Windows本地安装一个emq服务器(看连接状态,供调试查看客户端是否断开用)

    官网地址如下,安装后启动,官网有详细使用指导,看相应系统版本即可

    https://www.emqx.io/cn/products/broker

    然后浏览器输入 localhost:18083

    对模块操作后刷新浏览器即可查看当前连接客户端

为方便分析学习,安装一个网络抓包工具wireshark(可以直接复制里面的mqtt数据)

    百度搜索下载安装即可。。,打开软件,如下设置

   

 

    然后电脑本地使用mqtt调试助手连接你的云测试服务器:

ID填一个字节就好,方便看数据,然后连接,此时抓包软件将刷新数据:

8266 模块操作(默认波特率115200)     1.连接wifi AT+CWMODE_DEF=1 //设置station模式 (后缀_DEF的指令异常的把_EDF去掉试一下,正常则忽略,下同) AT+CWSTARTSMART //微信配网,手机连接同一wifi关注安信可科技官方公众号,微信开发里面有微信配网,跟着操作即可 //AT+CWJAP_DEF="wifi","password" //手动配网,需要时选择(若返回异常,换CWJAP试试) //AT+CWAUTOCONN=1 //上电自动连接wifi,根据需要配置 //AT+CIPSTA? //查询当前IP地址(若返回异常,换CIPSTA_DEF试试)     2.建立tcp连接 AT+CIPMODE=1 //选择透传模式,进入透传模式后tcp不会超时断开 AT+CIPSTART="TCP","m2m.eclipse.org",1883 //建立tcp连接,类似此格式,该服务器是一个公用测试服务器,改到你的 AT+CIPSEND //进入透传模式,然后配置一下串口助手如下 //1、取消发送新行,选择16进制发送 //2、接收16进制显示 //注1:取消发送新行,发送+++可退出透传,重新勾选发送回车换行即可使用AT指令 //注2:安信可提供的串口助手发送16进制后打钩会取消,可以用正点原子的串口助手,也有多条发送

开启上面的订阅的话,连接到mqtt端口即可看到connected会加1 ,如果退出透传的话,过一会儿会自动断开tcp连接。

    3.建立mqtt连接

     如图:

对连接和发送状态是否成功通过各种应答判断,这里对原始数据不进行解释 。。。,发送完成后刷新EMQ Dashboard可以看到客户端id正确,说明已经连接

 

   4.发布主题

还是先抓包得到16进制码,然后使用串口发送

注:这里抓包只是抓取mqtt原始数据,是连接到云服务器的,串口at实验连接到本地服务器,是为了在emq的Dashboard上刷新查看连接的客户端和一些连接设置,这么做的原因是我没找到emq的armhf版本,而mosquitto的系统状态订阅查看不方便。抓本地服务器的数据的话走的链路应该不一样,可以抓的到,但我不清楚怎么筛选。。故tcp包抓的到,但不能方便的通过找data来找原始数据。。。知道的同学可以评论留言。。。

5 .订阅主题

依旧如上,用对应客户端连接到云服务器,抓取订阅包,在mqtt连接时发送,确认返回值

订阅主题后其他客服端发布相应主题,只要mqtt没有断开即可收到订阅,如下:

 

 6.心跳包

 还是如上,抓取心跳包,重新开始抓包,等一会儿即可

在超时时间内发送心跳包就可以保持与服务器的连接

以上即8266用到的一些基本操作,对原始数据的理解对照mqtt协议即可,中文手册下载地址如下:

https://github.com/mcxiaoke/mqtt

注:上面因为使用了两个服务器,所以看起来很混乱。。。本篇操作思路是云服务器抓包,本地调试,清楚目的,怎么调都可以----------

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3