arduino-esp32连接到腾讯云物联网开发平台

ESP32是一系列低成本,低功耗的单晶片微控制器,集成了Wi-Fi和双模蓝牙,所以在物联网领域应用广泛。arduino是一个广受欢迎的开源硬件平台,借助arduino-esp32,我们可以使用arduino开发esp32。今天这篇文章介绍下如何通过arduino将esp32连接到腾讯云物联网开发平台

准备

  1. esp32-devkit-v1/v4
  2. arduino IDE

接下来安装esp32_arduino的开发库,官网给了通过Arduino IDE,platform IO或者手动安装方式,这里介绍下通过Arduino IDE安装:

一. 打开文件>首选项
二. 将下面的地址添加到附加开发板管理器网址

https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json


三. 打开开发板管理器

四. 搜索 esp32,然后选择安装

安装好后,我们可以在开发板中找到 esp32的开发板

安装其他依赖

由于esp32是通过MQTT协议连接到物联网平台的,所以我们需要一个实现了mqtt client的库,帮助我们发布订阅相关的topic,需要一个JSON库,帮我们解析JSON。具体步骤是,在工具>管理库中,查找PubSubclientEspMQTTclient,并安装

下面是我安装好之后的截图:

此外,同样按照上面的方式来安装ArduinoJSON,用来序列化和反序列化物模型的JSON数据

编写代码

上面的库安装好之后,在物联网平台创建设备之后,我们就可以开始连到MQTT broker了。直接上代码,这里要注意的一点是username和password是在连接到云端mqtt broker的时候需要填入的,可以通过这个在线工具生成。

#include "EspMQTTClient.h"
#include <ArduinoJson.h>

EspMQTTClient client(
  "", // wifi账号
  "", // wifi密码
  "Z9R4GLTFW4.iotcloud.tencentdevices.com",  // MQTT Broker server ip
  "username", 
  "password", 
  "TestClient"      // Client name that uniquely identify your device
);
void setup() {
  Serial.begin(115200);  
}

void onConnectionEstablished() {
  Serial.println("connect to mqtt success ");
  // 订阅控制指令的topic
  client.subscribe("$thing/down/property/Z9R4GLTFW4/dev1", [] (const String &payload)  {
    Serial.println(payload);
    DeserializationError error = deserializeJson(doc, payload);
  
    // Test if parsing succeeds.
    if (error) {
      Serial.print("deserializeJson() failed: ");
      Serial.println(error.f_str());
      return;
    }
    if (doc["params"]["temperature"] == 1) {
      digitalWrite(LED_BUILTIN, HIGH);
    } else {
      digitalWrite(LED_BUILTIN, LOW);
    }
  });

}
void loop() {
  client.loop();
  publish();
}

烧录

工具>开发板中选择正确的开发板esp32-devkit-v1, 在工具>端口中选择正确的串行端口,最后点击上传即可

总结

本文主要讲了如何通过arduino将esp32连接到腾讯云物联网平台,如有错误,还望指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章