ESP8266[ 连接巴发云MQTT/TCP ] 日志2024/6/19

设备:esp8266开发板

库文件:

#include <WiFiManager.h> //自动配网库

#include <PubSubClient.h>//MQTT支持库

#include <ESP8266WiFi.h>//ESP8266支持库

步骤一: 巴法科技&巴法云-巴法设备云-巴法物联网云平台巴法设备云,一站式物联网云平台解决方案icon-default.png?t=N7T8https://bemfa.com/

 注册账号并创建 MQTT主题:

MQTT连接源码: 

#include <WiFiManager.h> // 包含WiFi管理器库
#include <PubSubClient.h> // 包含用于MQTT的PubSubClient库
#include <ESP8266WiFi.h> // 包含ESP8266 WiFi库

// 定义WiFi Manager对象
WiFiManager wifi;
// MQTT服务器的地址和端口
const char* mqttserver = "bemfa.com";
const int prot = 9501;
// 定义WiFi客户端对象
WiFiClient ClientA;
// 定义PubSubClient对象
PubSubClient ClientB(ClientA);

void setup() {
  // 初始化串口通信
  Serial.begin(9600);
  // 设置MQTT服务器和端口
  ClientB.setServer(mqttserver, prot);
  Serial.println("");
  // 自动连接WiFi
  wifi.autoConnect("路由名");//当连接失败可用于ap配网名
  //wifi.autoConnect("路由名","密码");//直接连接
  // 等待连接完成
  delay(2500);
  if (WiFi.status() == WL_CONNECTED) {
    // 打印本地IP地址
    Serial.println(WiFi.localIP());
  } else {
    // 如果没有连接到WiFi,打印错误信息并等待
    delay(2500);
    if (WiFi.status() != WL_CONNECTED) {
      Serial.println("Failed to connect to Wi-Fi!");
    }
  }
}

void loop() {
  // 等待10毫秒
  delay(10);
  // 如果MQTT客户端已连接,则执行循环
  if (ClientB.connected()) {
    // 循环处理MQTT消息
    ClientB.loop();
  } else {
    // 尝试连接到MQTT服务器
    connectMQTTServer();
  }
  // 等待1秒钟
  delay(1000);
}

// 连接到MQTT服务器的函数
void connectMQTTServer() {
  // 客户端ID
  String clientId = "连接标识,你的密匙";
  
  // 使用clientId连接到MQTT服务器
  if (ClientB.connect(clientId.c_str())) {
    // 延迟200毫秒
    delay(200);
    // 如果状态为0(已连接)并且订阅了"MQTT"主题,则打印连接成功的消息
    if (ClientB.state() == 0 && ClientB.subscribe("MQTT")) {
      Serial.println("Connected successfully!");
    }
    
  } else {
    // 打印连接失败的消息
    Serial.println("Failed to connect!");
  }
  
}

 TCP连接

 TCP   连接源码:

 

#include <WiFiManager.h>  // 包含WiFi管理库

#include <ESP8266WiFi.h>  // 包含ESP8266 Wi-Fi库

// 定义Wi-Fi和TCP相关常量
const char* mqttserver = "bemfa.com"; // TCP服务器地址
const int prot = 8344;               // TCP服务器端口
WiFiClient ClientA;                 // 创建一个WiFi客户端对象


void setup() {
  Serial.begin(9600);                // 开始串行通信

  Serial.println("");
  wifi.autoConnect("路由器名");     // 自动连接Wi-Fi网络
  delay(2500);                     // 等待2.5秒,以便Wi-Fi稳定连接
  if (WiFi.status() == WL_CONNECTED) {
    // 如果Wi-Fi已连接
    Serial.println(WiFi.localIP()); // 打印本地IP地址
  } else {
    // 如果Wi-Fi连接失败
    delay(2500);                   // 再等待2.5秒
    if (WiFi.status() != WL_CONNECTED) {
      Serial.println("联网失败!"); // 打印错误消息
    }
  }
}

void loop() {
  delay(10);                       // 延时10毫秒
  
    connectTCPServer();            // 调用函数连接TCP服务器
  
  delay(1000);                    // 每秒执行一次循环
}

// 函数定义:连接TCP服务器
void connectTCPServer() {
  // 预定义主题字符串
  char topic[100] = "cmd=1&uid=填入你的密匙&topic=MQTT\r\n";
  
  // 使用之前定义的WiFi客户端连接到TCP服务器
  if (ClientA.connect(mqttserver, prot)) {
    // 如果连接成功
    ClientA.print(topic);         // 向服务器发送主题字符串
    delay(200);                  // 短暂延时
    Serial.println("连接成功!");   // 打印成功信息
  } else {
    Serial.println("连接失败!");   // 如果连接失败,打印错误信息
  }
}

连接成功 

官方帮助文档: 

MQTT 

简介 | 巴法文档中心巴法1.0文档中心icon-default.png?t=N7T8https://cloud.bemfa.com/docs/src/mqtt.html

 TCP

简介 | 巴法文档中心巴法1.0文档中心icon-default.png?t=N7T8https://cloud.bemfa.com/docs/src/tcp.html 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值