#include <WiFi.h>
#include <HTTPClient.h>
#include <DHT.h>
#define PIN_LED1 2
#define PIN_LED2 4
#define PIN_BUZZ 5
#define PIN_DHT 13
#define PIN_LDR 36
#define DHTTYPE DHT22
DHT dht(PIN_DHT, DHTTYPE);
char *ssid = "Wokwi-GUEST";
char *password = "";
String serverName = "http://192.168.100.179/example-app/public/esp/";
long lastTime = 0;
long timerDelay = 500;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("WiFi connecting...");
while (!WiFi.isConnected()) {
delay(100);
Serial.print(".");
}
Serial.print("\n");
Serial.printf("WiFi connected, IP: %s\n", WiFi.localIP().toString().c_str());
dht.begin();
pinMode(PIN_BUZZ, OUTPUT);
pinMode(PIN_LED1, OUTPUT);
pinMode(PIN_LED1, OUTPUT);
}
void loop() {
delay(1000);
int lux = analogRead(PIN_LDR / 2);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(hum) || isnan(temp)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.println("Suhu : " + String(temp, 2) + "°C");
Serial.println("Kelembapan : " + String(hum, 2) + "°C");
Serial.println("Lux : " + String(lux) + "%");
Serial.println("=======================");
if (temp > 30){
pinMode(PIN_LED1, OUTPUT);
digitalWrite(PIN_LED1,LOW);
pinMode(PIN_LED2, OUTPUT);
digitalWrite(PIN_LED2,HIGH);
} else if (temp <= 30) {
pinMode(PIN_LED2, OUTPUT);
digitalWrite(PIN_LED2,LOW);
pinMode(PIN_LED1, OUTPUT);
digitalWrite(PIN_LED1,HIGH);
}
if( (millis() - lastTime) > timerDelay){
if( WiFi.status() == WL_CONNECTED){
sendData(temp, hum, lux);
}
}
else{
Serial.println("Disconnect");
}
lastTime = millis();
delay(1000);
}
void sendData(float temp, float hum, int lux){
HTTPClient http;
String url = serverName + String(temp) + "/" + String(hum) + "/" + String(lux);
Serial.println("url: " + String(url));
http.begin(url.c_str());
int httpResponseCode = http.GET();
if( httpResponseCode > 0){
Serial.print("HTTP Response Code: ");
Serial.println(httpResponseCode);
}
else{
Serial.print("Error Code: ");
Serial.println(httpResponseCode);
}
http.end();
}