Modul 4

MODUL 4

MIKROPROSESOR DAN MIKROKONTROLER



PERSIAN CAT HOUSE

1. Pendahuluan   [Kembali]

        Persian Cat House adalah proyek yang bertujuan untuk mengembangkan sistem monitoring dan kontrol rumah kucing Persia secara otomatis. Rumah kucing Persia memerlukan kondisi lingkungan yang spesifik untuk mengatur seperti suhu, kelembapan, ketersediaan air, dan makanan. Pengawasan dan pengontrolan kondisi lingkungan tersebut sering kali dilakukan secara manual dan tidak efektif, sehingga diperlukan sistem yang dapat memantau dan mengontrol kondisi lingkungan secara otomatis dan akurat.

        Dengan menggunakan berbagai sensor, seperti DHT-22 untuk memantau suhu dan kelembapan, sensor water level untuk memantau ketersediaan air, sensor infrared untuk mendeteksi ketersediaan makanan, sensor PIR untuk mendeteksi keberadaan orang di sekitar Cat House, dan sensor LDR yang mengaktifkan lampu saat malam hari. Sistem Persian Cat House dapat memantau dan mengontrol kondisi lingkungan rumah kucing Persia secara efektif dan efisien. Output berupa heater (lampu bohlem), motor servo, LCD, dan LED memungkinkan sistem ini untuk secara otomatis menyesuaikan kondisi lingkungan sesuai kebutuhan.

        Sistem ini tidak hanya memudahkan pemilik kucing dalam merawat hewan peliharaan mereka, tetapi juga memastikan bahwa kucing berada dalam kondisi lingkungan yang optimal setiap saat. Dengan demikian, Persian Cat House diharapkan dapat membantu mengawasi dan mengontrol rumah kucing secara lebih efektif, meningkatkan kualitas hidup kucing Persia, dan memudahkan pemilik dalam menjaga kesehatan dan kenyamanan hewan peliharaan mereka.

2. Tujuan   [Kembali]

Tujuan dari perancangan project persian cat house adalah:
  1. Membantu monitoring dan kontrol rumah kucing Persia secara otomatis.
  2. Memahami cara kerja dari Mikrokontroler, IC, dan komponen terkait pada prototype yang telah dibuat.
  3. Implementasi teknologi canggih
3. Alat dan Bahan   [Kembali]

Alat: 

1.     Baterai

Digunakan sebagai sumber tegangan pada rangkaian.

Spesifikasi:

2.     Voltmeter DC

Spesifikasi:

DC Voltemeter merupakan alat ukur yang digunakan untuk mengukur tegangan DC.

Bahan:

1.     Arduino Uno

Spesifikasi:

2.     Sensor Water Level

Spesifikasi:

·       Tegangan kerja: 3-5 VDC nArus kerja: < 20mA

·       Tipe sensor: analog

·       Max output: 2.5v (saat sensor terendam semua)

·       Luas area deteksi: 16x40mm nSuhu kerja: 10-30 C 

3.     Sensor PIR

Spesifikasi:

Vin : DC 5V - 9V

Radius : 180 derajat

Jarak deteksi : 5 - 7 meter

Output : Digital TTL

Memiliki setting sensitivitas

Memiliki setting time delay

Dimensi : 3,2 cm x 2,4 cm x 2,3 cm

Berat : 10 gr

4.     Sensor Infrared

Spesifikasi:




5.     Sensor LDR

Spesifikasi LDR:

·       Tegangan maksimum (DC): 150V.

·       Konsumsi arus maksimum: 100mW.

·       Tingkatan Resistansi/Tahanan : 10Ω sampai 100KΩ

·       Puncak spektral: 540nm (ukuran gelombang cahaya)

·       Waktu Respon Sensor : 20ms – 30ms.

6.     Sensor DHT-22

Spesifikasi sensor suhu kelembaban DHT22 :

·       Tegangan input : 3,3 – 6 VDC

·       Sistem komunikasi : Serial (single – Wire Two way)

·       Range suhu : -400C – 800C

·       Range kelembaban : 0% – 100% RH

·       Akurasi : ±20C (temperature) ±5% RH (humidity)

7.     Relay

Spesifikasi :

·       Trigger Voltage (Voltage across coil) : 5V DC

·       Trigger Current (Nominal current) : 70mA

