NIM : 2110951004

.

Cover

Ini merupakan cover blog mata kuliah elektronika

Spesifikasi Unit Op-Amp

Klik gambar slide untuk melihat pembahasan materi spesifikasi unit op-amp

Aplikasi Comparator Inverting dengan Vref=0

Slide ini merupakan halaman pembahasan rangkaian pengaplikasian dan penjelasan dari materi comparator inverting dengan Vref=0

Aplikasi Triangle Generator

Slide ini merupakan halaman pembahasan pengaplikasian dan penjelasan dari materi triangle generator

Aplikasi Filter BPF

Slide ini merupakan halaman pembahasan pengaplikasian dan penjelasan dari materi filter BPF

Jumat, 12 Juli 2024

Modul 4 Prak UpUc




MODUL 4

Smart Office Berbasis Arduino untuk Pengamanan Dokumen Penting


1. Pendahuluan
[Kembali]
         
        Di era digital ini, dokumen penting seperti file elektronik, surat-surat penting, dan kontrak bisnis menjadi semakin rentan terhadap pencurian, kerusakan, dan kehilangan. Hal ini dapat menyebabkan kerugian finansial dan reputasi yang signifikan bagi perusahaan atau organisasi. 
        Kasus pencurian dan kerusakan dokumen penting di kantor semakin marak terjadi. Kebutuhan akan solusi keamanan yang efektif dan hemat biaya menjadi semakin mendesak. Platform Arduino hadir sebagai solusi inovatif dengan kemudahan penggunaan dan ketersediaan yang luas. Kemampuan Arduino untuk berintegrasi dengan berbagai sensor dan aktuator menjadikannya pilihan ideal untuk membangun sistem keamanan yang terkoneksi dan terotomatisasi.
        Prototype Smart Office Berbasis Arduino untuk Pengamanan Dokumen Penting adalah solusi inovatif dan hemat biaya yang dapat membantu meningkatkan keamanan dokumen penting di ruang kantor pribadi. Prototype ini mudah digunakan, serbaguna, dan dapat disesuaikan dengan kebutuhan spesifik pengguna.

2. Tujuan [Kembali]
1Untuk mengetahui pemakaian mikroprosesor dan mikrokontroler pada prototype yang dibuat.
2. Untuk menghasilkan alat yang dapat berkerja secara otomatis berbasis mikroprosesor dan mikrokontroler
 
3. Alat dan Bahan [Kembali] 
      Alat
            1. Solder
            2. Arduino Uno



        Bahan

            1. Resistor
            Komponen Input
            
            1. Sensor PIR
                    Spesifikasi :


            2. Flame Sensor
                    Spesifikasi:
                                    Operating Voltage          : 3.3V to 5.5V.
                                    Infrared Wavelength Detection  : 760 nm to 1100 nm.
                                    Sensor Detection Angle          : 60°.
                                    Board Dimensions          : 1.5cm x 3.6cm [0.6in x 1.4in]. 

            3. Sensor DHT11
                    Spesifikasi:
                                    Tegangan input           : 3,5 – 5 VDC
                                    Sistem komunikasi      : Serial (single – Wire Two way)
                                    Range suhu                 : 00C – 500C
                                    Range kelembaban     : 20% – 90% RH

            4. Sensor LDR
                    Spesifikasi:
                                    Tegangan maksimum (DC) : 150 V
                                    Konsumsi Arus Maksimum : 100 mW
                                    Tingkatan Resistansi / Tahanan : 10 Ohm hingga 100k Ohm
                                    Puncak Spektral : 540 nm (ukuran gelombang cahaya)
                                    Waktu Respon Sensor : 20ms – 30 ms
                                    Suhu Operasi : -30 Celcius  – 70 Celcius



            5. Sensor RFID
                    Spesifikasi:
                                    Arus dan tegangan operasional  : 13-26mA/DC 3.3V
                                    Tipe kartu Tag yang didukung  : mifare1 S50, MIFARE DESFire, mifare Pro
                                    Idle current  :10-13mA/DC 3.3V
                                    Peak current : 30mA
                                    Sleep current         : 80uA
                                    Menggunakan Antarmuka SPI
                                    Kecepatan transfer rate data  : maximum 10Mbit/s
                                    Frekuensi kerja          : 13.56MHz




            Komponen Output
            
            1. Motor Servo
                    Spesifikasi :


     

            2. Buzzer

                                Spesifikasi:
                                        Nilai Tegangan: 6V DC
Tegangan Operasi: 4 hingga 8V DC
Nilai Saat Ini* : ≤30mA
Output Suara pada 10cm* : ≥85dB
Frekuensi Resonansi : 2300 ±300Hz
Nada : Berkelanjutan
Suhu Pengoperasian: -25°C hingga +80°C
Suhu Penyimpanan : -30°C hingga +85°C
Berat: 2g
*Nilai diterapkan pada tegangan pengenal (DC)

            3. LCD 16x2
  Spesifikasi :
    • Tegangan operasi LCD ini adalah 4.7V-5.3V
    • Ini mencakup dua baris di mana setiap baris dapat menghasilkan 16 karakter.
    • Pemanfaatan arus adalah 1mA tanpa lampu latar
    • Setiap karakter dapat dibangun dengan kotak 5×8 piksel
    • Alfanumerik LCD alfabet & angka
    • Apakah tampilan dapat bekerja pada dua mode seperti 4-bit & 8-bit
    • Ini dapat diperoleh dalam Lampu Latar Biru & Hijau
    • Ini menampilkan beberapa karakter yang dibuat khusus
            4. LED
                                Spesifikasi:


        5. Push Button
              Spesifikasi :
        
                * Model : (3A/125VAC 1.5A/250VAC)
                * Type : On / Off Button
                * Installation port diameter : 12MM
                * Height : 29.8MM
                * Bipedal spacing : 6.25MM
                * Foot width : 0.2MM thick: 0.6MM
                * Locking : press the button once to power on, and then press the button again to power off

