#include <TM1637Display.h>
// Inisialisasi objek TM1637Display untuk display pertama
#define CLK_PIN1 2 // Ganti dengan pin CLK display pertama yang sesuai
#define DIO_PIN1 4 // Ganti dengan pin DIO display pertama yang sesuai
TM1637Display display1(CLK_PIN1, DIO_PIN1);
// Inisialisasi objek TM1637Display untuk display kedua
#define CLK_PIN2 26 // Ganti dengan pin CLK display kedua yang sesuai
#define DIO_PIN2 27 // Ganti dengan pin DIO display kedua yang sesua
TM1637Display display2(CLK_PIN2, DIO_PIN2);
// Kode program yang sudah Anda berikan
#define BLYNK_TEMPLATE_ID "TMPL64uSwdpX1"
#define BLYNK_TEMPLATE_NAME "DHT22"
#define BLYNK_AUTH_TOKEN "Iz3cWMl4m7vsP0gpwRx900t88X4cCYim"
#define Blynk_PRINT Serial
#define ledMerah 13
#define ledHijau 14
#define ledKuning 12
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h>
const int DHT_PIN = 15;
DHTesp dhtSensor;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void setup() {
// Inisialisasi display
display1.setBrightness(0x0a); // Atur tingkat kecerahan (0x00 - 0x0f) sesuai kebutuhan
display1.clear(); // Bersihkan display saat startup
display2.setBrightness(0x0a); // Atur tingkat kecerahan (0x00 - 0x0f) sesuai kebutuhan
display2.clear(); // Bersihkan display saat startup
// Inisialisasi Blynk
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
//timer.setInterval(2000L, sendSensor);
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledKuning, OUTPUT);
}
void loop() {
// Mendapatkan data suhu dan kelembaban
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// Menampilkan data suhu pada display pertama
display1.showNumberDec(data.temperature , false);
// Menampilkan data kelembaban pada display kedua
display2.showNumberDec(data.humidity, false);
// Menampilkan data di Serial Monitor
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
// Mengirim data ke Blynk
Blynk.virtualWrite(V1, data.temperature);
Blynk.virtualWrite(V2, data.humidity);
// Kontrol LED sesuai kondisi
if (data.temperature < 32 && data.humidity < 65) {
digitalWrite(ledHijau, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, LOW);
} else if (data.temperature > 32 && data.humidity < 65) {
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, HIGH);
digitalWrite(ledMerah, LOW);
} else if (data.temperature < 32 && data.humidity > 65) {
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, HIGH);
digitalWrite(ledMerah, LOW);
} else {
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah, HIGH);
}
}