·       Maximum AC load current: 10A @ 250/125V AC

·       Maximum DC load current: 10A @ 30/28V DC

·       Compact 5-pin configuration with plastic moulding

·       Operating time: 10msec Release time: 5msec

·  Maximum switching: 300 operating/minute (mechanically) 

8.     Motor Servo

Spesifikasi:

·       Tegangan kerja : 4,8 – 6 Vdc

·       Torsi : 1,6 kg/cm

·       Arus : < 500 mA

·       Dimensi : 22 x 12,5 x 29,5 cm

·       Berat : 9 gr

·       Kecepatan putaran: 0,12 detik/60 derajat 

9.     Kipas Angin

Spesifikasi Kipas DC 12V 8 x 8 cm:

·       Ukuran: 8 cm x 8 cm

·       Tegangan: 12 Volt DC

·       Digunakan untuk pendinginan suhu pada perangkat elektronik seperti komputer, laptop, dan perangkat lainnya.

10.  Lampu Bohlam

Spesifikasi:

Tegangan  2,5 volt

11. LCD

Spesifikasi :

·       Format tampilan : 16 x 2 karakter

·       Pengontrol bawaan : ST 7066 (atau setara)

·       Siklus kerja : 1/16

·       5 x 8 titik termasuk kursor

·       Supply + 5 V (juga tersedia untuk + 3 V)

·       LED dapat digerakkan oleh pin 1, pin 2, pin 15, pin 16 atau A dan K

·       N.V. opsional untuk supply + 3 V

12.  LED

Spesifikasi :

·       Superior weather resistance

·       5mm Round Standard Directivity

·       UV Resistant Eproxy

·       Forward Current (IF): 30mA

·       Forward Voltage (VF): 1.8V to 2.4V

·       Reverse Voltage: 5V

·       Operating Temperature: -30℃ to +85℃

·       Storage Temperature: -40℃ to +100℃

·       Luminous Intensity: 20mcd 

13.  Buzzer

Spesifikasi Buzzer

·       Rated Voltage : 12V

·       DC Operating Voltage : 4 to 8V

·       DC Rated Current : ≤30mA

·       Sound Output at 10cm* : ≥85dB

·       Resonant Frequency : 2300 ±300Hz

·       Tone : Continuous

·       Operating Temperature : -25°C to +80°C

·       Storage Temperature : -30°C to +85°C

·       Weight : 2g

·       Value applying at rated voltage (DC)


4. Dasar Teori  [Kembali]

1.     Komunikasi

·       Universal Asynchronous Receiver Transmitter (UART)

UART (Universal Asynchronous Receiver-Transmitter) 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.

 

Komunikasi UART dapat digunakan untuk berbagai keperluan, seperti:

·       Menghubungkan Arduino Uno ke komputer untuk mengirim dan menerima data.

·       Menghubungkan Arduino Uno ke sensor atau perangkat lain.

·       Menghubungkan Arduino Uno ke jaringan komputer. 

Pin RX dan TX adalah pin yang digunakan untuk komunikasi serial pada Arduino Uno. Pin RX digunakan untuk menerima data dari perangkat lain, sedangkan pin TX digunakan untuk mengirim data ke perangkat lain.

Pin RX dan TX menggunakan level tegangan logic 5V atau 3.3V, sesuai dengan hardware yang digunakan. Jika berbeda tenganganya kalian dapat menggunakan rangkaian pembagi tegangan (voltage devider) atau level converter.

Berikut adalah fungsi pin RX dan TX secara lebih detail:

Pin RX:

·       Mengirim data ke Arduino Uno dari perangkat lain.

·       Data yang dikirim ke Arduino Uno akan diinterpretasikan sebagai data biner.

·       Data biner tersebut dapat berupa karakter, angka, atau data lainnya.

Pin TX:

·       Mengirim data dari Arduino Uno ke perangkat lain.

·       Data yang dikirim dari Arduino Uno harus berupa data biner.

·       Data biner tersebut dapat berupa karakter, angka, atau data lainnya.

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, kemudian ditransfer secara parallel ke data bus penerima. 

2.     Arduino Uno

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang didalamnya terdapat utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggungakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.

Bagian-bagian arduino uno:

a.     Power USB

Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.

b.     Power jack

Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.

