Project Smart Home Pada Pintu, Kipas dan Lampu




Project Smart Home Pada Pintu, Kipas, dan Lampu

Pratikum Mikroprosesor dan Mikrokontroler

1. Tujuan Perancangan


1. Dapat merancang rangkaian smarthome berbasis mikrokontroler

2. Dapat merancang prototype smarthome berbasis mikrokontroler

3. Untuk mengetahui kinerja smarthome berbasis mikrokontroler

2. Komponen

A. Alat

1. Gunting


2. Solder


3. Tang Potong


4. Pisau


5. Laptop


B. Bahan
 
1. Arduino Uno


2. Bread Board


3. Jumper



4. Resistor


5. Potensiometer


C. Komponen Input

1. Sensor RFID


2. Sensor LDR


3. Sensor LM35


D. Komponen Output

1. LED


2. LCD


3. Motor Servo


4. Fan DC

3. Dasar Teori

1. Mikrokontroler

    Mikrokontroler adalah sebuah komputer kecil yang dikemas dalam bentuk chip IC (Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu. Pada dasarnya, sebuah IC Mikrokontroler terdiri dari satu atau lebih Inti Prosesor (CPU), Memori (RAM dan ROM) serta perangkat INPUT dan OUTPUT yang dapat diprogram.

    Dalam pengaplikasiannya, Pengendali Mikro yang dalam bahasa Inggris disebut dengan Microcontroller ini digunakan dalam produk ataupun perangkat yang dikendalikan secara otomatis seperti sistem kontrol mesin mobil, perangkat medis, pengendali jarak jauh, mesin, peralatan listrik, mainan dan perangkat-perangkat yang menggunakan sistem tertanam lainnya.

2. Mikroprosesor

    Mikroprosesor dalam perkembangan komputer digital disebut sebagai Central Processing Unit (CPU) yang bekerja sebagai pusat pengolah dan pengendalian pada sistem komputer mikro. Sebuah mikroprosesor tersusun dari tiga bagian penting yaitu : Arithmetic Logic Unit (ALU), Register Unit (RU), dan Control Unit (CU).
Gambar. Bagian-bagian Mikroprosesor

Untuk membangun fungsi sebagai komputer mikro, sebuah mikroprosesor harus dilengkapi dengan memori, biasanya memori program yang hanya bisa dibaca (Read Only Memory=ROM) dan memori yang bisa dibaca dan ditulisi (Read Write Memory=RWM), decoder memori, osilator, dan sejumlah peralatan input output seperti port data seri dan paralel. Pokok dari penggunaan mikroprosesor adalah untuk mengambil data, membentuk kalkulasi, perhitungan atau manipulasi data, dan menyimpan hasil perhitungan pada peralatan penyimpan atau menampilkan hasilnya pada sebuah monitor atau cetak keras.

Blok diagram
Gambar. Blok Diagram Mikroprosesor

3. Proses ADC (Analog To Digital Converter)

    ADC (Analog To Digital Converter) adalah perangkat elektronika yang berfungsi untuk mengubah sinyal analog (sinyal kontinyu) menjadi sinyal digital. Perangkat ADC (Analog To Digital Convertion) dapat berbentuk suatu modul atau rangkaian elektronika maupun suatu chip IC. ADC (Analog To Digital Converter) berfungsi untuk menjembatani pemrosesan sinyal analog oleh sistem digital.

    Cara kerja ADC adalah dengan mengkonversikan sinyal analog menjadi kode biner yang dimengerti oleh perangkat digital. Untuk melakukan hal tersebut, ada beberapa proses yang harus dilalui.

Berikut ini setiap proses tahapan kerja dari ADC

Gambar. Proses ADC

    1. Sampling

    Sampling atau disebut juga pencuplikan adalah proses mengambil sebuah nilai pasti (diskrit) pada suatu data kontinyu dalam suatu titik tertentu dengan perioda yang tetap. Sampling mengambil sampel dari sinyal analog pada titik tertentu secara beraturan.

    Dalam prosesnya, nilai sampling hasilnya adalah 2 kali dari frekuensi input. Jadi, misal frekuensi input adalah 30 Hz, maka hasil nilai sampling nantinya minimal ada 60 Hz.

    2. Kuantisasi

    Kuantisasi adalah proses mengelompokkan data hasil sampling kedalam kelompok-kelompok data. Dalam matematika, kuantisasi adalah proses pemetaan nilai input seperti nilai pembulatan.

    Misalnya saja kuantisasi dalam sistem digital 2 bit. dengan 2 bit maka dapat diperoleh level kuantisasi sebanyak 4 level berbeda yaitu 00, 01,10, dan 11. Formula mencari level kuantisasi adalah 2n (2 pangkat n), dimana n adalah jumlah bit.

    3. Pengkodean/koding

    Pengkodean adalah proses mengubah besaran data sampling kedalam bentuk digital biner berdasarkan level kuantisasi. Misalkan data kuantisasi 2bit, maka urutan sinyal sampling adalah satu dari empat level kuantisasi.

    Misalnya data sampling pertama dinamakan D1, data kedua D2 dst, maka jika D1 berada pada lebel kuantisasi 10 maka kode biner yang keluar adalah 10, dan D2 yang berada pada kuantisasi 11 akan menghasilkan data 11.

4. Komunikasi UART

    Universal Asynchronous Receiver Transmitter (UART) adalah metode komunikasi serial yang memungkinkan dua komponen perangkat yang berbeda untuk berinteraksi satu sama lain tanpa clock.

    Cara kerja dari UART adalah UART yang akan mengirimkan data akan menerima data dari bus jaringan. Bus data digunakan oleh komputer lain seperti CPU, memori, atau mikrokontroler untuk mengirim data ke UART. Data dilewatkan secara paralel dari bus data ke transmitter UART. Setelah UART mentransmisikan data paralel dari bus jaringan, paket data dibangkitkan dengan memasukkan bit awal, bit paritas, dan bit stop. Pertama, pin Tx mengeluarkan paket data secara serial, sedikit demi sedikit. UART penerima pada pin Rx-nya membaca paket data sedikit demi sedikit. Kemudian Receiver UART mengubah data kembali menjadi bentuk paralel, menghilangkan bit awal, bit paritas, dan bit stop. Receiver UART akhirnya melewati paket data paralel ke ujung penerima bus data.

Gambar. Pin UART

5. Proses Pembentukan Sinyal 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. PWM atau Pulse Width Modulation ini digunakan menghasilkan sinyal analog dari perangkat Digital (contohnya dari Mikrokontroller).

    Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%). Semakin tinggi duty cycle dalam skala persen (%), maka semakin lebar pulsa highnya.

    Pembangkitan sinyal PWM yang paling sederhana adalah dengan cara membandingkan sinyal gigi gergaji sebagai tegangan carrier dengan tegangan referensi menggunakan rangkaian op-amp comparator.

    Cara kerja dari komparator analog ini adalah membandingkan gelombang tegangan gigi gergaji dengan tegangan referensi.

 
