跳到內容
  • 版面
  • 最新
  • 標籤
  • 熱門
  • World
  • 使用者
  • 群組
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 預設 (Yeti)
  • 未使用主題設計
Collapse
品牌標誌
  1. 首頁
  2. ESP32教學與討論
  3. AHT15溫濕度感測器
  4. AHT15-簡易藍芽傳輸

AHT15-簡易藍芽傳輸

已排程 已置頂 已鎖定 已移動 AHT15溫濕度感測器
esp32aht15溫濕度感測器藍芽傳輸
1 貼文 1 Posters 17 瀏覽
  • 從舊到新
  • 從新到舊
  • 最多點贊
回覆
  • 在新貼文中回覆
登入後回覆
此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
  • adminA 離線
    adminA 離線
    admin
    寫於 最後由 編輯
    #1

    ATH15溫濕度感測器_簡易藍牙傳輸_教案.pdf

    #include <Wire.h>
    #include <BluetoothSerial.h>  // 匯入藍牙序列通訊的函式庫
    
    #define AHT15_ADDRESS 0x38
    #define AHT15_RESET 0xBA
    #define AHT15_INIT 0xBE
    #define AHT15_START_MEASUREMENT 0xAC
    BluetoothSerial BT; // 宣告藍牙物件,名稱為BT
    
    void setup() {
      Wire.begin();
      Serial.begin(115200);
      BT.begin("Denny0628"); // 請改名例如英文+ 生日
      
      // Reset sensor
      Wire.beginTransmission(AHT15_ADDRESS);
      Wire.write(AHT15_RESET);
      Wire.endTransmission();
      delay(20);
      
      // Initialize sensor
      Wire.beginTransmission(AHT15_ADDRESS);
      Wire.write(AHT15_INIT);
      Wire.write(0x08);
      Wire.write(0x00);
      Wire.endTransmission();
      delay(10);
    }
    
    void loop() {
      // Start measurement
      Wire.beginTransmission(AHT15_ADDRESS);
      Wire.write(AHT15_START_MEASUREMENT);
      Wire.write(0x33);
      Wire.write(0x00);
      Wire.endTransmission();
      delay(80);
      
      // Read data
      Wire.requestFrom(AHT15_ADDRESS, 6);
      uint8_t data[6];
      for (int i = 0; i < 6; i++) {
        data[i] = Wire.read();
      }
      
      // Calculate humidity and temperature
      uint32_t rawHumidity = ((uint32_t)data[1] << 12) | ((uint32_t)data[2] << 4) | (data[3] >> 4);
      float humidity = rawHumidity * 100.0 / (1 << 20);
      
      uint32_t rawTemperature = (((uint32_t)data[3] & 0xF) << 16) | ((uint32_t)data[4] << 8) | data[5];
      float temperature = ((200.0 * rawTemperature) / (1 << 20)) - 50;
      
      // Print results in Serial Monitor
      Serial.print("Humidity: ");
      Serial.print(humidity);
      Serial.print("% , ");
      Serial.print("Temperature: ");
      Serial.print(temperature);
      Serial.println("°C");
    
      // 在藍牙上打印溫度和濕度
      BT.print(temperature); // 將溫度值透過藍牙傳輸
      BT.print("*C, "); 
      BT.print(humidity);  // 將濕度值透過藍牙傳輸
      BT.println(" H");
      delay(2500);
    }
    
    

    平台使用上有任何問題歡迎寄信至[email protected]詢問

    1 條回覆 最後回覆
    0
    回覆
    • 在新貼文中回覆
    登入後回覆
    • 從舊到新
    • 從新到舊
    • 最多點贊


    風狂logo 藏碳logo 南台logo SDGS2 SDGS7 SDGS12
    • 登入

    • 沒有帳戶? 註冊

    Powered by NodeBB Contributors
    • 第一個貼文
      最後的貼文
    0
    • 版面
    • 最新
    • 標籤
    • 熱門
    • World
    • 使用者
    • 群組