🌐 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

  1. Modifikasi kode agar suhu & kelembaban ditampilkan di OLED atau LCD.
  2. Tambahkan LED indikator: hijau jika suhu normal, merah jika terlalu panas.
  3. Buat dashboard sederhana menggunakan Blynk untuk menyalakan/mematikan LED melalui smartphone.
  4. Coba gabungkan sensor lain, misal sensor cahaya (LDR) atau sensor jarak (Ultrasonik).
  5. Gunakan millis() untuk interval pengiriman data agar program tetap responsif.

📘 Penjelasan

  • ESP32/ESP8266 memiliki modul WiFi built-in, cocok untuk proyek IoT.
  • Library DHT digunakan 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