β˜€οΈSiang
IoT

πŸ–₯️ Edge Computing untuk IoT: Panduan Lengkap

Panduan lengkap Edge Computing untuk IoT β€” perbandingan edge vs cloud, latency optimization, Fog computing, edge AI, edge gateway, dan arsitektur hybrid

Artikel: Edge Computing Artikel: Edge Computing

1. Pengenalan Edge Computing

Edge Computing adalah paradigma komputasi yang memproses data sedekat mungkin dengan sumber data (di "edge" / tepi jaringan), bukan mengirim semuanya ke cloud yang jauh. Dalam konteks IoT, edge computing berarti memproses data sensor di perangkat lokal (ESP32, Raspberry Pi, gateway) sebelum β€” atau bahkan tanpa β€” mengirimnya ke cloud.

Edge computing muncul karena keterbatasan model cloud-only: latency tinggi, bandwidth terbatas, biaya transfer data yang besar, dan kebutuhan akan operasi yang berkelanjutan meski koneksi internet terputus.

Mengapa Edge Computing Penting?

AlasanPenjelasanContoh
Low LatencyRespons real-time tanpa round-trip ke cloudAutonomous vehicle, robot industri
Bandwidth SavingsFilter dan kompres data sebelum kirim ke cloudVideo surveillance, sensor array
Offline OperationTetap berfungsi tanpa internetPertambangan, kapal laut, drone
PrivacyData sensitif diproses lokal, tidak ke cloudKesehatan, keamanan wajah
Cost ReductionKurangi biaya transfer data dan compute cloudHigh-frequency sensor data
ReliabilitySistem tetap jalan meski jaringan downSistem keselamatan, alarm kebakaran
Diagram: Evolusi Komputasi IoT
Evolusi Komputasi IoT

Push ke edge

Miniaturisasi

AI di chip

☁️ Cloud Computing\n(Sentralisasi)\nLatency: 100-500ms

🌫️ Fog Computing\n(Distribusi)\nLatency: 10-50ms

πŸ“± Edge Computing\n(Perangkat)\nLatency: 1-10ms

🧠 TinyML\n(On-device AI)\nLatency: <1ms

 ad-slot-wide">

2. Edge vs Cloud Computing

Memahami perbedaan mendasar antara edge dan cloud computing membantu Anda menentukan kapan harus memproses data di mana.

Perbandingan Komprehensif

AspekEdge ComputingCloud Computing
LokasiDi dekat device / lokalData center jauh
Latency🟒 < 10msπŸ”΄ 50-200ms+
Bandwidth🟒 Minim (data sudah difilter)πŸ”΄ Tinggi (raw data)
Compute Power🟑 Terbatas (ARM, RISC)🟒 Tak terbatas (GPU/TPU)
Storage🟑 Terbatas (GB)🟒 Tak terbatas (TB/PB)
SkalabilitasπŸ”΄ Terbatas per device🟒 Elastis, auto-scaling
Biaya🟒 Fixed (hardware sekali beli)🟑 Variable (pay-per-use)
Offlineβœ… Tetap berfungsi❌ Tidak bisa
Keamanan Dataβœ… Data tetap lokal🟑 Data di jaringan & cloud
Update/DeployπŸ”΄ Perlu ke device (OTA)🟒 Centralized, mudah
Analytics KompleksπŸ”΄ Terbatas🟒 Big data, ML heavy

Kapan Harus di Edge vs Cloud?

πŸ’‘ Decision Guide
  • Proses di EDGE jika: latency < 100ms diperlukan, bandwidth terbatas, harus offline-capable, data sensitif/privacy
  • Proses di CLOUD jika: butuh compute besar (ML training), analytics lintas device, storage besar, akses dari mana saja
  • Gunakan HYBRID jika: real-time processing di edge + historical analytics di cloud. Ini skenario terbaik untuk mayoritas IoT.

3. Latency dan Responsiveness

Latency adalah waktu yang diperlukan data untuk berpindah dari titik A ke titik B. Dalam IoT, latency menentukan seberapa cepat sistem merespons perubahan di dunia nyata. Edge computing mengurangi latency secara drastis dengan memproses data secara lokal.

Anatomi Latency

Diagram: Latency Breakdown
Latency Breakdown

πŸ“± Edge Path (4ms)

Local\n1ms

Process\n2ms

Response\n1ms

☁️ Cloud Path (132ms)

Network\n50ms

Processing\n30ms

Response\n52ms

Bandwidth Optimization

