//Program khusus board esp8266 (Nodemcu)
#include <WiFi.h>
#include <HTTPClient.h>
#include <Arduino_JSON.h>
#include "DHT.h"
const char* ssid = "Wokwi-GUEST"; //masukkan ssid
const char* password = ""; //masukkan password
#define DHTPIN 15 //Pin Signal DHT11 terhubung ke pin D6 Nodemcu
#define DHTTYPE DHT22 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
const long interval = 10; //5000
unsigned long previousMillis = 0;
int board = 1;
void setup () {
Serial.begin(115200);
WiFi.begin(ssid, password);
dht.begin();
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting..");
}
if(WiFi.status() == WL_CONNECTED){
Serial.println("Connected!!!");
}
else{
Serial.println("Connected Failed!!!");
}
}
void loop() {
HTTPClient http;
http.begin("http://gekka.beget.tech/nodemcu/esp_iot/proses.php?board="+String(board));
int httpCode = http.GET();
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
if (WiFi.status() == WL_CONNECTED) {
if (httpCode > 0) {
String payload = http.getString();
JSONVar myObject = JSON.parse(payload);
Serial.print("JSON object = ");
Serial.println(myObject);
JSONVar keys = myObject.keys();
for (int i = 0; i < keys.length(); i++) {
JSONVar value = myObject[keys[i]];
Serial.print("GPIO: ");
Serial.print(keys[i]);
Serial.print(" - SET to: ");
Serial.println(value);
pinMode(atoi(keys[i]), OUTPUT);
digitalWrite(atoi(keys[i]), atoi(value));
}
previousMillis = currentMillis;
}
http.end();
}
}
//Pembacaan untuk data kelembaban
float nilai_kelembaban = dht.readHumidity();
//Pembacaan dalam format celcius (c)
float nilai_suhu = dht.readTemperature();
//mengecek pembacaan apakah terjadi kegagalan atau tidak
if (isnan(nilai_kelembaban) || isnan(nilai_suhu) ) {
Serial.println("Считать данные с сенсорного модуля не удалось!");
return;
}
String kelembaban = "kelembaban=" + String(nilai_kelembaban);
String suhu = "&suhu=" + String(nilai_suhu);
String url =("http://gekka.beget.tech/nodemcu/sensor/getdata.php?"); //sesuaikan dengan ip address komputer anda
http.begin(url + kelembaban + suhu);
if (WiFi.status() == WL_CONNECTED) {
if (httpCode > 0) {
String payload = http.getString();
Serial.print("HTTP Response= ");
Serial.println(httpCode);
Serial.print("Suhu= ");
Serial.println(nilai_suhu);
Serial.print("Kelembaban= ");
Serial.println(nilai_kelembaban);
Serial.println("---------------------------");
}
delay(100);
// http.end();
}
}