Internet of Things (IoT)
Materi 15 pertemuan: konsep dan arsitektur IoT, sensor dan aktuator, mikrokontroler, konektivitas (WiFi, BLE, Zigbee, LoRaWAN, NB-IoT), protokol MQTT, platform cloud, penyimpanan data, edge computing, AI, keamanan, dan perancangan proyek akhir.
๐ Pengantar IoT, Ekosistem, dan Arsitektur
๐ฏ Tujuan dan Alur Pertemuan (slide 2)
- Konsep dan definisi IoT
- Karakteristik dan cara kerja
- Ekosistem IoT
- Arsitektur IoT
- Contoh, diskusi, dan kuis
Setelah pertemuan ini, mahasiswa mampu Menjelaskan konsep, ekosistem, dan arsitektur IoT serta memetakan contoh sistem ke lapisan arsitekturnya.
Dari Internet of People ke Internet of Things (slide 3)
๐ก IoT memperluas internet dari pengguna manusia ke miliaran benda fisik
Definisi IoT (slide 4)
Definisi umum: jaringan benda fisik yang dilengkapi sensor, perangkat lunak, dan koneksi untuk mengumpulkan dan bertukar data.
ITU-T Y.2060 (2012): infrastruktur global untuk masyarakat informasi yang memungkinkan layanan lanjutan dengan menghubungkan benda fisik dan virtual.
Karakteristik IoT (slide 5)
Cara Kerja IoT (slide 6)
๐ก Contoh: sensor suhu membaca 31 ยฐC, ESP32 mengirim lewat WiFi, platform menerapkan aturan suhu di atas 30, relay menyalakan kipas.
Perjalanan IoT (slide 7)
Ekosistem IoT (slide 8)
Komponen Ekosistem: Perangkat (slide 9)
๐ก Setiap benda butuh identitas unik, misalnya alamat IP, UUID, atau ID perangkat
Konektivitas: Jangkauan dan Kecepatan (slide 10)
๐ก Panjang batang menggambarkan jangkauan. Pilih sesuai jarak, daya, dan kecepatan yang dibutuhkan
Komponen Ekosistem: Platform dan Analitik (slide 11)
| Fungsi platform IoT | AWS IoT Core |
|---|---|
| Azure IoT Hub Manajemen perangkat dan pembaruan Pengumpulan dan penyimpanan data | Terkelola, ekosistem AWS Skala besar, ekosistem Azure |
| ThingsBoard Aturan dan analitik | Open source, bisa self-host |
| Blynk API untuk integrasi Dasbor dan notifikasi | Prototipe cepat |
Pemangku Kepentingan Ekosistem (slide 12)
๐ก Pemerintah dan regulator menetapkan standar, keamanan, dan perlindungan data.
Model Arsitektur: 3, 4, dan 5 Lapisan (slide 13)
๐ก Model 4 lapisan dipakai pada kuliah ini
Arsitektur IoT Empat Lapisan (slide 14)
| Application | Aplikasi web, ponsel, API |
|---|---|
| Processing | Menyajikan layanan dan dasbor ke pengguna Menyimpan, menganalisis, menerapkan aturan |
| Network | Membawa data antar perangkat dan cloud |
| Perception | Membaca dunia fisik dan bertindak |
๐ก Fungsi
๐ก Contoh teknologi
๐ก Cloud, edge, basis data
๐ก WiFi, LoRaWAN, MQTT
๐ก Sensor, aktuator, ESP32
Dari bawah ke atas: Perception membaca dunia fisik dan bertindak, Network membawa data antara perangkat dan cloud, Processing menyimpan, menganalisis, dan menerapkan aturan, Application menyajikan layanan dan dasbor ke pengguna.
๐ก Poin kunci: Memetakan komponen ke lapisan membantu menentukan teknologi yang tepat di tiap tahap.
Arsitektur Referensi: Edge ke Cloud (slide 15)
๐ก Edge dekat sumber data untuk respons cepat; cloud menawarkan kapasitas penyimpanan dan analitik besar.
๐ป Contoh Aliran Data End-to-End (slide 16)
{ "ruang": "server", "suhu": 31.2 }Contoh pesan JSON pada topic lab1/suhu
๐ก Aturan platform: jika suhu > 30, kirim perintah ON ke relay kipas.
Contoh Penerapan Berbagai Sektor (slide 17)
Manfaat dan Tantangan (slide 18)
- Efisiensi dan otomatisasi proses
- Data waktu nyata untuk keputusan
- Pemantauan jarak jauh
- Penghematan energi dan biaya
- Keamanan dan privasi data
- Interoperabilitas antar vendor
- Konsumsi daya perangkat
- Skalabilitas dan biaya
๐ Diskusi dan Kuis Singkat (slide 19)
| 1 | Sebutkan empat lapisan arsitektur IoT dan fungsi masing-masing. |
|---|---|
| 2 | Mengapa gateway dibutuhkan di antara sensor dan cloud? |
| 3 | Rancang alur data untuk sistem pemantau kelembapan tanah. |
โ Rangkuman dan Tugas (slide 20)
| 1 |
|---|
| 2 IoT menghubungkan benda fisik yang merasakan, berkomunikasi, dan bertindak Ekosistem mencakup perangkat, konektivitas, platform, analitik, aplikasi, dan keamanan |
| 3 Pilih satu perangkat IoT di sekitar Anda, lalu petakan Arsitektur empat lapisan: perception, network, ke empat lapisan arsitektur. processing, application |
| 4 Edge dan cloud saling melengkapi |
๐ก Tugas pekan depan
๐ก๏ธ Sensor dan Aktuator
๐ฏ Tujuan dan Alur Pertemuan (slide 22)
- Peran di arsitektur IoT
- Sensor: jenis dan karakteristik
- Antarmuka dan pembacaan sinyal
- Aktuator: jenis, relay, motor, PWM
- Studi kasus dan pemilihan komponen
Setelah pertemuan ini, mahasiswa mampu Mengidentifikasi sensor dan aktuator, memilihnya sesuai kebutuhan, dan menghubungkannya ke mikrokontroler.
Peran Sensor dan Aktuator di Sistem IoT (slide 23)
๐ Umpan balik: efek aktuator terbaca lagi oleh sensor, sehingga siklus berulang.
๐ก Sensor dan aktuator adalah antarmuka sistem IoT dengan dunia fisik
Apa itu Sensor? (slide 24)
๐ก Sensor tidak mengukur angka; ia menghasilkan sinyal yang kemudian ditafsirkan sebagai angka
Sensor Analog dan Digital (slide 25)
- Output berupa tegangan yang berubah halus.
- Contoh: LDR, LM35, MQ-2 (keluaran analog), sensor kelembapan tanah
- Output berupa data atau nilai 0 dan 1.
- Contoh: DHT22, DS18B20, PIR, BME280, BH1750
๐ก Pilih digital bila ingin kabel sedikit dan data siap pakai; analog bila perlu respons sederhana
Karakteristik Sensor (slide 26)
Sensor Suhu dan Kelembapan (slide 27)
| Sensor | Besaran | Antarmuka | Catatan |
|---|---|---|---|
| LM35 | Suhu | Analog | Output sekitar 10 mV per ยฐC |
| DS18B20 | Suhu | 1-Wire digital | Banyak sensor di satu kabel, ada versi tahan air |
| DHT22 | Suhu dan kelembapan | Digital satu kabel | Murah, pembacaan lambat (sekitar 2 detik) |
| BME280 | Suhu, kelembapan, tekanan | I2C atau SPI | Lebih lengkap dan stabil |
๐ก Untuk lingkungan lembap atau luar ruang, pilih sensor dengan casing pelindung
Sensor Gerak, Cahaya, dan Jarak (slide 28)
๐ก jarak (m) = waktu pantul (s) ร 343 / 2
Sensor Gas, Tanah, Gerak, dan Arus (slide 29)
| Sensor | Mengukur | Antarmuka | Catatan |
|---|---|---|---|
| MQ-2 | Gas mudah terbakar, asap | Analog atau digital | Perlu pemanasan awal sebelum stabil |
| Soil moisture kapasitif | Kadar air tanah | Analog | Lebih awet daripada tipe resistif |
| MPU6050 | Percepatan dan rotasi | I2C | Untuk gerak, getaran, dan kemiringan |
| ACS712 | Arus listrik | Analog | Pemantauan beban dan konsumsi daya |
๐ก Baca datasheet: tegangan kerja, antarmuka, dan kebutuhan kalibrasi
Antarmuka Sensor ke Mikrokontroler (slide 30)
| Antarmuka | Kabel data | Contoh sensor |
|---|---|---|
| GPIO digital | 1 | PIR, tombol |
| ADC (analog) | 1 | LDR, LM35 |
| 1-Wire | 1 | DS18B20 |
| I2C | 2 (SDA, SCL) | BME280, BH1750, MPU6050 |
| SPI | 4 (MOSI, MISO, SCK, CS) | Modul kartu SD, sensor cepat |
| UART | 2 (TX, RX) | Modul GPS |
Pada I2C, beberapa sensor berbagi dua kabel selama alamatnya berbeda.
๐ป Membaca Sinyal Analog: ADC (slide 31)
LDR dan resistor tetap membentuk pembagi tegangan.
Vout = Vin ร R2 / (R1 + R2)- 1024 level
- 4096 level
๐ก ADC ESP32 tidak sepenuhnya linear, sehingga kalibrasi dianjurkan.
๐ป Kalibrasi dan Penyaringan Data (slide 32)
nilai = nilaiMentah * skala + offset;
rata = (r1 + r2 + ... + r10) / 10;Contoh koreksi linear dan rata-rata 10 sampel
๐ก Hasil: pembacaan lebih akurat dan lebih stabil
Apa itu Aktuator? (slide 33)
๐ก Aktuator mengubah energi listrik menjadi gerak, panas, cahaya, atau suara
Jenis-Jenis Aktuator (slide 34)
Relay: Mengendalikan Beban Besar (slide 35)
- Pin GPIO hanya mampu arus kecil (puluhan mA)
- Beban besar butuh sumber daya sendiri
- Relay memisahkan sisi kontrol dan beban
- Listrik 220 V AC berbahaya.
- Gunakan modul berpelindung dan jangan menyentuh jalur AC saat menyala.
- Kerjakan dengan pengawasan dosen atau asisten.
Motor DC, Servo, dan Stepper (slide 36)
| Aspek | Motor DC | Servo | Stepper |
|---|---|---|---|
| Kendali | PWM lewat driver H-bridge | PWM untuk sudut (umumnya 0 sampai 180ยฐ) | Pulsa langkah lewat driver |
| Cocok untuk | Roda, kipas | Lengan robot, kunci | Printer 3D, CNC |
| Catatan | Perlu driver dan sumber terpisah | Posisi tetap, torsi terbatas | Presisi tinggi, boros daya |
๐ก Motor memerlukan sumber daya terpisah agar mikrokontroler tidak reset
PWM: Mengatur Daya dengan Duty Cycle (slide 37)
Penggunaan
25%
- Kecerahan LED
- Kecepatan motor DC
- Sudut servo
50% โข Frekuensi tetap, lebar pulsa
berubah
75%
PWM menjaga frekuensi tetap tetapi mengubah lebar pulsa. Semakin besar duty cycle, semakin lama sinyal berada pada level tinggi sehingga daya rata-rata yang diterima beban makin besar. Dipakai untuk kecerahan LED, kecepatan motor DC, dan sudut servo.
๐ก Poin kunci: Duty cycle = persentase waktu sinyal HIGH dalam satu periode.
๐ผ Studi Kasus: Penyiram Tanaman Otomatis (slide 38)
if (kelembapan < 40) pompaON();
else if (kelembapan > 60) pompaOFF();Contoh aturan dengan batas bawah 40% dan atas 60%
๐ก Histeresis: dua batas berbeda agar pompa tidak berkedip.
Memilih Sensor dan Aktuator (slide 39)
โ Rangkuman dan Tugas 1 (slide 40)
| 1 |
|---|
| 2 Sensor mengubah besaran fisik menjadi sinyal listrik Pahami rentang, akurasi, resolusi, dan antarmuka sebelum memilih |
| 3 Pilih satu sistem IoT, lalu daftar tiga sensor dan dua Aktuator bertindak; beban besar butuh relay atau aktuatornya beserta driver spesifikasi utama. |
| 4 PWM mengatur daya dan kalibrasi memperbaiki data |
๐ก Tugas 1
๐งฉ Mikrokontroler Dasar: Arduino dan ESP32
๐ฏ Tujuan dan Alur Pertemuan (slide 42)
- Konsep mikrokontroler
- Arduino Uno dan ESP32
- Toolchain dan struktur sketch
- Variabel, kontrol, dan fungsi
- I/O, serial, dan millis()
Setelah pertemuan ini, mahasiswa mampu Menjelaskan arsitektur mikrokontroler, membandingkan Arduino dan ESP32, dan menulis sketch dasar.
Apa itu Mikrokontroler? (slide 43)
Komputer mini dalam satu chip. Mikrokontroler (MCU) menggabungkan prosesor, memori, dan antarmuka input/output untuk membaca sensor dan mengendalikan aktuator.
Mikrokontroler vs Mikroprosesor dan SBC (slide 44)
| Aspek | Mikrokontroler | Mikroprosesor atau SBC |
|---|---|---|
| Isi | CPU, memori, I/O dalam satu chip | CPU terpisah, atau papan lengkap |
| Sistem operasi | Tanpa OS atau RTOS | Linux atau OS penuh |
| Daya | Sangat hemat | Lebih besar |
| Tugas | Kontrol waktu nyata sederhana | Komputasi berat, kamera, AI |
| Contoh | Arduino Uno, ESP32 | Raspberry Pi |
Dalam IoT, keduanya sering dipakai bersama: MCU di sensor, SBC sebagai gateway
Arsitektur Internal Mikrokontroler (slide 45)
Anatomi Arduino Uno (slide 46)
USB: daya dan upload program
๐ก ATmega328P: otak papan
๐ก Reset: mulai ulang program
๐ก 14 pin digital, 6 bisa PWM
๐ก 6 input analog, ADC 10 bit
๐ก Pin daya: 5 V dan 3,3 V
Keluarga Arduino (slide 47)
| Papan | Chip | Pin digital | Flash | Cocok untuk |
|---|---|---|---|---|
| Uno | ATmega328P | 14 | 32 KB | Belajar dan prototipe |
| Nano | ATmega328P | 14 | 32 KB | Proyek kecil dan ringkas |
| Mega 2560 | ATmega2560 | 54 | 256 KB | Proyek banyak pin |
Arduino tanpa WiFi bawaan: untuk IoT perlu modul tambahan atau pakai ESP32
Anatomi ESP32 (slide 48)
Fakta kunci
RTC dan mode โข Dual-core hingga 240 MHz
WiFi 802.11 b/g/n SRAM dan flash
hemat daya โข SRAM 520 KB
- Logika 3,3 V
- ADC 12 bit
Bluetooth dan BLE CPU dual-core GPIO, ADC, DAC โข Sensor sentuh bawaan
Enkripsi dan secure I2C, SPI, UART,
Antena
boot PWM
Arduino Uno vs ESP32 (slide 49)
| Aspek | Arduino Uno | ESP32 |
|---|---|---|
| Prosesor | 8-bit AVR, 16 MHz | 32-bit dual-core, hingga 240 MHz |
| Tegangan logika | 5V | 3,3 V |
| Konektivitas | Tidak ada bawaan | WiFi dan Bluetooth |
| ADC | 10 bit (0 sampai 1023) | 12 bit (0 sampai 4095) |
| SRAM | 2 KB | 520 KB |
| Cocok untuk | Belajar dasar elektronika | Proyek IoT terhubung |
Tegangan logika berbeda: jangan beri 5 V langsung ke pin ESP32.
Alur Kerja Arduino IDE (slide 50)
Tulis sketch Verify (compile) Upload via USB Serial Monitor
Menyiapkan ESP32 Jika upload gagal
- Tambahkan paket board ESP32 di Boards โข Periksa kabel USB data, bukan kabel daya saja Manager โข Pilih port COM yang sesuai
- Pilih board dan port yang benar
๐ป Struktur Dasar Sketch (slide 51)
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}Contoh Blink: LED berkedip tiap 0,5 detik
setup()
Dijalankan sekali saat papan menyala atau direset
loop()
Diulang terus selama papan mendapat daya
delay(ms)
Menjeda program dalam milidetik
11
Variabel dan Tipe Data (slide 52)
| Tipe | Isi | Contoh |
|---|---|---|
| int | Bilangan bulat | int jumlah = 5; |
| float | Bilangan desimal | float suhu = 28.5; |
| bool | true atau false | bool aktif = true; |
| char | Satu karakter | char huruf = 'A'; |
| String | Teks | String nama = "lab1"; |
๐ก int berukuran 16 bit di Arduino Uno, tetapi 32 bit di ESP32
๐ป Kontrol Alur: if, for, while (slide 53)
if / else
Mengambil keputusan
if (suhu > 30) {
kipas = true;
} else {
kipas = false;
}for
Mengulang jumlah tetap
for (int i=0;i<5;i++) {
Serial.println(i);
}while
Mengulang selama kondisi
while (digitalRead(4)) {
// tunggu
}13
๐ป Fungsi dan Konstanta (slide 54)
Fungsi Konstanta pin
float bacaSuhu() {
float t = dht.readTemperature();
return t;
}const int PIN_LED = 2;
const int PIN_TOMBOL = 4;
#define BATAS_SUHU 30๐ก Nama yang jelas memudahkan pemindahan ke papan lain: cukup ubah satu baris konstanta.
14
๐ป Pin Digital: LED dan Tombol (slide 55)
Pin GPIO (OUTPUT)
Resistor 220 ohm
LED
GND
INPUT_PULLUP
Pin bernilai HIGH saat tombol dilepas dan LOW saat ditekan, tanpa resistor eksternal.
pinMode(4, INPUT_PULLUP);
if (digitalRead(4) == LOW) {
digitalWrite(2, HIGH);
}15
Pin Analog dan PWM (slide 56)
Membaca analog Menulis PWM
- Uno: analogRead 0 sampai 1023 โข Uno: analogWrite 0 sampai 255
- ESP32: analogRead 0 sampai 4095 โข ESP32: fungsi ledc, sintaks bergantung versi
core
int adc = analogRead(34);
int persen = map(adc, 0, 4095, 0, 100);
Contoh ESP32: ubah pembacaan ADC menjadi persen
๐ป Serial Monitor dan Debugging (slide 57)
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println(analogRead(34));
delay(1000);
}Mengirim nilai ADC tiap detik
Serial Monitor (115200 baud)
1873
1869
1880
1875Contoh keluaran
๐ก Gunakan Serial.println() untuk melacak nilai variabel saat debugging
17
๐ป delay() vs millis() (slide 58)
delay(1000)
CPU menunggu, tombol tidak terbaca
millis()
Kuning: tugas berkala dijalankan; hijau: loop terus memeriksa sensor dan tombol
unsigned long t0 = 0;
void loop() {
if (millis() - t0 >= 1000) {
t0 = millis();
// tugas tiap 1 detik
}
}Pola non-blocking
Simpan waktu terakhir, bandingkan dengan millis()
18
Jebakan Umum pada ESP32 (slide 59)
โ Rangkuman dan Praktikum 1 (slide 60)
| 1 |
|---|
| 2 Mikrokontroler menggabungkan CPU, memori, dan I/O dalam satu chip Arduino Uno cocok untuk belajar; ESP32 untuk IoT dengan WiFi dan Bluetooth |
| 3 Blink LED, kontrol LED dengan tombol, dan tampilkan Sketch punya setup() sekali dan loop() berulang pembacaan sensor di Serial Monitor. Kumpulkan laporan. |
| 4 Gunakan millis() agar program tidak terblokir delay() |
๐ก Praktikum 1
๐ Praktikum: Antarmuka Sensor dan Aktuator
๐ฏ Tujuan dan Alur Pertemuan (slide 62)
- Persiapan alat dan keselamatan
- Membaca sensor DHT22 dan LDR
- Mengendalikan LED dan tombol
- Mengendalikan modul relay
- Integrasi, pengujian, dan laporan
Setelah praktikum ini, mahasiswa mampu Merangkai dan memprogram ESP32 untuk membaca sensor DHT22 dan LDR serta mengendalikan LED dan relay.
Alat dan Bahan (slide 63)
- Sensor cahaya analog
- Aktuator sederhana
Keselamatan dan Aturan Lab (slide 64)
- Listrik jaringan 220 V AC berbahaya.
- Praktikum memakai beban DC tegangan
- rendah. Beban AC hanya dengan izin dan
- pengawasan dosen atau asisten.
Mengenal Breadboard (slide 65)
Aturan sambungan
- Satu kolom lima lubang saling tersambung
- Rel merah dan biru untuk daya dan GND
- Celah tengah memisahkan dua sisi
Pemetaan Pin ESP32 (slide 66)
| Komponen | Pin ESP32 | Mode |
|---|---|---|
| LED eksternal | GPIO 18 | OUTPUT |
| Tombol | GPIO 27 | INPUT_PULLUP |
| Modul relay (IN) | GPIO 26 | OUTPUT |
| DHT22 (DATA) | GPIO 4 | Digital (library) |
| LDR (titik tengah) | GPIO 34 | Input analog ADC1 |
GPIO 34 hanya input; hindari GPIO 0, 2, 12, 15 saat boot
Merangkai Sensor DHT22 (slide 67)
DHT22 ESP32 Catatan
- Modul 3 pin sudah memuat
VCC 3V3 resistor
- Sensor 4 pin butuh pull-up
DATA GPIO 4 10 kilo ohm antara DATA
dan VCC
- Baca paling cepat tiap 2
GND GND
detik
๐ป Kode Membaca DHT22 (slide 68)
#include <DHT.h>
DHT dht(4, DHT22);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) {
Serial.println("Gagal baca");
} else {
Serial.println(t);
}
delay(2000);
}Poin penting
- isnan() memeriksa pembacaan
gagal
- delay 2000 ms sesuai batas
sensor
- Amati hasil di Serial Monitor
115200 baud
8
Merangkai Sensor LDR (slide 69)
๐ก terbalik.
๐ป Kode LDR dan Penentuan Ambang (slide 70)
const int PIN_LDR = 34;
void setup() {
Serial.begin(115200);
}
void loop() {
int nilai = analogRead(PIN_LDR);
Serial.println(nilai);
delay(500);
}Gelap
catat nilai minimum
Terang
catat nilai maksimum
Ambang
titik tengah keduanya
๐ก Catat nilai gelap dan terang di tabel data laporan
10
Merangkai LED (slide 71)
LED (anoda ke
GPIO 18 Resistor 220 ohm GND
katoda)
Cek polaritas Tanpa resistor
- Kaki panjang: anoda (plus) Arus berlebih dapat merusak LED dan pin
- Kaki pendek: katoda (minus) GPIO.
๐ป Kode LED dengan Tombol (slide 72)
const int PIN_LED = 18;
const int PIN_TOMBOL = 27;
void setup() {
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_TOMBOL, INPUT_PULLUP);
}
void loop() {
bool ditekan = (digitalRead(PIN_TOMBOL) == LOW);
digitalWrite(PIN_LED, ditekan);
}Hasil yang diharapkan
- Tombol ditekan: LED menyala
- Tombol dilepas: LED mati
- Tombol lain bisa memantul
(debounce)
12
Mengenal Modul Relay (slide 73)
Fungsi terminal
IN NC โข IN, VCC, GND: sisi kontrol dari
ESP32
- COM: terminal bersama beban
VCC COM โข NO: tersambung saat relay aktif
Relay โข NC: tersambung saat relay mati
GND NO
Sisi kontrol Sisi beban
Merangkai Relay dan Beban DC (slide 74)
| ESP32: GPIO 26, 5 V (VIN), GND | Relay: IN, VCC, GND | |
|---|---|---|
| Sumber DC beban | Relay: COM dan NO | Beban DC kecil |
Atas: jalur kontrol. Bawah: jalur daya beban. Gunakan beban DC tegangan rendah.
๐ป Kode Mengendalikan Relay (slide 75)
const int PIN_RELAY = 26;
void setup() {
pinMode(PIN_RELAY, OUTPUT);
digitalWrite(PIN_RELAY, HIGH);
}
void loop() {
digitalWrite(PIN_RELAY, LOW); // aktif
delay(2000);
digitalWrite(PIN_RELAY, HIGH); // mati
delay(2000);
}Aktif-LOW
- LOW mengaktifkan relay, HIGH
mematikannya
- Bunyi klik menandakan relay
bekerja
- Jika terbalik, modul Anda
aktif-HIGH
15
Integrasi: Kipas Otomatis Berdasarkan (slide 76)
- Batas atas dan bawah berbeda
- agar relay stabil
๐ก Kipas aktif di atas 30, mati di bawah 28
๐ป Integrasi: Lampu Otomatis dengan LDR (slide 77)
LDR
ESP32
LED
const int AMBANG = 1500;
int nilai = analogRead(PIN_LDR);
digitalWrite(PIN_LED, nilai < AMBANG);Contoh: LED menyala saat nilai di bawah ambang
Ganti ambang
Angka 1500 hanya contoh; pakai hasil pengukuran Anda
17
Pengujian dan Pemecahan Masalah (slide 78)
| Gejala | Kemungkinan penyebab | Solusi |
|---|---|---|
| LED tidak menyala | Polaritas terbalik atau pin salah | Balik kaki LED, cek nomor pin |
| DHT22 hasil NaN | Kabel data longgar, jeda terlalu singkat | Periksa kabel, tunggu 2 detik |
| Relay terbalik | Modul aktif-LOW | Balik logika HIGH dan LOW |
| ESP32 reset saat relay aktif | Catu daya lemah | Sumber daya terpisah |
| Nilai ADC acak | GND tidak bersama atau pin menggantung | Sambung semua GND |
Rubrik Laporan Praktikum (slide 79)
- Wiring sesuai skema
- dan aman
- Program kompilasi dan
- berfungsi
- Tabel nilai sensor dan
- foto
- Penjelasan hasil dan
- masalah
โ Rangkuman dan Laporan Praktikum 2 (slide 80)
| 1 |
|---|
| 2 Rangkai dengan daya mati dan periksa polaritas Sensor digital dan analog dibaca dengan cara berbeda |
| 3 Foto rangkaian, kode program, tabel data sensor, dan analisis Relay mengendalikan beban besar; cek logika aktif- hasil serta kendala. LOW |
| 4 Pengujian dan kalibrasi memastikan sistem andal |
๐ก Isi laporan
๐ถ Konektivitas Jarak Pendek: WiFi, BLE, dan Zigbee
๐ฏ Tujuan dan Alur Pertemuan (slide 82)
- Posisi dan parameter perbandingan
- Pita 2,4 GHz bersama
- WiFi dan Bluetooth Low Energy
- Zigbee dan mesh
- Perbandingan dan pemilihan
Setelah pertemuan ini, mahasiswa mampu Menjelaskan karakteristik WiFi, BLE, dan Zigbee serta memilih yang tepat untuk kebutuhan IoT.
Posisi Konektivitas Jarak Pendek (slide 83)
| PAN: BLE, Zigbee (puluhan meter) | Fokus hari ini: dua baris teratas |
|---|---|
| LAN: WiFi (ruangan hingga gedung) | |
| LPWAN: LoRaWAN (hingga beberapa km) |
WAN: NB-IoT, LTE-M, 5G (cakupan operator)
Parameter Perbandingan (slide 84)
Berbagi Pita 2,4 GHz (slide 85)
๐ก 2400 MHz
๐ก 2440 MHz
๐ก 2480 MHz
WiFi: Ikhtisar (slide 86)
Karakteristik
- Standar IEEE 802.11 (ESP32: b/g/n, 2,4 GHz)
- Topologi star lewat access point
- Jangkauan puluhan meter dalam ruangan
- Laju data tinggi, puluhan Mbps
- Daya relatif besar, dukungan IP bawaan
Topologi star: AP di pusat
WiFi: Menghubungkan ESP32 (slide 87)
Pindai SSID Autentikasi WPA2 Dapat IP (DHCP) MQTT atau HTTP
#include <WiFi.h> Perhatikan
WiFi.begin("NamaWiFi", "sandi");
while (WiFi.status() != WL_CONNECTED) โข Jangan simpan sandi di kode
delay(500); publik
Serial.println(WiFi.localIP());
- Gunakan jaringan 2,4 GHz untuk ESP32
Bluetooth Low Energy: Ikhtisar (slide 88)
Karakteristik
- Bluetooth 4.0 ke atas, pita 2,4 GHz, 40 kanal
- Laju 1 Mbps (2 Mbps pada Bluetooth 5)
- Topologi star dan broadcast; mesh opsional
- Daya sangat rendah, baterai koin awet
- Ponsel menjadi gateway alami
Central (ponsel) dan peripheral
BLE: Advertising dan GATT (slide 89)
| Perangkat (GATT server) | 1 |
|---|---|
| 2 | Peripheral mengiklankan diri (advertising) Central memindai dan menyambung |
| 3 | Central menemukan service dan characteristic |
| 4 | Data dibaca atau dikirim lewat notify |
๐ก Nilai dan properti: read, write, notify
๐ก Characteristic, mis. pengukuran
๐ก Service, mis. Heart Rate
๐ป BLE: Contoh Kode dan Pemakaian (slide 90)
#include <BLEDevice.h>
void setup() {
BLEDevice::init("ESP32-Lab");
BLEDevice::getAdvertising()->start();
}
void loop() {}Contoh minimal: perangkat terlihat di pemindai BLE
Beacon lokasi: Memancarkan ID untuk penentuan posisi
Wearable: Mengirim data kesehatan ke ponsel
Provisioning: Mengirim sandi WiFi ke perangkat baru
๐ก BLE cocok untuk data kecil dan jarang; bukan untuk streaming data besar
๐ก Kuis kilat: sebutkan dua alasan BLE hemat daya
10
Zigbee: Ikhtisar (slide 91)
Karakteristik
- IEEE 802.15.4 dengan lapisan Zigbee
- 2,4 GHz, 16 kanal, 250 kbps
- Mesh yang dapat memulihkan diri
- Enkripsi AES-128
- Cocok untuk node dalam jumlah besar
Topologi mesh antar node
Zigbee: Peran Perangkat (slide 92)
Coordinator Membentuk jaringan dan menyimpan kunci
Router Meneruskan paket, biasanya berdaya listrik
End device Sensor berbaterai yang sering tidur
Zigbee: Cara Kerja Jaringan (slide 93)
โ๏ธ Perbandingan WiFi, BLE, dan Zigbee (slide 94)
| Aspek | WiFi | BLE | Zigbee |
|---|---|---|---|
| Standar | IEEE 802.11 | Bluetooth SIG (BLE) | IEEE 802.15.4 + Zigbee |
| Frekuensi | 2,4 dan 5 GHz | 2,4 GHz | 2,4 GHz (juga sub-GHz) |
| Laju data | Tinggi (puluhan Mbps) | 1 sampai 2 Mbps | 250 kbps |
| Jangkauan | Puluhan meter | Puluhan meter | Puluhan meter per hop |
| Topologi | Star (access point) | Star, broadcast | Mesh, tree, star |
| Konsumsi daya | Relatif besar | Sangat rendah | Rendah |
| IP bawaan | Ya | Tidak, perlu gateway | Tidak, perlu hub |
Penilaian Kualitatif Tiga Teknologi (slide 95)
| WiFi | BLE | Zigbee |
|---|---|---|
| Laju data | ||
| Hemat daya | ||
| Jangkauan efektif | ||
| Skalabilitas jaringan | ||
| Terhubung ke internet langsung |
Tidak ada pemenang mutlak: pilih sesuai kebutuhan sistem
Memilih Teknologi yang Tepat (slide 96)
๐ผ Studi Kasus Pemilihan Teknologi (slide 97)
Koeksistensi dan Keamanan (slide 98)
Koeksistensi 2,4 GHz Keamanan
- Kanal WiFi 1, 6, 11 tidak tumpang tindih โข WiFi: WPA2 atau WPA3
- Pilih kanal Zigbee di celah kanal WiFi โข BLE: pairing dengan LE Secure Connections
- BLE memakai frequency hopping adaptif โข Zigbee: AES-128 dengan network key
Kunci default yang tidak diganti adalah celah keamanan paling umum
Jembatan Baru: Thread dan Matter (slide 99)
Poin penting
Matter (lapisan aplikasi)
- Matter 1.0 dirilis tahun 2022
- Thread: mesh IPv6 hemat daya di
Thread (802.15.4 + atas 802.15.4
WiFi Ethernet โข ESP32-C6 dan H2 memiliki radio
IPv6)
802.15.4
Radio dan lapisan MAC
โ Rangkuman dan Kuis 2 (slide 100)
| 1 |
|---|
| 2 WiFi: laju tinggi, IP bawaan, daya besar BLE: daya sangat rendah, dekat dengan ponsel |
| 3 Bandingkan WiFi, BLE, dan Zigbee, lalu pilih teknologi Zigbee: mesh andal untuk banyak node hemat daya untuk satu kasus beserta alasannya. |
| 4 Pilih teknologi dari kebutuhan, dan padukan dengan gateway |
๐ก Kuis 2
๐ก LPWAN: LoRa, LoRaWAN, dan NB-IoT
๐ฏ Tujuan dan Alur Pertemuan (slide 102)
- Mengapa LPWAN
- LoRa: lapisan fisik dan parameter
- LoRaWAN: arsitektur dan keamanan
- NB-IoT: jaringan seluler hemat daya
- Perbandingan dan pemilihan
Setelah pertemuan ini, mahasiswa mampu Menjelaskan cara kerja LoRa, LoRaWAN, dan NB-IoT serta memilih teknologi LPWAN untuk suatu kasus.
Mengapa LPWAN: Jauh, Hemat, Data Kecil (slide 103)
Jangkauan
Ciri LPWAN
NB-IoT 5G โข Jangkauan kilometer
- Baterai bertahun-
LTE-M tahun
LoRaWAN
- Payload kecil
- Laju data rendah
- Modul murah
Zigbee WiFi
BLE
Laju data
Lanskap Teknologi LPWAN (slide 104)
Spektrum tak berlisensi Spektrum berlisensi
- LoRa dan LoRaWAN โข NB-IoT dan LTE-M (standar 3GPP)
- Sigfox (kini di bawah UnaBiz) โข Memakai menara dan jaringan operator
- Bangun gateway sendiri atau pakai jaringan โข Perlu kartu SIM dan paket data komunitas โข Kualitas layanan lebih terjamin
- Tanpa langganan operator pada jaringan privat
LoRa: Lapisan Fisik Chirp Spread Spectrum (slide 105)
Karakteristik Sinyal chirp: frekuensi naik terhadap waktu
- Dikembangkan Semtech frekuensi
- Modulasi chirp spread spectrum
- Pita sub-GHz tak berlisensi
- Dapat menerima sinyal di bawah noise floor
- Hanya lapisan fisik, bukan protokol jaringan
waktu
Parameter Radio LoRa (slide 106)
Spreading Factor: Jangkauan vs Kecepatan (slide 107)
| Airtime relatif | Laju data relatif | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| SF7 | SF8 | SF9 | SF10 | SF11 | SF12 | SF7 | SF8 | SF9 | SF10 | SF11 | SF12 |
SF tinggi: jangkauan jauh, tetapi airtime panjang dan laju data rendah
Frekuensi Regional dan Duty Cycle (slide 108)
| Wilayah | Pita | Catatan |
|---|---|---|
| EU868 | 863 sampai 870 MHz | Duty cycle sekitar 1% pada sub-band umum |
| US915 | 902 sampai 928 MHz | Frequency hopping, batas dwell time |
| AS923 | Sekitar 920 sampai 923 MHz | Dipakai di Indonesia; cek regulasi terbaru |
๐ก Contoh duty cycle 1%:
๐ก pesan dengan airtime 1 detik mengharuskan jeda minimal 100 detik
๐ก sebelum kirim berikutnya. Aturan berbeda tiap wilayah.
LoRa vs LoRaWAN (slide 109)
Aplikasi dan platform
Perbedaan
- LoRa: modulasi radio
- LoRaWAN: aturan akses, kelas perangkat, aktivasi, enkripsi
LoRaWAN: MAC, jaringan, keamanan (LoRa Alliance) โข LoRa dapat dipakai tanpa
LoRaWAN (peer-to-peer)
LoRa: lapisan fisik (Semtech)
Radio sub-GHz
Arsitektur LoRaWAN: Star-of-Stars (slide 110)
| End device | Gateway | Network dan application server |
|---|---|---|
| Network server | Application server | |
| RF (LoRa) | Backhaul IP |
Gateway hanya meneruskan paket; kecerdasan ada di network server
Banyak end device mengirim lewat radio LoRa ke satu atau beberapa gateway. Gateway hanya meneruskan paket melalui jaringan IP (backhaul) ke network server, lalu data diteruskan ke application server.
๐ก Poin kunci: Kecerdasan jaringan ada di network server, bukan di gateway.
Kelas Perangkat LoRaWAN: A, B, C (slide 111)
Aktivasi dan Keamanan LoRaWAN (slide 112)
Kunci dan enkripsi
Aspek OTAA ABP
- DevEUI, JoinEUI, AppKey untuk join
Join request, kunci sesi Kunci sesi ditanam โข NwkSKey: integritas
Proses
dibuat dinamis manual jaringan
- AppSKey: enkripsi payload end-to-end
Lebih kuat, kunci diperbarui
Keamanan Kunci tetap, lebih rentan โข Algoritma AES-128
tiap join
Uji coba dan kasus
Saran Pilihan utama
khusus
Payload Efisien dan Adaptive Data Rate (slide 113)
๐ป Mengirim Data dengan Modul LoRa (slide 114)
#include <LoRa.h>
void setup() {
LoRa.setPins(5, 14, 2);
LoRa.begin(923E6);
}
void loop() {
LoRa.beginPacket();
LoRa.print("suhu=28.5");
LoRa.endPacket();
delay(10000);
}Modul
SX1276 atau SX1278 lewat SPI
Pustaka
LoRa atau RadioLib
Catatan
Ini LoRa murni, bukan LoRaWAN
๐ก Pastikan frekuensi 923E6 sesuai regulasi dan modul Anda
14
NB-IoT: Ikhtisar (slide 115)
Karakteristik Modul NB-IoT dan SIM
- Standar 3GPP Release 13 (2016)
- Spektrum berlisensi, lebar kanal 180 kHz
- Perlu kartu SIM dan paket data Menara seluler (eNodeB)
- Jangkauan dalam gedung yang baik
- Hemat daya lewat PSM dan eDRX
Jaringan inti operator
Platform IoT
Mode Penerapan NB-IoT (slide 116)
๐ก pita sendiri
Hemat Daya NB-IoT: PSM dan eDRX (slide 117)
โ๏ธ Perbandingan LoRaWAN, NB-IoT, dan LTE-M (slide 118)
| Aspek | LoRaWAN | NB-IoT | LTE-M |
|---|---|---|---|
| Spektrum | Sub-GHz tak berlisensi | Berlisensi | Berlisensi |
| Infrastruktur | Gateway sendiri/komunitas | Operator dan SIM | Operator dan SIM |
| Laju data | 0,25 sampai 5,5 kbps | Puluhan kbps | Hingga sekitar 1 Mbps |
| Mobilitas | Terbatas | Terbatas | Baik, ada handover |
| Latensi | Detik, tanpa jaminan | Detik | Lebih rendah |
| Daya | Sangat rendah | Sangat rendah | Rendah |
๐ผ Studi Kasus Pemilihan LPWAN (slide 119)
โ Rangkuman dan Tugas 2 (slide 120)
| 1 |
|---|
| 2 LPWAN: jauh, hemat daya, payload kecil LoRa adalah radio; LoRaWAN adalah protokol jaringan |
| 3 Pilih satu kasus IoT di Indonesia, bandingkan LoRaWAN dan NB- NB-IoT memakai jaringan operator, SIM, PSM, dan IoT, lalu beri rekomendasi eDRX beserta alasannya. |
| 4 Pilih dari jangkauan, biaya, mobilitas, dan cakupan |
๐ก Tugas 2
๐ฌ Komunikasi IoT: MQTT, HTTP, CoAP, dan QoS
๐ฏ Tujuan dan Alur Pertemuan (slide 122)
- Protokol aplikasi IoT
- MQTT: arsitektur, topic, QoS
- Menyiapkan broker
- ESP32 publish dan subscribe
- Keamanan, perbandingan, kasus
Setelah pertemuan ini, mahasiswa mampu Menjelaskan MQTT, HTTP, dan CoAP serta mengimplementasikan publish dan subscribe MQTT pada ESP32.
Protokol Aplikasi di Tumpukan IoT (slide 123)
Mengapa penting
Aplikasi: MQTT, HTTP, CoAP
- Protokol aplikasi menentukan cara pesan dipertukarkan
- TCP andal tetapi lebih berat; UDP
TCP (MQTT, HTTP) UDP (CoAP)
ringan tanpa jaminan
- Pilih sesuai daya, jaringan, dan kebutuhan
Jaringan: IPv4 dan IPv6
Tautan: WiFi, BLE, Zigbee, LoRa, seluler
Dua Model Komunikasi (slide 124)
- request
- response
- Klien meminta lalu server menjawab; untuk data baru klien harus bertanya lagi (polling).
๐ก Pengirim dan penerima tidak saling mengenal; broker meneruskan pesan berdasarkan topic.
HTTP untuk IoT (slide 125)
HTTPClient http; Ciri HTTP
http.begin("http://server/api/suhu");
http.addHeader("Content-Type", "application/json"); โข Request/response di atas
int kode = http.POST("{\"suhu\":28.5}");
http.end();
TCP
- REST dan JSON mudah dipakai
- Header relatif besar
- Server tidak bisa
Contoh ESP32 mengirim JSON dengan POST mendorong data
- Gunakan HTTPS untuk keamanan
Cocok untuk integrasi dengan API web yang sudah ada
CoAP: HTTP Ringan di Atas UDP (slide 126)
Karakteristik Pesan Confirmable (CON)
- Model RESTful: GET, POST, PUT, DELETE
- UDP, port 5683 (DTLS di 5684) CON GET /suhu
- Header hanya 4 byte
- Pesan CON, NON, ACK, RST Klien Server
- ACK 2.05 (28.5)
Observe: server memberi tahu perubahan
Jika ACK tidak datang, klien mengirim ulang
MQTT: Ikhtisar dan Arsitektur (slide 127)
Karakteristik
Subscriber 1
- Message Queuing Telemetry Transport
- Dibuat 1999, standar OASIS Publisher Broker
- TCP port 1883 (8883 untuk TLS)
- Pub/sub lewat broker Subscriber 2
- Header sangat kecil
Client ID Topic Payload
identitas klien alamat pesan isi data
Publisher tidak mengirim langsung ke penerima. Ia mengirim ke broker dengan sebuah topic, lalu broker meneruskannya ke semua subscriber yang berlangganan topic itu. MQTT berjalan di TCP port 1883 (8883 untuk TLS).
๐ก Poin kunci: Pengirim dan penerima tidak saling mengenal, sehingga mudah ditambah atau diganti.
Topic dan Wildcard (slide 128)
| + (satu tingkat) |
|---|
| kampus/+/suhu cocok dengan lab1 dan lab2 |
| # (semua di bawahnya) |
| kampus/lab1/# cocok dengan suhu dan kelembapan lab1 Wildcard hanya dipakai saat subscribe, bukan publish |
๐ก kampus
๐ก lab1
๐ก lab2
๐ก kelembapan
๐ก kelembapan
๐ก suhu
๐ก suhu
QoS 0, 1, dan 2: Urutan Pesan (slide 129)
Memilih Level QoS (slide 130)
| QoS | Jaminan | Jumlah pesan | Contoh penggunaan |
|---|---|---|---|
| 0 | Paling banyak sekali | 1 | Telemetri sering, kehilangan sesekali aman |
| 1 | Minimal sekali, bisa duplikat | 2 | Perintah yang aman diulang |
| 2 | Tepat sekali | 4 | Data kritis seperti transaksi |
QoS efektif = nilai terkecil antara QoS publisher dan QoS subscriber
Fitur Penting MQTT (slide 131)
๐ป Menyiapkan Broker Mosquitto (slide 132)
sudo apt install mosquitto mosquitto-clients
mosquitto_sub -h localhost -t "lab1/suhu"
mosquitto_pub -h localhost -t "lab1/suhu" -m "28.5"Terminal 1 subscribe, terminal 2 publish
Broker publik uji
Misalnya test.mosquitto.org dan broker.hivemq.com. Ketersediaan dapat berubah.
๐ก Peringatan: broker publik tidak aman dan terbuka bagi siapa saja. Jangan kirim data sensitif dan gunakan topic yang unik.
12
๐ป ESP32 Publish dengan PubSubClient (slide 133)
#include <WiFi.h>
#include <PubSubClient.h>
WiFiClient wifi;
PubSubClient mqtt(wifi);
void setup() {
// sambungkan WiFi dulu
mqtt.setServer("192.168.1.10", 1883);
}
void loop() {
if (!mqtt.connected()) mqtt.connect("esp32-lab1");
mqtt.publish("lab1/suhu", "28.5");
mqtt.loop();
delay(5000);
}Poin penting
- Client ID harus unik
- mqtt.loop() menjaga koneksi
- Tambahkan logika reconnect
- Ganti IP dengan broker Anda
13
๐ป ESP32 Subscribe dan Kontrol LED (slide 134)
void callback(char* topic, byte* data,
unsigned int n) {
String pesan;
for (int i = 0; i < n; i++) pesan += (char)data[i];
digitalWrite(PIN_LED, pesan == "ON");
}
// di setup():
mqtt.setCallback(callback);
// setelah connect:
mqtt.subscribe("lab1/led");1 Dasbor publish ON ke lab1/led
2 Broker meneruskan ke ESP32
3 Callback menyalakan LED
14
Pemecahan Masalah MQTT (slide 135)
| Gejala | Penyebab | Solusi |
|---|---|---|
| Tidak bisa terhubung | IP atau port salah, firewall | Cek IP, port 1883, uji dengan mosquitto_pub |
| Putus berulang | Client ID kembar, loop() tidak dipanggil | Pakai client ID unik, panggil loop() |
| Pesan tidak diterima | Topic berbeda atau belum subscribe | Samakan topic, periksa huruf besar kecil |
| Payload terpotong | Buffer PubSubClient terbatas (256 byte) | Naikkan dengan setBufferSize |
| Gagal setelah WiFi putus | Tidak ada logika reconnect | Sambungkan ulang WiFi dan MQTT |
Keamanan MQTT (slide 136)
| TLS | Autentikasi |
|---|---|
| Enkripsi lalu lintas, biasanya port 8883. Username dan sandi atau sertifikat klien. | |
| ACL | Hindari broker publik |
| Batasi topic yang boleh dipublish atau dilanggan. Untuk data sensitif, gunakan broker sendiri. |
Jangan menyimpan sandi atau token di repositori publik
Dari MQTT ke Dasbor (slide 137)
โ๏ธ Perbandingan MQTT, HTTP, dan CoAP (slide 138)
| Aspek | MQTT | HTTP | CoAP |
|---|---|---|---|
| Model | Publish/subscribe | Request/response | Request/response, observe |
| Transport | TCP | TCP | UDP |
| Beban header | Kecil | Besar | Sangat kecil (4 byte) |
| Keandalan | QoS 0, 1, 2 | Lewat TCP | CON dan NON |
| Dorongan dari server | Ya, lewat subscribe | Tidak, perlu polling | Ya, lewat observe |
| Cocok untuk | Telemetri banyak perangkat | Integrasi API web | Perangkat sangat terbatas |
๐ผ Studi Kasus Pemilihan Protokol (slide 139)
โ Rangkuman dan Praktikum 3 (slide 140)
| 1 |
|---|
| 2 MQTT: pub/sub ringan lewat broker dan topic QoS 0, 1, 2 menukar keandalan dengan jumlah pesan |
| 3 Publish suhu DHT22 ke broker dan kontrol LED lewat HTTP untuk integrasi API; CoAP untuk perangkat subscribe. Uji QoS 0 dan 1, lalu terbatas susun laporan. |
| 4 Amankan broker dengan TLS, autentikasi, dan ACL |
๐ก Praktikum 3
๐ Ujian Tengah Semester (UTS)
๐ฏ Cakupan Materi
Usulan cakupan UTS: Pertemuan 1 sampai 7. Sesuaikan format dan bobot dengan kebijakan dosen pengampu. Slide PDF tidak memuat pertemuan ini.
| Pertemuan | Topik | Subtopik yang perlu dikuasai |
|---|---|---|
| P1 | Pengantar IoT, Ekosistem, dan Arsitektur | Dari Internet of People ke Internet of Things; Definisi IoT; Karakteristik IoT; Cara Kerja IoT; Perjalanan IoT; Ekosistem IoT |
| P2 | Sensor dan Aktuator | Peran Sensor dan Aktuator di Sistem IoT; Apa itu Sensor?; Sensor Analog dan Digital; Karakteristik Sensor; Sensor Suhu dan Kelembapan; Sensor Gerak, Cahaya, dan Jarak |
| P3 | Mikrokontroler Dasar: Arduino dan ESP32 | Apa itu Mikrokontroler?; Mikrokontroler vs Mikroprosesor dan SBC; Arsitektur Internal Mikrokontroler; Anatomi Arduino Uno; Keluarga Arduino; Anatomi ESP32 |
| P4 | Praktikum: Antarmuka Sensor dan Aktuator | Alat dan Bahan; Keselamatan dan Aturan Lab; Mengenal Breadboard; Pemetaan Pin ESP32; Merangkai Sensor DHT22; Kode Membaca DHT22 |
| P5 | Konektivitas Jarak Pendek: WiFi, BLE, dan Zigbee | Posisi Konektivitas Jarak Pendek; Parameter Perbandingan; Berbagi Pita 2,4 GHz; WiFi: Ikhtisar; WiFi: Menghubungkan ESP32; Bluetooth Low Energy: Ikhtisar |
| P6 | LPWAN: LoRa, LoRaWAN, dan NB-IoT | Mengapa LPWAN: Jauh, Hemat, Data Kecil; Lanskap Teknologi LPWAN; LoRa: Lapisan Fisik Chirp Spread Spectrum; Parameter Radio LoRa; Spreading Factor: Jangkauan vs Kecepatan; Frekuensi Regional dan Duty Cycle |
| P7 | Komunikasi IoT: MQTT, HTTP, CoAP, dan QoS | Protokol Aplikasi di Tumpukan IoT; Dua Model Komunikasi; HTTP untuk IoT; CoAP: HTTP Ringan di Atas UDP; MQTT: Ikhtisar dan Arsitektur; Topic dan Wildcard |
๐ Cara Belajar
- Ulangi bagian rangkuman dan kuis di setiap pertemuan.
- Gambar ulang arsitektur 4 lapisan, aliran data end-to-end, dan topologi jaringan dari ingatan.
- Praktikan ulang rangkaian dan kode di Pertemuan 3 dan 4.
โ๏ธ Platform Cloud IoT: Blynk dan ThingsBoard
๐ฏ Tujuan dan Alur Pertemuan (slide 142)
- Fungsi dan konsep platform IoT
- Blynk: setup, kode, dasbor
- ThingsBoard: device, telemetry, RPC
- Rule engine dan alarm
- Perbandingan dan Praktikum 4
Setelah pertemuan ini, mahasiswa mampu Menghubungkan ESP32 ke Blynk dan ThingsBoard, mengirim data sensor, dan mengendalikan LED dari dasbor.
Mengapa Perlu Platform IoT? (slide 143)
- Manajemen perangkat
- Penerimaan dan penyimpanan data
- Aturan, otomasi, dan alarm
- API untuk integrasi
- Dasbor dan notifikasi
Peta Platform: Kemudahan vs Kontrol (slide 144)
Kontrol dan skala
Kriteria memilih
AWS IoT
- Waktu belajar dan prototipe
- Kontrol atas data
ThingsBoard
Azure IoT โข Skala dan biaya
- Integrasi dan protokol
Blynk
Kemudahan
Konsep Umum dan Padanannya (slide 145)
| Konsep | Blynk | ThingsBoard |
|---|---|---|
| Perangkat | Device dari template | Device (entity) |
| Kredensial | Auth token | Access token |
| Data sensor | Datastream (virtual pin) | Telemetry |
| Perintah ke perangkat | Datastream tulis, BLYNK_WRITE | RPC |
| Otomasi | Automation | Rule engine |
| Tampilan | Dasbor dan widget | Dasbor dan widget |
Alur Menghubungkan Perangkat (slide 146)
Buat template
Buat akun Salin kredensial Program ESP32 Lihat di dasbor
atau device
Masalah umum Keamanan kredensial
- Token atau Template ID salah Token seperti sandi: jangan unggah ke repositori
- Sandi WiFi keliru publik atau tampilkan di tangkapan layar.
- Port 1883 diblokir jaringan
Blynk: Ikhtisar (slide 147)
Karakteristik
ESP32
- Cloud terkelola dengan aplikasi web dan mobile
- Template, datastream, dan widget drag-and-drop
- Library khusus untuk ESP32
- Cepat untuk prototipe
Blynk Cloud
Paket gratis terbatas: cek halaman harga
Aplikasi web dan mobile
Menyiapkan Blynk (slide 148)
| 1 | Daftar di blynk.cloud dan gunakan Blynk IoT |
|---|---|
| 2 | Buat Template: hardware ESP32, koneksi WiFi |
| 3 | Tambah datastream: V0 suhu (desimal) dan V1 LED (bilangan bulat 0 sampai 1) |
| 4 | Buat device dari template tersebut |
| 5 | Salin Template ID, Template Name, dan Auth Token ke kode |
๐ป Blynk: Mengirim Data Sensor (slide 149)
#define BLYNK_TEMPLATE_ID "TMPLxxxx"
#define BLYNK_TEMPLATE_NAME "Lab IoT"
#define BLYNK_AUTH_TOKEN "token_anda"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
BlynkTimer timer;
void kirim() {
Blynk.virtualWrite(V0, dht.readTemperature());
}
void setup() {
Blynk.begin(BLYNK_AUTH_TOKEN, "SSID", "sandi");
timer.setInterval(5000L, kirim);
}
void loop() { Blynk.run(); timer.run(); }Poin penting
- virtualWrite mengirim ke
datastream V0
- Kirim tiap 5 detik atau
lebih
- Ganti token dengan milik
Anda
9
๐ป Blynk: Dasbor dan Kontrol LED (slide 150)
BLYNK_WRITE(V1) {
int nilai = param.asInt();
digitalWrite(PIN_LED, nilai);
}Saklar V1 di dasbor mengendalikan LED
Tambahkan widget Gauge ke V0, Switch ke V1, dan Chart ke V0 pada dasbor.
Dasbor Blynk (contoh)
LED 28.5
suhu
Suhu (V0)
10
ThingsBoard: Ikhtisar (slide 151)
Karakteristik Perangkat (MQTT, HTTP, CoAP)
- Platform open source: edisi Community dan Professional
- Protokol standar: MQTT, HTTP, CoAP Transport dan rule engine
- Telemetry, attributes, RPC, rule engine
- Dasbor dan widget bawaan
- Dapat self-host atau memakai Cloud
Penyimpanan data
Dasbor dan API
ThingsBoard: Pilihan Instalasi (slide 152)
๐ก docker run -it -p 8080:9090 -p 1883:1883 -v ~/.mytb-data:/data --name mytb thingsboard/tb-postgres
๐ก Contoh perintah (tulis dalam satu baris); port bergantung versi
ThingsBoard: Membuat Device dan Token (slide 153)
| 1 | Masuk ke ThingsBoard (Live Demo, Cloud, atau server lokal) |
|---|---|
| 2 | Buka Entities, Devices, lalu tambah device baru, mis. esp32-lab1 |
| 3 | Buka Manage credentials dan salin Access Token |
| 4 | Isi Access Token sebagai username MQTT pada kode ESP32 |
| 5 | Kirim telemetry, lalu periksa tab Latest telemetry |
ThingsBoard: Mengirim Telemetry via (slide 154)
MQTT
mqtt.setServer("demo.thingsboard.io", 1883); Parameter koneksi
if (!mqtt.connected()) โข Host: server ThingsBoard
mqtt.connect("esp32-lab1", TOKEN, NULL);
- Port: 1883
String json = "{\"suhu\":" + String(t) + "}"; โข Username: access token
mqtt.publish("v1/devices/me/telemetry",
json.c_str());
- Password: kosong
mqtt.loop(); โข Topic:
v1/devices/me/telemetry
Telemetry dan Attributes (slide 155)
ThingsBoard: Membuat Dasbor (slide 156)
๐ป ThingsBoard: Kontrol LED dengan RPC (slide 157)
mqtt.subscribe("v1/devices/me/rpc/request/+");
// di callback, payload mis.
// {"method":"setLed","params":true}
String s;
for (int i = 0; i < n; i++) s += (char)d[i];
digitalWrite(PIN_LED, s.indexOf("true") >= 0);1 Widget saklar mengirim RPC
2 ThingsBoard meneruskan ke perangkat
3 Callback menyalakan LED
17
Rule Engine dan Alarm (slide 158)
โ๏ธ Perbandingan Blynk dan ThingsBoard (slide 159)
| Aspek | Blynk | ThingsBoard |
|---|---|---|
| Kemudahan | Sangat cepat, aplikasi mobile siap pakai | Perlu konfigurasi lebih banyak |
| Protokol | Library khusus Blynk | MQTT, HTTP, CoAP standar |
| Kontrol data | Data di cloud Blynk | Dapat self-host, data milik sendiri |
| Dasbor | Widget drag-and-drop | Widget dan dasbor fleksibel |
| Biaya | Paket gratis terbatas, lalu berbayar | Community gratis; Cloud berbayar |
| Cocok untuk | Prototipe dan proyek kelas | Proyek serius dan multi-perangkat |
โ Rangkuman dan Praktikum 4 (slide 160)
| 1 |
|---|
| 2 Platform IoT mengelola perangkat, data, aturan, dan dasbor Blynk: cepat untuk prototipe dengan template dan datastream |
| 3 Kirim suhu DHT22 ke Blynk dan ThingsBoard, buat dasbor, dan ThingsBoard: fleksibel dengan MQTT, telemetry, RPC, kendalikan LED. Susun laporan dan rule engine perbandingan. |
| 4 Lindungi token dan kredensial perangkat |
๐ก Praktikum 4
๐ Menyimpan dan Memvisualisasikan Data Sensor
๐ฏ Tujuan dan Alur Pertemuan (slide 162)
- Alur data dan data deret waktu
- Opsi dan model penyimpanan
- Kualitas data dan analitik dasar
- Deteksi anomali sederhana
- Dasbor Grafana dan desainnya
Setelah pertemuan ini, mahasiswa mampu Memilih penyimpanan, membangun jalur data ke basis data deret waktu, menganalisis data dasar, dan membuat dasbor.
Alur Data: Dari Sensor ke Dasbor (slide 163)
๐ก Data mentah baru berguna setelah disimpan, dibersihkan, dan ditampilkan
Karakteristik Data Deret Waktu (slide 164)
Waktu Ruang Suhu Ciri khas
- Ditulis terus-menerus, jarang diubah
08:00:00 lab1 28.5
- Dikueri berdasarkan rentang waktu
08:00:05 lab1 28.6 โข Volume cepat membesar
- Perlu agregasi dan retensi
08:00:10 lab1 28.6
08:00:15 lab1 28.8
Contoh tabel: timestamp, tag (ruang), dan nilai (suhu)
Opsi Penyimpanan Data Sensor (slide 165)
| Opsi | Kelebihan | Keterbatasan | Contoh |
|---|---|---|---|
| File CSV di SD card | Sederhana, jalan tanpa jaringan | Sulit dikueri dan ditumbuhkan | Logger lapangan |
| Basis data SQL | Kueri fleksibel, relasi | Kurang optimal untuk volume besar | PostgreSQL, MySQL |
| NoSQL dokumen | Skema fleksibel | Agregasi waktu lebih rumit | MongoDB |
| Basis data deret waktu | Cepat untuk tulis dan agregasi waktu | Kueri relasi terbatas | InfluxDB, TimescaleDB |
๐ป Logging ke SD Card dalam Format CSV (slide 166)
configTime(8 * 3600, 0, "pool.ntp.org");
struct tm t;
getLocalTime(&t);
char waktu[20];
strftime(waktu, 20, "%Y-%m-%d %H:%M:%S", &t);
File f = SD.open("/log.csv", FILE_APPEND);
f.printf("%s,%.1f\n", waktu, suhu);
f.close();Catatan
- Sesuaikan zona waktu (WIB
7, WITA 8, WIT 9)
- Tutup file agar data tidak
hilang
- Tambahkan baris judul
kolom
6
Menyimpan ke Basis Data SQL (slide 167)
CREATE TABLE sensor ( Praktik baik
waktu TIMESTAMPTZ NOT NULL,
ruang TEXT, โข Indeks pada kolom waktu
suhu REAL
); โข Simpan waktu dalam UTC
- Pisahkan tabel perangkat
SELECT date_trunc('hour', waktu) AS jam,
AVG(suhu) AS rata
FROM sensor
GROUP BY jam ORDER BY jam;
Contoh PostgreSQL: rata-rata suhu per jam
Model Data InfluxDB (slide 168)
suhu,ruang=lab1 nilai=28.5 1700000000
- Kategori data, setara
- nama tabel
- Metadata terindeks
- untuk filter
- Nilai terukur, tidak
- terindeks
Ingest dengan Telegraf (slide 169)
[[inputs.mqtt_consumer]] Poin penting
servers = ["tcp://localhost:1883"]
topics = ["lab1/#"] โข Input membaca topic MQTT
data_format = "json"
- Output menulis ke InfluxDB
[[outputs.influxdb_v2]] โข Simpan token di variabel
urls = ["http://localhost:8086"]
lingkungan
token = "$INFLUX_TOKEN"
organization = "kampus"
bucket = "sensor"
๐ป Alternatif Ingest: Node-RED (slide 170)
mqtt in
json
function
influxdb out
debug
msg.payload = { nilai: msg.payload.suhu };
msg.measurement = "suhu";
return msg;Catatan
Pasang paket node-red-contrib- influxdb untuk node output.
10
Retensi dan Estimasi Kapasitas (slide 171)
- 1 pesan tiap 5 detik
- 17.280 pesan per hari per sensor
- 10 sensor: 172.800 pesan per hari
- Asumsi 50 byte per catatan: sekitar 8,6 MB per hari
๐ก Rata-rata 1 menit: 30 hari
๐ก Rata-rata 1 jam: 1 tahun
Kualitas Data Sensor (slide 172)
Statistik Dasar untuk Data Sensor (slide 173)
๐ป Analitik dengan Python dan pandas (slide 174)
import pandas as pd
df = pd.read_csv("suhu.csv", parse_dates=["waktu"])
df = df.set_index("waktu")
per_jam = df["suhu"].resample("1h").mean()
halus = df["suhu"].rolling(5).mean()
print(df["suhu"].describe())Fungsi kunci
- resample: agregasi per
interval
- rolling: rata-rata bergerak
- describe: ringkasan statistik
14
Deteksi Anomali Sederhana (slide 175)
Metode sederhana
anomali โข Ambang tetap
- Z-score di luar 3
- Rata-rata bergerak ditambah atau dikurangi k kali simpangan baku
- Waspadai alarm palsu
pita normal
Membuat Dasbor di Grafana (slide 176)
| 1 | Tambahkan data source InfluxDB (URL, organisasi, token, bucket) |
|---|---|
| 2 | Buat dashboard baru lalu pilih Add visualization |
| 3 | Tulis query di editor (Flux atau query builder) |
| 4 | Pilih jenis panel dan atur satuan, misalnya derajat Celsius |
| 5 | Atur ambang warna, refresh otomatis, lalu simpan dashboard |
Query Flux dan Jenis Panel (slide 177)
| Time series |
|---|
| Gauge dan stat from(bucket: "sensor") |> range(start: -1h) tren |> filter(fn: (r) => r._measurement == "suhu") |> aggregateWindow(every: 5m, fn: mean) nilai terkini |
| Bar chart perbandingan |
| Table rincian Rata-rata suhu per 5 menit selama 1 jam terakhir |
Memilih Jenis Grafik (slide 178)
- Tren dari waktu ke
- waktu
- Nilai terkini
- Membandingkan
- terhadap ambang
Prinsip Desain Dasbor (slide 179)
1 Prinsip
Suhu saat ini Kelembapan Status perangkat
- Mulai dari pertanyaan pengguna
- 1: KPI, 2: tren, 3: rincian
2 โข
Tren suhu 24 jam Maksimal 6 sampai 8 panel
- Warna ambang bermakna dan konsisten
- Sumbu dan satuan jujur
Tabel peringatan Rata-rata per ruang
โ Rangkuman dan Tugas 3 (slide 180)
| 1 |
|---|
| 2 Data sensor adalah deret waktu: timestamp, tag, dan nilai Pilih penyimpanan sesuai skala; basis data deret waktu untuk volume besar |
| 3 Simpan data sensor ke InfluxDB atau CSV, hitung statistik dasar, Kualitas data dan statistik dasar mendahului analitik dan buat dasbor dengan tiga lanjut panel. |
| 4 Dasbor yang baik menjawab satu pertanyaan utama |
๐ก Tugas 3
โก Edge dan Fog Computing
๐ฏ Tujuan dan Alur Pertemuan (slide 182)
- Mengapa tidak semua ke cloud
- Edge, fog, dan cloud
- Pola pemrosesan di edge
- Perangkat keras dan TinyML
- Kerangka keputusan dan kasus
Setelah pertemuan ini, mahasiswa mampu Menjelaskan edge, fog, dan cloud serta menentukan lokasi pemrosesan data berdasarkan latensi, bandwidth, keandalan, dan privasi.
Masalah Jika Semua Data ke Cloud (slide 183)
| Latensi |
|---|
| Bandwidth Perjalanan pulang-pergi ke cloud terlalu lambat untuk kontrol cepat Video dan data frekuensi tinggi mahal dan memenuhi jaringan |
| Keandalan Koneksi putus berarti sistem berhenti |
| Privasi Semua data mengalir ke satu tempat Data sensitif sebaiknya tidak keluar dari lokasi |
Tiga Lapis: Edge, Fog, Cloud (slide 184)
Edge memproses di perangkat sehingga respons paling cepat tetapi kapasitas kecil. Fog di gateway lokal melakukan agregasi, buffer, dan keputusan area. Cloud di pusat berkapasitas besar untuk analitik lintas lokasi dan pelatihan model.
๐ก Poin kunci: Makin dekat ke sumber data, makin cepat responsnya; makin jauh, makin besar kapasitasnya.
Edge, Fog, dan Cloud: Perbedaan (slide 185)
| Lapis | Lokasi pemrosesan | Latensi | Kapasitas | Contoh |
|---|---|---|---|---|
| Edge | Di perangkat atau sangat dekat | Sangat rendah | Terbatas | ESP32, kamera pintar |
| Fog | Gateway atau server lokal | Rendah | Menengah | Raspberry Pi, mini-PC |
| Cloud | Pusat data jauh | Lebih tinggi | Sangat besar | AWS, Azure, server pusat |
MEC (multi-access edge computing) menaruh komputasi di dalam jaringan operator seluler
Latensi: Seberapa Dekat Pemrosesan? (slide 186)
| Di perangkat | sangat kecil |
|---|---|
| Gateway lokal | beberapa milidetik |
| Cloud regional | puluhan milidetik |
| Cloud jauh | ratusan milidetik |
Kontrol waktu nyata menuntut respons cepat dan konsisten, bukan sekadar rata-rata rendah
Menghemat Bandwidth di Edge (slide 187)
Kirim video terus-menerus (4 Mbps)
sekitar 43 GB per hari
Kirim hanya event hasil deteksi (100 event, 50 KB per snapshot)
sekitar 5 MB per hari
Hitungan: 4 Mbps = 0,5 MB per detik; dikali 86.400 detik sekitar 43 GB. Model deteksi berjalan di edge, hanya hasilnya yang dikirim.
Pola Pemrosesan di Edge (slide 188)
Report by Exception: Kirim Saat Berubah (slide 189)
Manfaat
- Data jauh lebih sedikit
- Hemat daya radio
- Tetap kirim berkala (heartbeat) agar status terlihat
Batas perubahan: 0,15 dari nilai terakhir yang dikirim
๐ป Filter di Gateway dengan Python (slide 190)
import paho.mqtt.client as mqtt
akhir = None
def on_message(c, u, m):
global akhir
x = float(m.payload)
if akhir is None or abs(x - akhir) >= 0.5:
cloud.publish("lab1/suhu", x)
akhir = xTeruskan ke cloud hanya jika berubah 0,5 atau lebih
Poin penting
- Gateway berlangganan
broker lokal
- Keputusan diambil lokal
- cloud adalah klien ke
broker pusat
10
Gateway Store-and-Forward (slide 191)
๐ป Konfigurasi Bridge Mosquitto (slide 192)
connection cloud
address broker.contoh.com:8883
topic lab1/# out 1
bridge_cafile /etc/mosquitto/ca.crt
remote_username gateway1
cleansession falseContoh; host dan kredensial hanya placeholder
topiclab1/#out1
kirim dari lokal ke cloud dengan QoS 1
bridge_cafile
sertifikat CA untuk TLS
cleansessionfalse
antrean pesan disimpan saat putus
12
Perangkat Keras Edge (slide 193)
| Kelas | Contoh | Kemampuan | Daya |
|---|---|---|---|
| Mikrokontroler | ESP32 | Filter, aturan, TinyML kecil | Sangat rendah |
| Komputer papan tunggal | Raspberry Pi | Linux, broker lokal, Node-RED | Rendah sampai menengah |
| Akselerator AI | Jetson, Coral Edge TPU | Inferensi video dan model berat | Menengah |
| Gateway industri | Mini-PC, gateway DIN-rail | Beban besar, tahan lingkungan | Menengah sampai tinggi |
Platform dan Perangkat Lunak Edge (slide 194)
| AWS IoT Greengrass | Menjalankan fungsi dan model di perangkat edge, terhubung ke AWS. |
|---|---|
| Azure IoT Edge | Modul kontainer di edge yang dikelola dari Azure IoT Hub. |
| EdgeX Foundry | Kerangka edge open source yang netral terhadap vendor. |
| Node-RED dan Docker | Alur visual lokal; cepat untuk prototipe di gateway. |
| K3s | Kubernetes ringan untuk mengelola banyak node edge. |
TinyML: Inferensi di Mikrokontroler (slide 195)
Latih di Cloud, Jalankan di Edge (slide 196)
๐ก model (OTA)
๐ก hasil dan
๐ก model (OTA)
๐ก hasil dan
๐ก model (OTA)
๐ก hasil dan
๐ก data terpilih
๐ก data terpilih
๐ก data terpilih
Keamanan dan Pengelolaan Node Edge (slide 197)
Kerangka Keputusan: Di Mana Memproses? (slide 198)
| Koneksi internet sering putus? |
|---|
| Data sensitif tidak boleh keluar lokasi? Kontrol cepat dan keselamatan Buffer dan keputusan lokal Kapasitas dan data terpusat Proses dan simpan lokal |
๐ก Respons harus di bawah puluhan milidetik?
๐ก Perlu analisis lintas lokasi atau melatih model?
๐ก Edge
๐ก Fog
๐ก Cloud
๐ก Edge atau fog
๐ผ Studi Kasus Pemilihan Lokasi Pemrosesan (slide 199)
โ Rangkuman dan Kuis 3 (slide 200)
| 1 |
|---|
| 2 Edge memproses dekat sumber; fog di gateway lokal; cloud di pusat Edge menjawab latensi, bandwidth, keandalan, dan privasi |
| 3 Jelaskan edge, fog, dan cloud, lalu tentukan lokasi pemrosesan Filter, agregasi, dan buffer adalah langkah awal yang untuk satu kasus beserta murah alasannya. |
| 4 Pola umum: latih di cloud, jalankan di edge |
๐ก Kuis 3
๐ค IoT dan AI: Dari Data Sensor ke Keputusan
๐ฏ Tujuan dan Alur Pertemuan (slide 202)
- Konsep AI, ML, dan jenis pembelajaran
- Alur proyek ML untuk data sensor
- Evaluasi model dan deteksi anomali
- Prediksi dan perawatan prediktif
- TinyML dan etika AI
Setelah pertemuan ini, mahasiswa mampu Menjelaskan konsep dan alur ML pada data sensor, menerapkan deteksi anomali, dan memahami dasar TinyML.
Dari Data ke Keputusan (slide 203)
Keputusan Jadwalkan perawatan sebelum gagal Pengetahuan Pola mirip kipas yang mulai rusak Informasi Suhu naik 3 derajat per jam Data 28,5 derajat tiap 5 detik
Data mentah (28,5 ยฐC tiap 5 detik) diolah menjadi informasi (suhu naik 3 ยฐC per jam), lalu menjadi pengetahuan (pola mirip kipas yang mulai rusak), dan akhirnya keputusan (jadwalkan perawatan sebelum gagal).
๐ก Poin kunci: Nilai AI pada IoT ada pada ujung rantai: keputusan yang dapat ditindaklanjuti.
AI, Machine Learning, dan Deep Learning (slide 204)
Tiga Jenis Pembelajaran Mesin (slide 205)
- Belajar dari data berlabel.
- Klasifikasi kondisi
- Mencari pola tanpa label.
- Deteksi anomali
- Belajar dari hadiah dan hukuman.
- Kontrol AC atau
Tugas Umum AI pada Data IoT (slide 206)
Alur Proyek Machine Learning (slide 207)
Jendela dan Fitur dari Sinyal Sensor (slide 208)
Sinyal akselerometer dipotong menjadi jendela waktu Fitur umum
- Rata-rata dan simpangan baku
- Minimum, maksimum, RMS
- Energi sinyal
- Puncak frekuensi (FFT)
Jendela 1 Jendela 2 Jendela 3
Membagi Data dan Bahaya Overfitting (slide 209)
Pembagian data tipikal Error vs kompleksitas model
Overfitting: error latih turun, error validasi naik
Latih 70% 15% 15%
Latih, validasi, uji validasi
- Latih: mempelajari parameter
- Validasi: menyetel pengaturan
- Uji: ukuran akhir, jangan dipakai menyetel
latih
kompleksitas model
Metrik Evaluasi: Akurasi Bisa Menipu (slide 210)
- 1000 pembacaan, hanya 10 yang anomali.
- Model yang selalu menjawab normal
- mendapat akurasi 99%, tetapi recall 0%:
- tidak satu pun kerusakan terdeteksi.
Memilih Algoritma untuk Data IoT (slide 211)
| Algoritma | Cocok untuk | Catatan |
|---|---|---|
| Regresi linear atau logistik | Prediksi dan klasifikasi dasar | Mudah ditafsirkan |
| Decision tree, random forest | Data tabular dari fitur sensor | Ringan dan tahan outlier |
| k-means | Pengelompokan tanpa label | Jumlah klaster ditentukan manual |
| Autoencoder | Deteksi anomali | Butuh data normal yang bersih |
| CNN | Citra dan sinyal | Lebih berat, dapat dikuantisasi |
| LSTM | Deret waktu panjang | Berat untuk mikrokontroler |
Deteksi Anomali dengan Autoencoder (slide 212)
| Input | Encoder | Latent | Decoder | Output |
|---|
Dilatih dengan data normal; error rekonstruksi besar menandakan anomali
๐ป Contoh Kode: Isolation Forest (slide 213)
from sklearn.ensemble import IsolationForest Poin penting
import pandas as pd
- contamination: perkiraan
df = pd.read_csv("mesin.csv")
fitur = df[["suhu", "getaran"]]
proporsi anomali
- Latih pada data yang
model = IsolationForest(contamination=0.01) sebagian besar normal
model.fit(fitur)
- Evaluasi dengan precision
df["anomali"] = model.predict(fitur)
dan recall
Perawatan Prediktif (slide 214)
Indeks kesehatan: biru aktual, oranye prediksi
Manfaat
- Kurangi waktu henti mendadak
ambang gagal โข Perawatan sesuai kondisi,
bukan jadwal tetap
- Data getaran, suhu, dan arus
prediksi gagal
TinyML: Mengapa dan Batasannya (slide 215)
Alur TinyML dan Kuantisasi (slide 216)
- float32
- int8
Contoh Proyek TinyML: Klasifikasi Getaran (slide 217)
| 1 | Rekam data akselerometer untuk kondisi normal dan tidak normal |
|---|---|
| 2 | Buat impulse: jendela waktu, fitur spektral, dan classifier |
| 3 | Latih dan evaluasi model di Edge Impulse atau TensorFlow |
| 4 | Ekspor sebagai pustaka Arduino atau larik C |
| 5 | Jalankan inferensi di ESP32 dan tampilkan hasil di Serial Monitor |
๐ป Kerangka Inferensi TensorFlow Lite Micro (slide 218)
#include "model.h" // model dalam larik C
tflite::MicroInterpreter interpreter(
model, resolver, arena, kArenaSize);
interpreter.AllocateTensors();
input->data.f[0] = suhu;
interpreter.Invoke();
float skor = output->data.f[0];Poin penting
- Model disimpan di flash
- Arena tensor memakai
SRAM
- Invoke menjalankan satu
inferensi
18
Risiko dan Etika AI pada IoT (slide 219)
โ Rangkuman dan Tugas 4 (slide 220)
| 1 |
|---|
| 2 AI mengubah data sensor menjadi informasi dan keputusan Alur ML: data, fitur, latih, evaluasi, lalu pantau |
| 3 Pilih satu dataset sensor, latih model deteksi anomali Evaluasi anomali dengan precision dan recall, bukan sederhana, evaluasi dengan akurasi saja precision dan recall, lalu jelaskan penerapannya di IoT. |
| 4 TinyML menjalankan model kecil di mikrokontroler |
๐ก Tugas 4
๐ Keamanan dan Privasi IoT
๐ฏ Tujuan dan Alur Pertemuan (slide 222)
- Ancaman dan insiden IoT
- Kontrol teknis: sandi, TLS, boot aman
- Segmentasi dan keamanan fisik
- Privasi dan regulasi
- Model ancaman dan studi kasus
Setelah pertemuan ini, mahasiswa mampu Mengidentifikasi ancaman IoT, menerapkan kontrol keamanan dan privasi, serta menimbang aspek etika dan regulasi.
Mengapa Perangkat IoT Rentan? (slide 223)
Insiden IoT yang Pernah Terjadi (slide 224)
๐ก Jeep Cherokee diambil
๐ก Botnet Mirai memakai
๐ก Termometer akuarium
๐ก Platform kamera
๐ก alih dari jarak jauh
๐ก kredensial bawaan
๐ก kasino dilaporkan
๐ก Verkada ditembus lewat
๐ก melalui sistem
๐ก perangkat untuk
๐ก menjadi pintu masuk ke
๐ก kredensial admin yang
๐ก infotainment,
๐ก serangan DDoS skala
๐ก jaringan internal.
๐ก terekspos.
๐ก didemonstrasikan
๐ก besar.
๐ก peneliti keamanan.
Permukaan Serangan per Lapisan (slide 225)
| Application | Phishing, akses lemah, API tidak diamankan |
|---|---|
| Processing | Kebocoran basis data, kredensial cloud, injeksi |
| Network | Penyadapan, man-in-the-middle, replay, jamming |
| Perception | Pencurian fisik, pembacaan firmware, sensor dimanipulasi |
Segitiga CIA pada IoT (slide 226)
Kerahasiaan Data kesehatan atau kamera tidak boleh dibaca pihak lain.
Integritas Keamanan Data sensor dan perintah tidak boleh diubah di tengah jalan.
Ketersediaan Sistem tetap berjalan saat diserang atau terjadi gangguan.
OWASP IoT Top 10 (Edisi 2018) (slide 227)
| 1 | Sandi lemah, mudah ditebak, atau tertanam | 6 | Perlindungan privasi tidak memadai |
|---|---|---|---|
| 2 | Layanan jaringan tidak aman | 7 | Transfer dan penyimpanan data tidak aman |
| 3 | Antarmuka ekosistem tidak aman | 8 | Tidak ada manajemen perangkat |
| 4 | Tidak ada mekanisme pembaruan aman | 9 | Pengaturan bawaan tidak aman |
| 5 | Komponen usang atau tidak aman | 10 | Tidak ada pengerasan fisik |
๐ป Kredensial: Jangan Tertanam di Firmware (slide 228)
Hindari Lebih baik
const char* sandi = "admin123";
const char* token = "abc123xyz";Preferences pref;
pref.begin("cfg", true);
String s = pref.getString("pass", "");
pref.end();๐ก Tambahan: isi kredensial saat provisioning, beri sandi unik per perangkat, dan aktifkan enkripsi NVS atau flash encryption agar rahasia tidak terbaca dari flash.
8
Mengamankan Komunikasi dengan TLS (slide 229)
#include <WiFiClientSecure.h> Poin penting
WiFiClientSecure klien; โข setCACert memeriksa
klien.setCACert(ca_cert);
identitas server
PubSubClient mqtt(klien); โข Hindari setInsecure() di
mqtt.setServer("broker.contoh.com", 8883); produksi
- Port 8883 untuk MQTT dengan TLS
Alur Singkat Jabat Tangan TLS (slide 230)
| Klien (ESP32) | Server (broker) |
|---|---|
| ClientHello: versi TLS dan cipher suite | |
| ServerHello dan sertifikat server | |
| Klien memverifikasi sertifikat dengan CA tepercaya | |
| Pertukaran kunci menghasilkan kunci sesi |
Data aplikasi terenkripsi dua arah
Autentikasi dan Otorisasi Perangkat (slide 231)
| Metode | Kelebihan | Risiko |
|---|---|---|
| Token atau API key | Mudah dipasang | Bocor berarti akses penuh |
| Username dan sandi | Umum dan familiar | Mudah ditebak atau dipakai ulang |
| Pre-shared key (PSK) | Hemat untuk MCU kecil | Kunci dibagi ke banyak perangkat |
| Sertifikat X.509 | Kuat, unik per perangkat | Manajemen dan pembaruan lebih rumit |
Otorisasi: beri hak akses minimum, mis. ACL per topic MQTT
Boot Aman dan Pembaruan OTA (slide 232)
Keamanan Fisik Perangkat (slide 233)
Segmentasi Jaringan IoT (slide 234)
๐ก lalu lintas antar-zona dibatasi aturan firewall
Data Pribadi yang Dikumpulkan IoT (slide 235)
Prinsip Perlindungan Privasi (slide 236)
| Minimisasi data | Kumpulkan hanya data yang benar-benar dibutuhkan. |
|---|---|
| Pembatasan tujuan | Pakai data hanya untuk tujuan yang dinyatakan. |
| Persetujuan dan transparansi | Pengguna tahu apa yang dikumpulkan dan mengapa. |
| Batas retensi | Hapus data yang tidak lagi diperlukan. |
| Anonimisasi dan pseudonimisasi | Hilangkan atau samarkan identitas dalam data. |
| Privacy by design | Pertimbangkan privasi sejak tahap perancangan. |
Regulasi dan Standar Terkait (slide 237)
| Regulasi atau standar | Lingkup | Catatan |
|---|---|---|
| UU No. 27 Tahun 2022 (UU PDP) | Pelindungan data pribadi di Indonesia | Cek peraturan pelaksana terbaru |
| GDPR | Data pribadi warga Uni Eropa | Berlaku lintas negara |
| ETSI EN 303 645 | Keamanan IoT konsumen | Antara lain: tanpa sandi default |
| NIST IR 8259 | Aktivitas keamanan bagi produsen IoT | Panduan pengembangan perangkat |
| IEC 62443 | Keamanan sistem kontrol industri | Relevan untuk IIoT |
Model Ancaman STRIDE (slide 238)
| Ancaman | Contoh pada IoT | Kontrol |
|---|---|---|
| Spoofing | Perangkat palsu mengirim data | Autentikasi dengan sertifikat |
| Tampering | Firmware atau data diubah | Tanda tangan dan integritas |
| Repudiation | Pengguna menyangkal perintah | Log yang tidak dapat diubah |
| Information disclosure | Data tersadap atau bocor | TLS dan enkripsi data diam |
| Denial of service | Broker dibanjiri pesan | Rate limit dan redundansi |
| Elevation of privilege | Perangkat membaca topic lain | Otorisasi minimal (ACL) |
๐ผ Studi Kasus: Kamera IP Kantor Bermasalah (slide 239)
| Sandi bawaan admin tidak pernah diganti | Wajibkan sandi unik dan kuat |
|---|---|
| Port kamera terbuka langsung ke internet |
๐ก Firmware tidak diperbarui selama tiga tahun
๐ก Video dikirim tanpa enkripsi dalam satu jaringan datar
๐ก Tutup port; akses lewat VPN
๐ก Jadwalkan pembaruan dan pantau rilis
๐ก Gunakan TLS dan pisahkan VLAN
โ Rangkuman dan Kuis 4 (slide 240)
| 1 |
|---|
| 2 Keamanan IoT mencakup perangkat, jaringan, cloud, dan aplikasi Kontrol inti: kredensial unik, TLS, boot aman, OTA bertanda tangan, segmentasi |
| 3 Sebutkan ancaman IoT beserta kontrolnya, jelaskan alur TLS, dan tentukan prinsip privasi retensi terbatas untuk satu kasus. |
| 4 Gunakan STRIDE untuk menganalisis ancaman secara sistematis |
๐ก Kuis 4
๐ก Privasi: minimisasi data, tujuan jelas, persetujuan, dan
๐ Merancang Sistem IoT untuk Kasus Nyata
๐ฏ Tujuan dan Alur Pertemuan (slide 242)
- Siklus perancangan dan masalah
- Kebutuhan dan ide kasus
- Arsitektur, daya, dan komponen
- Data, kontrol, keamanan, pengujian
- Rencana proyek dan presentasi
Setelah pertemuan ini, mahasiswa mampu Merumuskan masalah, menurunkan kebutuhan ke arsitektur, memilih komponen, dan merencanakan pengujian serta proyek.
Siklus Perancangan Sistem IoT (slide 243)
Lima langkah: definisikan masalah, rumuskan kebutuhan, rancang arsitektur, bangun prototipe, lalu uji dan iterasi. Prinsipnya: pahami pengguna dan konteks sebelum memilih teknologi, tulis kebutuhan yang dapat diuji, dan iterasi cepat dengan prototipe kecil.
๐ก Poin kunci: Mulai dari masalah, bukan dari perangkat atau teknologi tertentu.
Merumuskan Masalah dengan Jelas (slide 244)
| Elemen | Pertanyaan pemandu | Contoh kasus |
|---|---|---|
| Pengguna | Siapa yang memakai dan terdampak? | Petani cabai di 10 petak |
| Masalah | Apa yang terjadi sekarang? | Penyiraman manual sering telat atau berlebih |
| Dampak | Apa akibatnya? | Hasil panen turun dan air terbuang |
| Ukuran sukses | Bagaimana tahu berhasil? | Kelembapan tanah terjaga di rentang target tanpa petani hadir |
๐ก Tulis masalah dalam satu kalimat sebelum memilih sensor atau jaringan
Kebutuhan Fungsional dan Kualitas (slide 245)
Sistem harus Kualitas yang diharapkan
- Membaca kelembapan tanah tiap 15 menit โข Hemat daya: baterai bertahan berbulan-bulan
- Menyalakan pompa otomatis di bawah batas โข Mencakup seluruh lahan 5 hektare
- Mengirim data ke dasbor di ponsel โข Tahan cuaca luar ruang
- Memberi peringatan saat baterai rendah โข Aman dari akses tidak sah
- Mudah dirawat oleh petani
Ide Kasus untuk Proyek Kelompok (slide 246)
Dari Kebutuhan ke Keputusan Desain (slide 247)
| Kebutuhan atau kendala | Keputusan desain |
|---|---|
| Lahan 5 hektare tanpa WiFi | LoRaWAN dengan satu gateway di titik tinggi |
| Tanpa listrik PLN | Baterai dan panel surya, node tidur di antara pengiriman |
| Pantau dari ponsel | Platform cloud dengan dasbor web dan mobile |
| Data tiap 15 menit | Payload kecil dan interval pengiriman 15 menit |
| Aman dari akses ilegal | OTAA, kunci unik per node, TLS ke platform |
Arsitektur End-to-End Kasus Penyiraman (slide 248)
Anggaran Daya Node (Contoh Hitungan) (slide 249)
๐ก Aktif: 2400 mA detik, sekitar 0,67 mAh per jam
๐ก Tidur: sekitar 0,02 mAh per jam
๐ก Total sekitar 0,69 mAh per jam
๐ก Sekitar 16,5 mAh per hari
๐ก Asumsi: aktif 120 mA selama 5 detik, 4 kali per jam; tidur 0,02 mA; baterai 2000 mAh; tanpa panel surya dan tanpa faktor keamanan.
Memilih Komponen Berdasarkan (slide 250)
| Fungsi | Pilihan | Alasan |
|---|---|---|
| Sensor tanah | Kapasitif | Lebih awet daripada tipe resistif |
| Mikrokontroler dan radio | ESP32 dengan modul LoRa | Hemat daya dan jangkauan jauh |
| Catu daya | Baterai Li-ion dan panel surya kecil | Lokasi tanpa listrik PLN |
| Aktuator | Katup solenoid lewat relay atau MOSFET | Mengatur aliran air ke petak |
| Pelindung | Casing tahan cuaca (IP65) | Lingkungan luar ruang |
Biaya: Lebih dari Harga Komponen (slide 251)
Merancang Format Data (slide 252)
Logika Kontrol Penyiraman (slide 253)
๐ก sensor tidak valid
Keamanan dan Privasi Sejak Perancangan (slide 254)
| Kredensial unik per node | Hindari satu kunci untuk semua; gunakan OTAA pada LoRaWAN. |
|---|---|
| Enkripsi komunikasi | LoRaWAN memakai AES-128; gunakan TLS ke platform. |
| Hak akses minimum | Dasbor petani hanya menampilkan petaknya. |
| Pembaruan firmware | Rencanakan OTA atau prosedur pembaruan di lapangan. |
| Privasi data | Data lahan milik koperasi; batasi siapa yang melihat. |
| Pencadangan | Simpan data penting di lebih dari satu tempat. |
Strategi Pengujian Bertingkat (slide 255)
Risiko dan Mitigasi (slide 256)
| Risiko | Dampak | Mitigasi |
|---|---|---|
| Baterai habis lebih cepat | Node mati | Anggaran daya, panel surya, alarm baterai |
| Gateway berhenti | Semua node putus | Catu daya cadangan, gateway kedua |
| Sensor drift atau rusak | Data salah | Kalibrasi dan validasi rentang |
| Cuaca ekstrem | Kerusakan perangkat | Casing IP65 dan uji lapangan |
| Kredensial bocor | Akses tidak sah | Kunci unik dan rotasi |
Rencana Proyek Enam Minggu (Contoh) (slide 257)
| Definisi masalah |
|---|
| Desain arsitektur |
| Prototipe node |
| Integrasi platform |
| Uji dan perbaikan |
| Dokumentasi dan presentasi |
๐ก M1
๐ก M2
๐ก M3
๐ก M4
๐ก M5
๐ก M6
Deliverable dan Rubrik Progres Proyek (slide 258)
Komponen penilaian Bobot Deliverable
- Pernyataan masalah
Kejelasan masalah dan kebutuhan 20
- Diagram arsitektur
- Daftar bahan dan alasan
Kelayakan arsitektur 30
- Skema rangkaian dan kode
- Rencana uji dan risiko
Komponen dan anggaran daya 20
Rencana uji dan risiko 20
Dokumentasi dan kerja tim 10
Struktur Presentasi dan Demo (10 Menit) (slide 259)
โ Rangkuman dan Persiapan Proyek Akhir (slide 260)
| 1 |
|---|
| 2 Mulai dari masalah dan kebutuhan yang dapat diuji Setiap keputusan desain tertaut ke satu kebutuhan |
| 3 Presentasikan prototipe selama 10 menit dengan demo, lalu Anggaran daya, keamanan, dan pengujian dirancang kumpulkan dokumentasi akhir. sejak awal |
| 4 Rencana dan risiko diperbarui di setiap iterasi |
๐ก Pekan depan
๐ค Presentasi dan Demo Proyek Akhir
๐ฏ Tujuan dan Agenda Sesi (slide 262)
| 1 | Format dan jadwal presentasi |
|---|---|
| 2 | |
| 3 | Mempresentasikan rancangan, |
| 4 | mendemokan prototipe, menunjukkan hasil uji, dan menjawab pertanyaan. |
| 5 |
๐ก Hari ini setiap kelompok
๐ก Struktur, isi slide, dan demo
๐ก Rubrik dan umpan balik
๐ก Dokumentasi dan etika
๐ก Tindak lanjut menuju UAS
Format Waktu per Kelompok: 15 Menit (slide 263)
1 2 3 2 2 5
Masalah: 1 menit Solusi dan arsitektur: 2 menit Demo: 3 menit
Hasil uji: 2 menit Pelajaran: 2 menit Tanya jawab: 5 menit
- Total 15 menit: 10 menit presentasi dan demo, 5 menit tanya jawab
- Semua anggota harus berbicara atau mengoperasikan demo
- Urutan tampil ditentukan dengan undian
Jadwal Presentasi (slide 264)
| Slot | Waktu | Kelompok | Kasus proyek |
|---|---|---|---|
| 1 | [..:..] | [Kelompok ..] | [....] |
| 2 | [..:..] | [Kelompok ..] | [....] |
| 3 | [..:..] | [Kelompok ..] | [....] |
| 4 | [..:..] | [Kelompok ..] | [....] |
| 5 | [..:..] | [Kelompok ..] | [....] |
| 6 | [..:..] | [Kelompok ..] | [....] |
Struktur Presentasi yang Efektif (slide 265)
Isi Slide yang Wajib Ada (slide 266)
Tips Demo yang Berhasil (slide 267)
| Satu skenario utama | Tunjukkan alur lengkap dari sensor sampai dasbor. |
|---|---|
| Rekaman cadangan | Siapkan video 1 sampai 2 menit bila perangkat bermasalah. |
| Jaringan cadangan | Siapkan hotspot ponsel sebagai pengganti WiFi. |
| Data uji siap | Isi dasbor dengan data riwayat agar grafik tidak kosong. |
| Peran jelas | Satu orang bicara, satu orang mengoperasikan. |
| Periksa daya dan kabel | Bawa power bank, kabel cadangan, dan steker. |
Jika Demo Bermasalah (slide 268)
| Masalah | Tindakan |
|---|---|
| WiFi tidak terhubung | Pindah ke hotspot ponsel yang sudah disiapkan |
| Sensor tidak terbaca | Tunjukkan data rekaman dan jelaskan penyebab dugaan |
| Dasbor kosong | Tampilkan tangkapan layar atau rekaman demo |
| Perangkat mati | Pakai daya cadangan, lanjutkan dengan rekaman |
| Kode error | Kembali ke versi stabil terakhir |
Rubrik Penilaian Proyek Akhir (Usulan) (slide 269)
| Pemahaman masalah dan kebutuhan | 15 |
|---|---|
| Kualitas rancangan dan arsitektur | 20 |
| Implementasi dan demo berfungsi | 25 |
| Pengujian dan analisis hasil | 15 |
| Keamanan dan privasi 10 | |
| Presentasi dan tanya jawab 10 | |
| Dokumentasi 5 |
Level Kinerja: Implementasi dan Demo (slide 270)
| Level | Deskripsi |
|---|---|
| Sangat baik (85 sampai 100) | Semua fitur inti berfungsi; demo lancar dengan data nyata |
| Baik (70 sampai 84) | Fitur inti berfungsi; ada kendala kecil saat demo |
| Cukup (55 sampai 69) | Sebagian fitur berfungsi; demo tersendat |
| Kurang (di bawah 55) | Sistem tidak berfungsi atau tidak dapat didemokan |
Rubrik dibagikan sebelum presentasi agar kelompok tahu apa yang dinilai
Pertanyaan yang Sering Diajukan Penguji (slide 271)
Teknik Menjawab Tanya Jawab (slide 272)
๐ก "Kami belum menguji di hujan deras. Pengujian lapangan kami baru di
Lembar Umpan Balik Teman Sejawat (slide 273)
| Kriteria | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| Kejelasan masalah dan solusi | |||||
| Kualitas demo | |||||
| Kualitas data hasil uji | |||||
| Kerja sama tim |
Satu hal yang sudah baik dan satu saran perbaikan: ..............................................................
Etika Akademik pada Proyek (slide 274)
Dokumentasi Akhir yang Dikumpulkan (slide 275)
| Laporan akhir | Mengikuti struktur laporan pada slide berikutnya. |
|---|---|
| Repositori kode | README lengkap tanpa token atau sandi. |
| Diagram dan skema | Arsitektur sistem dan skema rangkaian. |
| Daftar bahan (BOM) | Komponen, alasan, dan perkiraan biaya. |
| Hasil pengujian | Tabel metrik, grafik, dan analisis. |
| Video demo | Rekaman 2 sampai 3 menit sebagai cadangan. |
Struktur Laporan Akhir (slide 276)
| 1 | Pendahuluan: masalah dan tujuan | 5 | Pengujian dan hasil |
|---|---|---|---|
| 2 | Analisis kebutuhan dan batasan | 6 | Pembahasan dan keterbatasan |
| 3 | Perancangan arsitektur dan komponen | 7 | Penutup dan saran |
| 4 | Implementasi perangkat keras dan lunak | 8 | Lampiran: kode, skema, BOM |
๐ป Struktur README Repositori (slide 277)
# Nama Proyek
## Latar belakang
## Arsitektur sistem
## Daftar bahan (BOM)
## Cara membangun dan menjalankan
## Hasil pengujian
## Anggota timIngat
- Sertakan diagram dan tangkapan
layar
- Jangan commit token atau sandi
- Cantumkan lisensi dan sumber
17
Pembagian Peran Saat Tampil (slide 278)
| Penyaji | Operator demo |
|---|---|
| Membawakan narasi dan menjaga alur cerita. Mengoperasikan sistem selama demo. | |
| Penjawab teknis | Penjaga waktu |
| Menjawab pertanyaan teknis secara rinci. Memantau pengatur waktu dan memberi isyarat. |
Setelah Presentasi: Tindak Lanjut (slide 279)
Penutup dan Pengumuman (slide 280)
| 1 |
|---|
| 2 Presentasi yang baik bercerita dari masalah ke bukti Siapkan rencana cadangan untuk demo |
| 3 Materi pertemuan 9 sampai 15. Format dan aturan dijelaskan Kejujuran dan atribusi adalah bagian penilaian pada sesi berikutnya. |
| 4 Dokumen akhir dikumpulkan sesuai batas waktu |
๐ก Pekan depan: UAS