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

ESP8266 连接 MQTT 服务器EMQX 连接MQTTX

目录

1.先用有一台自己的云服务器

2. 使用FinalShell连接阿里云云服务器ECS

3.安装宝塔

4.在云服务器打开8888端口

5.使用外网面板地址打开宝塔面板

6.安装Docker

7.下载emqx

8.打开emqxWeb 界面

9.下载MQTTX

10.EMQX加一个客户端

11.开始通信

12.加入单片机ESP8266


1.先用有一台自己的云服务器

我使用的是阿里云服务器ECS

阿里云icon-default.png?t=O83Ahttps://www.aliyun.com/?spm=5176.29188366.J_4VYgf18xNlTAyFFbOuOQe.2.2ed63e4dKVYu9u

2. 使用FinalShell连接阿里云云服务器ECS

在云服务器管理控制台里面,点击实例,然后点击更多操作

然后点击重置实例密码

 

修改完密码重启一下

就可以了

然后就可以连接了

如果不行的话,就

管理规则,入方向,快速添加

然后重启实例,再重新连接就可以了

3.安装宝塔

点击 宝塔网站

选择Linux

url=https://download.bt.cn/install/install_lts.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_lts.sh $url;fi;bash install_lts.sh ed8484bec

然后打开在finalshell里面输入这句代码,就可以安装宝塔了

安装完结尾会有一大串信息

记住面板账户登录信息

 外网面板地址: 
 内网面板地址: 
 username: 
 password: 

4.在云服务器打开8888端口

因为宝塔用的是8888端口

5.使用外网面板地址打开宝塔面板

首次进入,根据提示做吧,根据自己保存的信息

6.安装Docker

点击就行了,很简单的

7.下载emqx

点就行了,很简单的

8.打开emqxWeb 界面

然后进入

ip:18083 

如果进入不了,就去服务器那里放行18083端口,都应该会了吧

9.下载MQTTX

这个下不下都可以吧,只是可以模拟一个客户端

https://mqttx.app/zh/downloads

直接无脑下就可以了,然后打开

要是不行的话,就去服务器放行1883端口

10.EMQX加一个客户端

11.开始通信

可以看到连接数已经是2了,一个是在EMQX网页的客户端,一个是你下载的MQTTX的客户端

在EMQX客户端设置发布和订阅的主题都为topic

在MQTTX设置主题与发布的内容

发送后,在web端接收成功

在web端发送,在MQTTX端接收

在MQTTX也可以成功接收

成功了

12.加入单片机ESP8266

开发板是这个

单片机代码如下

#include <ESP8266WiFi.h>
#include <PubSubClient.h>const int ledPin = D8; // LED连接到的GPIO引脚const char* ssid = "wifi名字";
const char* password = "wifi密码";
const char* mqtt_server_ip = "你自己的ip"; // 直接使用 IP 地址
const int mqtt_port = 1883;
const char* mqtt_client_id = "pc";
const char* mqtt_user = "你EMQX设置的用户名(如果有)"; 
const char* mqtt_password = "密码"; WiFiClient espClient;
PubSubClient client(espClient);void callback(char* topic, byte* payload, unsigned int length);void setup() {Serial.begin(9600);Serial.println("Connecting to WiFi");// 设置D8引脚为输出模式pinMode(ledPin, OUTPUT);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.print("IP address: ");Serial.println(WiFi.localIP());client.setServer(mqtt_server_ip, mqtt_port); // 使用 IP 地址代替域名client.setCallback(callback);// 尝试连接到 MQTT 服务器while (!client.connect(mqtt_client_id, mqtt_user, mqtt_password)) {Serial.println("Failed to connect to MQTT server, retrying...");delay(5000); // 重试连接前等待5秒}Serial.println("Connected to MQTT server");client.subscribe("topic");  //你自己订阅的主题
}void loop() {if (!client.connected()) {Serial.println("Reconnecting to MQTT server...");while (!client.connect(mqtt_client_id, mqtt_user, mqtt_password)) {delay(5000); // 重试连接前等待5秒}Serial.println("Connected to MQTT server");client.subscribe("led");}client.loop();
}void callback(char* topic, byte* payload, unsigned int length) {Serial.print("Message arrived [");Serial.print(topic);Serial.print("] ");char message[length + 1];for (int i = 0; i < length; i++) {message[i] = (char)payload[i];}message[length] = '\0';Serial.println(message);}

接入单片机,打开串口

客户端发送,esp8266接收

esp8266成功接收

http://www.lryc.cn/news/473653.html

相关文章:

  • Python中如何处理异常情况?
  • openpnp - 在openpnp中单独测试相机
  • Spark窗口函数
  • Idea、VS Code 如何安装Fitten Code插件使用
  • elasticsearch7.x在k8s中的部署
  • 校园社团信息管理平台:Spring Boot技术实战指南
  • 【Linux】从内核角度理解 TCP 的 全连接队列(以及什么是 TCP 抓包)
  • 太速科技-712-6U VPX飞腾处理器刀片计算机
  • 深度学习(八) TensorFlow、PyTorch、Keras框架大比拼(8/10)
  • thinkphp中命令行工具think使用,可用于快速生成控制器,模型,中间件等
  • Discourse 是否支持手机注册
  • 软件测试学习笔记丨Flask框架-请求与响应
  • 【C++笔记】list结构剖析及其模拟实现
  • C#进阶1
  • PHP如何对输出进行转义
  • Windows 10 安装Docker踩过的坑和解决-31/10/2024
  • 【应急响应】Linux植入恶意程序排查流程
  • 微信小程序app.js里面onLaunch里面的函数比page里面的onshow里面的方法后执行
  • 斐波那契时间序列,精准捕捉市场拐点 MT4免费公式源码!
  • 计算机的错误计算(一百四十)
  • JavaEE初阶---网络原理(四)--IP协议/DNS协议
  • LeetCode20:有效的括号
  • 简单介绍Class文件、Dex文件以及ELF文件
  • Vivo开奖了,劝退价。。
  • 鸿蒙打包hvigorw clean报错No npmrc file is matched in the current user folder解决
  • 无人机救援系统基本组成
  • git入门教程
  • AMBA:AHB_Slave_Mux的解析与HREADY、HREADYOUT
  • 初始Linux (2) : 权限
  • 在Mac下安装时间序列软件Hector