4. Dasar Teori [Kembali] 
 1. Pulse Width modulation (PWM)
Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam suatu perioda, untuk mendapatkan tegangan rata-rata yang berbeda. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).

 

Gambar 1. Duty Cycle

            Duty Cycle = tON / ttotal

 

·       ton = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (highatau 1)

·        toff= Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah(low atau 0)

·       ttotal= Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut  juga dengan “periode satu gelombang”.


Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut  merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite(); PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.

Gambar 2. Siklus Sinyal PWM pada Arduino


2. Komunikasi

            a.     Komunikasi UART

Pada project yang kami buat, kami menggunakan komunikasi UART untuk 2 arduino. Komunikasi UART adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

Cara kerja komunikasi UART :



 

                Gambar 3. Cara kerja komunikasi UART


        Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data bus penerima.

b.     Komunikasi SPI

Komunikasi SPI untuk arduiono dengan sensor RFID yang kami gunakan. Komunikasi secara Serial Peripheral Interface (SPI). SPI merupakan komunikasi serial full-duplex, yang memungkinkan komunikasi dua arah antara master dan slave secara simultan. Dalam penerapannya, SPI banyak digunakan pada komunikasi antarperagkat, seperti EEPROM, ADC, DAC, sensor dan aktuator lainnya.

Cara kerja komunikasi SPI :

           Sinyal clock dialirkan master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang dikirimkan data melalui slave select, kemudian data dirikimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.

Gambar 4. Cara kerja komunikasi SPI



      3Analog to Digital Converter (ADC)

ADC adalah suatu metode untuk konversi sinyal analog menjadi sinyal digital. Biasanya sinyal analog yang dikonversi berupa tegangan (Volt) dan dirubah menjadi sinyal digital seperti kode biner 0 dan 1.

ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.  

Rangkaian ADC memiliki dua karakter prinsip, yaitu kecepatan sampling dan resolusi. Kecepatan sampling suatu ADC menyatakan seberapa sering sinyal analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu yang dinyatakan dalam sample per second (SPS). Sedangkan resolusi suatu ADC menentukan ketelitian nilai hasil konversi yang berhubungan dengan jumlah bit yang dimilikinya. Sehingga semakin besar jumlah bit suatu ADC makan akan memberikan ketelitian nilai hasil konversi yang lebih baik. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Arduino Uno mempunyai 6 pin input analog yang berlabel A0 sampai A5 dimana masing-masing pin tersebut memberikan 10 bit resolusi.      

    4.      Mikrokontroller

Mikrokontroler adalah sebuah system microprocessor dimana didalamnya sudah terdapat CPU, ROM, RAM, I/O, Clock dan peralatan internal lainnya yang sudah saling terhubung dan terorganisasi (teralamati), dikemas dalam satu chip yang siap pakai. Seperti umumnya komputer, mikrokontroler sebagai alat yang mengerjakan perintah-perintah yang diberikan kepadanya.

Pada mikrokontroller seorang programmer dapat memasukkan program ke dalam mikrokontroler sehingga berfungsi sesuai dengan yang diinginkan oleh pengguna. Artinya, bagian terpenting dan utama dari suatu sistem komputerisasi adalah  program itu sendiri yang dibuat oleh seorang programmer. Program ini memerintahkan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer. Salah satu kelebihan mikrokontroler adalah kesederhanaan dan ukurannya yang relatif kecil.

    

                                       

Gambar 5. Prinsip kerja mikrokontroller


Gambar 6. Struktur dan diagram blok Mikrokontroler

Berikut ini merupakan struktur dan diagram blok mikrokontroler beserta penjelasan tentang bagian-bagian utamanya :

 
a.      CPU
CPU merupakan otak dari mikrokontroler. CPU bertanggung jawab untuk mengolah data dan eksekusi perintah yang masuk.
 
b.        Serial Port (Port Serial)
Serial port menyediakan berbagai antarmuka serial antara mikrokontroler dan periferal lain seperti port paralel.
 
c.         Memori (Penyimpanan)
Memori ini bertugas untuk menyimpan data. Data tersebut merupakan data yang sudah diolah (output) atau data yang belum diolah (input). memori yang umum dipakai adalah Random Access Memory (RAM) dan Read Only Mmemory (ROM).Penyimpanan ini berupa RAM dan ROM. ROM digunakan untuk menyimpan data dalam jangka waktu yang lama. Sedangkan RAM digunakan untuk menyimpan data sementara selama program berjalan sampai akhirnya dipindahkan ke ROM.
d.        Port Input/Output Paralel
Port input/output paralel digunakan untuk mendorong atau menghubungkan berbagai perangkat. Kegunaan komponen ini adalah menerima input dari perangkat eksternal dan mengirimkannya ke perangkat pemroses. Nantinya hasil pengolahan data akan dikirimkan output ke perangkat eksternal.
 
e.         ADC (Analog to Digital Converter)
Konverter ADC (Analog to Digital Converter) digunakan untuk mengubah sinyal analog ke bentuk digital. Sinyal input dalam konverter ini harus dalam bentuk analog (misalnya output dari sensor) sedangkan outputnya dalam bentuk digital.
 
f.         DAC (Digital to Analog Converter)
DAC (Digital to Analog Converter) melakukan operasi pembalikan konversi ADC (Analog to Digital Converter). DAC mengubah sinyal digital menjadi format analog. DAC ini biasanya digunakan untuk mengendalikan perangkat analog seperti motor DC dan lain sebagainya.
 
g.        Interrupt Control (Kontrol Interupsi)
Interrupt Control (Kontrol Interupsi) bertugas untuk mengendalikan penundaan terhadap pemrograman mikrokontroler. Bagianinterrupt control (kontrol interupsi) ini dapat dioperasikan secara internal ataupun eksternal.
 
