#include <DHT.h>
#include <LedControl.h>
#define DHTPIN 2 // Pin sensor DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT22
DHT dht(DHTPIN, DHTTYPE);
// Pin untuk MAX7219
#define DATA_IN 11
#define CLK 13
#define CS 10
LedControl lc = LedControl(DATA_IN, CLK, CS, 1); // Inisialisasi LedControl untuk 1 device
void setup() {
Serial.begin(9600);
dht.begin();
lc.shutdown(0, false); // Aktifkan display
lc.setIntensity(0, 8); // Set brightness ke medium
lc.clearDisplay(0); // Clear display
}
void loop() {
float h = dht.readHumidity(); // Baca kelembaban dari sensor
float t = dht.readTemperature(); // Baca suhu dalam Celsius dari sensor
// Periksa apakah ada kesalahan dalam pembacaan sensor
if (isnan(h) || isnan(t)) {
Serial.println("Gagal membaca dari sensor DHT");
return;
}
char tempStr[9];
char humStr[9];
// Format suhu dan kelembaban ke string
snprintf(tempStr, sizeof(tempStr), "T:%2.0fC", t);
snprintf(humStr, sizeof(humStr), "H:%2.0f%%", h);
// Clear display sebelum menampilkan data baru
lc.clearDisplay(0);
// Tampilkan suhu
displayText(tempStr);
delay(2000); // Jeda 2 detik
// Clear display sebelum menampilkan data baru
lc.clearDisplay(0);
// Tampilkan kelembaban
displayText(humStr);
delay(2000); // Jeda 2 detik
}
void displayText(const char* text) {
int len = strlen(text);
for (int i = 0; i < len; i++) {
lc.setChar(0, i, text[i], false);
}
}