
Pernah kepikiran buat monitoring suhu, kelembapan, dan intensitas cahaya secara real-time dengan ESP32? Dengan kombinasi sensor DHT11, LDR dan platform ThingSpeak, kamu bisa mewujudkannya dengan mudah! Proyek “Monitoring Data DHT11 dan LDR ke ThingSpeak dengan ESP32” cocok buat kamu yang baru mulai belajar tentang IoT (Internet of Things). Di tutorial ini, kita bakal menghubungkan sensor-sensor ke ESP32 dan mengirim datanya ke ThingSpeak buat memonitoring data secara online.
Sebelum kita mulai, pastikan kamu sudah bikin akun, channel dan field di ThingSpeak ya. Kalau belum, gampang kok! Cek ThingSpeak : Platform IoT untuk Monitoring Data dan di situ kamu juga bisa tahu lebih lanjut tentang ThingSpeak. Setelah itu, siapkan alat dan bahan, dan mari kita mulai perjalanan seru ini!
Daftar Isi
Komponen
- ESP32 (Beli di sini)
- Breadboard
- Sensor DHT11 (Beli di sini)
- Sensor LDR
- Resistor 470 Ohm
- Kabel Jumper (Beli di sini)
- Kabel USB
- Arduino IDE (Download di sini)
- Akun ThingSpeak
Diagram Wiring

