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連接到騰訊雲物聯網平臺,如有錯誤,還望指正

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