娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

玩轉 ESP32 + Arduino (十二) 通過MQTT協議上傳數據至OneNet云平臺

發布者:Xiangsi最新更新時間:2025-04-07 來源: jianshu關鍵字:ESP32  Arduino  MQTT協議 手機看文章 掃描二維碼
隨時隨地手機看文章

這里我們使用了一個庫: PubSubClient

中移動ONENET平臺 IP地址: 183.230.40.39
舊版MQTT端口號: 6002

一. 在ONENET平臺添加MQTT設備(舊版)

1. 添加

找到多協議接入入口

添加舊版MQTT產品

添加產品

添加產品成功

然后添加設備

2. 舊版MQTT關鍵信息

接下來我們來找到舊版MQTT關鍵的信息:

  1. 產品ID(在產品頁面)

2.設備ID(在設備界面)

3.設備鑒權信息

二. ESP32連接ONENET舊版MQTT

思路: 1.連接網絡 2.登錄ONENET 3.發布主題信息


#include #include 'WiFi.h'#include 'PubSubClient.h'#include 'Ticker.h'const char *ssid = 'anny';                 //wifi名const char *password = '20141208';         //wifi密碼const char *mqtt_server = '183.230.40.39'; //onenet 的 IP地址#define mqtt_devid '626108102'  //設備ID#define mqtt_pubid '370025'     //產品ID#define mqtt_password 'test123' //鑒權信息WiFiClient espClient;           //創建一個WIFI連接客戶端PubSubClient client(espClient); // 創建一個PubSub客戶端, 傳入創建的WIFI客戶端char msg_buf[200];                                //發送信息緩沖區char dataTemplate[] = '{'temp':%.2f,'hum':%.2f}'; //信息模板char msgJson[75];                                 //要發送的json格式的數據unsigned short json_len = 0;                      //json長度Ticker tim1;                                      //定時器,用來循環上傳數據//連接WIFI相關函數void setupWifi(){

  delay(10);

  Serial.println('連接WIFI');

  WiFi.begin(ssid, password);

  while (!WiFi.isConnected())

  {

    Serial.print('.');

    delay(500);

  }

  Serial.println('OK');

  Serial.println('Wifi連接成功');}//收到主題下發的回調, 注意這個回調要實現三個形參 1:topic 主題, 2: payload: 傳遞過來的信息 3: length: 長度void callback(char *topic, byte *payload, unsigned int length){

  Serial.println('message rev:');

  Serial.println(topic);

  for (size_t i = 0; i < length; i++)

  {

    Serial.print((char)payload[i]);

  }

  Serial.println();}//向主題發送模擬的溫濕度數據void sendTempAndHumi(){

  if (client.connected())

  {

    snprintf(msgJson, 40, dataTemplate, 22.31, 25.92); //將模擬溫濕度數據套入dataTemplate模板中, 生成的字符串傳給msgJson

    json_len = strlen(msgJson);                   //msgJson的長度

    msg_buf[0] = char(0x03);                       //要發送的數據必須按照ONENET的要求發送, 根據要求,數據第一位是3

    msg_buf[1] = char(json_len >> 8);              //數據第二位是要發送的數據長度的高八位

    msg_buf[2] = char(json_len & 0xff);            //數據第三位是要發送數據的長度的低八位

    memcpy(msg_buf + 3, msgJson, strlen(msgJson)); //從msg_buf的第四位開始,放入要傳的數據msgJson

    msg_buf[3 + strlen(msgJson)] = 0;              //添加一個0作為最后一位, 這樣要發送的msg_buf準備好了

    Serial.print('public message:');

    Serial.println(msgJson);

    client.publish('$dp', (uint8_t *)msg_buf, 3 + strlen(msgJson)); //發送數據到主題$dp

  }}//重連函數, 如果客戶端斷線,可以通過此函數重連void clientReconnect(){

  while (!client.connected()) //再重連客戶端

  {

    Serial.println('reconnect MQTT...');

    if (client.connect(mqtt_devid, mqtt_pubid, mqtt_password))

    {

      Serial.println('connected');

    }

    else

    {

      Serial.println('failed');

      Serial.println(client.state());

      Serial.println('try again in 5 sec');

      delay(5000);

    }

  }}void setup(){

  Serial.begin(115200);                                  //初始化串口

  delay(3000);                                           //這個延時是為了讓我打開串口助手

  setupWifi();                                           //調用函數連接WIFI

  client.setServer(mqtt_server, 6002);                   //設置客戶端連接的服務器,連接Onenet服務器, 使用6002端口

  client.connect(mqtt_devid, mqtt_pubid, mqtt_password); //客戶端連接到指定的產品的指定設備.同時輸入鑒權信息

  client.setCallback(callback);                          //設置好客戶端收到信息是的回調

  tim1.attach(20, sendTempAndHumi);                      //定時每20秒調用一次發送數據函數sendTempAndHumi}void loop(){

  if (!WiFi.isConnected()) //先看WIFI是否還在連接

  {

    setupWifi();

  }

  if (!client.connected()) //如果客戶端沒連接ONENET, 重新連接

  {

    clientReconnect();

  }

  client.loop(); //客戶端循環檢測}


可以上傳數據,也能接收到OneNet下發的命令

后來又在接收命令的callback里寫了一個點燈, 下發命令1就開燈, 0就關燈

  if (payload[0] == 49)
  {
    digitalWrite(2, HIGH);
  }
  if (payload[0] == 48)
  {
    digitalWrite(2, LOW);
  }


關鍵字:ESP32  Arduino  MQTT協議 引用地址:玩轉 ESP32 + Arduino (十二) 通過MQTT協議上傳數據至OneNet云平臺

上一篇:玩轉 ESP32 + Arduino (十三) 通過MQTTs協議上傳數據至OneNet云平臺
下一篇:最后一頁

推薦閱讀最新更新時間:2025-04-07 16:28

ESP32學習筆記(38)——播放MP3文件(外部Codec方式)
一、背景 ESP-ADF 的 API 提供了一種使用 編解碼器 (解碼器和編碼器)、 流 或 音頻處理 功能等 元素 開發音頻應用程序的方法。 該框架是通過將 Elements 組合成一個 Pipeline 來開發音頻應用程序。如下圖所示: 將MP3解碼器和I2S流兩個元素添加進管道,解碼器的輸入是MP3文件數據流,I2S流將解碼后的音頻數據輸出到片外,各應用程序之間通過事件接口通信。 二、API說明 以下音頻 HAL 接口位于 audio_hal/include/audio_hal.h。 2.1 audio_hal_init 2.2 audio_hal_ctrl_codec 2.3 audio_hal_s
[單片機]
[單片機框架][esp32] 使用C++17新特性報錯
修改CMakeLists.txt ,追加-std=gnu++17 # For more information about build system see # https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html # The following five lines of boilerplate have to be in your project's # CMakeLists in this exact order for cmake to work correctly cmake_minimum_requi
[單片機]
Arduino 與 Silicon Labs 合作推出正式版 Arduino Nano Matter 開發板
近日,Arduino 與 Silicon Labs 合作開發的面向 Matter 兼容智能家居項目的 Arduino Nano Matter 物聯網(IoT)開發板正式發布,此前該產品已進行過 “社區預覽” 軟啟動。 Arduino 團隊介紹其最新開發板時表示:“Nano Matter 將 Arduino 標志性的易用性與強大的 Silicon Labs? MGM240S 相結合,把兩個領域的優勢融入到目前市場上最小的外形尺寸之一中。憑借 Nano Matter,不同專業水平的開發者都可以利用流行的 Matter IoT 連接標準來構建互動解決方案,將以前基于 Nano 的項目升級為功能齊全的智能家居設備,甚至可以嘗試使用 Z
[物聯網]
<font color='red'>Arduino</font> 與 Silicon Labs 合作推出正式版 <font color='red'>Arduino</font> Nano Matter 開發板
樂鑫信息科技B輪融資暨ESP32新品發布會明日舉行
? ??原文標題:ESP32 連接·創新——?樂鑫信息科技B輪融資暨ESP32新品發布會明日舉行 ? ? 集微網消息,中國物聯網芯片設計制造領軍企業樂鑫信息科技有限公司即將于 2016 年 9 月 6 日于上海博雅酒店舉行樂鑫信息科技 B 輪融資暨 ESP32 新品發布會。屆時,樂鑫 CEO 張瑞安將宣布完成 B 輪融資,同時推出全新新品 Wi-Fi/BT Combo 雙核 MCU——ESP32 芯片。 ? 據了解,樂鑫此次發布的這款 ESP32 秉承樂鑫產品一貫的高集成度特性,雙模雙核的 ESP32 僅有 10來個外圍器件,但卻擁有超級強大的性能。 搭載雙核 32位 MCU,一核處理高速連接、一核獨立應用
[手機便攜]
機器人課程系列:如何編寫Arduino程序讓四足機器人移動
有腳的機器人很棒吧?它們可以跨越崎嶇的地形,用像生物的方式移動,這一點是藉由輪子移動的機器人沒法比的。但足機器人的構造也比較復雜,讓許多 Maker望之興嘆。 這篇文章為你介紹讓四足機器人「走路」的方法,也就是行走的步態(gaits),并教你如何為Arduino編寫程序。 關于四足機器人 自然界里有許多用四只腳走路的動物,這是因為四只腳是一種很穩定的組合,不需要特別調整姿勢就能保持站姿穩定,又比六足構造單純一些。對機器人來說也一樣:和更多只腳的機器人相比,四足機器人既便宜又簡單,卻可以保持穩定。 積極和消極穩定 椅子是屬于消極穩定(passively stable)的對象,也就是說,椅子不需要控制或調整就可以穩定地立著;
[機器人]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 玉林市| 金溪县| 徐州市| 定兴县| 威海市| 清丰县| 盐城市| 英德市| 南陵县| 牙克石市| 右玉县| 景德镇市| 杭锦旗| 大埔区| 文化| 金阳县| 沧源| 凤冈县| 田阳县| 乐平市| 咸阳市| 建瓯市| 叙永县| 太仆寺旗| 托克托县| 连城县| 咸丰县| 溧阳市| 镇宁| 龙门县| 睢宁县| 北安市| 柳江县| 新巴尔虎右旗| 邵东县| 龙门县| 绵竹市| 梁河县| 安顺市| 贞丰县| 榆社县|