Belajar IoT Engineer - Wireless IoT (WiFi/BLE/Zigbee/LoRa)
Episode 6 of 28

Belajar IoT Engineer - Wireless IoT (WiFi/BLE/Zigbee/LoRa)

Memilih teknologi wireless yang tepat untuk perangkat IoT: WiFi untuk bandwidth tinggi, BLE untuk daya rendah dan pairing, Zigbee untuk mesh dalam ruangan, LoRaWAN untuk jangkauan jauh hemat daya, hingga NB-IoT seluler, serta praktik koneksi WiFi dan BLE dari ESP32.

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

Setelah di episode 5 firmware kita bisa berkomunikasi lewat MQTT, muncul pertanyaan berikutnya: lewat media apa data itu dikirim? Kabel praktis untuk prototype, tapi produk IoT nyata — sensor di sawah, meteran listrik, smart lock — nyaris semuanya nirkabel.

Memilih teknologi wireless adalah salah satu keputusan desain paling strategis: menentukan jangkauan, umur baterai, biaya, dan bandwidth. Salah pilih berarti perangkat mati baterai dalam minggu, atau tidak bisa menjangkau sensor di ujung lapangan.

Spektrum Teknologi Wireless

Setiap teknologi mengisi posisi berbeda dalam segitiga jangkauan–bandwidth–daya. Tidak ada yang menang di semua aspek:

TeknologiJangkauanBandwidthDayaFrekuensiKasus Penggunaan
WiFi10–100 mTinggi (Mbps)Tinggi2.4/5 GHzRumah, kantor, video
BLE10–30 mRendah-sedangSangat rendah2.4 GHzWearable, beacon
Zigbee10–100 m (mesh)Rendah (kbps)Rendah2.4 GHzSmart home, sensor mesh
LoRaWAN2–15 kmSangat rendah (kbps)Sangat rendah868/915 MHzSensor sawah, kota pintar
NB-IoT1–10 kmRendahRendahSeluler licensedMeteran, aset mobile

Aturan praktis: WiFi saat listrik tersedia dan butuh throughput; BLE untuk perangkat kecil bertenaga baterai di dekat ponsel; Zigbee untuk banyak sensor di satu rumah yang butuh mesh; LoRaWAN untuk sensor tersebar jauh yang jarang mengirim; NB-IoT saat butuh koneksi seluler terjamin tanpa WiFi.

WiFi: Kapan Memakainya

WiFi adalah pilihan paling mudah untuk prototype: cepat, bandwidth besar, dan sudah ada di mana-mana. Tapi ia boros daya dan rentan gangguan 2.4 GHz di lingkungan padat.

Pada ESP32, koneksi WiFi adalah fondasi untuk MQTT:

src/main.cpp - koneksi WiFi dengan retry
#include <Arduino.h>
#include <WiFi.h>
 
const char *ssid = "NAMA_WIFI";
const char *pass = "PASSWORD_WIFI";
 
void setup() {
    Serial.begin(115200);
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, pass);
 
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
    Serial.printf("\nTerhubung, IP: %s\n", WiFi.localIP().toString().c_str());
}
 
void loop() {
    if (WiFi.status() != WL_CONNECTED) {
        Serial.println("WiFi putus, reconnect...");
        WiFi.reconnect();
        delay(5000);
    }
    delay(1000);
}

Perhatikan pola: firmware tidak hanya connect sekali, tapi juga mendeteksi koneksi putus dan melakukan reconnect — karena di lapangan, WiFi adalah sumber kegagalan paling umum.

Note

Konsumsi WiFi cukup besar: saat transmisi, ESP32 bisa menarik arus hingga 200–400 mA. Jika perangkat bertenaga baterai, WiFi hanya cocok jika perangkat dikirim dalam mode sleep di antara pengiriman. Untuk penghematan ekstrem, lihat episode 15 (LPWAN).

BLE: Bluetooth Low Energy

BLE dirancang untuk perangkat kecil berdaya rendah yang berkomunikasi dengan ponsel: smartwatch, sensor tubuh, beacon. Modelnya berbeda dari WiFi — perangkat advertise (menyebarkan sinyal) dan central device (ponsel) terhubung lalu membaca characteristic.

src/main.cpp - BLE server sederhana
#include <Arduino.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
 
#define SERVICE_UUID        "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
 
void setup() {
    Serial.begin(115200);
    BLEDevice::init("Sensor-Suhu");
    BLEServer *server = BLEDevice::createServer();
    BLEService *service = server->createService(SERVICE_UUID);
 
    BLECharacteristic *ch = service->createCharacteristic(
        CHARACTERISTIC_UUID,
        BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY
    );
    ch->setValue("26.5 C");
    service->start();
    BLEDevice::startAdvertising();
    Serial.println("BLE siap, menunggu koneksi...");
}
 
void loop() {
    delay(10000); // perangkat sleep antar broadcast
}

