Konstruksi Fitur & Optimalisasi

Menambahkan fitur keamanan PIR, mengoptimalkan memori Arduino, dan melakukan pengujian sistem akhir (End-to-End).

90 Menit
Modul 5 & 6: PjBL Utama — Smart Agriculture System
Pertemuan 15

TPTujuan Pembelajaran

  1. Peserta didik dapat menambahkan fitur-fitur lanjutan pada Smart Agriculture System
  2. Peserta didik dapat mengoptimalkan penggunaan memori dan kecepatan eksekusi
  3. Peserta didik dapat melakukan pengujian end-to-end pada sistem lengkap
  4. Peserta didik dapat mendokumentasikan sistem dengan komentar kode yang baik

Fitur Lanjutan: Keamanan dengan PIR

Sistem irigasi dan kontrol suhu kita sudah berjalan. Sekarang, kita akan menambahkan sistem keamanan menggunakan sensor PIR. Kebun atau greenhouse harus aman dari tamu tak diundang!

Kita akan menambahkan logika: jika malam hari (sensor cahaya LDR mendeteksi gelap) DAN ada pergerakan (PIR mendeteksi orang), maka sirine (Buzzer) akan menyala, dan LCD akan menampilkan "PERINGATAN PENYUSUP!".

PIR_Security_Addon.ino
cpp
// Tambahkan di dalam fungsi kontrolAktuator() atau buat fungsi baru cekKeamanan()
void cekKeamanan() {
  bool adaGerakan = digitalRead(PIR_PIN);
  
  // Jika cahaya redup (malam) DAN ada gerakan
  if (cahaya < CAHAYA_REDUP && adaGerakan) {
    tone(BUZZER_PIN, 2000); // Bunyi alarm frekuensi tinggi
    // Timpa layar LCD sementara
    lcd.setCursor(0,0);
    lcd.print(" ALARM PENYUSUP ");
    lcd.setCursor(0,1);
    lcd.print(" AWAS ADA ORANG ");
  } else {
    // Matikan alarm jika tidak ada pemicu (dan suhu normal)
    if (suhu <= SUHU_MAX) {
      noTone(BUZZER_PIN);
    }
  }
}

Optimalisasi Memori Arduino

Saat program semakin besar, memori SRAM Arduino (yang hanya 2KB di Uno) bisa penuh. Jika SRAM penuh, program akan error acak atau sering ter-restart (crash).

Tips Optimasi Lainnya:

  • Gunakan tipe data yang tepat. Jangan pakai long atau float jika nilainya hanya 0 - 255. Gunakan byte (menghemat memori).
  • Hapus variabel global yang tidak terpakai.
  • Ubah status variabel `int` yang hanya bernilai 1 atau 0 menjadi `bool`.

Pengujian End-to-End (E2E)

Sistem harus diuji secara menyeluruh seolah-olah dipasang di kebun aslinya.

Dokumentasi dan Komentar Kode

"Kode yang baik mendokumentasikan dirinya sendiri". Pastikan anggota tim programmer merapikan komentar di kode sumber.

Beri header di paling atas file Arduino kalian seperti ini:

Header.ino
cpp
/*
 * ==========================================
 * PROYEK AKHIR PjBL: SMART AGRICULTURE SYSTEM
 * KELOMPOK 1: 
 * - Budi (Hardware)
 * - Andi (Software)
 * - Siti (QA/Testing)
 * Versi: 1.0 | Tanggal: 12 Desember 2024
 * ==========================================
 */

Finalisasi & Latihan

Apa manfaat utama menggunakan macro F() pada perintah pencetakan teks seperti Serial.print(F('Hello'))?

Sedang

Aktivitas Tim: Rapikan & Stabilkan!

  1. Terapkan fitur PIR ke dalam kode utama kalian.
  2. Optimalkan variabel dan gunakan F() pada semua tulisan Serial.print.
  3. Lakukan Checklist E2E Testing. Pastikan semua kotak tercentang!
  4. Rapikan kabel-kabel di project board / alat. Gunakan solasi, cable ties, agar siap dipamerkan di pertemuan selanjutnya.
Kesimpulan Pertemuan 15
  • Integrasi sistem keamanan (PIR + LDR) menambah kompleksitas sistem, pastikan logika AND/OR benar.
  • Memori SRAM harus dijaga agar tidak penuh untuk menghindari sistem crash (gunakan F() macro).
  • End-to-End testing adalah simulasi dunia nyata untuk memastikan sistem berjalan sesuai skenario awal.
  • Dokumentasi kode memudahkan pembacaan program oleh orang lain di masa depan.

RRefleksi Finalisasi

Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.

Kejutan & Penemuan

Apa yang paling mengejutkan atau menarik hari ini?

Apakah ada bug tersembunyi yang baru ketahuan saat melakukan End-to-End testing hari ini?

Masih Membingungkan

Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?

Apakah ada sensor yang masih sering memberikan data pembacaan 'palsu' (noise)?

Rencana Selanjutnya

Apa yang ingin kamu coba atau pelajari minggu depan?

Bagaimana tim kalian memastikan karya akan aman saat dibawa pulang/disimpan untuk pameran minggu depan?

Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.