Test aht20 — Xiao Esp32C6 simulation

An interactive Xiao Esp32C6 circuit simulation you can run free in your browser on Velxio, by itsmebenn.

Components

Sketch code

// Grove - AHT20 on XIAO ESP32-C6 (adapted from the Seeed wiki, MIT)
// SDA -> D4 (GPIO22), SCL -> D5 (GPIO23). I2C address 0x38.
// #include <Wire.h>

// const uint8_t ADDR = 0x38;

// void setup() {
//   Serial.begin(115200);
//   Wire.begin(22, 23);
//   delay(100);
// }

// void loop() {
//   Wire.beginTransmission(ADDR);
//   Wire.write(0xAC); Wire.write(0x33); Wire.write(0x00);   // trigger
//   Wire.endTransmission();
//   delay(80);

//   Wire.requestFrom(ADDR, (uint8_t)7);
//   if (Wire.available() == 7) {
//     uint8_t b[7];
//     for (int i = 0; i < 7; i++) b[i] = Wire.read();
//     uint32_t rawH = ((uint32_t)b[1] << 12) | ((uint32_t)b[2] << 4) | (b[3] >> 4);
//     uint32_t rawT = ((uint32_t)(b[3] & 0x0F) << 16) | ((uint32_t)b[4] << 8) | b[5];
//     Serial.print("T = ");
//     Serial.print(rawT * 200.0f / 1048576.0f - 50.0f, 2);
//     Serial.print(" C   RH = ");
//     Serial.print(rawH * 100.0f / 1048576.0f, 1);
//     Serial.println(" %");
//   }
//   delay(1000);
// }

#include <Wire.h>
#include <Adafruit_AHTX0.h>

// KONFIGURASI I2C PIN (Untuk ESP32-S3 Anda)
#define I2C_SDA_PIN 22
#define I2C_SCL_PIN 23

// Buat objek sensor
Adafruit_AHTX0 aht;

void setup() {
  Serial.begin(115200);
  
  // Memulai I2C secara spesifik di pin 8 dan 9
  Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN);
  
  Serial.println("Mencari sensor AHT20...");

  // Inisialisasi sensor menggunakan library
  if (!aht.begin()) {
    Serial.println("Gagal menemukan AHT20! Periksa kembali kabel SDA dan SCL.");
    while (1) delay(10); // Hentikan program jika sensor tidak terdeteksi
  }
  
  Serial.println("Sensor AHT20 berhasil dihubungkan!\n");
}

void loop() {
  // Siapkan "wadah" untuk menyimpan data suhu dan kelembaban
  sensors_event_t humidity, temp;
  
  // Perintahkan library untuk membaca data ke dalam wadah tersebut
  aht.getEvent(&humidity, &temp);
  
  // Tampilkan hasilnya ke Serial Monitor (dengan format desimal)
  Serial.print("T = ");
  Serial.print(temp.temperature, 2);
  Serial.print(" C   RH = ");
  Serial.print(humidity.relative_humidity, 1);
  Serial.println(" %");
  
  // Beri jeda 1 detik (karena ini hanya tes tunggal, pakai delay biasa tidak masalah)
  delay(1000);
}

More projects by itsmebenn