h.        Special Functioning Block (Blok Fungsi Khusus)
            Special functioning block merupakan bagian tambahan yang dibuat mempunyai fungsi khusus. Biasanya blok ini ditemukan pada arsitektur mikrokontroler di mesin robotika. Tidak semua perangkat menggunakan bagian ini.
 
i.          Timer and Counter (Pengatur Waktu dan Penghitung) 

           Timer/counter ini digunakan untuk mengukur waktu dan alat penghitungan. RTC memiliki tugas untuk menyimpan waktu dan tanggal saat proses dilakukan. 

 

      5.      Baterai 

Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. Hampir semua perangkat elektronik yang portabel seperti Handphone, Laptop, Senter, ataupun Remote Control menggunakan Baterai sebagai sumber listriknya. Dalam kehidupan kita sehari-hari, kita dapat menemui dua jenis Baterai yaitu Baterai yang hanya dapat dipakai sekali saja (Single Use) dan Baterai yang dapat di isi ulang (Rechargeable).

                 1. Baterai Primer (Baterai Sekali Pakai/Single Use)

            Baterai Primer atau Baterai sekali pakai ini merupakan baterai yang paling sering ditemukan di pasaran, hampir semua toko dan supermarket menjualnya. Hal ini dikarenakan penggunaannya yang luas dengan harga yang lebih terjangkau. Baterai jenis ini pada umumnya memberikan tegangan 1,5 Volt dan terdiri dari berbagai jenis ukuran seperti AAA (sangat kecil), AA (kecil) dan C (medium) dan D (besar). Disamping itu, terdapat juga Baterai Primer (sekali pakai) yang berbentuk kotak dengan tegangan 6 Volt ataupun 9 Volt. 

                 2. Baterai Sekunder (Baterai Isi Ulang/Rechargeable)

                Baterai Sekunder adalah jenis baterai yang dapat di isi ulang atau Rechargeable Battery. Pada prinsipnya, cara Baterai Sekunder menghasilkan arus listrik adalah sama dengan Baterai Primer. Hanya saja, Reaksi Kimia pada Baterai Sekunder ini dapat berbalik (Reversible). Pada saat Baterai digunakan dengan menghubungkan beban pada terminal Baterai (discharge), Elektron akan mengalir dari Negatif ke Positif. Sedangkan pada saat Sumber Energi Luar (Charger) dihubungkan ke Baterai Sekunder, elektron akan mengalir dari Positif ke Negatif sehingga terjadi pengisian muatan pada baterai. Jenis-jenis Baterai yang dapat di isi ulang (rechargeable Battery) yang sering kita temukan antara lain seperti Baterai Ni-cd (Nickel-Cadmium), Ni-MH (Nickel-Metal Hydride) dan Li-Ion (Lithium-Ion).


      6.      Resistor 

            Resistor merupakan komponen elektronika dasar yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian.Sesuai dengan namanya, resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Resistor memiliki simbol seperti gambar dibawah ini :


Simbol Resistor

    Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan Hukum OHM :

 


Dimana V adalah tegangan,  I adalah kuat arus, dan R adalah Hambatan.

 

Di dalam resistor, terdapat ketentuan untuk membaca nilai resistor yang diwakili dengan kode warna dengan ketentuan di bawah ini :






Sebagian besar resistor yang kita lihat memiliki empat pita berwarna . Oleh karena itu ada cara membacanya seperti ketentuan dibawah ini :
1. Dua pita pertama dan kedua menentukan nilai dari resistansi
2. Pita ketiga menentukan faktor pengali, yang akan memberikan nilai resistansi.
3. Dan terakhir, pita keempat menentukan nilai toleransi.
 
Rumus Resistor:
Seri : Rtotal = R1 + R2 + R3 + ….. + Rn
Dimana :
Rtotal = Total Nilai Resistor
R1 = Resistor ke-1
R2 = Resistor ke-2
R3 = Resistor ke-3
Rn = Resistor ke-n
Paralel: 1/Rtotal = 1/R1 + 1/R2 + 1/R3 + ….. + 1/Rn
Dimana :
Rtotal = Total Nilai Resistor
R1 = Resistor ke-1
R2 = Resistor ke-2
R3 = Resistor ke-3

Rn = Resistor ke-n

      7.      Sensor PIR

Gambar 9. Sensor PIR 

        Sensor PIR (Passive Infrared Sensor) adalah perangkat elektronik yang mendeteksi gerakan dengan menangkap radiasi inframerah (IR) yang dipancarkan oleh benda hangat. Benda hangat, seperti manusia dan hewan, memancarkan radiasi IR dalam jumlah kecil. Sensor PIR mendeteksi perubahan radiasi IR ini dan menghasilkan sinyal listrik yang menunjukkan adanya gerakan.

            Cara Kerja Sensor PIR

Sensor Pyroelektrik: Sensor PIR terdiri dari dua elemen utama: lensa Fresnel dan sensor pyroelektrik. Lensa Fresnel memfokuskan radiasi IR ke sensor pyroelektrik. Sensor pyroelektrik terbuat dari bahan kristal yang menghasilkan tegangan listrik ketika terkena perubahan suhu.
Deteksi Gerakan: Ketika benda hangat bergerak di depan sensor, radiasi IR-nya akan menyebabkan perubahan suhu pada sensor pyroelektrik. Perubahan ini menghasilkan tegangan listrik, yang memicu sinyal keluaran.
Zona Deteksi: Sensor PIR memiliki zona deteksi berbentuk kerucut dengan jangkauan tipikal 5-10 meter. Sudut deteksi horizontalnya berkisar antara 90-180 derajat, tergantung model sensor.
Adapun spesifikasi dari sensor PIR, sebagai berikut :
Tegangan                   : 5V - 20V
Konsumsi Daya         : 65mA
Output TTL               : 3.3V, 0V
Waktu Tunda            : Dapat Diatur (0.3 - 5 menit)
Waktu Kunci             : 0.2 detik
 
Metode Pemicu:
L - Nonaktifkan Pemicu Ulang
H - Aktifkan Pemicu Ulang Jangkauan Penginderaan: Kurang dari 120 derajat, dalam jarak 7 meter Suhu: -15°C - 70°C Dimensi: 32mm x 24mm, jarak antar sekrup 28mm, M2, diameter lensa 23mm.

Grafik respon sensor PIR :



Gambar 10. Respon terhadap arah, jarak, dan kecepatan.


Gambar 11. Respon terhadap suhu.

      8.      Sensor Flame

        Sensor Flame (Flame Sensor) adalah perangkat elektronik yang mendeteksi keberadaan api dengan mendeteksi ahaya yang dipancarkannya. Api menghasilkan ahaya dalam spektrum inframerah (IR) dan ultraviolet (UV) yang tidak terlihat oleh mata manusia. Sensor Flame menggunakan fotodioda atau tabung photomultiplier untuk menangkap ahaya IR dan UV ini dan menghasilkan sinyal ahaya yang menunjukkan adanya api.
 


Cara Kerja Sensor Flame
Detektor Cahaya:


    • Sensor Flame: Sensor Flame terdiri dari satu atau dua fotodioda dan tabung photomultiplier. Fotodioda menghasilkan arus sinyal kecil ketika terkena cahaya, sedangkan tabung photomultiplier menghasilkan sinyal cahaya yang lebih kuat.

Filter Cahaya:

    • Sensor Flame: Sensor Flame memiliki filter cahaya yang memblokir cahaya tampak dan hanya memungkinkan cahaya inframerah (IR) dan ultraviolet (UV) melewatinya. Hal ini membantu mengurangi gangguan dari sumber cahaya lain, seperti matahari atau lampu.

Pemrosesan Sinyal:

    • Sinyal cahaya: Sinyal cahaya dari sensor Flame diproses oleh sirkuit elektronik untuk menentukan apakah sinyal tersebut menunjukkan adanya api.

Output Sinyal:

    • Sensor Flame: Sensor Flame menghasilkan sinyal output digital (HIGH/LOW) atau analog yang menunjukkan adanya api.

Adapun spesifikasi dari sensor flame, sebagai berikut :

Operating Voltage                            : 3.3V to 5.5V

Infrared Wavelength Detection       : 760 nm to 1100 nm.

Sensor Detection Angle                    : 60°.

Board Dimensions                             : 1.5cm x 3.6cm [0.6in x 1.4in].

Gambar 13. Grafik respon sensor flame


      9.      Sensor DHT11

Gambar 14. Sensor DHT11


    Sensor DHT11 (Digital Humidity and Temperature Sensor) adalah perangkat elektronik yang mengukur suhu dan kelembaban udara. Sensor ini terdiri dari dua komponen utama : sensor suhu dan kelembaban dan mikrokontroler. Sensor suhu dan kelembaban mendeteksi perubahan suhu dan kelembaban udara, sedangkan mikrokontroler mengubah data ini menjadi sinyal digital yang dapat dibaca oleh perangkat lain.
Cara Kerja Sensor DHT11
    1. Pengukuran Suhu : Sensor DHT11 menggunakan termistor untuk mengukur suhu. Termistor adalah resistor yang hambatannya berubah dengan suhu. Ketika suhu udara berubah, hambatan termistor juga berubah. Mikrokontroler mengukur perubahan hambatan ini dan menghitung suhu udara.
    2. Pengukuran Kelembaban : Sensor DHT11 menggunakan sensor kapasitif untuk mengukur kelembaban udara.Sensor kapasitif ini terdiri dari dua pelat konduktif yang dipisahkan oleh lapisan tipis bahan dielektrik. Ketika kelembaban udara berubah, konstanta dielektrik bahan berubah. Mikrokontroler mengukur perubahan konstanta dielektrik ini dan menghitung kelembaban udara.
    3. Komunikasi Digital : Sensor DHT11 menggunakan protokol komunikasi bus tunggal untuk berkomunikasi dengan perangkat lain. Mikrokontroler pada sensor DHT11 mengemas data suhu dan kelembaban ke dalam paket data digital dan mengirimkannya ke perangkat lain melalui pin data.
Adapun spesifikasi dari sensor DHT11, sebagai berikut :
·  Tegangan input           : 3,5 – 5 VDC
·  Sistem komunikasi      : Serial (single – Wire Two way)
·  Range suhu                 : 00C – 500C
·  Range kelembaban     : 20% – 90% RH
·  Akurasi                        : ±20C (temperature) ±5% RH (humidity)


Gambar 15. Grafik Respon Sensor DHT

      10.      Sensor LDR 

Gambar 16. Gambar Sensor LDR

            LDR (Light Dependent Resistor) merupakan salah satu komponen resistor yang nilai resistansinya akan berubah-ubah sesuai dengan intensitas cahaya yang mengenai sensor ini. LDR juga dapat digunakan sebagai sensor cahaya. Perlu diketahui bahwa nilai resistansi dari sensor ini sangat bergantung pada intensitas cahaya. Semakin banyak cahaya yang mengenainya, maka akan semakin menurun nilai resistansinya. Sebaliknya jika semakin sedikit cahaya yang mengenai sensor (gelap), maka nilai hambatannya akan menjadi semakin besar sehingga arus listrik yang mengalir akan terhambat.
Beberapa karakteristik yang terdapat pada sensor LDR antara lain adalah :
·       Tegangan maksimum (DC) : 150 V
·       Konsumsi Arus Maksimum : 100 mW
·       Tingkatan Resistansi / Tahanan : 10 Ohm hingga 100k Ohm
·       Puncak Spektral : 540 nm (ukuran gelombang cahaya)
·       Waktu Respon Sensor : 20ms  30 ms
·       Suhu Operasi : -30 Celcius  – 70 Celcius

 

LDR berfungsi sebagai sebuah sensor cahaya dalam berbagai macam rangkaian elektronika seperti saklar otomatis berdasarkan cahaya yang jika sensor terkena cahaya maka arus listrik akan mengalir(ON) dan sebaliknya jika sensor dalam kondisi minim cahaya(gelap) maka aliran listrik akan terhambat(OFF). LDR juga sering digunakan sebagai sensor lampu penerang jalan otomatis, lampu kamar tidur, alarm, rangkaian anti maling otomatis menggunakan laser, sutter kamera otomatis, dan masih banyak lagi yang lainnya. Prinsip kerja LDR sangat sederhana tak jauh berbeda dengan variable resistor pada umumnya. LDR dipasang pada berbagai macam rangkaian elektronika dan dapat memutus dan menyambungkan aliran listrik berdasarkan cahaya. Semakin banyak cahaya yang mengenai LDR maka nilai resistansinya akan menurun, dan sebaliknya semakin sedikit cahaya yang mengenai LDR maka nilai hambatannya akan semakin  membesar.


Gambar 17. Grafik Respon Sensor     

                     

      11.      Sensor RFID

Gambar 18. Sensor RFID 

            Sensor RFID (Radio Frequency Identification) adalah perangkat elektronik yang membaca dan menulis data pada tag RFID (Radio Frequency Identification Tag) tanpa kontak fisik. Tag RFID adalah label kecil yang berisi chip dan antena.Chip menyimpan data, sedangkan antena digunakan untuk berkomunikasi dengan reader RFID.

Cara Kerja Sensor RFID

    1. Tag RFID: Tag RFID terdiri dari dua komponen utama: chip dan antena. Chip menyimpan data, seperti nomor ID,tanggal, dan informasi lainnya. Antena digunakan untuk mengirim dan menerima sinyal radio ke dan dari reader RFID.
    2. Reader RFID: Reader RFID adalah perangkat elektronik yang memancarkan gelombang radio dan menerima sinyal dari tag RFID. Ketika tag RFID berada dalam jangkauan reader, antena tag RFID akan terisi daya oleh gelombang radio dari reader. Chip tag RFID kemudian akan mengirimkan data yang disimpannya ke reader melalui antena.
    3. Komunikasi Nirkabel: Komunikasi antara tag RFID dan reader RFID tidak memerlukan kontak fisik. Hal ini memungkinkan tag RFID untuk dibaca dengan cepat dan mudah, bahkan ketika tag tersebut kotor, basah, atau tersembunyi di balik bahan non-logam.
 
Adapun spesifikasi dari sensor/ modul RFID sebagai berikut :
·  Arus dan tegangan operasional       : 13-26mA/DC 3.3V
·  Tipe kartu Tag yang didukung        : mifare1 S50, MIFARE DESFire, mifare Pro, mifare1 S70 MIFARE Ultralight,
·  Idle current                                      :10-13mA/DC 3.3V
·  Peak current                                    : 30mA
·  Sleep current                                   : 80uA
·  Menggunakan Antarmuka SPI
·  Kecepatan transfer rate data           : maximum 10Mbit/s
·  Frekuensi kerja                               : 13.56MHz
·  Ukuran dari RFID Reader               : 40 x 60mm
·  Suhu tempat penyimpanan              : -40 – 85 degrees Celsius
·  Suhu kerja                                       : -20 – 80 degrees Celsius

·  Relative humidity                           : relative humidity 5% -95%

      12.      Motor Servo
Gambar. rangkaian motor servo

Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.
Prinsip kerja motor servo yaitu motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih jelasnya perhatikan gambar dibawah ini. 
Lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor servo tidak akan mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya.

      13.      Motor Driver L293d

Motor driver L293D adalah Integrated Circuit (IC) yang dirancang khusus untuk mengendalikan dua motor DC secara independen. IC ini memungkinkan pengguna untuk mengontrol arah dan kecepatan putaran motor DC dengan mudah menggunakan sinyal digital dari mikrokontroler atau papan pengembangan elektronik lainnya.
Cara Kerja Motor Driver L293D
L293D memiliki empat pin input (IN1, IN2, IN3, dan IN4) dan dua pin output (OUT1 dan OUT2). Masing-masing pin input terhubung ke mikrokontroler atau papan pengembangan elektronik lainnya. Sinyal digital yang diterapkan pada pin input menentukan arah putaran motor DC yang terhubung ke pin output yang sesuai.
Kontrol Arah:
IN1 Tinggi, IN2 Rendah: Motor DC berputar maju.
IN1 Rendah, IN2 Tinggi: Motor DC berputar mundur.
IN1 dan IN2 Rendah: Motor DC berhenti.
Kontrol Kecepatan: Kecepatan motor DC dapat dikontrol dengan menggunakan Pulse Width Modulation (PWM) pada pin input. Semakin tinggi duty cycle PWM, semakin tinggi kecepatan motor DC.

     

          14.      LCD16x2

    LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai penampil utama. LCD (Liquid Crystal Display) bisa menampilkan suatu gambar/karakter dikarenakan terdapat banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai titik cahaya. LCD 16x2 dapat menampilkan sebanyak 32 karakter yang terdiri dari 2 baris dan tiap baris dapat menampilkan 16 karakter. Bentuk fisik LCD 16x2 dapat dilihat pada gambar dibawah ini.

     



    Gambar 27.   LCD16x2

     

    Bagian-bagian LCD atau Liquid Crystal Display diantaranya adalah:
    ·       Lapisan Terpolarisasi 1 (Polarizing Film 1)
    ·       Elektroda Positif (Positive Electrode)
    ·       Lapisan Kristal Cair (Liquid Cristal Layer)
    ·       Elektroda Negatif (Negative Electrode)
    ·       Lapisan Terpolarisasi 2 (Polarizing film 2)
    ·       Backlight atau Cermin (Backlight or Mirror)

    Dibawah ini adalah gambar struktur dasar sebuah LCD:


    Gambar 28. Struktur LCD

    Tabel 2. Spesifikasi LCD16x2



          15.      LED

    Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan  cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya. Bentuk fisik dari LED dapat dilihat pada gambar berikut.

    Gambar 29. LED

    LED merupakan keluarga dari Dioda yang terbuat dari Semikonduktor. Cara kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitu kutub Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri tegangan maju (bias forward) dari Anoda menuju ke Katoda. LED atau Light Emitting Diode yang memancarkan cahaya ketika dialiri tegangan maju ini juga dapat digolongkan sebagai Transduser yang dapat mengubah Energi Listrik menjadi Energi Cahaya.

                16. Push Button

    Push button, juga dikenal sebagai saklar tombol tekan, adalah sebuah komponen elektronik yang berfungsi untuk menghubungkan dan memutuskan aliran listrik dalam suatu rangkaian. 


    Push button sendiri memiliki 3 Tipe Kontak yang memiliki kegunaan, diantara lain sebagai berikut :

      • Kontak NO (Normally Open): Kontak ini terbuka pada awalnya dan menjadi terhubung ketika tombol ditekan. Ketika dilepaskan, kontak ini kembali terbuka.
      • Kontak NC (Normally Close): Kontak ini tertutup pada awalnya dan menjadi terbuka ketika tombol ditekan. Ketika dilepaskan, kontak ini kembali tertutup.
      • Kontak NO dan NC (Ganda): Kontak ini menggabungkan fungsi NO dan NC, sehingga ketika tombol ditekan, kontak NO menjadi terhubung dan kontak NC menjadi terbuka, dan sebaliknya ketika dilepaskan.
    5. Percobaan [Kembali] 

        A. Prosedur [Kembali] 

    1. Rangkai seluruh komponen alat dan bahan yang diperlukan.
    2. Buat program arduino pada aplikasi Arduino IDE sesuai dengan judul alat yang dibuat. Pastikan aplikasi Arduino IDE sudah mendownload library yang dibutuhkan dan sudah memilih board arduino yang sesuai.
    3. Verifikasi atau upload program pada arduino. 
    4. Jalankan atau uji coba rangkaian yang telah dibuat.
    5. Perhatikan rangkaian dan output apakah sesuai dengan alat yang diinginkan.
    6. Rangkaian telah selesai dibuat.
        B. Hardware dan Diagram Blok [Kembali] 

    Hardware
    Gambar prototipe alat dari depan

    Gambar prototipe dari atas bagian dalam ruang

    Block Diagram
    Gambar blok diagram prototipe



        C. Rangkaian Simulasi dan Prinsip Kerja [Kembali] 

    Rangkaian Simulasi
    Prinsip kerja

    Prinsip kerja dari Prototype yang berjudul  “Smart Office Berbasis Arduino Untuk Pengamanan Dokumen Penting” adalah sistem keamanan berbasis Arduino yang mengintegrasikan beberapa sensor dan aktuator untuk mengamankan kantor. Sistem ini terdiri dari berbagai komponen termasuk sensor PIR, sensor flame, sensor DHT11, sensor LDR, sensor RFID, motor servo, motor driver L293D, baterai, buzzer, LCD 16x2, LED, Push button, breadboard, dan resistor.

    Arduino 1: Sensor Input dan Tampilan

    Arduino 1 bertugas mengumpulkan data dari berbagai sensor dan menampilkan informasi pada LCD. RFID reader (MFRC522) digunakan untuk memeriksa akses masuk dengan membaca ID kartu. Jika kartu valid, informasi "Akses Diterima" ditampilkan di LCD dan pesan dikirim ke Arduino 2 untuk membuka pintu. Jika kartu tidak valid, informasi "Akses Ditolak" ditampilkan. Sensor PIR mendeteksi keberadaan manusia, dan jika terdeteksi, pesan "Orang Terdeteksi" ditampilkan di LCD dan dikirim ke Arduino 2 untuk mengaktifkan lampu. Sensor api memonitor adanya kebakaran, dan jika api terdeteksi, pesan "Kebakaran" ditampilkan dan dikirim ke Arduino 2 untuk mengaktifkan alarm kebakaran. Sensor LDR mengukur tingkat cahaya lingkungan dan sensor DHT11 mengukur suhu dan kelembaban. Data dari sensor ini dikirim ke Arduino 2 untuk tindakan lebih lanjut.

    Arduino 2: Pengendalian Output

    Arduino 2 menerima data dari Arduino 1 melalui komunikasi serial dan mengontrol berbagai perangkat output berdasarkan data yang diterima. Jika Arduino 2 menerima pesan "VALID" dari Arduino 1, pintu akan dibuka dengan menggerakkan servo pintu, LED hijau menyala sebagai indikator akses diterima, dan kemudian pintu ditutup kembali setelah beberapa detik. Jika pesan "INVALID" diterima, LED merah menyala sebagai indikator akses ditolak. Jika pesan "PIR_DETECTED" diterima dan pintu tidak terbuka serta RFID tidak valid, LED merah dan buzzer akan diaktifkan sebagai indikasi Maling.

    Jika pesan "FLAME_DETECTED" diterima, buzzer akan menyala sebagai alarm kebakaran. Pesan "LDR" yang diterima dari Arduino 1 mengendalikan posisi servo jendela berdasarkan tingkat cahaya. Jika tingkat cahaya rendah, jendela akan dibuka, dan jika tinggi, jendela akan ditutup.

    Pengendalian Lampu dan Jendela

    Arduino 2 juga mengatur lampu dan jendela secara otomatis berdasarkan data yang diterima. Jika sensor PIR mendeteksi gerakan manusia, lampu akan dinyalakan untuk beberapa waktu dan kemudian dimatikan. Jendela dikontrol berdasarkan pembacaan LDR. Jika tingkat cahaya rendah, jendela dibuka, dan jika tingkat cahaya tinggi, jendela ditutup. Pengaturan ini memungkinkan kontrol lingkungan yang efisien dan responsif terhadap kondisi sekitar.

    Pengukuran Suhu dan Kelembaban

    Selain itu, Arduino 2 menerima data suhu dan kelembaban dari Arduino 1 dan menampilkannya pada LCD. Informasi suhu dan kelembaban diukur oleh sensor DHT11 dan dikirim melalui serial ke Arduino 2. Arduino 2 kemudian menampilkan data ini pada LCD 16x2, memberikan informasi kondisi lingkungan secara real-time kepada pengguna.
        
        D. Flowchart dan Listing Program [Kembali] 

    Flowchart
    Flowchart Arduino 1

    Flowchart Arduino 2

    Listing Program

    Arduino 1

    #include <SPI.h>
    #include <MFRC522.h>
    #include <LiquidCrystal.h>
    #include <DHT.h>
    #include <Wire.h>

    // Definisi Pin
    #define SS_PIN 10
    #define RST_PIN 9
    #define pir_PIN 8
    #define flame_PIN 6
    #define ldr_PIN A0 // Definisi pin LDR
    #define dht_PIN A1
    #define DHTTYPE DHT11

    // Definisi pin LCD 16x2
    LiquidCrystal lcd(A2, A3, 5, 4, 3, 2);
    DHT dht(dht_PIN, DHTTYPE);

    // RFID Setup
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    const String validCardID = "93de3834";

    void setup() {
      Serial.begin(9600); // Initialize UART communication
     
      // Atur sensor RFID
      SPI.begin(); // Inisialisasi SPI bus
      mfrc522.PCD_Init(); // Inisialisasi RFID reader
      Serial.println("RFID Reader Initialized");

      // Atur sensor lain
      pinMode(pir_PIN, INPUT);
      pinMode(flame_PIN, INPUT);
      dht.begin();
      lcd.begin(16, 2);
      lcd.setCursor(0, 0);
      lcd.print("Sistem Siap");
      delay(1000);
      lcd.clear();
    }

    void loop() {
      // Reset the RFID reader if it's not functioning
      //if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) {
      //  mfrc522.PCD_Init();
      //}

      // Periksa apakah ada kartu baru yang tersedia
      if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
        // Membaca ID kartu
        String cardID = "";
        for (byte i = 0; i < mfrc522.uid.size; i++) {
          cardID += String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
          cardID += String(mfrc522.uid.uidByte[i], HEX);
        }
        cardID.toLowerCase(); // Mengubah ID kartu menjadi huruf kecil
        mfrc522.PICC_HaltA();

        // Debug: Tampilkan ID kartu yang terbaca di Serial Monitor
        Serial.print("Scanned Card ID: ");
        Serial.println(cardID);

        // Periksa apakah ID kartu cocok dengan ID yang valid
        if (cardID == validCardID) {
          Serial.println("VALID");
          lcd.setCursor(0, 0);
          lcd.print("Akses Diterima");
          Serial.println("VALID"); // Kirim data ke Arduino 2
          delay(1000);
          lcd.clear();
        } else {
          Serial.println("INVALID");
          lcd.setCursor(0, 0);
          lcd.print("Akses Ditolak");
          Serial.println("INVALID"); // Kirim data ke Arduino 2
          delay(1000);
          lcd.clear();
        }
        //delay(1000); // Tunggu sebentar sebelum membaca lagi
      }

      // Pembacaan sensor
      int pirNilai = digitalRead(pir_PIN);
      int flameNilai = digitalRead(flame_PIN);
      int ldrNilai = analogRead(ldr_PIN);
      float kelembaban = dht.readHumidity();
      float suhu = dht.readTemperature();

      // Menampilkan hasil pembacaan
      if (pirNilai == HIGH) {
        lcd.setCursor(0, 1);
        lcd.print("Orang Terdeteksi");
        Serial.println("PIR_DETECTED"); // Kirim data ke Arduino 2
        delay(1000);
        lcd.clear();
      }

      if (flameNilai == LOW) { // Jika flame sensor mendeteksi api
        lcd.setCursor(0, 0);
        lcd.print("Kebakaran");
        Serial.println("FLAME_DETECTED"); // Kirim sinyal kebakaran ke Arduino 2
        delay(1000);
        lcd.clear();
      }

      // Kirim nilai LDR dan suhu ke Arduino 2
      Serial.print("LDR:");
      Serial.println(ldrNilai);
      Serial.print("Temp:");
      Serial.print(suhu);
      Serial.print(",Humidity:");
      Serial.println(kelembaban);
      delay(1000); // Sesuaikan delay sesuai kebutuhan
    }


    Arduino 2

    #include <Servo.h>
    #include <Wire.h>
    #include <LiquidCrystal.h>

    // Definisi Pin
    #define GREEN_LED_PIN 6
    #define RED_LED_PIN 7
    #define BUZZER_PIN 10
    #define LAMP_PIN 8 // Pin untuk lampu
    #define WINDOW_SERVO_PIN 9 // Definisi pin untuk servo jendela
    #define DOOR_SERVO_PIN 13 // Definisi pin untuk servo pintu
    #define BUTTON_PIN A0 // Definisi pin untuk push button

    const int ldrThreshold = 900; // Threshold LDR
    const unsigned long lampOffDelay = 5000; // Waktu tunda untuk mematikan lampu (ms)
    const unsigned long flameOffDelay = 5000; // Waktu tunda untuk mematikan sensor api (ms)

    Servo windowServo;
    Servo doorServo;
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    bool pirStatus = false; // Status PIR untuk melacak keberadaan orang
    unsigned long lastPIRDetection = 0; // Waktu terakhir PIR mendeteksi orang
    unsigned long lastFlameDetection = 0; // Waktu terakhir flame sensor mendeteksi api
    bool windowOpen = false; // Status jendela
    bool flameDetected = false; // Status deteksi api
    bool doorOpen = false; // Status pintu
    bool rfidValid = false; // Status terakhir RFID valid atau tidak

    void setup() {
      Serial.begin(9600); // Inisialisasi komunikasi UART
      pinMode(BUZZER_PIN, OUTPUT);
      pinMode(GREEN_LED_PIN, OUTPUT);
      pinMode(RED_LED_PIN, OUTPUT);
      pinMode(LAMP_PIN, OUTPUT); // Inisialisasi pin lampu sebagai OUTPUT
      pinMode(BUTTON_PIN, INPUT_PULLUP); // Inisialisasi pin push button sebagai INPUT_PULLUP
      windowServo.attach(WINDOW_SERVO_PIN); // Mengaitkan pin servo jendela
      doorServo.attach(DOOR_SERVO_PIN); // Mengaitkan pin servo pintu
      lcd.begin(16, 2);
      windowServo.write(70); // Posisi awal servo jendela (tertutup)
      doorServo.write(120); // Posisi awal servo pintu (tertutup)
    }

    void loop() {
      // Cek status push button
      if (digitalRead(BUTTON_PIN) == LOW) {
        doorServo.write(0); // Buka pintu (posisi servo 90 derajat)
        delay(2000); // Tunda 2 detik
        doorServo.write(120); // Tutup pintu kembali (posisi servo 0 derajat)
        delay(200); // Debounce delay untuk menghindari pembacaan ganda
      }

      if (Serial.available() > 0) {
        String data = Serial.readStringUntil('\n');
        data.trim();
        if (data.equals("VALID")) {
          rfidValid = true; // Update status RFID valid
          digitalWrite(GREEN_LED_PIN, HIGH);
          digitalWrite(RED_LED_PIN, LOW);
          doorServo.write(0); // Buka pintu (posisi servo 90 derajat)
          delay(2000);
          doorServo.write(120); // Tutup pintu kembali setelah 2 detik
          digitalWrite(GREEN_LED_PIN, LOW);
          doorOpen = false; // Pintu ditutup kembali
        } else if (data.equals("INVALID")) {
          rfidValid = false; // Update status RFID invalid
          digitalWrite(GREEN_LED_PIN, LOW);
          digitalWrite(RED_LED_PIN, HIGH);
          delay(1000);
          digitalWrite(RED_LED_PIN, LOW);
        }
        else if (data.equals("PIR_DETECTED")) {
          unsigned long currentMillis = millis();
          if (!doorOpen && !rfidValid) {
            // Jika pintu tidak terbuka dan RFID tidak valid, ini adalah maling
            digitalWrite(RED_LED_PIN, HIGH); // Nyalakan LED merah
            digitalWrite(BUZZER_PIN, HIGH); // Nyalakan buzzer
            delay(2000); // Tunda 2 detik untuk indikasi maling
            digitalWrite(RED_LED_PIN, LOW); // Matikan LED merah
            digitalWrite(BUZZER_PIN, LOW); // Matikan buzzer
          } else {
            pirStatus = true; // Orang terdeteksi
            lastPIRDetection = currentMillis; // Update waktu terakhir deteksi
            digitalWrite(LAMP_PIN, HIGH); // Nyalakan lampu
          }
        }
        else if (data.startsWith("LDR:")) {
          int ldrNilai = data.substring(4).toInt();
          if (ldrNilai < ldrThreshold) {
            windowServo.write(0); // Buka jendela (posisi servo 0 derajat)
            windowOpen = true;
          } else if (ldrNilai >= ldrThreshold && windowOpen) {
            windowServo.write(70); // Tutup jendela (posisi servo 90 derajat)
            windowOpen = false;
          }
        }
        else if (data.equals("FLAME_DETECTED")) {
          flameDetected = true; // Set status api terdeteksi
          lastFlameDetection = millis(); // Update waktu terakhir deteksi api
          digitalWrite(BUZZER_PIN, HIGH); // Nyalakan buzzer ketika flame terdeteksi
        }
        else if (data.startsWith("Temp:")) {
          // Extract temperature and humidity values
          int tempStart = data.indexOf("Temp:") + 5;
          int tempEnd = data.indexOf(",", tempStart);
          String tempStr = data.substring(tempStart, tempEnd);
          float temperature = tempStr.toFloat();
         
          int humidityStart = data.indexOf("Humidity:") + 9;
          String humidityStr = data.substring(humidityStart);
          float humidity = humidityStr.toFloat();

          // Display temperature and humidity on LCD
          lcd.setCursor(0, 0);
          lcd.print("Temp: ");
          lcd.print(temperature);
          lcd.print(" C");
         
          lcd.setCursor(0, 1);
          lcd.print("Humidity: ");
          lcd.print(humidity);
          lcd.print(" %");
        }
      }

      // Jika api tidak terdeteksi lagi dalam flameOffDelay, matikan buzzer
      if (flameDetected && (millis() - lastFlameDetection > flameOffDelay)) {
        flameDetected = false;
        digitalWrite(BUZZER_PIN, LOW);
      }

      // Cek apakah sudah cukup waktu berlalu sejak deteksi PIR terakhir
      if (pirStatus && (millis() - lastPIRDetection > lampOffDelay)) {
        pirStatus = false; // Reset status PIR
        digitalWrite(LAMP_PIN, LOW); // Matikan lampu
      }
    }


        E. Video Demo [Kembali] 



        F. Download File [Kembali]

      Gambar Simulasi Rangkaian 
    Share:

    Blogger news

    Blogger templates