Ponsel dengan aplikasi BLE (mis. nRF Connect) bisa membaca nilai 26.5 C dari characteristic tersebut. BLE memungkinkan perangkat dikonfigurasi tanpa kabel — pola umum untuk setup WiFi pada produk IoT konsumen.

Zigbee dan Mesh

Zigbee membangun jaringan mesh: setiap perangkat bisa menjadi relay untuk perangkat lain, sehingga jangkauan bertambah otomatis saat jumlah perangkat bertambah. Ini alasan smart home memakai Zigbee — sensor di kamar terjauh tetap terhubung melalui perangkat di tengah.

Zigbee tidak ada di ESP32; ia butuh modul khusus (ex. CC2530) atau koordinator (Coordinator) yang menjembatani ke jaringan WiFi. Di episode 15 kita lihat bagaimana Zigbee masuk ke industri (di dalam ekosistem Matter juga).

LoRaWAN: Jangkauan Jauh, Daya Rendah

LoRaWAN memakai modulasi LoRa di frekuensi sub-GHz (868 MHz di Eropa, 915 MHz di Indonesia/AS) untuk mengirim data sangat kecil dalam jangkauan puluhan kilometer, dengan konsumsi daya sangat rendah — sensor bisa bertahan bertahun-tahun dengan baterai AA.

AspekNilai
Ukuran payload51–222 byte per pesan
Waktu kirim0.1–1 detik
JaringanGateway LoRa → Network Server
BiayaMurah, open; frekuensi berlisensi untuk NB-IoT

Contoh kasus: sensor tingkat air sungai yang mengirim pembacaan setiap 30 menit. Perangkat tidur nyaris sepanjang hari, bangun, kirim beberapa byte, tidur lagi.

Warning

Frekuensi sub-GHz diatur regulasi telekomunikasi tiap negara (di Indonesia: regulasi SDPPI Kominfo). Untuk produksi LoRaWAN, pastikan kalian memakai frekuensi yang diizinkan dan gateway/network server yang sesuai. Jangan asal memakai perangkat 868 MHz Eropa di Indonesia.

NB-IoT: Seluler untuk IoT

NB-IoT (Narrowband IoT) adalah standar seluler 3GPP untuk perangkat berdaya rendah: memakai spektrum LTE berlisensi, jangkauan bagus, dan biaya langganan rendah. Cocok untuk meteran listrik/air dan aset yang bergerak (tracking) karena tidak bergantung pada jaringan WiFi atau gateway pribadi — cukup SIM dan coverage operator.

Praktik: Koneksi Wireless End-to-End

Untuk praktik series ini, kita fokus pada WiFi (sudah ada di ESP32) dan BLE. Uji koneksi WiFi + MQTT sekaligus:

Verifikasi koneksi dari terminal
mosquitto_sub -h 192.168.1.10 -t "test/wifi" -v &
curl -s http://192.168.1.10:8080 2>/dev/null || echo "cek endpoint firmware"

Kombinasi yang direkomendasikan untuk prototype rumah: ESP32 + WiFi + MQTT. Untuk produk yang hemat baterai: BLE (dekat ponsel) atau LoRaWAN (jauh & jarang kirim). Keputusan ini harus ditulis di arsitektur sejak episode 2.

Kesalahan Umum

  1. Memakai WiFi untuk perangkat bertenaga baterai — baterai habis dalam hitungan hari.
  2. Abaikan kualitas sinyal — tembok tebal membunuh koneksi; uji di lokasi nyata sebelum produksi.
  3. BLE tanpa memikirkan pairing — pastikan desain pairing (mis. bonding) untuk perangkat yang butuh kredensial.
  4. LoRaWAN di frekuensi salah — regulasi tiap negara berbeda; perangkat tidak akan bisa bergabung ke jaringan.
  5. Reconnect WiFi yang memblokirwhile tak terbatas tanpa timeout membuat firmware hang; gunakan retry dengan batas.

Penutup

Inti yang harus dibawa pulang:

  • Wireless IoT adalah segitiga jangkauan–bandwidth–daya — tidak ada teknologi yang menang di semua aspek.
  • WiFi untuk bandwidth, BLE untuk daya rendah + ponsel, Zigbee untuk mesh dalam ruangan, LoRaWAN untuk jarak jauh hemat daya, NB-IoT untuk koneksi seluler.
  • ESP32 langsung mendukung WiFi dan BLE — fokus praktik series ini pada keduanya.
  • Pola reconnect WiFi wajib ada di firmware produksi.
  • Perhatikan regulasi frekuensi sub-GHz sebelum produksi.

Di episode 7 selanjutnya, kita akan menaikkan data ke level berikutnya: IoT platforms & cloud — bagaimana AWS IoT, Azure IoT Hub, dan GCP bekerja, konsep device registry dan device shadow, serta praktik mendaftarkan dan menghubungkan perangkat pertama ke cloud. Perangkat kalian akan mulai bicara ke internet!

Belajar IoT Engineer - Wireless IoT (WiFi/BLE/Zigbee/LoRa) | Belajar IoT Engineer