StrategiDeskripsiPenghematan Bandwidth
Data FilteringKirim hanya data yang berubah signifikan50-90%
AggregationKirim rata-rata per menit, bukan per detik80-99%
Edge AnalyticsKirim insight, bukan raw data90-99%
CompressionKompres data sebelum kirim30-70%
Event-basedKirim hanya saat threshold terlampaui95-99%
Diagram

Aggregated

Aggregated

Aggregated

Aggregated

Aggregated

Aggregated

Aggregated

Aggregated

Summarized

Summarized

☁️ Cloud\n(Global Analytics)

🌐 Gateway Gedung 1\n(Raspberry Pi)

🌐 Gateway Gedung 2\n(Raspberry Pi)

πŸ“‘ Sensor A

πŸ“‘ Sensor B

πŸ“‘ Sensor C

πŸ“‘ Sensor D

5. Arsitektur Edge Computing

Arsitektur edge computing yang baik mendefinisikan dengan jelas apa yang diproses di mana, bagaimana data mengalir, dan bagaimana edge dan cloud berkoordinasi.

Pola Arsitektur Edge

PolaDeskripsiCocok Untuk
Thin EdgeDevice hanya kumpulkan data, semua proses di gateway/cloudSensor sederhana
Thick EdgeDevice melakukan ML inference dan filtering sendiriSmart camera, voice assistant
Store-and-ForwardData disimpan lokal, dikirim ke cloud saat ada koneksiRemote monitoring, offline areas
Edge-FirstKeputusan real-time di edge, analytics di cloudIndustrial automation
CollaborativeMulti-device edge berkolaborasi, cloud sebagai koordinatorSmart city, autonomous fleet
Diagram

Feedback

πŸ‹οΈ Train Model\n(TensorFlow)

πŸ”„ Convert\n(TFLite)

πŸ“‰ Quantize\n(INT8)

πŸ“± Deploy\n(TFLite Micro)

🧠 Inference\n(On-device)

TinyML di ESP32

Arduino β€” TinyML ESP32
#include <TensorFlowLite_ESP32.h>
#include "tensorflow/lite/micro/all_ops_resolver.h"
#include "tensorflow/lite/micro/micro_interpreter.h"
#include "tensorflow/lite/schema/schema_generated.h"

// Model yang sudah di-train dan di-convert ke TFLite Micro
#include "model_data.h"  // Hasil export dari TensorFlow

// Arena memory untuk TFLite
constexpr int kTensorArenaSize = 32 * 1024;  // 32KB
uint8_t tensor_arena[kTensorArenaSize];

const tflite::Model* model;
tflite::MicroInterpreter* interpreter;
TfLiteTensor* input;
TfLiteTensor* output;

void setup() {
    Serial.begin(115200);

    // Load model
    model = tflite::GetModel(model_data);
    static tflite::AllOpsResolver resolver;

    static tflite::MicroInterpreter static_interpreter(
        model, resolver, tensor_arena, kTensorArenaSize
    );
    interpreter = &static_interpreter;

    // Allocate tensors
    interpreter->AllocateTensors();

    // Get input/output tensors
    input = interpreter->input(0);
    output = interpreter->output(0);

    Serial.println("TinyML model loaded!");
    Serial.printf("Input size: %d\n", input->bytes);
    Serial.printf("Arena used: %d bytes\n", interpreter->arena_used_bytes());
}

void loop() {
    // Baca sensor (contoh: 3-axis accelerometer)
    float ax = readAccelX();  // -1.0 to 1.0
    float ay = readAccelY();
    float az = readAccelZ();

    // Normalisasi dan isi input tensor
    input->data.f[0] = ax;
    input->data.f[1] = ay;
    input->data.f[2] = az;

    // Jalankan inference
    unsigned long start = micros();
    interpreter->Invoke();
    unsigned long elapsed = micros() - start;

    // Baca hasil
    // Misal: 0=diam, 1=jalan, 2=lari, 3=jatuh
    int predicted_class = -1;
    float max_score = -1;
    for (int i = 0; i < output->bytes / sizeof(float); i++) {
        if (output->data.f[i] > max_score) {
            max_score = output->data.f[i];
            predicted_class = i;
        }
    }

    const char* labels[] = {"Diam", "Jalan", "Lari", "Jatuh"};
    Serial.printf("Activity: %s (%.2f) - Inference: %lu us\n",
                  labels[predicted_class], max_score, elapsed);

    // Edge action: trigger alarm jika "Jatuh"
    if (predicted_class == 3 && max_score > 0.8) {
        Serial.println("⚠️ FALL DETECTED! Sending alert...");
        // Kirim alert ke cloud (bukan raw sensor data!)
        mqtt_publish("alert/fall", "sensor_001");
    }

    delay(100);  // 10 Hz inference rate
}

