#include <DHT.h>
#define DHTPIN 2 // Pin untuk sensor DHT
#define DHTTYPE DHT22 // Tipe sensor DHT
DHT dht(DHTPIN, DHTTYPE);
// Array untuk menyimpan data suhu
volatile float temperatureData[10];
volatile int dataIndex = 0; // Indeks array
volatile bool dmaTransferComplete = false; // Status transfer DMA
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
dht.begin(); // Memulai sensor DHT
Serial.println("Mulai membaca data suhu dan kelembapan...");
}
void loop() {
// Baca suhu dan kelembapan dari sensor DHT
float temp = dht.readTemperature(); // Membaca suhu (Celsius)
if (!isnan(temp)) { // Mengecek apakah data suhu valid
// Simulasi transfer data ke array (misalnya setelah setiap pembacaan suhu)
if (dataIndex < 10) {
temperatureData[dataIndex++] = temp; // Menyimpan data suhu ke dalam array
} else {
dmaTransferComplete = true; // Tandai transfer data selesai jika array penuh
}
// Jika transfer selesai, tampilkan data
if (dmaTransferComplete) {
Serial.println("Data Suhu:");
for (int i = 0; i < dataIndex; i++) {
Serial.println(temperatureData[i]); // Menampilkan data suhu
}
dmaTransferComplete = false; // Reset status transfer
dataIndex = 0; // Reset indeks array
}
} else {
// Jika pembacaan suhu gagal
Serial.println("Gagal membaca suhu!");
}
delay(2000); // Tunggu 2 detik sebelum membaca lagi
}