📚 TUTORIAL IoT LENGKAP

Panduan step-by-step untuk menghubungkan ESP32 ke Chat AIoT dan membangun proyek IoT dari nol. Cocok untuk pemula hingga mahir.

📋 DAFTAR ISI

1. Setup ESP32 Pertama Kali 2. BLE Gateway: Kontrol ESP32 via Bluetooth 3. Greenhouse Monitor dengan ESP32 4. Remote DPAD Control untuk Robot 5. Multi-Device IoT Network

1. Setup ESP32 Pertama Kali dengan Chat AIoT

ESP32PemulaMQTTWiFi

Tutorial ini akan memandu Anda dari awal hingga ESP32 berhasil terhubung ke Chat AIoT dan bisa dikontrol dari smartphone. Tidak diperlukan pengalaman pemrograman sebelumnya.

Yang Anda Butuhkan

01
INSTALL ARDUINO IDE DAN ESP32 BOARD

Download Arduino IDE dari arduino.cc/en/software. Setelah install, buka Arduino IDE dan pergi ke File → Preferences. Di kolom "Additional boards manager URLs", tambahkan URL berikut:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Kemudian pergi ke Tools → Board → Boards Manager, cari "esp32", dan install package dari Espressif Systems.

02
INSTALL LIBRARY YANG DIPERLUKAN

Buka Tools → Manage Libraries dan install library berikut:

  • PubSubClient oleh Nick O'Leary — untuk koneksi MQTT
  • ArduinoJson oleh Benoit Blanchon — untuk parsing JSON
  • DHT sensor library oleh Adafruit — jika menggunakan sensor suhu
03
DAPATKAN FIRMWARE DARI CHAT AIOT

Buka Chat AIoT di smartphone atau browser, pergi ke menu IoT Devices, tap tombol + untuk tambah device baru. Isi nama device, pilih board "ESP32 WiFi MQTT", lalu salin kode firmware yang dihasilkan secara otomatis.

💡 Firmware dihasilkan otomatis dengan GenkID unik Anda sudah tertanam di dalamnya. Ini memastikan hanya Anda yang bisa mengontrol device tersebut.
04
FLASH FIRMWARE KE ESP32

Paste kode firmware ke Arduino IDE. Ganti SSID dan password WiFi dengan jaringan Anda. Pilih board yang sesuai di Tools → Board → ESP32 Arduino → pilih board Anda. Pilih port COM yang sesuai, lalu klik tombol Upload (→).

// Ubah bagian ini sesuai WiFi Anda const char* ssid = "NAMA_WIFI_ANDA"; const char* password = "PASSWORD_WIFI_ANDA";
05
VERIFIKASI KONEKSI

Buka Serial Monitor di Arduino IDE (Tools → Serial Monitor, set baud rate 115200). Anda akan melihat log koneksi ESP32. Jika berhasil, akan muncul pesan "Connected to MQTT broker". Di Chat AIoT, device Anda akan muncul dengan status online (dot hijau).

⚠️ Pastikan MQTT broker di Chat AIoT sudah diset ke "wss://sugenxos.cloud:8084" di pengaturan device. Ini adalah broker MQTT yang dioperasikan oleh Chat AIoT.

2. BLE Gateway: Kontrol ESP32 via Bluetooth

BLEBluetoothGatewayAdvanced

BLE Gateway memungkinkan Anda mengontrol ESP32 via Bluetooth Low Energy dari smartphone, bahkan tanpa koneksi WiFi. Smartphone menjadi jembatan antara internet dan perangkat BLE.

Cara Kerja BLE Gateway

Dalam mode BLE Gateway, smartphone menjalankan dua koneksi secara bersamaan: koneksi MQTT ke internet untuk menerima perintah dari pengguna lain, dan koneksi Bluetooth ke ESP32 untuk meneruskan perintah tersebut. Ini memungkinkan kontrol ESP32 yang tidak terhubung ke WiFi.

Keunggulan BLE Gateway

01
FLASH FIRMWARE BLE KE ESP32

Di Chat AIoT, tambah device baru dan pilih board "ESP32 BLE". Firmware BLE berbeda dari firmware WiFi — tidak memerlukan konfigurasi WiFi sama sekali.

// Firmware BLE ESP32 — tidak perlu WiFi #include <BLEDevice.h> #include <BLEServer.h> #include <BLEUtils.h> // UUID service dan characteristic sudah otomatis // diisi oleh Chat AIoT firmware generator #define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E" #define CHAR_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E" #define CHAR_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"
02
AKTIFKAN BLE GATEWAY DI CHAT AIOT

Di Chat AIoT, buka menu IoT Devices, pilih device BLE Anda, tap tombol "BLE Gateway". Smartphone akan mulai scan perangkat Bluetooth terdekat. Pilih ESP32 Anda dari daftar yang muncul.

03
TEST KONTROL BLE

