🚀 Program IoT Pertama

Struktur program IoT: init → baca → proses → kirim, plus threshold dan alarm.

📌 1. Struktur Program IoT

Program IoT (di device maupun di simulator) hampir selalu punya 4 tahap:

1. INIT : inisialisasi (aktifkan sensor, koneksi, database) 2. BACA : ambil data dari sensor 3. PROSES : ubah satuan, filter, cek threshold, ambil keputusan 4. KIRIM : kirim ke platform (MQTT/HTTP) dan/atau gerakkan aktuator ... lalu ulangi 2–4 dalam loop (tiap N detik).
💡 Di dunia nyata tahap 4 dikirim lewat jaringan. Di simulator tahap 4 bisa berupa print(), db.write(), atau pub.publish() — logikanya sama persis.

📌 2. Stasiun Monitoring Suhu

Program lengkap 4 tahap: baca DHT22 tiap 10 detik, tentukan status, cetak laporan.

Output:

Ubah threshold 28 menjadi 26 dan Run lagi — lihat statusnya berubah. Nilai sensor deterministik, jadi perubahan hasil pasti berasal dari logikamu.

📌 3. Alarm Keamanan: Multi-Sensor + Simulasi Kejadian

Sistem alarm menggabungkan beberapa sensor. Kita juga bisa mempaksa nilai sensor dengan simSetSensor() untuk mensimulasikan kejadian (mis. asap masuk) — persis seperti menguji sistem dengan "dunia luar" yang kita kontrol.

Output:

simSetSensor(nama, None) mengembalikan sensor ke nilai simulasi normal. Pola "paksa nilai → uji → reset" ini cara standar menguji logika alarm tanpa menunggu kejadian aslinya.

📌 4. Sampling Rate: Secepat Apa Membaca?

AplikasiSamplingAlasan
Suhu ruangan1–10 menitBerubah lambat; hemat baterai & storage
Alarm gas/asap1–5 detikHarus cepat terdeteksi
Vibrasi mesin100 Hz – 10 kHzFrekuensi getaran tinggi
Posisi GPS1–30 detikKompromi akurasi vs baterai
⚠️ Sampling terlalu cepat = data membengkak, baterai habis, platform kewalahan. Sampling terlalu lambat = kejadian penting terlewat.

🧠 Latihan

  1. Ubah stasiun monitoring: tambah sensor co2, dan status "UDARA PENYUBUH" jika CO2 > 1000 ppm.
  2. Di alarm keamanan, tambahkan kondisi: jika gas > 400 dan ada gerak, cetak "🔴 BREAK-IN + ASAP" (prioritas tertinggi).
  3. Buat program "lampu otomatis": baca ldr tiap 10 detik; jika lux < 100 cetak "LAMPU NYALA", selain itu "LAMPU MATI". Simulasikan malam dengan simSetSensor("ldr", 20) di sampel ke-3.
  4. Hitung: jika sensor dibaca tiap 10 detik dan tiap sampel 20 byte, berapa MB data per bulan? (Petunjuk: 86.400 detik/hari.)