c.     Crystal Oscillator

Kristal ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.

d.     Reset

Digunakan untuk mengulang program Arduino dari awal atau Reset.

e.     Digital Pins I / O

Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika (0 atau 1). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.

f.      Analog Pins

Papan Arduino UNO memiliki 6 pin analog A0. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu, dsb, dan mengubahnya menjadi nilai digital.

g.     LED Power Indicator

Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.

Bagian - bagian pendukung:

a.     RAM

RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).

b.     ROM

ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM.

Adapun block diagram mikrokontroler ATMega 328P dapat dilihat pada gambar berikut:

Block diagram dapat digunakan untuk memudahkan / memahami bagaimana kinerja dari mikrokontroler ATMega 328P.

Pin-pin ATMega 328P:

3.     Sensor Water Level

Water sensor adalah controller yang bisa mendeteksi volume air, tinggi air, serta kualitas air di dalam tangki, sungai, danau, dan sejenisnya dengan akurat dan mudah. Sensor ini merupakan perangkat yang bisa mematikan atau mengobarkan pompa air secara otomatis andai air mulai berakhir atau sudah nyaris penuh

Jumlah Pin pada Sensor ini berjumlah 3 Yaitu :

·       Pin Negatif (-)

·       Pin Positif (+)

·       Pin Data (S). 

Water Level Sensor adalah alat yang digunakan untuk memberikan signal kepada alarm / automation panel bahwa permukaan air telah mencapai level tertentu. Sensor akan memberikan signal dry contact (NO/NC) ke panel. Detector ini bermanfaat untuk memberikan alert atau untuk menggerakkan perangkat automation lainnya. Water sensor ini telah dilengkapi dengan built-in buzzer yang berbunyi pada saat terjadi trigger. Sensor ketinggian air biasanya digunakan untuk menghitung ketinggian air di sungai, danau, atau tangki air. Sensor ini sangat mudah untuk dibuat karena bahan - bahanya sederhana.

Cara Kerja Sensor:

Water level merupakan sensor yang berfungsi untuk mendeteksi ketinggian air dengan output analog kemudian diolah menggunakan mikrokontroler. Cara kerja sensor ini adalah pembacaan resistansi yang dihasilkan air yang mengenai garis lempengan pada sensor. Cara kerja sensor ini adalah pembacaan resistansi yang dihasilkan air yang mengenai garis lempengan pada sensor. Semakin banyak air yang mengenai lempengan tersebut, maka nilai resistansinya akan semakin kecil dan sebaliknya.

Sensor memiliki sepuluh jejak tembaga yang terbuka, lima di antaranya adalah jejak daya dan lima lainnya adalah jejak indera. Jejak-jejak ini terjalin sehingga ada satu jejak indera di antara setiap dua jejak kekuatan. Biasanya, jejak kekuatan dan indera tidak terhubung, tetapi ketika direndam dalam air, keduanya dijembatani. Pengoperasian sensor ketinggian air cukup sederhana. Jejak daya dan indra membentuk resistor variabel (seperti potensiometer) yang resistansinya bervariasi berdasarkan seberapa banyak mereka terpapar air.

Pengoperasian sensor ketinggian air cukup sederhana.

Jejak daya dan indra membentuk resistor variabel (seperti potensiometer) yang resistansinya bervariasi berdasarkan seberapa banyak mereka terpapar air.

Pengoperasian sensor ketinggian air cukup sederhana.

Jejak daya dan indra membentuk resistor variabel (seperti potensiometer) yang resistansinya bervariasi berdasarkan seberapa banyak mereka terpapar air.

Resistensi ini berbanding terbalik dengan kedalaman pencelupan sensor dalam air: Semakin banyak air yang dibenamkan sensor, semakin baik konduktivitasnya dan semakin rendah resistansinya. Semakin sedikit air yang dibenamkan sensor, semakin buruk konduktivitasnya dan semakin tinggi resistansinya. Sensor menghasilkan tegangan output yang sebanding dengan resistansi; dengan mengukur tegangan ini, ketinggian air dapat ditentukan.

Grafik Sensor Water Level:

4.     Sensor PIR

Sensor PIR atau disebut juga dengan Passive Infra Red merupakan sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra merah dari suatu object. Sesuai dengan namanya sensor PIR bersifat pasif, yang berarti sensor ini tidak memancarkan sinar infra merah melainkan hanya dapat menerima radiasi sinar infra merah dari luar.