Gambar. Proses PWM



Saat nilai tegangan referensi lebih besar dari tegangan carrier (gigi gergaji) maka output comparator akan bernilai high. Namun saat tegangan referensi bernilai lebih kecil dari tegangan carrier, maka output comparator akan bernilai low. Dengan memanfaatkan prinsip kerja dari komparator inilah, untuk mengubah duty cycle dari sinyal output cukup dengan mengubah-ubah besar tegangan referensi. Besarnya duty-cycle rangkaian PWM ini

Kondisi yang sinyalnya selalu dalam kondisi ON disebut sebagai 100% Duty Cycle (Siklus Kerja 100%), sedangkan kondisi yang sinyalnya selalu dalam kondisi OFF (mati) disebut dengan 0% Duty Cycle (Siklus Kerja 0%).

Rumus untuk menghitung siklus kerja atau duty cycle dapat ditunjukkan seperti persamaan di bawah ini.
Atau


Dimana :

ton = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 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”

Tegangan keluaran dapat bervariasi dengan duty cycle menggunakan persamaan berikut.
Sehingga,

    Gambar berikut ini mewakili sinyal PWM dengan siklus kerja 60%. Seperti yang kita lihat, dengan mempertimbangkan seluruh periode waktu (ON time + OFF time), sinyal PWM hanya ON untuk 60% dari suatu periode waktu.
