#include "ESP8266WiFi.h"
#include "DHT.h"
#define DHTPIN D4
#define ECHO D0
#define TRIG D1
#define LED_ULTRASONIC D5
#define LED_REVERSE D6
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
String response;
const char server[] = "192.168.1.9";
const char* MY_SSID = "WIFI OKTA";
const char* MY_PWD = "Dimitha_123";
WiFiClient client;
int getDistance() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
int duration = pulseIn(ECHO, HIGH);
int distance = duration * 0.034 / 2;
return distance;
}
void setup() {
Serial.begin(9600);
Serial.print("Connecting to ");
Serial.println(MY_SSID);
WiFi.begin(MY_SSID, MY_PWD);
while (WiFi.status() != WL_CONNECTED) {
delay(5000);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
Serial.println("\nCredentials accepted! Connected to WiFi\n");
Serial.println("DHTxx test!");
dht.begin();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED_ULTRASONIC, OUTPUT);
pinMode(LED_REVERSE, OUTPUT);
}
void loop() {
int distance = getDistance();
delay(1000); // Tambahkan delay 1 detik agar sensor DHT stabil
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("%\t");
Serial.print("Temperature: ");
Serial.println(t);
Serial.print("%\t");
Serial.print("Distance: ");
Serial.println(distance);
if (distance < 10) {
digitalWrite(LED_ULTRASONIC, HIGH);
digitalWrite(LED_REVERSE, LOW);
Serial.println("Dangerous, Please Move It");
} else {
digitalWrite(LED_ULTRASONIC, LOW);
digitalWrite(LED_REVERSE, HIGH);
Serial.println("It's Safe !!");
}
Serial.println("\nStart connecting to server...");
if (client.connect(server, 80)) {
Serial.println("Connected to server");
WiFi.printDiag(Serial);
client.print("GET /suhu/load.php?kelembapan=");
client.print(h);
client.print("&suhu=");
client.print(t);
client.print("&jarak=");
client.print(distance);
client.println(" HTTP/1.1");
client.println("Host: 192.168.1.9");
client.println();
} else {
Serial.println("Connection to server failed");
}
delay(5000);
}