Konfigurasi Pin:

Sensor PIR terdiri dari beberapa bagian yaitu :

·       Fresnel Lens -->Lensa Fresnel pertama kali digunakan pada tahun 1980an. Digunakan sebagai lensa yang memfokuskan sinar pada lampu mercusuar. Penggunaan paling luas pada lensa Fresnel adalah pada lampu depan mobil, di mana mereka membiarkan berkas parallel secara kasar dari pemantul parabola dibentuk untuk memenuhi persyaratan pola sorotan utama.

·       IR Filter -->IR Filter dimodul sensor PIR ini mampu menyaring panjang gelombang sinar infrared pasif antara 8 sampai 14 mikrometer, sehingga panjang gelombang yang dihasilkan dari tubuh manusia yang berkisar antara 9 sampai 10 mikrometer ini saja yang dapat dideteksi oleh sensor. Sehingga Sensor PIR hanya bereaksi pada tubuh manusia saja.

·       Pyroelectric Sensor -->Seperti tubuh manusia yang memiliki suhu tubuh kira-kira 32 derajat celcius, yang merupakan suhu panas yang khas yang terdapat pada lingkungan. Pancaran sinar inframerah inilah yang kemudian ditangkap oleh Pyroelectric sensor yang merupakan inti dari sensor PIR ini sehingga menyebabkan Pyroelectic sensor yang terdiri dari galium nitrida, caesium nitrat dan litium tantalate menghasilkan arus listrik.

·       Amplifier -->Sebuah sirkuit amplifier yang ada menguatkan arus yang masuk pada material pyroelectric.

·       Komparator-->Setelah dikuatkan oleh amplifier kemudian arus dibandingkan oleh komparator sehingga mengahasilkan output.

Blok Diagram PIR Sensor

Sensor PIR memiliki jangkauan jarak yang bervariasi, tergantung karakteristik sensor. Proses penginderaan sensor PIR dapat digambarkan sebagai berikut:

 

Jangkauan PIR Sensor

Pada umumnya sensor PIR memiliki jangkauan pembacaan efektif hingga 5 meter, dan sensor ini sangat efektif digunakan sebagai human detector.

Grafik Respon Sensor PIR

1. Respon terhadap arah, jarak, dan kecepatan


2. Respon terhadap suhu

5.     Sensor Infrared

Infrared (IR) detektor atau sensor infra merah adalah komponen elektronika yang dapat mengidentifikasi cahaya infra merah (infra red, IR). Sensor infra merah atau detektor infra merah saat ini ada yang dibuat khusus dalam satu modul dan dinamakan sebagai IR Detector Photomodules. IR Detector Photomodules merupakan sebuah chip detektor inframerah digital yang di dalamnya terdapat fotodiode dan penguat (amplifier).

Sensor infared terdiri dari led infrared sebagai pemancar sedangkan pada bagian penerima biasanya terdapat foto transistor, fotodioda, atau inframerah modul yang berfungsi untuk menerima sinar inframerah yang dikirimkan oleh pemancar.

Pin Out:

 

Prinsip Kerja Sensor Infrared:

Ketika pemancar IR memancarkan radiasi, ia mencapai objek dan beberapa radiasi memantulkan kembali ke penerima IR. Berdasarkan intensitas penerimaan oleh penerima IR, output dari sensor ditentukan.

 

Prinsip kerja rangkaian sensor infrared berdasarkan pada gambar 2. Adalah ketika cahaya infra merah diterima oleh fototransistor maka basis fototransistor akan mengubah energi cahaya infra merah menjadi arus listrik sehingga basis akan berubah seperti saklar (swith closed) atau fototransistor akan aktif (low) secara sesaat seperti gambar.

Grafik Respon Sensor Infrared

Grafik menunjukkan hubungan antara resistansi dan jarak potensial untuk sensitivitas rentang antara pemancar dan penerima inframerah. Resistor yang digunakan pada sensor mempengaruhi intensitas cahaya inframerah keluar dari pemancar. Semakin tinggi resistansi yang digunakan, semakin pendek jarak IR Receiver yang mampu mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang lebih rendah dari IR Transmitter. Sementara semakin rendah resistansi yang digunakan, semakin jauh jarak IR Receiver mampu mendeteksi sinar IR yang dipancarkan dari IR Transmitter karena intensitas cahaya yang lebih tinggi dari IR Transmitter.

