Logo Yayasan Assajadah
Yayasan Assajadah
Orientasi WICE Series

DARI KODE KE FISIK

Membangun pemahaman logika dasar komponen perangkat keras secara sistematis untuk pemula.

Fase 01

Design Thinking untuk Hardware

Proyek robotika dan IoT pada dasarnya adalah tentang memecahkan masalah di dunia nyata. Untuk menciptakan solusi yang tepat guna, kita menggunakan pendekatan Design Thinking: Empati → Definisi Masalah → Ideasi → Prototipe → Uji.

Contoh Logika "Penyiram Tanaman Otomatis":

  1. 1. Input: Baca nilai dari sensor kelembaban tanah.
  2. 2. Kondisi: Jika tanah terbaca kering (nilai < batas).
  3. 3. Output: Aktifkan relay, nyalakan pompa air.
  4. 4. Stop: Jika tanah sudah basah, matikan relay.

Karakteristik Proyek Inovasi

Metrik Penelitian (WICE) Proyek Iseng
Latar Belakang Masalah Jelas & Nyata Asal Buat
Batasan Masalah Terfokus Terlalu Luas
Pengujian Data Metodis (Ilmiah) Feeling Saja
Kebermanfaatan Berdampak Sekadar Jadi

Dari Web Menuju Perangkat Keras

Bagi Anda yang terbiasa dengan web development, memprogram hardware memiliki padanan yang sangat mirip. Mari kita petakan konsep Frontend dan Backend ke dalam anatomi perangkat keras IoT.

1

Sensor (Input) = seperti Frontend Forms yang menerima masukan data.

2

Mikrokontroler (Proses) = seperti Backend (Node.js/PHP) yang memproses logika.

3

Aktuator (Output) = seperti DOM Manipulation (UI) yang menampilkan hasil akhir.

4

Looping = seperti sebuah setInterval berkelanjutan yang menjaga sistem IoT tetap hidup dan responsif.

main.ino
// Inisialisasi awal (dijalankan sekali)
void setup() {
    pinMode(A0, INPUT);
    pinMode(13, OUTPUT);
}

// 4. Looping tanpa henti (seperti setInterval)
void loop() {
    // 1. Sensor menerima input dari lingkungan
    int nilaiSensor = analogRead(A0);

    // 2. Mikrokontroler memproses logika
    if (nilaiSensor > 500) {
        // 3. Aktuator menghasilkan output (LED menyala)
        digitalWrite(13, HIGH);
    } else {
        digitalWrite(13, LOW);
    }
}
ANATOMI SINYAL

Perbandingan Sinyal Digital vs Analog

Bentuk Gelombang Sinyal

Mikrokontroler berkomunikasi menggunakan tegangan. Sinyal Digital (kotak) hanya memiliki dua kondisi tegas: 0V (LOW) atau 5V (HIGH). Sinyal Analog (sinus) merepresentasikan rentang nilai yang berkesinambungan (0 hingga 1023 pada Arduino).

+ Memahami bentuk sinyal ini akan menentukan pemilihan komponen sensor dan pin yang tepat.

Penerapan pada Arduino (Sintaks)

Sinyal Digital
// Menyalakan LED (ON/OFF saja)
void setup() {    pinMode(LED_BUILTIN, OUTPUT);}

void loop() {    digitalWrite(LED_BUILTIN, HIGH);}
Sinyal Analog
// Meredupkan LED berdasarkan sensor
void setup() {    // Pin Analog otomatis sebagai input}

void loop() {    int val = analogRead(A0);
    analogWrite(LED_BUILTIN, val / 4);}
INTERRUPT PATTERN

Polling vs Interrupt pada Mikrokontroler

Dalam mikrokontroler, memeriksa status tombol secara terus menerus (Polling) di dalam void loop() membuang waktu dan memblokir proses lain. Pendekatan yang lebih efisien adalah Interrupt: mikrokontroler "diinterupsi" dari tugasnya hanya ketika tombol benar-benar ditekan.

Input (Kejadian)

Tombol ditekan (tegangan berubah dari HIGH ke LOW).

Interrupt (Interupsi)

Sistem menghentikan proses sementara untuk memprioritaskan tombol.

Eksekusi (Output)

Lampu menyala secara instan tanpa jeda waktu bacaan.

Efisiensi Beban Prosesor (CPU)

Penerapan Membaca Tombol (Sintaks)

Polling (Tidak Efisien)
// Polling di dalam loop
void setup() {
    pinMode(2, INPUT_PULLUP);
    pinMode(LED_BUILTIN, OUTPUT);
}void loop() {
    // Mengecek tombol setiap saat!
    if (digitalRead(2) == LOW) {
        digitalWrite(LED_BUILTIN, HIGH);
    }
    // Jika ada delay di bawah sini,
    // penekanan tombol bisa TERLEWAT!
    delay(1000); 
}
Interrupt (Efisien)
// Menunggu Interrupt dari Hardware
void setup() {
    pinMode(2, INPUT_PULLUP);
    pinMode(LED_BUILTIN, OUTPUT);    // Daftarkan fungsi ketika tegangan TURUN
    attachInterrupt(digitalPinToInterrupt(2), tombolDitekan, FALLING);}
void loop() {    // Loop bisa mengerjakan tugas berat lain
    delay(1000);}
// Fungsi ini HANYA dipanggil SAAT tombol ditekan
void tombolDitekan() {
    digitalWrite(LED_BUILTIN, HIGH);
}
FSM RANGKAIAN

Konsep State Machine (FSM) dalam Rangkaian

Sebuah alat IoT yang stabil dibangun menggunakan pola Finite State Machine (FSM). Sistem tidak hanya bereaksi terhadap input (tombol), namun juga mempertimbangkan kondisi saat ini (State). Hal ini mencegah perilaku tak terduga seperti lampu berkedip kacau saat tombol ditahan terus menerus.

Diagram Transisi State

LED_MATI Siaga / Menunggu LED_MENYALA Aktuator Aktif LED_BERKEDIP Mode Darurat tekanTombol() lepasTombol() tahanTombol() reset()

Setiap panah merepresentasikan satu transisi yang terdefinisi dan legal dalam FSM.

Simulator Interaktif

State Aktif

LED_MATI

Sistem siaga — lampu mati.

Kirim Event dari Hardware

Log Transisi

Belum ada transisi...

3D VIEWER

Komponen Perangkat Keras (3D)

Sebelum menyentuh perangkat keras fisik, mari kita membedah anatomi komponen yang akan kita gunakan secara interaktif. Putar dan perbesar model 3D di bawah ini untuk melihat detail dari setiap komponen secara menyeluruh.

Memuat Model 3D...

Sesi Berikutnya

Ayo Kita
Bedah Perangkat

Saatnya melihat bagaimana sensor, aktuator,
dan logika berpadu di dalam mikrokontroler.

Dipandu oleh

Tim Pengajar

WICE Hardware & IoT