🌐 Dasar IoT dengan ESP32 / ESP8266
Memahami konsep Internet of Things (IoT) dan membuat proyek sederhana menggunakan ESP32 atau ESP8266.
🎯 Tujuan: Siswa mampu memahami konsep IoT, menghubungkan ESP ke WiFi, dan mengirim data sensor ke dashboard online secara real-time.
🔧 Komponen yang Dibutuhkan
- ESP32 atau ESP8266 NodeMCU
- Sensor DHT11 / DHT22 (suhu & kelembaban)
- LED dan resistor 220Ω
- Kabel jumper dan breadboard
- Koneksi internet (WiFi)
- Software: Arduino IDE + Library ESPAsyncWebServer / PubSubClient / Adafruit Sensor
1️⃣ Konsep Dasar IoT
IoT adalah jaringan perangkat fisik yang terhubung ke internet, mengirim dan menerima data. ESP32/ESP8266 dapat digunakan sebagai node untuk mengumpulkan data sensor dan mengirimkannya ke dashboard online seperti ThingSpeak atau Blynk.
- Node → ESP + sensor/aktuator
- Gateway → ESP/PC yang mengirim data ke server/cloud
- Cloud/Server → Menyimpan, menampilkan, dan mengontrol data
2️⃣ Setup ESP ke WiFi
ESP perlu terhubung ke jaringan WiFi agar dapat mengirim data ke server atau dashboard IoT.
#include <WiFi.h> // Gunakan <ESP8266WiFi.h> untuk ESP8266
const char* ssid = "NAMA_WIFI";
const char* password = "PASSWORD_WIFI";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Menghubungkan ke WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Terhubung! IP ESP: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Koneksi WiFi aktif
}
3️⃣ Membaca Sensor DHT dan Kirim ke Serial
Contoh sederhana untuk menampilkan suhu dan kelembaban dari sensor DHT11/DHT22.
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT11 // atau DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float suhu = dht.readTemperature();
float kelembaban = dht.readHumidity();
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print(" °C, Kelembaban: ");
Serial.print(kelembaban);
Serial.println(" %");
delay(2000);
}
4️⃣ Mengirim Data ke ThingSpeak
ESP dapat mengirim data ke ThingSpeak agar bisa dipantau secara online.
#include <WiFi.h>
#include <HTTPClient.h>
#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "NAMA_WIFI";
const char* password = "PASSWORD_WIFI";
String apiKey = "API_KEY_THINGSPEAK";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("WiFi Connected!");
dht.begin();
}
void loop() {
float suhu = dht.readTemperature();
float kelembaban = dht.readHumidity();
if(WiFi.status() == WL_CONNECTED){
HTTPClient http;
String url = "http://api.thingspeak.com/update?api_key=" + apiKey +
"&field1=" + String(suhu) + "&field2=" + String(kelembaban);
http.begin(url);
int response = http.GET();
Serial.println("Response: " + String(response));
http.end();
}
delay(15000); // Sesuai batas pengiriman ThingSpeak
}
📝 Aktivitas Siswa
- Modifikasi kode agar suhu & kelembaban ditampilkan di OLED atau LCD.
- Tambahkan LED indikator: hijau jika suhu normal, merah jika terlalu panas.
- Buat dashboard sederhana menggunakan Blynk untuk menyalakan/mematikan LED melalui smartphone.
- Coba gabungkan sensor lain, misal sensor cahaya (LDR) atau sensor jarak (Ultrasonik).
- Gunakan
millis()untuk interval pengiriman data agar program tetap responsif.
📘 Penjelasan
- ESP32/ESP8266 memiliki modul WiFi built-in, cocok untuk proyek IoT.
- Library
DHTdigunakan untuk membaca sensor suhu dan kelembaban. - ThingSpeak & Blynk → Platform IoT untuk menyimpan dan menampilkan data secara online.
- HTTP GET/POST → Cara ESP mengirim data ke server.
- Fungsi
millis()→ Mengatur interval tanpa menghentikan program.
No comments:
Post a Comment