Setelah koneksi BLE terbentuk, Anda bisa mengontrol ESP32 via tombol ON/OFF di Chat AIoT. Perintah akan diteruskan via Bluetooth dari smartphone ke ESP32 secara real-time.

💡 BLE Gateway bekerja paling baik dalam jarak 5-10 meter. Untuk jarak lebih jauh, gunakan mode WiFi MQTT biasa.

3. Greenhouse Monitor dengan ESP32 dan Chat AIoT

GreenhouseSensorDHT22Monitoring

Proyek ini membuat sistem monitoring greenhouse otomatis yang memantau suhu, kelembaban, dan kelembaban tanah secara real-time. Data dikirim ke Chat AIoT dan Anda bisa mengontrol pompa air dan kipas dari mana saja.

Komponen yang Dibutuhkan

Skema Wiring

ESP32 Pin → Komponen GPIO 4 → DHT22 Data GPIO 34 → Soil Sensor Output GPIO 26 → Relay 1 (Pompa Air) GPIO 27 → Relay 2 (Kipas) 3.3V → DHT22 VCC, Soil Sensor VCC GND → Semua GND

Fitur Sistem

// Contoh loop monitoring greenhouse void loop() { float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); int soilMoisture = analogRead(SOIL_PIN); // Kirim data ke MQTT String payload = "{\"temp\":" + String(temperature) + ",\"hum\":" + String(humidity) + ",\"soil\":" + String(soilMoisture) + "}"; client.publish("greenhouse/data", payload.c_str()); // Auto control if (soilMoisture > 3000) { // tanah kering digitalWrite(PUMP_PIN, HIGH); client.publish("greenhouse/status", "Pompa ON - Tanah Kering"); } if (temperature > 35) { // suhu terlalu tinggi digitalWrite(FAN_PIN, HIGH); client.publish("greenhouse/status", "Kipas ON - Suhu Tinggi"); } delay(30000); // update setiap 30 detik }
💡 Gunakan delay 30 detik atau lebih untuk monitoring sensor. Update terlalu sering akan menguras baterai dan membebani broker MQTT.

4. Remote DPAD Control untuk Robot dengan Chat AIoT

RobotDPADRemote ControlMotor

Tutorial ini menjelaskan cara membuat robot sederhana yang bisa dikontrol via DPAD di Chat AIoT dari jarak jauh. Cocok untuk proyek robot line-follower yang ingin dikontrol manual, atau robot eksplorasi.

Komponen Robot

Cara Kerja DPAD Control

Chat AIoT memiliki fitur DPAD (Directional Pad) bawaan di menu GENK CTRL. Saat tombol DPAD ditekan, perintah dikirim via MQTT ke ESP32. ESP32 menerima perintah dan menggerakkan motor sesuai arah yang dipilih.

// Handler perintah DPAD di ESP32 void handleCommand(String cmd) { if (cmd == "FORWARD") { motorLeft(HIGH, LOW, 200); motorRight(HIGH, LOW, 200); } else if (cmd == "BACKWARD") { motorLeft(LOW, HIGH, 200); motorRight(LOW, HIGH, 200); } else if (cmd == "LEFT") { motorLeft(LOW, HIGH, 150); motorRight(HIGH, LOW, 150); } else if (cmd == "RIGHT") { motorLeft(HIGH, LOW, 150); motorRight(LOW, HIGH, 150); } else if (cmd == "STOP") { motorLeft(LOW, LOW, 0); motorRight(LOW, LOW, 0); } }
💡 Gunakan PWM (analogWrite) untuk kontrol kecepatan motor yang lebih halus. Nilai 0-255 untuk mengatur kecepatan dari berhenti hingga penuh.

5. Multi-Device IoT Network dengan Chat AIoT

NetworkMulti-DeviceMQTTAdvanced

Tutorial ini menjelaskan cara menghubungkan banyak ESP32 dalam satu jaringan IoT yang terpusat. Semua device bisa dikontrol dari satu aplikasi Chat AIoT.

Arsitektur Multi-Device

Setiap ESP32 memiliki device ID unik yang digunakan sebagai topik MQTT. Chat AIoT mengelola semua device dalam satu dashboard. Komunikasi antar device juga dimungkinkan melalui MQTT broker.

// Contoh naming convention topik MQTT // Device 1: Ruang Tamu sugenx/{GenkID}/device/ruangtamu/cmd sugenx/{GenkID}/device/ruangtamu/status // Device 2: Dapur sugenx/{GenkID}/device/dapur/cmd sugenx/{GenkID}/device/dapur/status // Device 3: Garasi sugenx/{GenkID}/device/garasi/cmd sugenx/{GenkID}/device/garasi/status

Tips Skalabilitas

Monitoring Semua Device

Chat AIoT menampilkan semua device dalam satu halaman IoT Devices. Setiap device menampilkan status online/offline, nilai sensor terakhir, dan tombol kontrol. Notifikasi akan dikirim ke Chat AIoT jika ada device yang offline atau kondisi kritis.

Siap memulai proyek IoT Anda?

▶ BUKA CHAT AIOT