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

Ai-WB1系列 AT指令连接MQTT服务器

前言

本文主要介绍Ai-WB1-12F,Ai-WB1-32S模组、开发板系列使用出厂固件进行MQTT通信操作过程。

一、前期准备

1.1 硬件准备

Ai-WB1-12F,Ai-WB1-32S开发板+Type-C线
Ai-WB1-12F,Ai-WB1-32S模组+杜邦线若干+USB转TTL模块

1.2 软件准备

1.2.1 CH340和CP2102驱动

如果电脑没有安装有串口驱动则需要进行安装
安装包链接:https://docs.ai-thinker.com/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B72
在这里插入图片描述

1.2.2 下载EMQX软件

软件获取链接:https://www.emqx.cn/downloads#broker,这里以windows版本为例
在这里插入图片描述

二、接线方式

2.1 开发板接线

Ai-WB1系列开发板的接线都是一致的,只需要插入Type-C数据线即可。
在这里插入图片描述

2.2 模组接线

模组的接线则需要根据模组引脚进行连接,两款模组都是需要焊接四根线与USB转TTL连接即可。
具体需要焊接的引脚如图:
在这里插入图片描述
模块和USB转TTL接线如下:

Ai-WB1-12F/Ai-WB1-32SUSB To TTL
VCCVCC(3.3V)
GNDGND
TXRX
RXTX
接好线后实物如下:
在这里插入图片描述

三、开启EMQX服务器

将下载好的EMQX软件解压到自定义路径中,如本机路径为:D:\EMQX\emqx,打开Windows PowerShell,指定到EMQX软件的路径,输入“./bin/emqx start”命令,若无报错,即服务器开启成功
在这里插入图片描述
①打开浏览器,输入“本地IP:18083”或者“localhost:18083”域名,点击enter访问,输入账号“admin”,密码“public”,点击login
在这里插入图片描述
②进入Dashboard界面,点击Tools,选择Websocket,点击“Connect”;在Subscribe对话框中,Topic内容填写“WB1/online”,Qos选择0,点击Subscribe;在Message对话框中,Topic内容填写“WB1/EMQX”,Message内容填写“abcde”,Qos选择0
在这里插入图片描述
在这里插入图片描述

四、连接服务器

1.将连接好的开发板或者模组连接电脑USB口
2.打开串口调试软件,选择波特率为115200,停止位为1bit,数据位为8bit,校验位为无,流控为无,打开正确串口
在这里插入图片描述
打开正确的串口,开始发送AT指令
发送AT指令的顺序:

AT           #测试AT功能
AT+CWMODE=1				#设置模组进入STA模式
AT+CWJAP="ssid","password"			#连接wifi
AT+MQTTUSERCFG=0,1,"用户ID","账号","密码",0,0,""   #设置MQTT连接所需要的的参数,包括用户ID(不为空)、账号(admin)以及密码(public)
AT+MQTTCONN=0,"IP地址",1883,0      #连接MQTT服务器
AT+MQTTPUB=0,"WB1/online","Abcde",0,0	#发布一条topic为“WB1/online”,message为“Abcde”的数据,QOS设置为0
AT+MQTTSUB=0,"WB1/EMQX",0	    #订阅一条topic为“WB1/EMQX”,QOS为0的数据

Pub数据之后之后,DashBoard中Messages received显示sub到这条数据的时间、QOS值以及消息内容等信息,效果如下:
在这里插入图片描述
在Dashboard界面中将设置好的Message数据send出去之后,串口将显示接收到的数据内容,包括QOS值以及消息内容,效果如下:
在这里插入图片描述
关闭MQTT连接,在串口中输入AT指令:AT+MQTTCLEAN=0
注意:本文中客户端与服务器在同一局域网中实现通信功能,因此,需要连接到同一个wifi上

相关文章:

  • 国货之光!ATECLOUD—功能如此强大的测试测量上位机开发工具软件!
  • 【SpringBoot】71、SpringBoot中集成多数据源+动态数据源
  • Python美化输出 pprint
  • Java实现十进制与二进制互相转换
  • 改进YOLOv5系列:首发结合最新Extended efficient Layer Aggregation Networks结构,高效的聚合网络设计,提升性能
  • linux:vi和vim的使用
  • 老测试员偷偷告诉你:面试被问当前薪资?千万别瞎说大实话,答错可就亏大了
  • ComposeUI——下拉刷新+上拉加载(简单封装)
  • 【建议背诵】2022下半年软考「集成」100题(10)
  • LeetCode:寻找两个正序数组的中位数----多种解题方式
  • 超实用的JS常用算法详解(推荐)
  • 分布式版本控制系统Git的下载、安装与使用其复制GitHub项目代码的方法
  • 金仓数据库KingbaseES物理备份恢复最佳实践(执行备份)
  • 【CSS】表格、定位_普通流定位与浮动定位、其他css常用属性_05
  • 没有学过C语言可以学Java吗?
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • docker容器内的网络抓包
  • iOS 颜色设置看我就够了
  • java正则表式的使用
  • JS题目及答案整理
  • LeetCode29.两数相除 JavaScript
  • rc-form之最单纯情况
  • Travix是如何部署应用程序到Kubernetes上的
  • vue中实现单选
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 安装python包到指定虚拟环境
  • 安卓应用性能调试和优化经验分享
  • 闭包--闭包之tab栏切换(四)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 复杂数据处理
  • 开发基于以太坊智能合约的DApp
  • 手写双向链表LinkedList的几个常用功能
  • 移动端唤起键盘时取消position:fixed定位
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • #pragma once与条件编译
  • (10)STL算法之搜索(二) 二分查找
  • (11)MATLAB PCA+SVM 人脸识别
  • (20050108)又读《平凡的世界》
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (SERIES10)DM逻辑备份还原
  • (zhuan) 一些RL的文献(及笔记)
  • (第30天)二叉树阶段总结
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (算法)Travel Information Center
  • (已解决)vscode如何选择python解释器
  • (转)ABI是什么
  • (转)jdk与jre的区别
  • (转)Linq学习笔记
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)母版页和相对路径