#include <WiFi.h>
#include <HTTPClient.h>
#include "DHT.h"
// Konfigurasi Wi-Fi
const char* ssid = "Wokwi-GUEST"; // Ganti dengan SSID Wi-Fi Anda
const char* password = ""; // Ganti dengan password Wi-Fi Anda
// URL endpoint untuk API PHP
const char* serverName = "http://free-iot.rf.gd/iot/api/create.php?"; // Ganti dengan URL API Anda
// Konfigurasi DHT
#define DHTPIN 15 // Pin data DHT (GPIO 15 untuk NodeMCU di Wokwi)
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT11 atau DHT22)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("Menghubungkan ke Wi-Fi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Menghubungkan...");
}
Serial.println("Wi-Fi Terhubung!");
Serial.println(WiFi.localIP());
dht.begin();
}
void loop() {
if (WiFi.status() == WL_CONNECTED) { // Pastikan terhubung ke Wi-Fi
HTTPClient http;
// Membaca data dari sensor DHT
float suhu = dht.readTemperature(); // Membaca suhu
float kelembaban = dht.readHumidity(); // Membaca kelembaban
// Validasi pembacaan sensor
if (isnan(suhu) || isnan(kelembaban)) {
Serial.println("Gagal membaca data dari sensor DHT!");
return;
}
// Menampilkan data di Serial Monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print(" °C, Kelembaban: ");
Serial.print(kelembaban);
Serial.println(" %");
String serverPath = serverName;
serverPath += "?suhu=" + String(suhu) + "&kelembaban=" + String(kelembaban);
Serial.println("Mengirim data ke URL: " + serverPath); // Debugging URL yang dikirim
http.begin(serverPath); // Memulai HTTP request
int httpResponseCode = http.GET(); // Mengirim data dengan metode GET
if (httpResponseCode > 0) {
Serial.print("HTTP Response Code: ");
Serial.println(httpResponseCode);
String response = http.getString();
Serial.println("Response: " + response);
} else {
Serial.print("Error mengirim data: ");
Serial.println(httpResponseCode);
}
http.end(); // Mengakhiri HTTP request
} else {
Serial.println("Wi-Fi tidak terhubung.");
}
delay(10000); // Tunggu 10 detik sebelum pengiriman berikutnya
}