8. Edge Gateway

Edge Gateway adalah perangkat yang menghubungkan jaringan sensor lokal dengan cloud. Gateway bertindak sebagai translator, aggregator, dan filter antara device resource-constrained dan cloud.

Fungsi Edge Gateway

FungsiPenjelasan
Protocol TranslationKonversi antar protokol: BLE→MQTT, Zigbee→HTTP, Modbus→MQTT
Data AggregationKumpulkan data dari banyak sensor, kirim summary ke cloud
Edge RulesJalankan aturan lokal untuk respons cepat
Local StorageBuffer data saat offline, sync saat online
SecurityFirewall antara jaringan lokal dan internet
Device ManagementOTA update, monitoring, konfigurasi device lokal
Python β€” Raspberry Pi Edge Gateway
import paho.mqtt.client as mqtt
import json, time, sqlite3
from threading import Thread

class IoTGateway:
    def __init__(self):
        # Local broker (ke device lokal)
        self.local = mqtt.Client("gateway-local")
        self.local.connect("localhost", 1883)

        # Cloud broker (ke AWS/Azure)
        self.cloud = mqtt.Client("gateway-cloud")
        self.cloud.tls_set("ca.crt", "client.crt", "client.key")
        self.cloud.connect("aws-iot-endpoint", 8883)

        # Local database
        self.db = sqlite3.connect('gateway.db')
        self.db.execute('''CREATE TABLE IF NOT EXISTS buffer
                          (ts REAL, topic TEXT, data TEXT, sent INT DEFAULT 0)''')

        # Rules engine
        self.rules = [
            {'topic': 'sensor/+/suhu', 'threshold': 35, 'action': 'alarm'},
            {'topic': 'sensor/+/suhu', 'threshold': 0, 'below': True, 'action': 'alarm'}
        ]

    def on_local_message(self, client, userdata, msg):
        """Terima data dari device lokal."""
        data = json.loads(msg.payload.decode())

        # Simpan ke buffer
        self.db.execute('INSERT INTO buffer VALUES (?, ?, ?, 0)',
                       (time.time(), msg.topic, json.dumps(data)))
        self.db.commit()

        # Evaluasi rules lokal
        self.evaluate_rules(msg.topic, data)

        # Agregasi dan kirim ke cloud
        self.forward_to_cloud(msg.topic, data)

    def evaluate_rules(self, topic, data):
        """Evaluasi rules di edge β€” tanpa cloud dependency!"""
        if 'suhu' in data and data['suhu'] > 35:
            # Trigger alarm LOKAL (buzzer, LED, relay)
            self.local.publish('cmd/alarm', json.dumps({
                'device': data.get('device_id'),
                'type': 'HIGH_TEMP',
                'value': data['suhu']
            }))

    def forward_to_cloud(self, topic, data):
        """Teruskan data ke cloud (dengan filter)."""
        cloud_topic = topic.replace('sensor/', 'devices/')
        self.cloud.publish(cloud_topic, json.dumps(data))

    def start(self):
        self.local.on_message = self.on_local_message
        self.local.subscribe("sensor/#")

        Thread(target=self.local.loop_forever).start()
        Thread(target=self.cloud.loop_forever).start()

        # Periodic sync
        while True:
            self.sync_buffered()
            time.sleep(60)

gateway = IoTGateway()
gateway.start()

9. Arsitektur Hybrid Edge-Cloud

Arsitektur hybrid menggabungkan keunggulan edge (low latency, offline) dan cloud (compute besar, global access) dalam satu sistem yang koheren.

Pembagian Kerja Edge vs Cloud

TugasDi EdgeDi Cloud
Data Collectionβœ… Sensor reading❌ (via edge)
Preprocessingβœ… Filter, normalize, validate❌
Real-time Rulesβœ… Threshold, interlock❌
ML Inferenceβœ… Simple models (TFLite)βœ… Complex models (GPU)
ML Training❌ (resource terbatas)βœ… (GPU/TPU cluster)
Historical Analytics❌ (storage terbatas)βœ… (data warehouse)
Dashboard Global❌ (lokal saja)βœ… (akses dari mana saja)
Alert & Notificationβœ… Alarm lokal (buzzer)βœ… Email, SMS, push
OTA Updatesβœ… Terima updateβœ… Push update
⚠️ Hindari Anti-Pattern
  • Cloud-only untuk real-time control β€” Latency tinggi, single point of failure
  • Edge-only untuk analytics β€” Resource terbatas, tidak scalable
  • Tanpa offline handling β€” Sistem mati saat internet putus
  • Sinkronisasi tanpa conflict resolution β€” Data inconsistency

