目录

ESP32接入阿里云实战

目录

ESP32接入阿里云实战

云平台设置

登录阿里云开发平台,进入公共实例点击创建产品,如图所示:

https://i-blog.csdnimg.cn/blog_migrate/4f4d70ba2e9391d0323cb617e0fca602.png

输入自定义产品名称

https://i-blog.csdnimg.cn/blog_migrate/a42636923dc8b26b54766d4de0364f16.png

创建子设备,根据需求创建相应的设备,

https://i-blog.csdnimg.cn/blog_migrate/43f1a7ec4b73d5ddcb6027cfe60b63ea.png

创建好子设备后来到规则引擎里,找到云产品流转,所谓的消息对接转发的地方。

https://i-blog.csdnimg.cn/blog_migrate/1efa3adb4f0895ee40c20201c162cc16.png

根据提示创建规则,随后在设备页面中查看设备的三元组信息

https://i-blog.csdnimg.cn/blog_migrate/dd7a7e4bf0e3f9381db5198c0856a0ea.png

通过工具解析出数据

https://i-blog.csdnimg.cn/blog_migrate/6cfbd68fb74bc68bf09f3a65d1497d9c.png

重写设备连接函数

void reconnect() //MQTT连接订阅函数
{

if (client.connected()) {
   return;
  }

  Serial.print(F("Connecting to MQTT... "));

  int8_t ret;
  uint8_t retries = 3;

  while (!client.connect(MQTT_CLIENT_ID, MQTT_USERNAME,MQTT_PASSWORD)) { // connect will return true for connected
     // Serial.println(connectErrorToString(client.state()));
      Serial.println(F("Retrying MQTT connection in 5 seconds..."));
      client.disconnect();
      delay(5000);  // wait 5 seconds
      retries--;
      if (retries == 0) {
        // basically die and wait for WDT to reset me
        while (1);
      }
      yield();
  }
  Serial.println(F("Success!"));
  // 订阅主题
  client.subscribe(TOPIC1);

在Arduino根目录下找到PubSubClient.h更改设备保活时间,

https://i-blog.csdnimg.cn/blog_migrate/95be243286d3f6068d06d2db5e2d4b7d.png

https://i-blog.csdnimg.cn/blog_migrate/4bc93faba17a90691dd27c254718299a.png

app保活时间

https://i-blog.csdnimg.cn/blog_migrate/c8a96536eaab6ac0df49ae80e4699e97.png