Upload files to "Kode Program Arduino"
This commit is contained in:
parent
01f1bf8544
commit
8841b19683
|
@ -0,0 +1,155 @@
|
|||
#include <LiquidCrystal_I2C.h>
|
||||
#include <Wire.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266HTTPClient.h>
|
||||
#include <DHT.h>
|
||||
|
||||
#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
|
||||
}
|
Loading…
Reference in New Issue