SIMULASI DETEKSI TINGKAT PENCAHAYAAN DAN KONDISI CUACA OTOMATIS MENGGUNAKAN ARDUINO UNO, SENSOR LDR, DAN DISPLAY DOT MATRIX MAX7219
Disusun Oleh Kelompok 5:
| Farel Rizky Aliansi | 24051204016 |
| Moch Septian Yudis | 24051204024 |
| Denny Kusuma Putra | 24051204027 |
| Brian Fawwaz Atmajaya | 24051204230 |
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pengukuran intensitas cahaya lingkungan merupakan salah satu parameter penting dalam penge mbangan sistem otomasi, perancangan rumah pintar (smart home), hingga sistem pemantauan cuaca berbasis kawasan.
Pada sistem konvensional, penentuan kondisi waktu (pagi, siang, atau malam) atau tingkat kecer ahan cuaca sering kali didasarkan pada perkiraan waktu acuan (jam) yang kurang responsif terhadap perubahan cuaca aktual secarareal-time, seperti cuaca mendung atau pergeseran pencahayaan alami. Oleh karena itu, diperlukan arsitektur perangkat keras tertanam (embedded system) yang mampu mendeteksi tingkat iluminansi lingkungan secara presisi serta menampilkan statusn ya secara visual.
Dalam era Internet of Things (IoT) dan integrasi sistem cerdas, pengolahan sinyal analog dari sensor lingkungan menjadi informasi digital merupakan prinsip dasar yang sangat krusial. Pada praktikum ini, mikrokontroler Arduino Uno dikombinasikan dengan sensorLight Dependent Resistor(LDR) sebagai modul masukan analog, serta modul display Dot Matrix MAX7219 (4-in-1) yang dikontrol menggunakan pustaka MD_Parola sebagai modul keluaran visual.
Sensor LDR memanfaatkan perubahan resistansi bahan semikonduktor berdasarkan intensitas cahaya ya ng diterimanya. Sinyal perubahan tegangan analog yang dihasilkan kemudian dikonversi oleh per iferalAnalog-to-Digital Converter(ADC) 10-bit pada mikrokontroler. Melalui kalkulasi matematis berbasis nilai konstanta Gamma (𝛾) dan resistansi acuan sensor (𝑅𝐿10), sistem dapat mengonversi nilai analog mentah menjadi satuan intensitas pencahayaan sta ndar (lux).
Hasil kalkulasi tersebut selanjutnya dikelompokkan ke dalam beberapa representasi kondisi (Mal am, Pagi, Siang, dan Siang Sangat Terang) yang ditampilkan dalam bentuk teks berjalan (scrolling text) pada layar Dot Matrix. Pembuatan laporan ini bertujuan untuk memberikan pemahaman menyeluruh mendasar t erkait pemrosesan sinyal analog, konversi logaritmik matematis, serta teknik antarmuka komunik asi serial SPI pada sistem tertanam.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah dalam laporan ini adalah:
- Bagaimana arsitektur perangkat keras (hardware architecture) dirancang dan diintegrasikan menggunakan mikrokontroler Arduino Uno, sensor LDR (pembagi tegangan), dan modul display Dot Matrix MAX7219 berbasis komunikasi SPI?
- Bagaimana mengimplementasikan algoritma konversi sinyal analog ADC 10- bit menjadi nilai resistansi dan tingkat iluminansi (lux) menggunakan perhitungan matem atis karakteristik sensor LDR?
- Bagaimana mengelola komunikasi antarmuka display visual menggunakan pustaka MD_Parola agar teks respons kondisi cuaca dapat ditampilk an secara dinamis melalui mekanismenon-blocking execution loop?
1.3 Tujuan Laporan
Tujuan dari penulisan laporan ini adalah:
- Merealisasikan dan menganalisis rancangan sirkuit perangkat keras, termasuk pemetaan p in analog (A0) dan pin digital/SPI (CS, DATA, CLK) pada mikrokontroler secara efisien.
- Mengembangkan dan menguji kode program kontrol berbasis logika bertingkat (threshol ding) untuk mengklasifikasikan intensitas cahaya (lux) ke dalam status kondisi cuaca atau waktu secara otomatis.
- Memahami secara holistik organisasi mikrokontroler dalam membaca sinyal analog, men golah algoritma konversi matematis, hingga mengirimkan data tampilan serial ke pengger ak display LED Matrix.
1.4 Manfaat Penulisan
Penulisan laporan ini diharapkan dapat memberikan pemahaman komprehensif mengenai interaksi tingkat rendah (low-level interfacing) antara sensor analog eksternal dan mikrokontroler serta pemrosesannya menjadi luaran visual. Secara teknis, praktikum ini mengasah kemampuan mahasiswa dalam menerapkan rumus pembagi tegangan dan karakteristik fisik komponen semikonduktor ke dalam logika pemrograman C/C++. Lebih jauh, sistem pemantauan tingkat pencahayaan berbasis sensor LDR dan display Dot Matrix ini dapat dijadikan modul dasar pengembangan aplikasi IoT yang lebih kompleks, seperti sistem penerangan jalan umum otomatis (Smart Street Lighting) maupun stasiun pemantau cuaca mandiri.
BAB II
TINJAUAN PUSTAKA
2.1 Dasar Teori
- Mikrokontroler dan Modul PemrosesMikrokontroler merupakan sistem komputer mikro terintegrasi yang berfungsi untuk mengendalikan rangkaian elektronik. Pada simulasi ini, perangkat utama yang digunakan adalah Arduino Uno yang memproses instruksi perangkat lunak secara sekuensial. Kode program akan dieksekusi secara berurutan untuk membaca data masukan, memproses logika, dan mengontrol perangkat keluaran.
- Pemrosesan Sinyal Analog dan Analog-to-Digital Converter (ADC)Interaksi mikrokontroler dengan dunia nyata (lingkungan) seringkali membutuhkan pembacaan parameter fisik yang sifatnya kontinu, seperti intensitas cahaya. Pembacaan ini memanfaatkan pin Analog Input (A0) yang terhubung dengan modulAnalog-to-Digital Converter(ADC). Pada Arduino Uno (ADC 10-bit), tegangan input analog dengan rentang 0-5V akan dikonversi menjadi representasi nilai digitalintegerdengan rentang 0 hingga 1023 (1024 tingkat resolusi). Nilai mentah (raw data) ini kemudian dikalkulasi secara matematis menggunakan hukum pembagi tegangan (voltage divider) dan rumus logaritmik karakteristik LDR untuk menemukan nilai iluminansi dalam satuan Lux.
- Antarmuka Serial Peripheral Interface (SPI) dan Kontrol DisplayUntuk menampilkan output visual berupa teks secara dinamis, sistem menggunakan modul Dot Matrix MAX7219. Antarmuka komunikasi antara Arduino dan modul display ini memanfaatkan protokolSerial Peripheral Interface(SPI). SPI adalah protokol komunikasi data serial sinkron berkecepatan tinggi yang menggunakan tiga jalur utama: Data (DIN/MOSI), Clock (CLK/SCK), dan Chip Select (CS/SS). Pustaka MD_Parola yang diimplementasikan pada program digunakan untuk mempermudah kontrol pergerakan teks (animasiscrolling) secara mandiri, sehingga tidak memblokir siklus utama pada perulangan program (non-blocking execution).
2.2 Komponen
Komponen yang digunakan dalam simulasi ini adalah:
| No. | Nama Perangkat / Komponen | Fungsi Utama Dalam Sistem |
|---|---|---|
| 1. | 1 Unit Board Arduino Uno | Berfungsi sebagai unit pengolah pusat (CPU) untuk mengeksekusi instruksi pembacaan sensor dan mengontrol modul keluaran display. |
| 2. | Sensor LDR (Photoresistor) | Berfungsi sebagai perangkat input/sensor pembaca intensitas cahaya yang mengubah perubahan intensitas pencahayaan menjadi perubahan resistansi (hambatan listrik). |
| 3. | Modul Dot Matrix MAX7219 (4-in-1) | sebagai aktuator visual/layar yang menampilkan hasil pemrosesan deteksi cuaca dalam bentuk teks animasi berjalan ( scrolling text ). |
| 4. | Kabel Jumper | Berfungsi sebagai media transmisi fisik konduktor untuk menghubungkan jalur data, sinyal clock, dan catu daya antar komponen (Arduino, LDR, dan Dot Matrix). |
BAB III
PEMBAHASAN
3.1 Penjelasan Simulasi
Simulasi sistem pendeteksi pencahayaan ini mengintegrasikan dua aspek, yaitu pembacaan antarmuka perangkat keras analog (hardware interfacing) dan perancangan logika perangkat lunak berbasis fungsi pustaka animasi.
A. Interkoneksi Sirkuit Perangkat Keras (Hardware Interfacing)
Langkah-langkah konfigurasi fisik sirkuit adalah sebagai berikut:
- Menghubungkan Sensor LDR ke pin Analog input A0 pada board Arduino untuk membaca perubahan nilai resistansi.
- Menghubungkan modul Dot Matrix MAX7219 melalui protokol komunikasi SPI dengan konfigurasi: pin CS ke pin digital 10, pin DATA ke pin digital 11, dan pin CLK ke pin digital 13 pada Arduino.
- Menghubungkan terminal pasokan daya (VCC/5V) dan referensi tanah (GND) dari board Arduino ke setiap periferal sensor dan modul display agar perangkat keras dapat beroperasi.
B. Arsitektur Logika Perangkat Lunak (Software Architecture)
Program diimplementasikan menggunakan pendekatan operasional thresholding untuk mengklasifikasi status cuaca. Berikut alur eksekusinya:
- Direktif Pra-Pemroses dan Inisialisasi Pustaka: Mengimpor modul <SPI.h> dan mengatur objek utama Display dari pustaka MD_Parola. Proses ini memetakan pin konfigurasi perangkat keras tipe PAROLA_HW pada alamat memori pin CS, DATA, dan CLK yang telah ditentukan. Variabel konstanta Gamma (GAMMA = 0.7) dan resistansi dasar (RL10 = 50) dideklarasikan sebagai basis kalkulasi Lux.
- Blok Konfigurasi Sistem (void setup()): Blok inisialisasi awal. Mengatur pin sensor LDR sebagai INPUT. Modul display diinisialisasi (Display.begin()), kecerahannya diatur ke nol (Display.setIntensity(0)), dan dibersihkan dari sisa memori tampilan (Display.displayClear()). Kemudian teks pembuka "Pendeteksi Cuaca SIAP 111" diinstruksikan untuk berjalan dari kanan ke kiri. Saluran komunikasi Serial juga dibuka pada baud rate 9600 untuk mode debugging .
- Siklus Pemrosesan Data Sensor dan Kalkulasi Lux: Di dalam blok siklus berulang tak terbatas (void loop()), instruksi pertama Display.displayAnimate() dipanggil untuk menjaga kontinuitas animasi teks. Modul ADC membaca tegangan analog (analogRead) menjadi nilai resolusi 0-1023. Nilai resolusi diubah ke tegangan aktual (V), dilanjutkan pencarian hambatan aktual LDR (Ohm), sebelum kemudian dikalkulasi secara logaritmik menggunakan variabel GAMMA dan RL10 untuk mendapatkan satuan baku intensitas cahaya (Lux).
- Kontrol Logika Bertingkat (Thresholding): Setelah nilai Lux didapatkan, sistem menjalankan operasi percabangan bersyarat (if-else).
- Jika Lux < 10, sistem akan menetapkan kondisi "Malam" dan menyiapkan teks "Selamat malam !".
- Jika Lux < 1000, ditetapkan kondisi "Pagi" dan disiapkan teks "Selamat Pagi !".
- Jika Lux <= 10000, ditetapkan kondisi "Siang" dan disiapkan teks "Selamat Siang !".
- Di atas parameter tersebut, sistem mendeteksi kondisi "Siang Sangat Terang" dan menyiapkan teks "Hari yang sangat cerah !".
- Pembaruan Status dan Eksekusi Loop: Sistem akan mengirim data mentah (analog) dan kalkulasi Lux melalui Serial Monitor . Nilai tampilan (teks) yang baru diatur sebelumnya akan diulang/direset menggunakan fungsi Display.displayReset() setelah delay pembacaan 500 ms agar perubahan teks dapat dieksekusi oleh modul layar.
3.2 Program
Berikut adalah kode program lengkap yang digunakan dalam proyek implementasi sistem IoT ini:
Kode Program
#include <SPI.h> #include <MD_Parola.h>
#include <MD_MAX72xx.h>
// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
// Defining size, and output pins #define MAX_DEVICES 4
#define CS_PIN 10
#define DATA_PIN 11
#define CLK_PIN 13 #define LDR_PIN A0
MD_Parola Display = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
const float GAMMA = 0.7; const float RL10 = 50;
void setup() { pinMode(LDR_PIN, INPUT);
// Initialize the object:
Display.begin();
// Set the intensity (brightness) of the display (0-15): Display.setIntensity(0);
// Clear the display:
Display.displayClear();
Display.displayText("Pendeteksi Cuaca SIAP 111", PA_CENTER, 70, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
Serial.begin(9600);
}
void loop() {
if (Display.displayAnimate()) {
// Mendeklarasikan nilai analog ke dalam variabel light int light = analogRead(LDR_PIN);
// Volt / tegangan (Disesuaikan untuk Arduino Uno 10-bit ADC 5V) float voltage = light / 1024.0 * 5.0;BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan hasil simulasi dan pengujian sistem yang telah dilakukan, dapat disimpulkan bahwa arsitektur perangkat keras mikrokontroler Arduino Uno berhasil diintegrasikan secara baik dengan sensor LDR dan modul display Dot Matrix MAX7219. Sistem mampu secara kontinu membaca perubahan nilai hambatan analog (berbasis pembagi tegangan) melalui periferal ADC 10-bit, lalu mengonversinya menjadi besaran intensitas cahaya standar (lux) menggunakan perhitungan logaritmik yang presisi. Pendekatan kontrol logika bertingkat ( thresholding logic ) pada perangkat lunak terbukti efektif dalam mengklasifikasikan kondisi cuaca atau waktu (Malam, Pagi, Siang, Siang Sangat Terang) berdasarkan nilai lux tersebut. Selain itu, pemanfaatan protokol komunikasi Serial Peripheral Interface (SPI) yang dipadukan dengan pustaka MD_Parola memungkinkan sistem menampilkan data klasifikasi secara dinamis melalui animasi teks berjalan ( scrolling text ) pada layar Dot Matrix tanpa mengganggu ( non-blocking ) siklus utama pembacaan sensor.
4.2 Saran
Untuk optimalisasi dan pengembangan sistem pemantauan di masa mendatang, terdapat beberapa saran yang dapat dipertimbangkan:
- Integrasi Modul Waktu Nyata (RTC): Penambahan modul Real-Time Clock (seperti DS3231) sangat disarankan agar sistem tidak hanya bergantung pada intensitas cahaya, tetapi juga memiliki validasi waktu aktual (jam dan menit) guna meminimalisasi kesalahan deteksi cuaca saat terjadi anomali cahaya (misalnya, mendung gelap di siang hari). alone ). Disarankan untuk mengganti atau mengombinasikan board Arduino Uno dengan mikrokontroler yang memiliki modul Wi-Fi bawaan (seperti NodeMCU ESP8266 atau ESP32), sehingga data intensitas pencahayaan lingkungan dapat dikirimkan dan dipantau dari jarak jauh secara real-time melalui dashboard cloud IoT (misalnya, Blynk atau Thingspeak).
- Optimalisasi Delay: Untuk menjaga responsivitas tingkat tinggi pada sistem tertanam, penggunaan fungsi delay() konvensional dapat diganti dengan metode pewaktuan asinkron menggunakan fungsi millis(), sehingga proses animasi display dan pembacaan sensor dapat berjalan secara paralel dan lebih halus.
DAFTAR PUSTAKA
Arduino. (2023). Arduino Uno Rev3 Datasheet and Reference . Diakses dari dokumentasi resmi Arduino.
Banzi, M., & Shiloh, M. (2022). Getting Started with Arduino: The Open Source Electronics Prototyping Platform (4th ed.). Maker Media, Inc.
Majumdar, R. (2021). Sensor Technology and Internet of Things . Springer. (Referensi umum mengenai konversi parameter analog lingkungan ke sistem digital).
Monk, S. (2016). Programming Arduino: Getting Started with Sketches (2nd ed.). McGraw-Hill Education. (Panduan fundamental pengkodean C/C++ pada lingkungan Arduino).
Susanto, A., dkk. (2024). "Implementasi Sistem Pemantauan Cuaca Lingkungan Berbasis Mikrokontroler dan Modul Tampilan Digital". Jurnal Rekayasa Elektro dan IoT , 12(1).
LAMPIRAN
Link Vidio :
https://drive.google.com/file/d/1e9qn6G3imnN-d70TRIvwu7nlbMtrggFI/view?usp=drive_link
Tidak ada komentar:
Posting Komentar