Gambar. Contoh Sinyal PWM Dengan Siklus Kerja 60%

6. Arduino Uno

    Arduino Uno adalah salah satu produk berlabel arduino yang sebenarnya adalah suatu papan elektronik yang mengandung mikrokontroler ATMega328 (sebuah keping yang secara fungsional bertindak seperti sebuah komputer). Piranti ini dapat dimanfaatkan untuk mewujudkan rangkaian elektronik dari yang sederhana hingga yang kompleks. Pengendalian LED hingga pengontrolan robot dapat diimplementasikan dengan menggunakan papan berukuran relatif kecil ini. Bahkan dengan penambahan komponen tertentu, piranti ini bisa dipakai untuk pemantauan kondisi pasien di rumah sakit dan pengendalian alat-alat di rumah.

Tabel. Indeks Board Arduino

Gambar. Arduino Uno

Blok Diagram Atmega

Gambar. Blok Diagram Atmega


    Memori flash, atau flash ROM (Read Only Memory) adalah tipe memori yang digunakan untuk menyimpan program. Program atau koding yang kita buat akan disimpan disini. Oleh karena itu, memori flash juga dikenal sebagai program ROM atau code ROM. Algoritma-algoritma yang kita buat dalam program, misalnya if..else, for, while, operasi aritmatika, dan sebagainya akan disimpan di dalam ROM. Memori dalam ROM tidak akan hilang bila daya ke papan Arduino ditiadakan (nonvolatile).

    Memori SRAM (Static Random Access Memory) adalah tipe memori yang digunakan untuk menyimpan data. Berbeda dengan ROM yang menyimpan program, memori bertipe RAM ini digunakan untuk menyimpan data. Data dalam memori ini akan hilang ketika daya ke mikrokontroler ditiadakan (volatile). Data disini misalnya saat kita mendeklarasikan variabel tertentu atau array, atau data hasil penjumlahan dan pengurangan, dan sebagainya. Oleh karena itu, efektivitas dalam pemrograman sebuah mikrokontroler menjadi tantangan tersendiri. Kita tidak boleh mendeklarasikan variabel sebanyak-banyaknya tanpa memperhatikan pertimbangan memori yang tersedia. Sebagai contoh, jika kita ingin membuat program logger yang melibatkan banyak data, kita disarankan menggunakan memori eksternal, misalnya SD card.

    Memori EEPROM (Electrically Erasable Programmable Read Only Memory), adalah tipe nonvolatile memori yang digunakan untuk menyimpan data yang sifatnya tidak sering dihapus, misalnya untuk menyimpan konfigurasi tertentu, password, atau data-data penting lainnya. Mikrokontroler Atmel dilengkapi sejumlah kecil ROM, dan dapat diakses menggunakan pustaka EEPROM pada Arduino.

Dari gambar blok diagram tersebut dapat dilihat bahwa ATMega8535 memiliki bagian-bagian sebagai berikut :

    1. Saluran I/O sebanyak 32 buah, yaitu Port A,Port B,Port C dan Port D.
    2. ADC 8 channel 10 bit.
    3. Tiga buah Timer/Counter dengan kemampuan pembanding.
    4. CPU yang terdiri atas 32 buah register.
    5. Watchdog timer dengan osilator internal.
    6. SRAM sebesar 512 byte.
    7. Memori Flash sebesar 8 KB dengan kemampuan Read While Write.
    8. Interrupt internal dan eksternal
    9. Port antarmuka SPI (Serial Peripheral Interface).
    10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
    11. Antarmuka komparator analog.
    12. Port USART untuk komunikasi serial

7. Sensor RFID (Radio Frequency Identification)

    Radio Frequency Identification atau yang biasa disingkat RFID merupakan sebuah perangkat elektronik kecil yang terdiri dari chip dan antena. Bagian chip mampu menyimpan 2.000 byte data. Label atau RFID Tag disebut transponder yang berfungsi sama dengan barcode. Prinsip kerja RFID adalah sistem identifikasi tanpa kabel yang memungkinkan pengambilan data tanpa harus bersentuhan seperti barcode dan magnetic card ATM.

    Dalam melaksanakan sistem kerjanya, RFID minimal membutuhkan dua buah perangkat yaitu TAG dan READER. RFID TAG merupakan sebuah alat yang melekat pada objek yang akan diidentifikasi olef RFID READER. RFID TAG dapat berupa pasif yang artinya tanpa baterai dan lebih banyak digunakan karena murah serta mempunyai ukuran lebih kecil.

    RFID TAG dapat berupa perangkat read-only yang berarti hanya dapat dibaca saja ataupun perangkat read-write yang berarti dapat dibaca dan ditulis ulang untuk update. RFID TAG mempunyai dua bagian penting yaitu Integrated Circuit (IC) yang berfungsi menyimpan dan memproses informasi. Dan antena yang berfungsi menerima dan mengirim sinyal RF.

    Sedangkan RFID READER merupakan alat pembaca RFID TAG yang terdiri dari pasif dalam artian hanya menerima sinal radio dari RFID TAG AKTF dan aktif yang memiliki sistem pembaca aktif dan memancarkan sinyal interogator serta meneima balasan autentikasi dari TAG.

Gambar. Sensor RFID


8. Sensor LDR (Light Dependent Resistor)

    Light Dependent Resistor (LDR) ialah jenis resistor yang berubah hambatannya karena pengaruh cahaya. Besarnya nilai hambatan pada sensor cahaya LDR tergantung pada besar kecilnya cahaya yang diterima oleh LDR itu sendiri. Bila cahaya gelap nilai tahanannya semakin besar, sedangkan cahayanya terang nilainya menjadi semakin kecil. LDR adalah jenis resistor yang biasa digunakan sebagai detektor cahaya atau pengukur besaran konversi cahaya. LDR terdiri dari sebuah cakram semikonduktor yang mempunyai dua buah elekrtroda pada permukaannya.

    Resistansi LDR berubah seiring dengan perubahan intensitas cahaya yang mengenainya. Dalam keadaan gelap resistansi LDR sekitar 10 MΩ dan dalam keadaan terang sebesar 1KΩ atau kurang. LDR terbuat dari bahan semikonduktor seperti senyawa kimia cadmium sulfide. Dengan bahan ini energi dari cahaya yang jatuh menyebabkan lebih banyak muatan yang dilepas atau arus listrik meningkat, artinya resistansi bahan telah mengalami penurunan. Seperti halnya resistor konvensional, pemasangan LDR dalam suatu rangkaian sama persis seperti pemasangan resistor biasa.

Gambar. Sensor LDR
Gambar. Grafik Sensor LDR

9. Sensor LM35

    Sensor suhu IC LM 35 merupkan chip IC produksi natioanal semiconductor yang berfungsi untuk mengetahui temperatur suatu objek atau ruangan dalam bentuk besaran elektrik, atau dapat juga di definisikan sebagai komponen elektronika yang berfungsi untuk mengubah perubahan temperature yang diterima dalam perubahan besaran elektrik. Sensor suhu IC LM35 dapat mengubah perubahan temperatur menjadi perubahan tegangan pada bagian outputnya. Sensor suhu IC LM35 membutuhkan sumber tegangan DC +5 volt dan konsumsi arus DC sebesar 60 µA dalam beroperasi. Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control yang sangat mudah. IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC), dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor LM35 berfungsi untuk mengubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV

    Secara prinsip sensor akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi suhunya akan sedikit berkurang sekitar 0,01 ºC karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh lebih tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35 berada pada suhu permukaan dan suhu udara disekitarnya .

    3 pin LM35 menujukan fungsi masing-masing pin diantaranya, pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat digunakan antara 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10 mV setiap derajad celcius sehingga diperoleh persamaan sebagai berikut :

VLM = Suhu x 10mV

Gambar. Sensor LM35

Gambar. Grafik Sensor LM35

10. LCD (Liquid Crystal Display)

    LCD merupakan salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf, atau grafik. LCD membutuhkan tegangan dan daya yang kecil sehingga sering digunakan untuk aplikasi pada kalkulator, arloji digital, dan instrumen elektronik seperti multimeter digital. LCD memanfaatkan silikon dan galium dalam bentuk kristal cair sebagai pemendar cahaya. Pada layar LCD, setiap matrik adalah susunan dua dimensi piksel yang dibagi dalam baris dan kolom. Dengan demikian, setiap pertemuan baris dan kolom terdiri dari LED pada bidang latar (backplane), yang merupakan lempengan kaca bagian belakang dengan sisi dalam yang ditutupi oleh lapisan elektroda transparan. Dalam keadaan normal, cairan yang digunakan memiliki warna cerah. Kemudian daerah-daerah tertentu pada cairan tersebut warnanya akan berubah menjadi hitam ketika tegangan diterapkan antara bidang latar dan pola elektroda yang terdapat pada sisi dalam kaca bagian depan. Keunggulan menggunakan LCD adalah konsumsi daya yang relatif kecil dan menarik arus yang kecil (beberapa mikro ampere), sehingga alat atau sistem menjadi portable karena dapat menggunakan catu daya yang kecil. Keunggulan lainnya adalah ukuran LCD yang pas yakni tidak terlalu kecil dan tidak terlalu besar, kemudian tampilan yang diperlihatkan dari LCD dapat dibaca dengan mudah dan jelas

Spesifikasi pada LCD 16x2 adalah sebagai berikut :

1. Terdiri dari 16 kolom dan 2 baris

2. Mempunyai 192 karakter yang tersimpan

3. Tegangan kerja 5V

4. Memiliki ukuran yang praktis

    Prinsip kerja LCD 16x2 adalah dengan menggunakan lapisan film yang berisi kristal cair dan diletakkan di antara dua lempeng kaca yang telah dipasang elektroda logam transparan. Saat tegangan dicatukan pada beberapa pasang elektroda, molekul-molekul kristal cair akan menyusun agar cahaya yang mengenainya akan diserap. Dari hasil penyerapan cahaya tersebut akan terbentuk huruf, angka, atau gambar sesuai bagian yang diaktifkan. Untuk membentuk karakter atau gambar pada kolom dan baris secara bersamaan digunakan metode screening. Metode screening adalah mengaktifkan daerah perpotongan suatu kolom dan baris secara bergantian dan cepat sehingga seolah-olah aktif semua.
Gambar. LCD

11. LED (Light Emitting Diode)

    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.

    LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan proses doping dalam semikonduktor adalah proses untuk menambahkan ketidakmurnian (impurity) pada semikonduktor yang murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan. Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P) menuju ke Katoda (K), Kelebihan Elektron pada N-Type material akan berpindah ke wilayah yang kelebihan Hole (lubang) yaitu wilayah yang bermuatan positif (P-Type material). Saat Elektron berjumpa dengan Hole akan melepaskan photon dan memancarkan cahaya monokromatik (satu warna).

Gambar. Prinsip Kerja LED

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.

12. Motor Servo

    Servo motor, yang juga dikenal sebagai control motor, merupakan sebuah perangkat atau aktuator putar (motor). Motor tersebut dirancang dengan sistem kontrol feedback loop yang tertutup (servo), sehingga dapat diatur untuk menentukan dan memastikan posisi sudut dari poros output motor. Prinsip kerja servo motor mirip dengan motor elektromagnetik lainnya, tapi susunan dan cara kerjanya berbeda. Dayanya bervariasi dari beberapa watt sampai ratusan watt. Servo motor digunakan untuk berbagai keperluan, mulai dari radar, komputer, sistem pelacakan, peralatan mesin, dan lain sebagainya. Servo motor ini dibagi menjadi dua, AC dan DC servo motor.

Gambar. Motor Servo

Prinsip kerja motor servo
    Cara kerjanya, servo motor dikendalikan dengan memberikan Pulse Wide Modulation / PWM melalui kabel kontrol. Durasi “denyut” (pulse) yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Contohnya nih, durasi “denyut” 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). Sementara itu, 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).

Ketika durasi “denyut”nya telah diberikan, maka poros motor servo akan bergerak dan bertahan di posisi yang telah diperintahkan. Jika ada 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 posisi motor servo tidak akan seterusnya diam saja, karena sinyal “denyut”nya harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar ia tetap pada posisinya.

4. Rangkaian Simulasi


5. Hardware Prototype




6. Listing Program

Master

#define TempPin A0
#define LDRPin A1
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10 
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.

int TempValue;
int LDRValue;


void setup()
{
  Serial.begin(9600); // Initializing Serial Port
  SPI.begin();  // Initiate  SPI bus 
  mfrc522.PCD_Init(); // Initiate MFRC522

}
void loop()
{


  //LM35
  {TempValue = analogRead(TempPin); // Getting LM35 value and saving it in variable
  float TempCel = ( TempValue/1024.0)*500; // Getting the celsius value from 10 bit analog value
  //Serial.println(TempCel);
  Serial.print("UART LM35 =");
  
  if(TempCel >= 30){
    Serial.println('5');
  }
  else {
    Serial.println('6');
  }
  
  delay(1000);}

// LDR 
    {LDRValue = analogRead(LDRPin); // Getting LM35 value and saving it in variable
  //Serial.println(LDRValue);
  Serial.print("UART LDR =");
  if(LDRValue >= 100){
    Serial.println('3');
  }
  else {
    Serial.println('4');
  }
  delay(100);}

// RFID
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  } 
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())  
  {
    return;
  } 
  //Show UID on serial monitor
  String content= ""; 
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++)  
  {
     //Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     //Serial.print(mfrc522.uid.uidByte[i], HEX); 
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX)); 
  }
  //Serial.println();
  //Serial.print("Message : ")
  content.toUpperCase(); 
  Serial.print("UART RFID =");
  if (content.substring(1) == "37 6E 90 89") //&& statuspir = LOW ) //change here the UID of the card/cards that you want to give access
  { 
    Serial.println("1");
    delay(1000);
  } 
  else
  { 
    Serial.println("2");
    delay(1000);
  }
}


Slave

//Receiver (Rx) Arduino Board Code

#include <Servo.h>
#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
char serialinput  = (' ');
byte LED = 12;
byte motor = 10;
Servo myservo; 
int pos = 0;
#define buzzer 8
 
void setup()
{
   Serial.begin(9600);
   pinMode(LED, OUTPUT);
   pinMode(motor, OUTPUT);
   lcd.begin(16, 2); // set up the LCD's number of columns and rows:
   myservo.attach(11);
   myservo.write(90);
   pinMode(buzzer, OUTPUT); 
   
}
void loop()
{
   if(Serial.available()>0)
//   int data = Serial.read();
   {
      char serialinput = Serial.read();
      if (serialinput =='5') { digitalWrite(motor, HIGH); 
//      lcd.clear();
//      lcd.setCursor(0,0);
//      lcd.print("Kipas Hidup");
//      delay(2000);
//      lcd.clear();
      }
      if (serialinput =='6') { digitalWrite(motor, LOW); }
      if (serialinput =='3') { digitalWrite(LED, HIGH); }
      if (serialinput =='4') { digitalWrite(LED, LOW); }     
    if (serialinput == '1') 
    {
      myservo.write(180); // tell servo to go to position in variable 'pos'
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("RFID STATUS:");
      lcd.setCursor(0,1);
      lcd.print("PINTU TERBUKA");
      digitalWrite(buzzer,HIGH);
      delay(50);
      digitalWrite(buzzer,LOW);
      delay(50);
      digitalWrite(buzzer,HIGH);
      delay(50);
      digitalWrite(buzzer,LOW);
      delay(4700);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Selamat Datang");
      lcd.setCursor(0,1); 
      lcd.print("Terimakasih");
      delay(5000);         
      myservo.write(90);
      lcd.clear();      } 
        else if (serialinput == '2')
    { 
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("RFID STATUS:");
      lcd.setCursor(0,1);
      lcd.print("AKSES DITOLAK");
      digitalWrite(buzzer,HIGH);
      delay(500);
      digitalWrite(buzzer,LOW);
      lcd.clear();    
    }
      Serial.println(serialinput);
   }
   }
   

7. Flowchart
Master 



Slave


8. Prinsip Kerja

    Aplikasi smart home ini memakai 3 buah sensor, yaitu sensor LDR, LM35 dan RFID. Dimana sensor ini memiliki masing - masing fungsi agar rumah dapat bekerja secara otomatis sesuai dengan input suhu dengan output LDR adalah lampu hidup, LM35 outputnya kipas menyala dan RFID dengan output pintu terbuka.

    Pada LDR berfungsi untuk mengetahui keadaan siang dan malam sebagai input pengatur lampu otomatis. cara kerja sensor LDR adalah ketika intensitas cahaya ditempat tersebut berkurang makan photo dioda akan menurunkan resitansi sehingga hambatan pada arus akan semakin kecil dan lampu akan menyala secara otomatis .

    Pada LM35 berfungsi untuk mendeteksi suhu ruangan sebagai kontrol input kipas otomatis dimana ketika suhu mencapai kurang lebih 30 derjat maka kipas menyala. Prinsip kerja sensor LM35 akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Sinyal suhu di sekitar ruangan akan di deteksi oleh sensor LM35 dimana sensor LM35 mendeteksi sinyal dalam bentuk tegangan.

    Pada RFID berfungsi sebagai buka pintu otomatis tanpa perlu menggunakan kunci. Apabila kartu chip disentuh pada sensor RFID maka pintu akan otomatis terbuka. RFID menggunakan sistem identifikasi dengan gelombang radio. Untuk itu minimal dibutuhkan dua buah perangkat, yaitu yang disebut TAG dan READER. Saat pemindaian data, READER membaca sinyal yang diberikan oleh RFID TAG.

    RFID TAG Adalah sebuah alat yang melekat pada obyek yang akan diidentifikasi oleh RFID READER. RFID TAG dapat berupa perangkat pasif atau aktif. TAG pasif artinya tanpa battery dan TAG aktif artinya menggunakan battery. TAG pasif lebih banyak digunakan karena murah dan mempunyai ukuran lebih kecil. RFID TAG dapat berupa perangkat read-only yang berarti hanya dapat dibaca saja ataupun perangkat read-write yang berarti dapat dibaca dan ditulis ulang untuk update. RFID TAG mempunyai dua bagian penting, yaitu: IC atau kepanjangan dari Integrated Circuit, yang berfungsi menyimpan dan memproses informasi, modulasi dan demodulasi sinyal RF, mengambil tegangan DC yang dikirim dari RFID READER melalui induksi, dan beberapa fungsi khusus lainya. RFID READER Adalah merupakan alat pembaca RFID TAG. Ada dua macam RFID READER yaitu READER PASIF dan READER AKTIF. READER PASIF memiliki sistem pambaca pasif yang hanya menerima sinya radio dari RFID TAG AKTIF (yang dioperasikan dengan barrety/sumber daya). Jangkauan penerima RFID PASIF bisa mencapai 600 meter. Hal ini memungkinkan aplikasi RFID untuk sistem perlindungan dan pengawasan aset.

    READER AKTIF memiliki sistem pembaca aktif yang memancarkan sinyal interogator ke TAG dan menerima balasan autentikasi dari TAG. Sinyal interogator ini juga menginduksi TAG dan akhirnya menjadi sinyal DC yang menjadi sumber daya TAG PASIF.

9. Video

Video Simulasi


Video Prototype


10. Link Download

Rangkaian Simulasi [Klik]
Listing Program Master [Klik]
Listing Program Slave [Klik]
Video Simulasi [Klik]
Video Prototype [Klik]
Datasheet Arduino Uno [Klik]
Datasheet Resistor [Klik]
Datasheet LED [Klik]
Datasheet LCD [Klik]
Datasheet Motor Servo [Klik]
Datasheet Sensor RFID [Klik]
Datasheet Sensor LDR [Klik]
Datasheet Sensor LM35 [Klik]