Implementasi
- Menginstall Board ESP32
- Buka File > Preferences di Arduino IDE.
- Tambahkan URL : https://dl.espressif.com/dl/package_esp32_index.json di Additional Boards Manager URLs.
- Pergi ke Tools > Board > Board Manager, cari ESP32 dan install.
- Menginstall Library ThingSpeak
- Buka Sketch > Include Library > Manage Libraries.
- Cari ThingSpeak dan klik Install.
- Menginstall Library DHT sensor library
- Buka Sketch > Include Library > Manage Libraries.
- Cari DHT sensor library dan klik Install.
Kode Program
#include <WiFi.h>
#include "ThingSpeak.h"
#include "DHT.h"
#define DHTPIN 14
#define DHTTYPE DHT11
#define LDR_PIN 34
#define MAX_ADC_READING 4095
#define ADC_REF_VOLTAGE 3.3
#define REF_RESISTANCE 470
#define LUX_CALC_SCALAR 12518931
#define LUX_CALC_EXPONENT -1.405
DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;
const char* ssid = "Edutic.id"; // Nama WiFi
const char* pass = "sobatedutic"; // Password WiFi
unsigned long myChannelNumber = 2648977; // ID Channel
const char * myWriteAPIKey = "FMYTK2S8ZLBZFNXF"; // API Key
unsigned long lastTime = 0;
unsigned long timerDelay = 30000;
void setup() {
Serial.begin(9600);
dht.begin();
WiFi.mode(WIFI_STA);
connectToWiFi();
ThingSpeak.begin(client);
}
void loop() {
if ((millis() - lastTime) > timerDelay) {
if (WiFi.status() != WL_CONNECTED) {
connectToWiFi();
}
// Sensor DHT11
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
// Sensor LDR
int rawData = analogRead(LDR_PIN);
float resistorVoltage = (float) rawData / MAX_ADC_READING * ADC_REF_VOLTAGE;
float ldrVoltage = ADC_REF_VOLTAGE - resistorVoltage;
float ldrResistance = ldrVoltage/resistorVoltage * REF_RESISTANCE;
float lux = LUX_CALC_SCALAR * pow(ldrResistance, LUX_CALC_EXPONENT);
Serial.println("Temp: " + String(temperature, 2) + "°C");
Serial.println("Humidity: " + String(humidity, 1) + "%");
Serial.println("LDR Raw Data : " + String(rawData));
Serial.println("LDR Voltage : " + String(ldrVoltage, 2) + " volts");
Serial.println("LDR Resistance : " + String(ldrResistance, 2) + " Ohms");
Serial.println("LDR Illuminance: " + String(lux, 2) + " lux");
Serial.println("---");
ThingSpeak.setField(1, temperature);
ThingSpeak.setField(2, humidity);
ThingSpeak.setField(3, lux);
int responseCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (responseCode == 200) {
Serial.println("Channel update successful.");
} else {
Serial.println("Problem updating channel. HTTP error code: " + String(responseCode));
}
lastTime = millis();
}
}
void connectToWiFi() {
Serial.print("Attempting to connect to WiFi");
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("nConnected to WiFi.");
}
Langkah-langkah di Arduino IDE
- Memverifikasi Kode
- Klik tombol Verify untuk memeriksa kesalahan pada kode.
- Mengupload Program
- Hubungkan ESP32 ke komputer.
- Pilih board ESP32 Dev Module dan pilih Port yang sesuai di Arduino IDE.
- Klik tombol Upload untuk mengunggah progam.
Hasil Akhir
Nah, ini dia tampilan data di ThingSpeak. Kalau kamu pakai kode program yang sama persis kayak di atas dan belum bikin akun, kamu bisa cek langsung perubahan datanya disini. Kamu bisa lihat sendiri gimana data suhu, kelembapan, dan intensitas cahaya tampil secara realtime. Seru kan?
FAQ
Gimana cara nyambungin ESP32 ke WiFi kalau WiFi tiba-tiba mati?
Kalau WiFi putus atau mati, ESP32 akan otomatis mencoba menyambung lagi. Jadi kamu nggak perlu khawatir, tinggal pastikan aja WiFi udah nyala kembali, dan ESP32 bakal reconnect sendiri.
Apa bisa nambah sensor lain selain DHT11 dan LDR?
Bisa banget! Kamu bisa nambahin sensor lain kayak sensor gas, tekanan atau yang lainnnya. Cukup tambahkan kode baru untuk sensor tersebut, sesuaikan wiringnya di breadboard dan tambahkan field pada ThingSpeak.
Berapa jarak maksimal ESP32 bisa mengirim data ke ThingSpeak?
ESP32 ngirim data ke ThingSpeak lewat WiFi, jadi selama WiFinya masih dalam jangkauan dan stabil, ESP32 bisa ngirim data dari mana saja. Pastikan aja sinyal WiFi cukup kuat di lokasi ESP32.
Apakah data di ThingSpeak bisa diakses dari mana saja?
Tentu, kamu bisa akses data ThingSpeak dari mana aja, asal ada koneksi internet. Tinggal buka dashboard ThingSpeakmu, dan semua data real-time bisa dilihat di sana.
Saya pengen lebih cepat kirim data ke ThingSpeak, gimana caranya?
Kalau kamu mau lebih cepat ngirim data, kamu bisa ubah nilai variabel timerDelay di kode program. Misalnya, kalau mau setiap 10 detik, ganti timerDelay = 10000. Tapi hati-hati, kirim data terlalu sering bisa bikin akun ThingSpeak kelebihan kuota!
Apa bisa pakai sensor DHT22 di proyek ini?
Bisa banget! Kamu tinggal ganti beberapa bagian di kode untuk sesuai dengan sensor DHT22. Pastikan kamu juga sambungkan ke pin yang tepat dan atur tipe sensor di kode. Dengan DHT22, kamu bahkan bisa dapatkan hasil yang lebih akurat dibanding DHT11, jadi cocok banget buat monitoring suhu dan kelembapan!
Kesimpulan
Kesimpulannya, proyek “Monitoring Data DHT11 dan LDR ke ThingSpeak dengan ESP32” ini memberikan gambaran bagaimana kamu bisa dengan mudah memonitor data lingkungan seperti suhu, kelembapan, dan intensitas cahaya secara real-time, semuanya berkat ESP32, sensor DHT11 atau DHT22, serta LDR. Proses pengirimannya ke platform ThingSpeak pun sederhana, kamu cukup menyiapkan kode, menghubungkan perangkat ke Wi-Fi, masukkan API Key dan hasilnya bisa langsung diakses dari mana saja.
Yang bikin seru, proyek ini nggak cuma berhenti di sini. Kamu bisa eksplor lebih jauh dengan menambah sensor lain atau mengutak-atik kode sesuai kebutuhanmu. Dari mulai belajar IoT sampai membuat sistem monitoring sendiri di rumah, proyek ini jadi langkah awal yang keren buat pemula ataupun yang ingin lebih mendalami teknologi monitoring real-time.
Jadi, tunggu apalagi? Yuk, coba sekarang dan bikin sistem monitoring yang bisa kamu kontrol dan lihat kapanpun kamu mau!
Kalau kamu mau nambah pengalaman seru, coba deh proyek Membuat Running Text dengan ESP32 dan P10 untuk Pemula!