From 8841b196836546fd326667a4c5bec893e74920e0 Mon Sep 17 00:00:00 2001 From: Adhimas_Rayhan_Tritama Date: Thu, 25 Jul 2024 14:43:48 +0700 Subject: [PATCH] Upload files to "Kode Program Arduino" --- Kode Program Arduino/fixxxxx.ino | 155 +++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 Kode Program Arduino/fixxxxx.ino diff --git a/Kode Program Arduino/fixxxxx.ino b/Kode Program Arduino/fixxxxx.ino new file mode 100644 index 0000000..1b3e3df --- /dev/null +++ b/Kode Program Arduino/fixxxxx.ino @@ -0,0 +1,155 @@ +#include +#include +#include +#include +#include + +#define DHTPIN D3 // Pin data DHT22 ESP1 (D4) ESP2 (D3) +#define DHTTYPE DHT22 // Tipe sensor DHT22 +#define RELAY_LAMP D7 // Pin relay untuk lampu +#define RELAY_FAN D6 // Pin relay untuk kipas +#define RELAY_ON 0 +#define RELAY_OFF 1 + +DHT dht(DHTPIN, DHTTYPE); +LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD I2C dengan alamat 0x28 dan ukuran 16x2 + +// Konfigurasi WiFi +const char* ssid = "GalaxyA52"; +const char* password = "12341234"; +const char* server = "192.168.253.79"; + +unsigned long previousMillisRelay = 0; +unsigned long previousSendMillis = 0; +const long relayInterval = 2000; // Interval 2 detik untuk relay +const long sendInterval = 1000; // Interval 1 detik untuk pengiriman data + +void setup() { + Serial.begin(9600); + Serial.println("DHT22 test!"); + + dht.begin(); + lcd.init(); + lcd.backlight(); + + pinMode(RELAY_LAMP, OUTPUT); // Atur pin relay lampu sebagai output + pinMode(RELAY_FAN, OUTPUT); // Atur pin relay kipas sebagai output + digitalWrite(RELAY_LAMP, RELAY_OFF); // Matikan relay lampu + digitalWrite(RELAY_FAN, RELAY_OFF); // Matikan relay kipas + + WiFi.hostname("NodeMCU"); + WiFi.begin(ssid, password); + + // Cek koneksi WiFi + while (WiFi.status() != WL_CONNECTED) { + delay(1000); + Serial.println("Connecting to WiFi..."); + } + lcd.println("haloo"); + delay(2000); + lcd.clear(); + + // Tampilkan pesan "sayang" di LCD selama 1 detik + lcd.setCursor(0, 0); + lcd.print("haloo"); + delay(3000); // Tambahkan delay 1 detik untuk menampilkan "sayang" + + // Tampilkan pesan "" di LCD selama 1 detik + lcd.print(" haloo"); + delay(3000); // + lcd.clear(); +} + +void loop() { + unsigned long currentMillis = millis(); + + float temp = dht.readTemperature(); + int hum = dht.readHumidity(); + + if (isnan(temp) || isnan(hum)) { + Serial.println("Gagal membaca sensor!"); + lcd.setCursor(0, 0); + lcd.print("Error"); + return; + } + + // Tampilkan di LCD + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print("KELEMBABAN: "); + lcd.print(hum); + lcd.println(" %"); + lcd.setCursor(0, 1); + lcd.print("SUHU: "); + lcd.print(temp); + lcd.print((char)223); // Simbol derajat Celsius + lcd.print("C"); + + // Tampilkan di Serial Monitor + Serial.print("Suhu: "); + Serial.print(temp); + Serial.print(" C, Kelembaban: "); + Serial.print(hum); + Serial.println(" %"); + + // Kontrol relay berdasarkan suhu dan kelembaban + if (currentMillis - previousMillisRelay >= relayInterval) { + previousMillisRelay = currentMillis; + + if (temp > 32) { + if (hum > 75) { + digitalWrite(RELAY_FAN, RELAY_ON); // Hidupkan kipas + digitalWrite(RELAY_LAMP, RELAY_ON); // Hidupkan lampu + Serial.println("Kipas ON, Lampu ON (Suhu > 32, Kelembaban > 70)"); + } else { + digitalWrite(RELAY_FAN, RELAY_ON); // Hidupkan kipas + digitalWrite(RELAY_LAMP, RELAY_OFF); // Matikan lampu + Serial.println("Kipas ON, Lampu OFF (Suhu > 32, Kelembaban <= 70)"); + } + } else if (temp < 28) { + if (hum < 70) { + digitalWrite(RELAY_FAN, RELAY_ON); // Hidupkan kipas + digitalWrite(RELAY_LAMP, RELAY_ON); // Hidupkan lampu + Serial.println("Kipas ON, Lampu ON (Suhu < 28, Kelembaban < 70)"); + } else { + digitalWrite(RELAY_FAN, RELAY_OFF); // Matikan kipas + digitalWrite(RELAY_LAMP, RELAY_ON); // Hidupkan lampu + Serial.println("Kipas OFF, Lampu ON (Suhu < 28, Kelembaban >= 70)"); + } + } else { + if (hum > 75) { + digitalWrite(RELAY_FAN, RELAY_OFF); // Matikan kipas + digitalWrite(RELAY_LAMP, RELAY_ON); // Hidupkan lampu + Serial.println("Kipas OFF, Lampu ON (28 <= Suhu <= 32, Kelembaban > 70)"); + } else if (hum < 70) { + digitalWrite(RELAY_FAN, RELAY_ON); // Hidupkan kipas + digitalWrite(RELAY_LAMP, RELAY_OFF); // Matikan lampu + Serial.println("Kipas ON, Lampu OFF (28 <= Suhu <= 32, Kelembaban < 70)"); + } else { + digitalWrite(RELAY_FAN, RELAY_OFF); // Matikan kipas + digitalWrite(RELAY_LAMP, RELAY_OFF); // Matikan lampu + Serial.println("Kipas OFF, Lampu OFF (28 <= Suhu <= 32, 70 <= Kelembaban <= 70)"); + } + } + } + + // Kirim data setiap detik + if (currentMillis - previousSendMillis >= sendInterval) { + previousSendMillis = currentMillis; + + WiFiClient wClient; + String url; + HTTPClient http; + url = "http://" + String(server) + "/web-ta/public/simpansatu/" + String(temp) + "/" + String(hum); + http.begin(wClient, url); + int httpCode = http.GET(); + if (httpCode > 0) { + Serial.println("Data terkirim ke server."); + } else { + Serial.println("Gagal mengirim data!"); + } + http.end(); + } + + delay(1000); // Tambahkan delay 1 detik pada loop +} \ No newline at end of file