文章目录

一、华为云平台操作

二、esp32端定义


 

一、华为云平台操作

        一样的操作,购买实例->创建产品->创建设备->添加属性

首先打开华为云平台:选择接入IOTDA,并进行实例的购买:

创建产品:

 在产品详情中添加属性:

在产品中添加设备,创建设备:

 

 

点击查看设备,可以看到相关要使用到的设备信息以及MQTT接入点信息等:

 

设备信息:

 MQTT连接参数信息:

 至此,华为云要操作的就完毕了。。。。。

二、esp32端定义

下面是我使用的esp32连接上华为云平台并间隔2s向华为云上传信息,如下所示,大家在使用时可以改为自己的wifi信息以及,MQTT接入信息等。

#include <WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>

const char* ssid = "chelsea";
const char* password = "19191919";

// 华为云MQTT配置
const char* mqtt_server = "5df46bb70c.st1.iotda-device.cn-north-4.myhuaweicloud.com";
const int mqtt_port = 1883;
const char* mqtt_client_id = "6825e2d59314d118511c1f6d_esp32_device_0_0_2025051513";
const char* mqtt_username = "6825e2d59314d118511c1f6d_esp32_device";
const char* mqtt_password = "1125d2921908d5a54869edace2a3c9a26eaf462f5954eabf58c3f5a960fa682e";

// MQTT主题
const char* mqtt_topic = "$oc/devices/6825e2d59314d118511c1f6d_esp32_device/sys/properties/report";//可改为自己的设备id

// 时间变量
unsigned long previousMillis = 0;
const long interval = 2000; // 2秒

WiFiClient espClient;
PubSubClient client(espClient);

void setup_wifi() {
  delay(10);
  Serial.println();
  Serial.print("正在连接WiFi: ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi连接成功");
  Serial.println("IP地址: ");
  Serial.println(WiFi.localIP());
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("尝试连接MQTT服务器...");
    if (client.connect(mqtt_client_id, mqtt_username, mqtt_password)) {
      Serial.println("连接成功");
    } else {
      Serial.print("连接失败, 错误代码=");
      Serial.print(client.state());
      Serial.println(" 5秒后重试");
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, mqtt_port);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  unsigned long currentMillis = millis();
  
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    
    // 创建华为云IoT平台要求的JSON格式
    StaticJsonDocument<256> doc;
    JsonArray services = doc.createNestedArray("services");
    JsonObject service = services.createNestedObject();
    // 使用您在华为云平台上定义的服务ID
    service["service_id"] = "demo_esp32_1"; // 根据平台上定义的服务ID修改
    JsonObject properties = service.createNestedObject("properties");
    properties["message"] = "chelsea the king of north london";
    
    // 将JSON序列化为字符串
    String jsonString;
    serializeJson(doc, jsonString);
    
    // 发送消息
    Serial.print("正在发布消息: ");
    Serial.println(jsonString);
    client.publish(mqtt_topic, jsonString.c_str());
  }
}

编译后烧录: 

     太合理了 !!!!!

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