国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Esp32_Arduino接入騰訊云筆記

這篇具有很好參考價值的文章主要介紹了Esp32_Arduino接入騰訊云筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ESP32是一款由樂鑫科技(Espressif Systems)推出的雙核、低功耗、集成Wi-Fi和藍牙的單芯片微控制器。它采用了Tensilica Xtensa LX6高性能處理器,具有大量的GPIO引腳、模數(shù)轉(zhuǎn)換器、SPI、I2S、UART、PWM、I2C和SD卡接口等功能,可以滿足各種物聯(lián)網(wǎng)(IoT)應(yīng)用的需求。由于其高度集成和低功耗特性,ESP32廣泛應(yīng)用于智能家居、智能城市、工業(yè)自動化、智能健康、車聯(lián)網(wǎng)等領(lǐng)域。

1.1 準備

軟件:Arduino IDE
硬件:esp32-dev-module

1.2 esp32_Arduino的MQTT庫安裝

esp32通過MQTT協(xié)議連接到物聯(lián)網(wǎng)平臺,我們需要一個mqtt client的庫,幫助我們發(fā)布訂閱相關(guān)的topic。我們還需要一個JSON庫,幫我們解析JSON,用來序列化和反序列化物模型的JSON數(shù)據(jù)。
在工具>管理庫中,查找PubSubclient、ArduinoJSON和EspMQTTclient,并安裝。

1.3 MQTT連接騰訊云的相關(guān)配置

這里使用騰訊云平臺,創(chuàng)建物聯(lián)網(wǎng)公共實例。
(1)填寫域名和端口
${productid}.iotcloud.tencentdevices.com:1883
(2)生成username和password
要注意的是username和password是在連接到云端mqtt broker的時候需要填入的,可以通過這個在線工具生成。Hmac簽名算法選擇【HMAC-SHA1】。
(3)填寫訂閱和發(fā)布的消息,可從云平臺中獲得。
發(fā)送的消息指令,具體數(shù)據(jù)格式可通過云端的調(diào)試功能發(fā)送一條消息進行測試。
Esp32_Arduino接入騰訊云筆記,嵌入式,騰訊云,筆記

1.4 編寫代碼

#include <Arduino.h>
#include <WiFi.h>
#include "PubSubClient.h"
#include <ArduinoJson.h>
DynamicJsonDocument doc(1024);

const char *ssid = "climbot";
const char *pwd  = "climbot903B";
const char *mqtt_server = "E3TGIRQYNA.iotcloud.tencentdevices.com";
const char *mqtt_username = "E3TGIRQYNA01;12010126;CT9W4;1690882370";
const char *mqtt_userpwd  = "72b711c5d7f7e1c76cfca1a785fbddfd3f744163;hmacsha1";
const char *mqtt_clientid = "E3TGIRQYNA01";
const char *mqtt_pub_topic = "$thing/up/property/E3TGIRQYNA/01";
const char *mqtt_sub_topic = "$thing/down/property/E3TGIRQYNA/01";

bool power_switch;
float longtitude; 
float latitude;   
int power_percent = 0;

#define REPORT_DATA_TEMPLATE "{\"method\":\"report\",\"clientToken\":\"00000001\",\"params\":{\"power_switch\":%d,\"GPS_Info\":{\"longtitude\":%f,\"latitude\":%f},\"_mesh_generic_power_percent\":%d}}"

WiFiClient espClient;
PubSubClient mqttclient(espClient);
long lastMsg = 0;
char report_buf[1024];