10. Use Cases

1. Predictive Maintenance di Pabrik

Diagram β€” Predictive Maintenance
# EDGE: ESP32 dengan accelerometer pada motor industri
# - Baca getaran 1000 Hz (vibration analysis)
# - Jalankan FFT (Fast Fourier Transform) di edge
# - Jalankan anomaly detection model (TFLite)
# - Jika anomaly terdeteksi β†’ alert lokal + kirim ke cloud
#
# CLOUD: AWS/GCP
# - Terima anomaly events (bukan raw vibration data!)
# - Dashboard maintenance untuk seluruh pabrik
# - Train ulang model berdasarkan feedback teknisi
# - Push model baru ke edge device (OTA)
#
# PENGHEMATAN BANDWIDTH:
# Raw data: 1000 samples/sec Γ— 4 bytes = 4 KB/s per device
# Dengan 100 devices = 400 KB/s = 34 GB/hari!
# Edge analytics: ~1 event/menit Γ— 200 bytes = 12 KB/jam
# Penghematan: 99.97%!

2. Smart Agriculture

Diagram β€” Smart Agriculture
# EDGE (per lahan):
# - Raspberry Pi Gateway + multiple ESP32 sensors
# - Soil moisture, temperature, humidity, light, pH
# - Edge rules: if soil_moisture < 30% β†’ activate irrigation
# - Edge rules: if temp > 40 β†’ activate shade/sprinkler
# - Data aggregation: kirim rata-rata per jam ke cloud
#
# CLOUD:
# - Analytics musiman (trend analysis)
# - Rekomendasi tanam berdasarkan historical data
# - Integrasi cuaca (weather API)
# - Dashboard petani via mobile app
#
# MANFAAT:
# - Respons irigasi < 1 detik (edge rules)
# - Tetap berfungsi saat internet mati (offline)
# - Hemat bandwidth (summary per jam)
# - Data historis untuk optimasi jangka panjang

11. Best Practices

AspekBest PracticeHindari
Data FlowFilter dan agregasi di edge, kirim summary ke cloudKirim semua raw data ke cloud
Offline HandlingStore-and-forward, buffer lokalSistem mati tanpa internet
SecurityEnkripsi data di edge, TLS ke cloudData plaintext di jaringan lokal
UpdatesOTA firmware + model updateManual flash per device
MonitoringDevice health heartbeat ke cloudBlind spot tanpa monitoring
RedundancyFailover ke cloud jika edge matiSingle point of failure
Resource MgmtMonitor RAM, CPU, storage di edgeOver-provisioning tanpa monitoring

12. Quiz: Uji Pemahamanmu!

Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang Edge Computing:

Pertanyaan 1: Apa keuntungan utama edge computing dibanding cloud-only?

a) Kapasitas storage lebih besar
b) Latency lebih rendah dan bisa beroperasi offline
c) Lebih murah untuk ML training
d) Tidak perlu hardware tambahan

Pertanyaan 2: Apa perbedaan antara Edge Computing dan Fog Computing?

a) Tidak ada perbedaan, hanya istilah berbeda
b) Edge di device, Fog di gateway/node lokal dalam jaringan
c) Edge lebih cepat dari Fog
d) Fog hanya untuk industri, Edge untuk konsumen

Pertanyaan 3: Platform mana yang paling cocok untuk video analytics di edge?

a) ESP32
b) Arduino Uno
c) Jetson Nano
d) Raspberry Pi Pico

Pertanyaan 4: Apa yang dimaksud dengan "store-and-forward" dalam edge computing?

a) Menyimpan data di cloud, forward ke device
b) Menyimpan data di edge saat offline, kirim ke cloud saat koneksi pulih
c) Menghapus data lama, simpan data baru
d) Mengkompres data sebelum kirim

Pertanyaan 5: Mengapa TinyML penting untuk IoT?

a) Karena microcontroller punya GPU yang kuat
b) Karena memungkinkan AI inference di device ultra-low-power tanpa cloud
c) Karena menggantikan kebutuhan sensor
d) Karena lebih akurat dari cloud ML
πŸ” Zoom
100%
🎨 Tema