6.     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 :  -30o Celcius  –  70o Celcius

 Konfigurasi PIN LDR:

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.

Grafik respon:

Pada sensor LDR , jika sensor dikenakan cahaya yang diserap (threshold) semakin terang, maka nilai resistansi pada LDR akan semakin kecil, begitupun sebaliknya.

7. Sensor DHT22

    Sensor DHT22 adalah sensor digital yang berguna untuk mengukur tingkat kelembaban udara dan suhu. Kemudian sensor ini menggunakan kapasitor dan termistor untuk mendeteksi perubahan resistivitas akibat perubahan kelembaban dan suhu udara.

Untuk kaki/pin, sensor suhu dan kelembaban DHT22 terdiri dari 4 kaki/pin, sama dengan DHT11, tetapi yang dipakai hanya 3 pin saja. Biasanya kalau kita membeli dalam bentuk modul jumlah pin-nya menjadi 3 :

·       VCC(+) : tegangan input (5V)

·       GND(-) : Ground

·       Data : Data output serial

Prinsip Kerja DHT22:

Sensor ini terdapat sebuah Thrmistor dengan tipe NTC (Negative Temperature Coefficient). Seperti kita tahu cara kerja dari thermistor adalah kenaikan dan turunnya suhu mengakibatkan naik dan turunnya resistansi thermistor.

Karena sensor ini menggunakan thermistor NTC maka nilai resistansinya berbanding terbalik dengan kenaikan suhu. Yaitu, semakin tinggi suhu di sekitar sensor maka nilai resistansi NTC akan semakin kecil. Sebaliknya nilai resistansi-nya akan meningkat ketika suhu ruangan sensor menurun.

Berdasarkan naik turunnya resistansi tsb maka sensor akan mengeluarkan output berupa nilai analog yang akan dibaca dan dikonversi oleh arduino menjadi nilai suhu (dalam bentuk ºC) dan kelembapan ruangan (dalam bentuk %).

8.     Relay

Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi.

Konfigurasi PIN Relay:

Nomor PIN

Nama Pin

Deskripsi

1

Coil End 1

Digunakan untuk memicu (On / Off) Relay, Biasanya satu ujung terhubung ke 12V dan ujung lainnya ke ground

2

Coil End 2

Digunakan untuk memicu (On / Off) Relay, Biasanya satu ujung terhubung ke 12V dan ujung lainnya ke ground

3

Common (COM)

Common terhubung ke salah satu Ujung Beban yang akan dikontrol

4

Normally Close (NC)

Ujung lain dari beban terhubung ke NO atau NC. Jika terhubung ke NC beban tetap terhubung sebelum pemicu

5

Normally Open (NO)

Ujung lain dari beban terhubung ke NO atau NC. Jika terhubung ke NO, beban tetap terputus sebelum pemicu

9.     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.

Pulse Width Modulation

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. 

10.  LCD

LCD atau Liquid Crystal Display adalah suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk elektronik lainnya.

Teknologi Display LCD ini memungkinkan produk-produk elektronik dibuat menjadi jauh lebih tipis jika dibanding dengan teknologi Tabung Sinar Katoda (Cathode Ray Tube atau CRT). Jika dibandingkan dengan teknologi CRT, LCD juga jauh lebih hemat dalam mengkonsumsi daya karena LCD bekerja berdasarkan prinsip pemblokiran cahaya sedangkan CRT berdasarkan prinsip pemancaran cahaya. Namun LCD membutuhkan lampu backlight (cahaya latar belakang) sebagai cahaya pendukung karena LCD sendiri tidak memancarkan cahaya. Beberapa jenis backlight yang umum digunakan untuk LCD diantaranya adalah backlight CCFL (Cold cathode fluorescent lamps) dan backlight LED (Light-emitting diodes).

