#include <WiFi.h>
#include <HTTPClient.h>
#include "DHT.h"
// Konfigurasi WiFi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Konfigurasi Ubidots
const char *UBIDOTS_TOKEN = "BBUS-zvOG4gGHAJoxjGQF7Hi4PrXzizO2Xn";
const char *DEVICE_LABEL = "esp32-dht22"; // Nama perangkat di Ubidots
const char *VARIABLE_LABEL = "temperature"; // Nama variabel di Ubidots
const char *VARIABLE_LABEL2 = "humidity";
// Konfigurasi DHT22
#define DHTPIN 23 // Pin GPIO tempat DHT22 terhubung
#define DHTTYPE DHT22 // Jenis DHT (DHT22)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
// Inisialisasi WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
// Inisialisasi DHT
dht.begin();
}
void loop() {
// Baca data suhu dan kelembaban dari DHT22
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Periksa apakah pembacaan berhasil
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Kirim data ke Ubidots
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
// URL untuk POST data
String url = "http://industrial.api.ubidots.com/api/v1.6/devices/" + "esp32-dht22";
http.begin(url.c_str());
// Set header dan token
http.addHeader("Content-Type", "application/json");
http.addHeader("X-Auth-Token", "BBUS-zvOG4gGHAJoxjGQF7Hi4PrXzizO2Xn");
// Data JSON yang dikirim
String payload = "{\"" + temperature + "\": " + String(temperature) + ", \"humidity\": " + String(humidity) + "}";
int httpResponseCode = http.POST(payload);
// Cek respon dari server
if (httpResponseCode > 0) {
Serial.println("Data sent successfully!");
Serial.println(httpResponseCode);
Serial.println(http.getString());
} else {
Serial.print("Error sending data: ");
Serial.println(httpResponseCode);
}
http.end(); // Mengakhiri koneksi HTTP
}
// Tunggu 10 detik sebelum pembacaan dan pengiriman data selanjutnya
delay(10000);
}