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?
| Alasan | Penjelasan | Contoh |
|---|---|---|
| Low Latency | Respons real-time tanpa round-trip ke cloud | Autonomous vehicle, robot industri |
| Bandwidth Savings | Filter dan kompres data sebelum kirim ke cloud | Video surveillance, sensor array |
| Offline Operation | Tetap berfungsi tanpa internet | Pertambangan, kapal laut, drone |
| Privacy | Data sensitif diproses lokal, tidak ke cloud | Kesehatan, keamanan wajah |
| Cost Reduction | Kurangi biaya transfer data dan compute cloud | High-frequency sensor data |
| Reliability | Sistem tetap jalan meski jaringan down | Sistem keselamatan, alarm kebakaran |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β EVOLUSI KOMPUTASI IoT β β β β ERA 1: Cloud-Only (2010-an) β β Devices βββββββββββββββΊ Cloud βββββββΊ User β β (Semua data ke cloud) (Proses) (Dashboard) β β β Latency tinggi, bandwidth mahal, offline = mati β β β β ERA 2: Edge-Cloud Hybrid (2020-an) β β Devices βββΊ Edge βββΊ Cloud βββΊ User β β (Proses (Analytics β β lokal) & archive) β β β Latency rendah, hemat bandwidth, offline-capable β β β β ERA 3: Edge-Native (masa depan) β β Devices βββΊ Edge AI βββΊ Cloud (opsional) β β (AI/ML di (Sync & β β device) training) β β β Real-time AI, minimal bandwidth, autonomous β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2. Edge vs Cloud Computing
Memahami perbedaan mendasar antara edge dan cloud computing membantu Anda menentukan kapan harus memproses data di mana.
Perbandingan Komprehensif
| Aspek | Edge Computing | Cloud Computing |
|---|---|---|
| Lokasi | Di dekat device / lokal | Data 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?
- 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
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β LATENCY BREAKDOWN β β β β CLOUD PROCESSING: β β Sensor β ADC(1ms) β WiFi(5ms) β Internet(50ms) β β β Cloud Process(20ms) β Response(50ms) β WiFi(5ms) β β β Actuator(1ms) = ~132ms total β β β β EDGE PROCESSING: β β Sensor β ADC(1ms) β Local Process(2ms) β β β Actuator(1ms) = ~4ms total β β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β Cloud Path: ββββββββββββββββββββββββ 132ms β β β β Edge Path: ββ 4ms β β β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β Edge computing mengurangi latency hingga 30x lipat! β β β β LATENCY REQUIREMENTS PER APPLICATION: β β ββ Autonomous vehicle: < 5ms β β ββ Industrial automation: < 10ms β β ββ AR/VR: < 20ms β β ββ Smart home: < 100ms β β ββ Monitoring dashboard: < 1000ms β β ββ Data logging: < 5000ms (tidak kritis) β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Bandwidth Optimization
| Strategi | Deskripsi | Penghematan Bandwidth |
|---|---|---|
| Data Filtering | Kirim hanya data yang berubah signifikan | 50-90% |
| Aggregation | Kirim rata-rata per menit, bukan per detik | 80-99% |
| Edge Analytics | Kirim insight, bukan raw data | 90-99% |
| Compression | Kompres data sebelum kirim | 30-70% |
| Event-based | Kirim hanya saat threshold terlampaui | 95-99% |
import time
import statistics
class EdgeAggregator:
"""Mengagregasi data sensor di edge sebelum kirim ke cloud."""
def __init__(self, send_interval=60):
self.buffer = []
self.last_send = time.time()
self.send_interval = send_interval # detik
self.last_sent_value = None
self.change_threshold = 0.5 # Kirim jika berubah > 0.5
def add_reading(self, sensor_type, value):
self.buffer.append({
'type': sensor_type,
'value': value,
'ts': time.time()
})
# Cek apakah waktunya kirim
if time.time() - self.last_send >= self.send_interval:
return self.aggregate_and_send()
return None
def aggregate_and_send(self):
if not self.buffer:
return None
# Hitung statistik
values = [r['value'] for r in self.buffer]
result = {
'min': min(values),
'max': max(values),
'avg': round(statistics.mean(values), 2),
'stdev': round(statistics.stdev(values), 2) if len(values) > 1 else 0,
'count': len(values),
'duration_sec': self.send_interval
}
# Event-based: kirim alert jika anomali
if result['max'] > 40 or result['min'] < 0:
result['alert'] = True
result['alert_type'] = 'THRESHOLD_EXCEEDED'
self.buffer.clear()
self.last_send = time.time()
# Kirim 1 record per menit, bukan 60 record per detik!
# Penghematan: 60x lipat
return result
# Penggunaan
agg = EdgeAggregator(send_interval=60)
while True:
suhu = read_sensor() # Baca setiap detik
result = agg.add_reading('suhu', suhu)
if result:
# Kirim aggregated data ke cloud
mqtt_client.publish('cloud/suhu/stats', json.dumps(result))
# Bukan: mqtt_client.publish('sensor/suhu', str(suhu))
4. Fog Computing
Fog Computing adalah ekensi dari edge computing yang memperkenalkan lapisan komputasi tambahan antara device dan cloud. Istilah "fog" dipopulerkan oleh Cisco pada tahun 2014 sebagai "cloud yang lebih dekat ke tanah".
Edge vs Fog Computing
| Aspek | Edge Computing | Fog Computing |
|---|---|---|
| Lokasi | Di device itu sendiri | Di gateway / node lokal dalam jaringan |
| Compute Power | Sangat terbatas (MCU) | Lebih besar (gateway, server lokal) |
| Skala | Per device | Per jaringan / area lokal |
| Topology | Flat (device-centric) | Hierarchical (multi-layer) |
| Konektivitas | Langsung ke actuator | Ke device di sekitarnya + ke cloud |
| Contoh | MCU menjalankan ML inference | Raspberry Pi gateway di pabrik |
Hierarchical Architecture: Device β Edge β Fog β Cloud
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β FOG COMPUTING HIERARCHY β β β β CLOUD LAYER (Data Center) β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β Big Data Analytics, ML Training, β β β β Global Dashboard, Long-term Storage β β β βββββββββββββββββββββββ¬ββββββββββββββββββββββββ β β β Internet β β FOG LAYER (Local Network) β β βββββββββββββββββββββββ΄ββββββββββββββββββββββββ β β β ββββββββββββ ββββββββββββ ββββββββββββ β β β β β Gateway β β Gateway β β Gateway β β β β β β Gedung 1 β β Gedung 2 β β Gedung 3 β β β β β β Rasp Pi β β Rasp Pi β β Rasp Pi β β β β β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β β β βββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββββ β β β Local WiFi / Ethernet / LoRa β β EDGE LAYER (Devices) β β βββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββββ β β β ββββββ΄ββββ ββββββ΄ββββ ββββββ΄ββββ β β β β β ESP32 β β ESP32 β β ESP32 β β β β β β + ML β β + ML β β + ML β β β β β ββββββββββ ββββββββββ ββββββββββ β β β β ββββββββββ ββββββββββ ββββββββββ β β β β βSensor β βSensor β βSensor β β β β β β Array β β Array β β Array β β β β β ββββββββββ ββββββββββ ββββββββββ β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β Edge: ML inference, sensor reading, real-time control β β Fog: Aggregation, local rules, short-term cache β β Cloud: Analytics, ML training, global management β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
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
| Pola | Deskripsi | Cocok Untuk |
|---|---|---|
| Thin Edge | Device hanya kumpulkan data, semua proses di gateway/cloud | Sensor sederhana |
| Thick Edge | Device melakukan ML inference dan filtering sendiri | Smart camera, voice assistant |
| Store-and-Forward | Data disimpan lokal, dikirim ke cloud saat ada koneksi | Remote monitoring, offline areas |
| Edge-First | Keputusan real-time di edge, analytics di cloud | Industrial automation |
| Collaborative | Multi-device edge berkolaborasi, cloud sebagai koordinator | Smart city, autonomous fleet |
import json
import time
import sqlite3
import threading
class EdgeGateway:
"""Edge gateway yang memproses data lokal dan meneruskan ke cloud."""
def __init__(self):
self.local_rules = []
self.cloud_buffer = []
self.db = sqlite3.connect('edge_data.db')
self.db.execute('''CREATE TABLE IF NOT EXISTS sensor_data
(ts REAL, device TEXT, type TEXT, value REAL)''')
self.db.execute('''CREATE TABLE IF NOT EXISTS pending_sync
(ts REAL, data TEXT, synced INTEGER DEFAULT 0)''')
self.is_connected = False
def add_rule(self, rule_fn, action_fn):
"""Tambahkan rule lokal (dieksekusi di edge)."""
self.local_rules.append({'condition': rule_fn, 'action': action_fn})
def process_sensor_data(self, device_id, sensor_type, value):
"""Proses data sensor di edge."""
ts = time.time()
# 1. Simpan ke database lokal
self.db.execute(
'INSERT INTO sensor_data VALUES (?, ?, ?, ?)',
(ts, device_id, sensor_type, value)
)
# 2. Evaluasi rules lokal (real-time, tanpa cloud!)
for rule in self.local_rules:
if rule['condition'](device_id, sensor_type, value):
rule['action'](device_id, sensor_type, value)
print(f"Rule triggered: {device_id} {sensor_type}={value}")
# 3. Buffer untuk kirim ke cloud
record = json.dumps({
'ts': ts, 'device': device_id,
'type': sensor_type, 'value': value
})
if self.is_connected:
self._send_to_cloud(record)
else:
# Simpan untuk sync nanti (store-and-forward)
self.db.execute(
'INSERT INTO pending_sync (ts, data) VALUES (?, ?)',
(ts, record)
)
self.db.commit()
def _send_to_cloud(self, record):
"""Kirim data ke cloud (MQTT/HTTP)."""
try:
mqtt_client.publish('cloud/data', record)
except:
# Gagal kirim, simpan untuk nanti
self.db.execute(
'INSERT INTO pending_sync (ts, data) VALUES (?, ?)',
(time.time(), record)
)
def sync_pending(self):
"""Sync data yang tertunda saat koneksi pulih."""
if not self.is_connected:
return
cursor = self.db.execute(
'SELECT rowid, data FROM pending_sync WHERE synced = 0 ORDER BY ts'
)
for rowid, data in cursor.fetchall():
self._send_to_cloud(data)
self.db.execute(
'UPDATE pending_sync SET synced = 1 WHERE rowid = ?', (rowid,)
)
self.db.commit()
print("Sync selesai!")
# Setup edge gateway
gateway = EdgeGateway()
# Tambah rules lokal
gateway.add_rule(
condition=lambda d, t, v: t == 'suhu' and v > 35,
action=lambda d, t, v: trigger_alarm(d, 'HIGH_TEMP', v)
)
gateway.add_rule(
condition=lambda d, t, v: t == 'lembab' and v > 80,
action=lambda d, t, v: trigger_fan(d, True)
)
# Proses data
gateway.process_sensor_data('sensor_001', 'suhu', 36.5)
# β Rule triggered! Alarm tanpa perlu cloud!
6. Edge Hardware
Pemilihan hardware sangat menentukan kemampuan edge computing Anda. Berikut perbandingan berbagai platform yang umum digunakan.
Perbandingan Edge Hardware
| Platform | CPU | RAM | ML Support | Harga | Cocok Untuk |
|---|---|---|---|---|---|
| ESP32 | 240MHz dual-core | 520KB | TinyML (TFLite Micro) | ~$5 | Simple edge rules, sensor fusion |
| Raspberry Pi 4 | 1.5GHz quad-core ARM | 2-8GB | TFLite, ONNX | ~$35-75 | Gateway, edge AI, local dashboard |
| Jetson Nano | 1.4GHz quad-core ARM + 128-core GPU | 4GB | CUDA, TensorRT | ~$150 | Video analytics, complex ML |
| Google Coral | ARM + Edge TPU | 1-4GB | Edge TPU (4 TOPS) | ~$60-150 | ML inference berkecepatan tinggi |
| Intel NUC | x86 Core i3-i7 | 4-32GB | OpenVINO | ~$200-600 | Industrial edge, heavy compute |
| BeagleBone | 1GHz ARM Cortex-A8 | 512MB | TFLite (terbatas) | ~$55 | Industrial I/O, real-time Linux |
- Rules sederhana + sensor β ESP32 (murah, hemat daya, bisa TinyML)
- Gateway + basic ML β Raspberry Pi 4 (serbaguna, komunitas besar)
- Video/computer vision β Jetson Nano (GPU CUDA untuk inference)
- High-perf ML di edge β Google Coral (Edge TPU khusus inference)
- Industrial compute berat β Intel NUC (x86, container support)
7. Edge AI dan TinyML
Edge AI adalah menjalankan model kecerdasan buatan (AI/ML) langsung di perangkat edge, tanpa mengirim data ke cloud untuk inference. TinyML adalah subset Edge AI yang menjalankan ML di microcontroller ultra-low-power seperti ESP32 dan Arduino.
Mengapa Edge AI?
| Keunggulan | Penjelasan |
|---|---|
| Real-time | Inference dalam milidetik, tanpa latency jaringan |
| Privacy | Data (gambar, suara) tidak pernah meninggalkan device |
| Bandwidth | Kirim hanya hasil inference, bukan raw data (gambar/audio) |
| Offline | AI tetap berfungsi tanpa internet |
| Biaya | Tidak perlu GPU cloud untuk setiap inference |
TinyML Pipeline
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TinyML PIPELINE β
β β
β TRAIN (di PC/Cloud): β
β ββββββββ ββββββββββββ ββββββββββββ ββββββββββ β
β βData ββββΊβ Train ββββΊβ Convert ββββΊβ Deploy β β
β βCollectβ β Model β β TFLite β β to MCU β β
β ββββββββ β(TensorFlowβ β Micro β β β β
β β PyTorch) β ββββββββββββ ββββββββββ β
β ββββββββββββ β
β β
β RUN (di Microcontroller): β
β ββββββββββ ββββββββββββ ββββββββββββ β
β β Sensor ββββΊβ InferenceββββΊβ Action β β
β β Input β β (TFLite β β Output β β
β ββββββββββ β Micro) β ββββββββββββ β
β ββββββββββββ β
β β
β Contoh: β
β ββ Audio β Keyword detection ("Hey ESP") β
β ββ IMU β Activity recognition (jalan, lari, jatuh) β
β ββ Camera β Object detection (orang, kendaraan) β
β ββ Sensor β Anomaly detection (mesin abnormal) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
TinyML di 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
| Fungsi | Penjelasan |
|---|---|
| Protocol Translation | Konversi antar protokol: BLEβMQTT, ZigbeeβHTTP, ModbusβMQTT |
| Data Aggregation | Kumpulkan data dari banyak sensor, kirim summary ke cloud |
| Edge Rules | Jalankan aturan lokal untuk respons cepat |
| Local Storage | Buffer data saat offline, sync saat online |
| Security | Firewall antara jaringan lokal dan internet |
| Device Management | OTA update, monitoring, konfigurasi device lokal |
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
| Tugas | Di Edge | Di 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 |
- 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
# 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
# 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
| Aspek | Best Practice | Hindari |
|---|---|---|
| Data Flow | Filter dan agregasi di edge, kirim summary ke cloud | Kirim semua raw data ke cloud |
| Offline Handling | Store-and-forward, buffer lokal | Sistem mati tanpa internet |
| Security | Enkripsi data di edge, TLS ke cloud | Data plaintext di jaringan lokal |
| Updates | OTA firmware + model update | Manual flash per device |
| Monitoring | Device health heartbeat ke cloud | Blind spot tanpa monitoring |
| Redundancy | Failover ke cloud jika edge mati | Single point of failure |
| Resource Mgmt | Monitor RAM, CPU, storage di edge | Over-provisioning tanpa monitoring |
12. Quiz: Uji Pemahamanmu!
Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang Edge Computing: