NIM : 2110951004

.

Sabtu, 15 Juni 2024

Modul 4_Prak UpUc



 Modul IV

Smart Office Berbasis Arduino untuk Pengamanan Dokumen Penting

        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. Motor Driver L293D
                                Spesifikasi:
                                    Kemapuan arus output 600mA per saluran
                        1.2 arus output puncak (tidak berulang) per saluran
                        Logis ”0” tegangan input hingga 1.5 V


            3. 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)

            4. 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
            6. LED
                                Spesifikasi:





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.


5. Percobaan [kembali]

    a. Percobaan [kembali]

  1. Download library yang diperlukan pada bagian download dalam blog.     
  2. Buka proteus yang sudah diinstal untuk membuat rangkaian.
  3. Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
  4. Buka Arduino IDE yang sudah diinstal.
  5. Di Arduino IDE, pergi ke menu "File" > "Preferences".Pastikan opsi
  6. "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
  7. Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
  8. Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
  9. Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
  10. Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
  11. Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
  12. Jalankan simulasi di Proteus.
    b. Hardware [kembali]


    c. Rangkaian Simulasi dan Prinsip Kerja [kembali]


    d. Flowchart [kembali]
            Flowchart
                    Arduino Master


                    Arduino Slave








            Listing Program Master:
#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
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Sistem Siap");
  
  // Atur sensor RFID
  SPI.begin(); // Inisialisasi SPI bus
  mfrc522.PCD_Init(); // Inisialisasi RFID reader
  Serial.println("RFID Reader Initialized");
  delay(1000);
  lcd.clear();

  // Atur sensor lain
  pinMode(pir_PIN, INPUT);
  pinMode(flame_PIN, INPUT);
  dht.begin();
}

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
}

            Listing Program Slave:
                    #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

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 buzzer (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
  windowServo.attach(WINDOW_SERVO_PIN); // Mengaitkan pin servo jendela
  doorServo.attach(DOOR_SERVO_PIN); // Mengaitkan pin servo pintu
  lcd.begin(16, 2);
  windowServo.write(90); // Posisi awal servo jendela (tertutup)
  doorServo.write(0); // Posisi awal servo pintu (tertutup)
}

void loop() {
  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(90); // Buka pintu (posisi servo 90 derajat)
      delay(2000);
      doorServo.write(0); // 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(90); // 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]
        Rangkaian Proteus [Download disini]
        Video Demo [Download disini]
        Datasheets Sensor PIR [Download disini]
        Library Sensor PIR [Download disini]
        Datasheets Sensor Flame [Download disini]
        Library Sensor Flame [Download disini]
        Datasheets Sensor LDR [Download disini]
        Datasheets Sensor RFID [Download disini]
        Datasheets Sensor DHT11 [Download disini]
        Datasheets Motor Driver L293D [Download disini]
        Datasheets Motor Servo [Download disini]
        Datasheets LCD16x2 [Download disini]
        Datasheets Buzzer [Download disini]
        SoftCopy Laporan [Download disini]












Share:

0 komentar:

Posting Komentar

Blogger news

Blogger templates