LCD atau Liquid Crystal Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair (Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif. 

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:

            Proses inisialisasi pin arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal (2, 3, 4, 5, 6, 7), dimana LCD merupakan variabel yang dipanggil setiap kali intruksi terkait LCD akan digunakan.

            Pada Proyek Akhir ini LCD dapat menampilkan karakternya dengan menggunakan library yang bernama LiquidCrystal. Berikut ada beberapa fungsifungsi dari library LCD:

·       begin()

Untuk begin() digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran kolom dan baris LCD. Pemanggilan begin() harus dilakukan terlebih dahulu sebelum memanggil instruksi lain dalam library LCD. Untuk syntax penulisan instruksi begin() ialah sebagai berikut. lcd.begin(cols,rows) dengan lcd ialah nama variable, cols jumlah kolom LCD, dan rows jumlah baris LCD.

·       clear()

Instruksi clear() digunakan untuk membersihkan pesan text. Sehingga tidak ada tulisan yang ditapilkan pada LCD.

·       setCursor()

19 Instruksi ini digunakan untuk memposisikan cursor awal pesan text di LCD. Penulisan syntax setCursor() ialah sebagai berikut. lcd.setCursor(col,row) dengan lcd ialah nama variable, col kolom LCD, dan row baris LCD.

·       print()

Sesuai dengan namanya, instruksi print() ini digunakan untuk mencetak, menampilkan pesan text di LCD. Penulisan syntax print() ialah sebagai berikut.lcd.print(data) dengan lcd ialah nama variable, data ialah pesan yang ingin ditampilkan. 

11. 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.

Tabel warna dan material LED:

12.  Buzzer

Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara.

Pada gambar berikut tampak simbol buzzer dan bentuk buzzer :

Konfigurasi PIN Buzzer

1

Positif

Diidentifikasi dengan simbol (+) atau kabel terminal yang lebih panjang. Dapat didukung oleh 12V DC 

2

Negatif

Diidentifikasi oleh kabel terminal pendek. Biasanya terhubung ke ground sirkuit


5. Prosedur   [Kembali]

    a. Prosedur  [Kembali]

    • Prosedur percobaan:

  1. Siapakan komponen yang dibutuhkan 
  2. Susun rangkaian sebagaimana yang dibutuhkan 
  3. Inputkan codingan Arduino 
  4. Jalankan rangkaian 
  5. Lakukan koreksi jika terjadi error, jika tidak terjadi error maka rangkaian berhasil dan selesai.
  6. b. Hardware  [Kembali]





    c. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

    • Rangkaian Simulasi

    • Prinsip Kerja
    1. Sensor Infrared
    Saat sensor infrared tidak mendeteksi makanan kucing pada tempat makanan, maka sensor berlogika 0 dan terkirim ke arduino master. Selanjutnya arduino master mengirimkan data sensor infrared ke arduino slave yang mana pada arduino slave jika menerima pesan 0 untuk sensor infrared, maka akan menggerakkan servo1 sejauh 90° yang menyebabkan tutup tempat makanan terbuka dan makanan jatuh. Saat makanan yang jatuh sudah cukup banyak, maka akan terdeteksi oleh sensor yang menyebabkan sensor berlogika 1 sehingga nanti akhirnya akan menggerakkan servo1 ke sudut 20° untuk menutup tutup tempat makanan kembali.
    2. Sensor PIR
    Saat sensor PIR mendeteksi pergerakan orang di depan pintu, maka sensor berlogika 1 dan terkirim ke arduino master. Selanjutnya arduino master mengirimkan data sensor PIR ke arduino slave yang mana pada arduino slave jika menerima pesan 1 untuk sensor PIR, maka akan menggerakkan servo2 sejauh 135° yang menyebabkan pintu terbuka. Saat tidak ada orang lewat, maka sensor berlogika 0 sehingga servo2 tidak aktif dan pintu tertutup.
    3. Sensor DHT22
    Sensor DHT22 berfungsi sebagai pendeteksi suhu dan kelembapan tempat tidur kucing.
    Jika DHT22 mendeteksi suhu tempat tidur lebih besar atau sama dengan dari 30°C, maka Arduino slave akan mengaktifkan relay kipas yang kemudian menghidupkan kipas, sedangkan heater tetap mati.
    Jika DHT22 mendeteksi suhu tempat tidur lebih kecil atau sama dengan dari 25°C, maka Arduino slave akan mengaktifkan relay heater yang kemudian menghidupkan heater, sedangkan kipas tetap mati.
    Jika DHT22 mendeteksi suhu tempat tidur di antara rentang 26°C - 29°C, maka Arduino slave akan memberikan pin Kipas dan pin Heater berlogika 0. Sehingga Heater dan Kipas tidak hidup.
    4. Sensor LDR
    Sensor LDR berfungsi untuk mendeteksi kondisi pencahayaan pada Persian Cat House. Sensor LDR mendeteksi kondisi Cahaya lebih besar dari threshold (700), maka sensor berlogika 1 dan mengirim input ke Arduino master. Arduino slave yang menerima data ini akan memberikan pin LED berlogika 0, yang membuat LED mati. Namun, jika LDR mendeteksi Cahaya dibawah threshold, sensor menginput logika 0 ke Arduino master. Selanjutnya Arduino slave akan memberikan pin LED berlogika 1 yang membuat relay LED aktif sehingga LED menyala
    5. Sensor Water Level
    Sensor water level berfungsi memantau kecukupan air minum kucing. Jika sensor water level mendeteksi air minum di bawah threshold (350), arduino master akan mengirimkan perintah ke LCD untuk menampilkan pesan “Air Habis ”. Arduino slave yang menerima data ini akan memberikan pin Buzzer berlogika 1, sehingga Buzzer berbunyi. Namun, jika sensor water level mendeteksi air minum di atas threshold (350), maka arduino master mengirimkan perintah ke LCD untuk menampilkan pesan “Air Cukup ”. Pin Buzzer akan berlogika 0 dan Buzzer mati.

    d. Flowchart dan Listing Program 
    [Kembali]
    • Flowchart
Master: 

Slave:
    • Listing Program
Master:

#include <Wire.h> // Library for I2C communication

#include <LiquidCrystal_I2C.h> // Library for I2C LCD

#include <DHT22.h>

 

// Pin Definitions

#define INFRA_SENSOR 5

#define PIR_SENSOR 13

#define DHT22_SENSOR 2

 

#define DHTTYPE DHT22 // Tipe sensor DHT22

 

const int ldrPin = A1;         // Pin analog yang terhubung ke sensor LDR    // thresholdW untuk mendeteksi keberadaan sinar matahari (disesuaikan sesuai dengan sensor yang digunakan)

const int WATER_SENSOR = A0;

const int thresholdW = 200;

 

// Initialize LCD

LiquidCrystal_I2C lcd(0x27, 16, 2);

 

DHT22 dht22(DHT22_SENSOR);

 

void setup() {

  Serial.begin(9600); // Serial monitor for debugging

  pinMode(INFRA_SENSOR, INPUT);

  pinMode(PIR_SENSOR, INPUT);

  pinMode(WATER_SENSOR, INPUT);

 

  lcd.init(); // Initialize the LCD

  lcd.backlight(); // Turn on the backlight

  lcd.begin(16, 2); // Initialize the LCD with 16 columns and 2 rows

 

  // Display initial message

  lcd.setCursor(0, 0);

  lcd.print("System Starting");

  delay(200); // Wait for 2 seconds

}

 

void loop() {

 

  float t = dht22.getTemperature();

  float h = dht22.getHumidity();

 

 

  lcd.setCursor(0, 0);

  lcd.print("Tem:");

  lcd.print(t);

  lcd.print("C");

  lcd.setCursor(8, 0);

  lcd.print("Hum:");

  lcd.print(h);

  lcd.print("%");

  delay(200);

 

  int waterval = analogRead(WATER_SENSOR);

  int infra_state = digitalRead(INFRA_SENSOR);

  int pir_state = digitalRead(PIR_SENSOR);

  int ldrval = analogRead(ldrPin);

 

 waterval = analogRead(WATER_SENSOR);

  if (waterval < thresholdW) { // Ubah ambang batas sesuai kebutuhan

    lcd.setCursor(0, 1);

    lcd.print("Air Habis    ");

  } else {

    lcd.setCursor(0, 1);

    lcd.print("Air Cukup    ");

  }

 

  int infraval = (infra_state == HIGH) ? 1 : 0;

  int pirval = (pir_state == HIGH) ? 1 : 0;

 

  String dataString = String(infraval) + "," + String(pirval) + "," +

                      String(t) + "," + String(ldrval) + "," + String(waterval);

 

  Serial.println(dataString);

 

  delay(500);

}


Slave:

#include <Servo.h> // Library for Servo motor control

 

// Pin Definitions

#define SERVO1_PIN 7

#define SERVO2_PIN 11

#define LED_PIN 9

#define HEATER_PIN 3  // Pin yang terhubung ke relay atau driver heater

#define FAN_PIN 5

#define buzzer A2

 

// Initialize Servo

Servo myServo1;

Servo myServo2;

 

void setup() {

  Serial.begin(9600); // Serial monitor for debugging

  myServo1.attach(SERVO1_PIN); // Attach servo to pin

  myServo2.attach(SERVO2_PIN);

  pinMode(LED_PIN, OUTPUT);

  pinMode(HEATER_PIN, OUTPUT);

  pinMode(FAN_PIN, OUTPUT);

  pinMode(buzzer, OUTPUT);

}

 

void loop() {

  if (Serial.available() >= 5) { // Adjust the number of bytes received

 

    String dataString = Serial.readStringUntil('\n');

 

    int infraval = 0;

    int pirval = 0;

    int t = 0;

    int ldrval = 0;  // Using int for simplicity

    int waterval = 0;  // Using int for simplicity

 

    int commaIndex1 = dataString.indexOf(',');

    int commaIndex2 = dataString.indexOf(',', commaIndex1 + 1);

    int commaIndex3 = dataString.indexOf(',', commaIndex2 + 1);

    int commaIndex4 = dataString.indexOf(',', commaIndex3 + 1);

 

 // Konversi string ke integer

    infraval = dataString.substring(0, commaIndex1).toInt();

    pirval = dataString.substring(commaIndex1 + 1, commaIndex2).toInt();

    t = dataString.substring(commaIndex2 + 1, commaIndex3).toInt();

    ldrval = dataString.substring(commaIndex3 + 1, commaIndex4).toInt();

    waterval = dataString.substring(commaIndex4 + 1).toInt();

 

  if(infraval == HIGH) {

    myServo1.write(0);

    Serial.println("IR OFF");

  } else {

      myServo1.write(135);

    Serial.println("IR ON");

  }

 

  if(pirval == HIGH) {

      myServo2.write(0);

      Serial.println("Servo PIR mati");

  } else {

      myServo2.write(135);

      Serial.println("Servo PIR hidup");

  }

 

  if (t <= 25) {

      digitalWrite(HEATER_PIN, HIGH);

      digitalWrite(FAN_PIN, LOW);

      Serial.println("Turning HEATER ON, FAN OFF");

  } else if (t >= 30) {

      digitalWrite(FAN_PIN, HIGH);

      digitalWrite(HEATER_PIN, LOW);

      Serial.println("Turning FAN ON, HEATER OFF");

  } else {

      digitalWrite(HEATER_PIN, LOW);

      digitalWrite(FAN_PIN, LOW);

      Serial.println("Turning HEATER and FAN OFF");

  }

 

  if (ldrval >= 700) {

      digitalWrite(LED_PIN, LOW);

      Serial.println("Turning LED_PIN OFF");

  } else {

      digitalWrite(LED_PIN, HIGH);

      Serial.println("Turning LED_PIN ON");

  }

 

if (waterval >= 350) {

      digitalWrite(buzzer, LOW);

}

if (waterval < 350) {

      digitalWrite(buzzer, HIGH);

      Serial.println("buzzer aktif");

  }

 

 

  }

}


        e. Video Simulasi  [Kembali]
  • Video Demo

  • Video Revisi Alat 

        f. Download File  [Kembali]

Download rangkaian klik disini 
Download HMTL klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
  
Download video revisi alat klik disini  
Download Flowchart klik disini
  • Download Library
Download library Arduino 1 klik disini
Download library 
Arduino 2 klik disini
Download library Infrared sensor klik disini
Download library LCD klik disini
  • Download datasheet 
Download datasheet Arduino UNO klik disini
Download datasheet Infrared Sensor klik disini
Download datasheet LDR Sensor klik disini
Download datasheet Sensor PIR klik disini
Download datasheet DHT22 klik disini
Download datasheet Water Sensor klik disini
Download datasheet LCD klik disini
Download datasheet Resistor klik disini
Download datasheet Motor Servo klik disini
Download datasheet LED klik disini

Tidak ada komentar:

Posting Komentar