void callback(char* topic, byte* payload, unsigned int length)
{
  Serial.print("--->Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  Serial.println();
  Serial.print("payload [");
  for (int i=0;i<length;i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

//處理上位機的控制指令
  DeserializationError error = deserializeJson(doc, payload);
    // Test if parsing succeeds.
      if (error) {
        Serial.print("deserializeJson() failed: ");
        Serial.println(error.f_str());
        return;
      }else{
        if (doc["clientToken"]!="00000001") {
          if (doc["params"]["power_switch"] == 1) {
            Serial.print("Power On ");
            power_switch=1;
          } else {
            Serial.print("Power Off ");
            power_switch=0;
          }
        }
      }

}

void setup_wifi()
{
    Serial.printf("Connect to %s ", ssid);
    WiFi.begin(ssid, pwd);
    while (WiFi.status() != WL_CONNECTED) {
        Serial.printf(".");
        delay(500);
    }
    Serial.println("Connected!");
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());
}

void setup() {
    Serial.begin(115200);

    setup_wifi();

    mqttclient.setServer(mqtt_server, 1883);// connect mqtt server
    mqttclient.setCallback(callback);
    mqttclient.setKeepAlive(65535);
    while (!mqttclient.connect(mqtt_clientid, mqtt_username, mqtt_userpwd)) {
        Serial.println("mqtt connect fail, reconnect");
        delay(2000);
    }
    Serial.println("mqtt connected!");
    
    // sub topic
    boolean ret = mqttclient.subscribe(mqtt_sub_topic);
    if (ret != true) {
        Serial.printf("mqtt subscribe topic [%s] fail\n", mqtt_sub_topic);
    }
    Serial.printf("mqtt subscribe topic [%s] ok\n", mqtt_sub_topic);
}

void loop() {
    // client loop
    mqttclient.loop();

    // pub topic
    long now = millis();
    if (now - lastMsg > 10000) {
        lastMsg = now;
        memset(report_buf, 0, 1024);
        sprintf(report_buf, REPORT_DATA_TEMPLATE, power_switch,longtitude,latitude,power_percent);
        Serial.println(report_buf);
        if (++power_percent > 100) {//模擬傳感器數(shù)據(jù)
            power_percent = 0;
        }
         if (++longtitude > 100) {
            longtitude = 0;
        }
          if (++latitude > 100) {
            latitude = 0;
        }
        
        if (mqttclient.publish(mqtt_pub_topic, report_buf)) {
            Serial.printf("mqtt publish topic [%s] ok\n", mqtt_pub_topic);
        } else {
            Serial.printf("mqtt publish topic [%s] fail\n", mqtt_pub_topic);
        }
    }
}

1.5 燒錄和測試

點擊下載按鈕,待下載完成后,打開串口監(jiān)視器可看到打印的數(shù)據(jù)。打開騰訊云平臺可查看設(shè)備在線狀態(tài)。
Esp32_Arduino接入騰訊云筆記,嵌入式,騰訊云,筆記文章來源地址http://www.zghlxwxcb.cn/news/detail-618287.html

到了這里,關(guān)于Esp32_Arduino接入騰訊云筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【嵌入式學(xué)習筆記】嵌入式基礎(chǔ)9——STM32啟動過程

    【嵌入式學(xué)習筆記】嵌入式基礎(chǔ)9——STM32啟動過程

    程序段交叉引用關(guān)系(Section Cross References):描述各文件之間函數(shù)調(diào)用關(guān)系 刪除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被刪除的冗余程序段(函數(shù)/數(shù)據(jù)) 映像符號表(Image Symbol Table):描述各符號(程序段/數(shù)據(jù))在存儲器中的地址、類

    2024年02月15日
    瀏覽(64)
  • 物聯(lián)網(wǎng)項目分享 基于ESP32的在線墨水屏桌面擺件 -物聯(lián)網(wǎng) 單片機 嵌入式

    物聯(lián)網(wǎng)項目分享 基于ESP32的在線墨水屏桌面擺件 -物聯(lián)網(wǎng) 單片機 嵌入式

    hr style=\\\" border:solid; width:100px; height:1px;\\\" color=#000000 size=1\\\" ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最

    2024年02月21日
    瀏覽(96)
  • 通信工程畢設(shè) 基于ESP32的在線墨水屏桌面擺件 -物聯(lián)網(wǎng) 單片機 嵌入式

    通信工程畢設(shè) 基于ESP32的在線墨水屏桌面擺件 -物聯(lián)網(wǎng) 單片機 嵌入式

    hr style=\\\" border:solid; width:100px; height:1px;\\\" color=#000000 size=1\\\" ?? 這兩年開始畢業(yè)設(shè)計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最

    2024年02月19日
    瀏覽(100)
  • 嵌入式學(xué)習筆記——STM32的時鐘樹

    嵌入式學(xué)習筆記——STM32的時鐘樹

    在之前的所有代碼編程的過程中,似乎每次都繞不開一個叫做時鐘使能的東西,當時我們是在數(shù)據(jù)手冊上直接看其掛接在那條時鐘線上的,那么STM32內(nèi)部的時鐘到底是怎么一個構(gòu)型呢,本文來對此做一個介紹。 老規(guī)矩,一個新的名詞出現(xiàn),首先需要搞清楚它是個啥,下圖中對

    2024年02月02日
    瀏覽(24)
  • 嵌入式學(xué)習筆記——STM32硬件基礎(chǔ)知識

    嵌入式學(xué)習筆記——STM32硬件基礎(chǔ)知識

    上一篇中我們重點是講了一下怎么搭建開發(fā)環(huán)境以及怎么下載燒錄的過程,這都是解決的電腦端的開發(fā)環(huán)境問題,還沒有到實際的開發(fā)板上,我們的單片機是都是焊接在開發(fā)板上的,PCB上有著它所需的工作電路。并不是直接給供電電壓就可以讓其工作的,本文主要是簡介一下

    2024年01月22日
    瀏覽(101)
  • 嵌入式學(xué)習筆記——STM32的USART通信概述

    嵌入式學(xué)習筆記——STM32的USART通信概述

    上兩篇文章中,已經(jīng)實現(xiàn)了GPIO的通用輸出以及通用輸出模式,從本文開始,筆者將開始有關(guān)GPIO的復(fù)用功能的介紹,首先是最常用復(fù)用功能——串口,本文主要是介紹一些關(guān)于通信以及串口的基本概念。 通信協(xié)議:通信雙方進行信息交換(接收或發(fā)送)要滿足的規(guī)則,而這個規(guī)

    2023年04月08日
    瀏覽(25)
  • 嵌入式系統(tǒng)開發(fā)筆記104:在STM32CubeIDE中導(dǎo)入工程

    嵌入式系統(tǒng)開發(fā)筆記104:在STM32CubeIDE中導(dǎo)入工程

    ??本文講述如何在STM32CubeIDE中導(dǎo)入現(xiàn)有工程。

    2024年02月16日
    瀏覽(90)
  • 嵌入式學(xué)習筆記——STM32的USART相關(guān)寄存器介紹及其配置

    嵌入式學(xué)習筆記——STM32的USART相關(guān)寄存器介紹及其配置

    上一篇中,對串口做了個概述,主要是介紹了串口通信的特征,異步串行全雙工通信,然后就是結(jié)合串口的框圖梳理了一下STM32中USART的配置流程以及發(fā)送接收數(shù)據(jù)的流程,本文將接著上篇的內(nèi)容,對串口的寄存器做個介紹,然后實現(xiàn)一個簡單的收發(fā)實驗。 根據(jù)之前GPIO的經(jīng)驗

    2024年02月05日
    瀏覽(22)
  • 嵌入式學(xué)習筆記——STM32的USART收發(fā)字符串及串口中斷

    嵌入式學(xué)習筆記——STM32的USART收發(fā)字符串及串口中斷

    上一篇中,介紹了串口收發(fā)相關(guān)的寄存器,通過代碼實現(xiàn)了一個字節(jié)的收發(fā),本文接著上面的內(nèi)容,通過功能函數(shù)實現(xiàn)字符串的收發(fā),然后引入中斷解決收發(fā)過程中while()死等的問題。 根據(jù)昨天的字符發(fā)送函數(shù),只需要稍作修改即可實現(xiàn)發(fā)送函數(shù)了,一個字符串的結(jié)尾會有一

    2024年02月03日
    瀏覽(36)
  • 嵌入式學(xué)習筆記(32)S5PV210的向量中斷控制器

    嵌入式學(xué)習筆記(32)S5PV210的向量中斷控制器

    6.6.1異常處理的2個階段 可以將異常處理分為2個階段來理解。第一個階段是異常向量表跳轉(zhuǎn);第二個階段是進入了真正的異常處理程序irq_handler之后的部分。 6.6.2回顧:中斷處理的第一個階段(異常向量表跳轉(zhuǎn)階段)處理 (1)第一個階段之所以能夠進行,主要依賴于CPU設(shè)計時

    2024年02月07日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包