Anda di halaman 1dari 31

LAPORAN

TUGAS BESAR EMBEDDED SYSTEM

NAMA : M. Luthfi Tantowi (140910160009)


Andre Haliim K (140910160017)
Dimas Adrian Mukti (140910160023)
Ega Guntara (140910160035)
Alkhan M. Rizki (140910160043)

Judul Percobaan : Pengunci Pintu Solenoid Lock berbasis RFID


dan Webserver ESP8266

DEPARTEMEN TEKNIK ELEKTRO


PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2019
Kata Pengantar

Assalamu’alaikum warahmatullahi wabarakatuh.


Segala puji bagi Allah SWT yang telah memberikan kami kemudahan
sehingga kami dapat menyelesaikan makalah ini dengan tepat waktu. Tanpa
pertolongan-Nya tentunya kami tidak akan sanggup untuk menyelesaikan makalah
ini dengan baik. Shalawat serta salam semoga terlimpah curahkan kepada baginda
tercinta kita yaitu Nabi Muhammad SAW yang kita nanti-natikan syafa’atnya di
akhirat nanti.
Penulis mengucapkan syukur kepada Allah SWT atas limpahan nikmat
sehat-Nya, baik itu berupa sehat fisik maupun akal pikiran, sehingga penulis
mampu untuk menyelesaikan pembuatan makalah sebagai tugas akhir dari mata
kuliah Hukum Acara Peradilan Agama dengan judul “Kanker dan Pengobatannya”.
Penulis tentu menyadari bahwa makalah ini masih jauh dari kata sempurna
dan masih banyak terdapat kesalahan serta kekurangan di dalamnya. Untuk itu,
penulis mengharapkan kritik serta saran dari pembaca untuk makalah ini, supaya
makalah ini nantinya dapat menjadi makalah yang lebih baik lagi. Kemudian
apabila terdapat banyak kesalahan pada makalah ini penulis mohon maaf yang
sebesar-besarnya.
Penulis juga mengucapkan terima kasih kepada semua pihak khususnya
kepada guru Bahasa Indonesia kami yang telah membimbing dalam menulis
makalah ini.
Demikian, semoga makalah ini dapat bermanfaat. Terimakasih.

Bandung, 26 Mei 2019

Penulis

i
Abstrak

PENGUNCI PINTU SOLENOID LOCK BERBASIS RFID DAN


WEBSERVER ESP8266

Oleh:
Kelompok 8
Tugas Besar Embedded Sistem

Sistem keamanan pintu yang sering dijumpai pada kebanyakan rumah saat
ini masih menggunakan cara konvensional. Cara tersebut masih memiliki
banyak kekurangan seperti penggunaannya yang kurang praktis dan masih
rentan akan tindak kriminal. Salah satu tindak kriminal yang sering terjadi
adalah perampokan terhadap rumah-rumah yang masih menggunakan sistem
tersebut.
Untuk mengurangi permasalahan tersebut maka dilakukan pengembangan
sistem pengunci pintu. Selain itu, pengembangan alat ini bertujuan untuk
memenuhi tugas besar mata kuliah Embbeded Sistem. Sistem ini bekerja
dengan cara menggunakan solenoid untuk membuka pintunya secara otomatis
serta Arduino sebagai dasar sistem kerjanya. Dengan input data berupa id card
maka pengguna dapat menjalankan sistem tersebut dan pintu dapat terbuka
secara otomatis.
Maka dengan menggunakan sistem solenoid lock ini, dapat membuat
rumah-rumah yang masih menggunakan sistem kunci konvensional memiliki
keamanan lebih sehingga dapat meminimalisir tingkat kejahatan yang terjadi
dan dapat mengefisiensikan cara kerja kunci pada pintu rumah.

ii
DAFTAR ISI
Kata Pengantar ................................................................................................. i
Abstrak ............................................................................................................. ii
Daftar Isi........................................................................................................... iii
BAB I Pendahuluan ......................................................................................... 1
1.1.Latar Belakang ............................................................................... 1
1.2.Identifikasi...................................................................................... 1
1.3.Tujuan ............................................................................................ 1
BAB II Tinjauan Pustaka ................................................................................. 2
2.1.Teori Dasar ..................................................................................... 2
2.1.1. Sensor Radio Frekuensi ..................................................... 2
2.1.2. Webserver .......................................................................... 2
2.2.Alat ................................................................................................. 3
2.2.1. Arduino Nano ..................................................................... 3
2.2.2. Modul NodeMCU ESP 8266 ............................................. 4
2.2.3. Modul RFID ....................................................................... 6
2.2.4. Modul Relay Single Channel ............................................. 7
2.2.5. Solenoid Lock Door ........................................................... 8
2.2.6. Baterai LIPO 12V .............................................................. 9
2.2.7. Buzzer ................................................................................ 10
2.2.8. LED .................................................................................... 11
2.2.9. Dioda .................................................................................. 11
2.2.10. PCB Polos .......................................................................... 12
BAB III Metode Penelitian .............................................................................. 13
3.1.Sumber Data ................................................................................... 13
3.2.Teknik Pengumpulan Data ............................................................. 13
3.3.Teknik Analisis Data ...................................................................... 13
3.4.Desain Rangkaian........................................................................... 13
3.5.Rangkaian Skematik....................................................................... 13
3.6.Blok Diagram ................................................................................. 14
3.7.Flow Chart ...................................................................................... 14
3.8.State Machine Diagram .................................................................. 15
BAB IV Analisis dan Pembahasan .................................................................. 16
BAB V Kesimpulan ......................................................................................... 17
5.1.Kesimpulan .................................................................................... 18
5.2.Saran ............................................................................................... 18
DAFTAR PUSTAKA ...................................................................................... 19
LAMPIRAN ..................................................................................................... 20

iii
BAB I

PENDAHULUAN

1.1.Latar Belakang
Berdasarkan laporan statistik kriminalitas 2017, pada 2016 terjadi 43.842
kasus kejahatan. Rata-rata setiap setiap 11 menit 59 detik terjadi satu kasus
kejahatan. Dari semua kasus kejahatan itu, pembobolan rumah termasuk tiga
besar dari 22 kategori kriminalitas.
Tindak kriminal perampokan sangat membuat warga masyarakat resah,
khususnya di daerah perkotaan. Ada banyak cara yang dapat dilakukan untuk
menghindari tindak kriminal perampokan pada rumah maupun kantor, seperti
menyewa pertugas keamanan seperti satpam untuk berjaga-jaga. Tentu hal ini
akan menambah pengeluaran biaya perbulannya. Seringkali kita melihat
kejadian perampokan rumah maupun kantor masuk melalui jalur pintu dan
jendela, untuk jalur jendela dapat diatasi dengan memasang trailis besi,
sedangkan untuk jalur pintu sedikit sulit karena lebar pintu yang terlalu besar
serta merupakan akses utama masuk dan keluarnya orang.
Saat ini tingkat keamanan kunci pintu yang ada dipasaran sudah dapat
dikatakan tidak aman lagi. Dengan bermodalkan dua kawat seseorang dapat
membukan kunci pintu dengan mudah hanya dalam hitungan menit saja.
Disinilah awal dari permasalah tersebut, sistem keamanan kunci yang lemah.
Penerapan teknologi elektronika sebagai salah satu solusi diangap paling
relevan untuk di terapkan. Adapun sistem pengaman yang akan dibuat oleh
penulis adalah sistem pengaman yang dilengkapi dengan radio frequency
identification menggunakan ID KTP dan Webserver yang terhubung dengan
koneksi WiFi sehingga hanya orang tertentu yang dapat mengakses pintu rumah
tersebut.
1.2.Identifikasi
Terjadi banyak kejahatan yang disebabkan system keamanan pintu lemah
karena pada pintu konvensional terdapat lubang yang dapat dibuka hanya
dengan dua kawat.
1.3.Tujuan
Membuat system pintu rumah dengan teknologi RFID Sensor berbasis Arduino
Nano dan Webserver berbasis NodeMCU ESP8266.

1
BAB II

TINJAUAN PUSTAKA

2.1.Teori Dasar
2.1.1. Sensor Radio Frekuensi
Sensor RF (Radio Frekuensi) adalah komponen yang dapat
mendeteksi sinyal gelombang elektromagnetik digunakan oleh sistem
komunikasi untuk mengirim informasi melalui udara dari satu titik ke titik
lainnya yang merambat di antara antena pemancar pengirim dan penerima.
Sinyal gelombang elektromagnetik yang dipancarkan melalui antena
memiliki amplitudo, frekuensi, interval dan mempunyai sifat-sifat yang
dapat berubah-ubah setiap saat untuk mempersentasikan informasi.
Amplitudo mengindikasikan kekuatan sinyal dan ukuran yang
biasanya
berupa energi yang dianalogikan dengan jumlah usaha yang digunakan
seseorang pada waktu mengendarai sepeda untuk mencapai jarak tertentu.
Dalam konteksnya, sinyal gelombang elektromagnetik menggambarkan
jumlah energi yang diperlukan untuk mendorong sinyal pada jarak tertentu
yang mana ketika energi meningkat, jaraknya pun juga bertambah.
Sensor RF mempunyai 2 perangkat elektronik untuk mengirimkan sinyal
gelombang elektromagnetik yang terdapat pada perangkat transmitter dan
kemudian untuk menerima sinyal gelombang elektromagnetik tersebut yang
terdapat pada perangkat receiver.
Saat sinyal radio frekuensi merambat melalui udara, sinyal tersebut
akan kehilangan amplitudonya apabila jarak antara pengirim dan penerima
bertambah yang berakibat amplitudo sinyal menurun secara eksponensial.
Jadi, sinyal harus memiliki cukup energi untuk mencapai jarak di mana
tingkat sinyal bisa diterima sesuai yang dibutuhkan receiver.
Sensor RF sering digunakan pada pengendali jarak jauh tanpa kabel
(remote control) dengan menggunakan Amplitude Shift Keying (ASK).
Frekuensi yang digunakan pada proses pengiriman dan penerimaan harus
sama agar tidak adanya kegagalan komunikasi yaitu sebesar 315 MHz.
2.1.2. Webserver sebagai Sistem Kontrol
Web server adalah suatu perangkat lunak yang dijalankan pada
komputer server dan berfungsi agar dokumen internet server yang mampu
untuk melayani koneksi perpindahan data dalam protokol http web server
disamping e-mail. Middleware adalah perangkat lunak yang bekerja sama
dengan web server dan berfungsi menterjemahkan kode - kode tertentu,
menjalankan kode - kode tersebut dan memungkinkan berinteraksi dengan
basis data.

2
Seiring dengan berkembangnya teknologi, berbagai modul (alat)
yang memiliki system embedded dengan jaringan WiFi dapat dimanfaatkan
untuk mengendalikan alat melalui Webserver, salah satunya yaitu
NodeMCU ESP8266.
2.2.Alat
2.2.1. Arduino Nano
Arduino Nano adalah salah satu papan pengembangan
mikrokontroler yang berukuran kecil, lengkap dan mendukung penggunaan
protoboard. Arduino Nano diciptakan dengan basis mikrokontroler
ATmega328 (untuk Arduino Nano versi 3.x) atau ATmega 168 (untuk
Arduino versi 2.x). Arduino Nano kurang lebih memiliki fungsi yang sama
dengan Arduino Uno, tetapi dalam paket yang berbeda. Arduino Nano tidak
menyertakan colokan DC berjenis Barrel Jack, dan dihubungkan ke
komputer menggunakan port USB Mini-B. Arduino Nano dirancang dan
diproduksi oleh perusahaan Gravitech.
Tabel 2.1. Spesifikasi Arduino Nano

3
Gambar 2.1. Arduino Nano beserta pinnya
2.2.2. Modul NodeMCU ESP8266
NodeMCU pada dasarnya adalah pengembangan dari ESP 8266
dengan firmware berbasis e-Lua. Pada NodeMcu dilengkapi dengan micro
usb port yang berfungsi untuk pemorgaman maupun power supply. Selain
itu juga pada NodeMCU di lengkapi dengan tombol push button yaitu
tombol reset dan flash. NodeMCU menggunakan bahasa pemorgamanan
Lua yang merupakan package dari esp8266. Bahasa Lua memiliki logika
dan susunan pemorgaman yang sama dengan c hanya berbeda syntax. Jika
menggunakan bahasa Lua maka dapat menggunakan tool Lua loader
maupun Lua uploder.
Selain dengan bahasa Lua NodeMCU juga support dengan sofware
Arduino IDE dengan melakukan sedikit perubahan board manager pada
Arduino IDE.

4
Tabel 2.2. Spesifikasi NodeMCU ESP8266

Gambar 2.3. NodeMCU ESP8266

Gambar 2.4. Skematik posisi Pin NodeMcu Dev Kit v3

5
2.2.3. Modul RFID MFRC522
MFRC522 RFID Reader Module adalah sebuah modul berbasis IC
Philips MFRC522 yang dapat membaca RFID dengan penggunaan yang
mudah dan harga yang murah, karena modul ini sudah berisi komponen-
komponen yang diperlukan oleh MFRC522 untuk dapat bekerja. Modul ini
dapat digunakan langsung oleh MCU dengan menggunakan interface SPI,
dengan suplai tegangan sebesar 3,3V.
MFRC522 merupakan produk dari NXP yang menggunakan fully
integrated 13.56MHz non-contact communication card chip untuk
melakukan pembacaan maupun penulisan. MFRC522 support dengan
semua varian MIFARE Mini, MIFARE 1 K, MIFARE 4K, MIFARE
Ultralight, MIFARE DESFire EV1 and MIFARE Plus RF identification
rotocols.

Tabel 2.3. Spesifikasi Modul RFID MFRC522

Gambar 2.5. Modul RFID MFRC522 beserta pinnya

6
2.2.4. Modul Relay Single Channel
Relay terdiri dari tiga pin, biasanya pin terbuka, pin tertutup normal,
pin umum, dan koil. Ketika kumparan bertenaga pada medan magnet
dihasilkan kontak terhubung satu sama lain.

Gambar 2.6. Bagaimana Relay Bekerja

Seperti yang ditunjukkan dalam ide kerja relai, itu tergantung pada
medan magnet yang dihasilkan dari koil sehingga ada isolasi daya antara
koil dan pin switching sehingga koil dapat dengan mudah diberi daya dari
Arduino dengan menghubungkan pin VCC dan GND dari kit Arduino ke kit
modul relay setelah bahwa kita memilih pin output Arduino tergantung pada
jumlah relay yang dibutuhkan dalam proyek yang dirancang dan mengatur
pin ini untuk output dan membuatnya tinggi (5V) untuk mengontrol koil
yang memungkinkan mengendalikan proses switching.

Tabel 2.4. Spesifikasi Relay Single Channel

7
Gambar 2.7. Relay beserta pinnya

2.2.5. Solenoid Door Lock


Selenoid door lock adalah salah satu solenoid yang difungsikan
khusus se-bagai solenoid untuk pengunci pintu secara elektronik. Solenoid
ini mempunyai dua sistem kerja, yaitu Normaly Close (NC) dan Normaly
Open (NO). Perbedaan-ya adalah jika cara kerja solenoid NC apabila diberi
tegangan, maka selenoid akan memanjang (tertutup). Dan untuk cara kerja
dari Selenoid (NO) adalah kebali-kannya dari Solenoid (NC). Biasanya
kebanyakan solenoid Door Lock membu-tuhkan input atau tegangan kerja
12V DC tetapi ada juga solenoid Door Lock yang yang hanya membutuhkan
input tegangan 5V DC dan sehingga dapat lang-sung bekerja dengan
tegangan output dari pin IC digital. Namun jika anda menggunakan
Solenoid Door Lock yang 12V DC. Berarti anda membutuhkan power
supply 12V dan sebuah relay untuk mengaktifkannnya.

Tabel 2.5. Spesifikasi Solenoid Door Lock

8
Gambar 2.8. Selonoid Door Lock

2.2.6. Baterai Lipo 12V


Baterai Lithium Polimer atau biasa disebut dengan LiPo adalah salah
satu jenis baterai yang sering digunakan dalam dunia RC. Baterai ini
merupakan Baterai tercanggih dan paling maju dalam dunia Baterai saat ini.
Keunggulan utamanya adalah Ratio Power to Weight nya yang
memungkinkan baterai dicetak sesuai dengan keinginan.
Baterai Lipo didasarkan pada Lithium Polymer kimia yang
memungkinkan baterai ini memiliki kepadatan energi yang sangat tinggi
dibandingkan dengan jenis lain dari baterai. Sebuah baterai dengan
kepadatan energi yang lebih tinggi akan mampu menahan lebih banyak
energi dibandingkan dengan baterai lain dari berat yang sama, itu sebabnya
baterai Lipo biasanya digunakan untuk RC pesawat dan drone.

Gambar 2.9. Baterai Lipo sebagai sumber tegangan

9
2.2.7. Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk
mengubah getaran listrik menjadi getaran suara getaran listrik menjadi
getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan
loudspeaker, 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. Buzzer biasa digunakan sebagai indikator bahwa
proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

Tabel 2.7. Spesifikasi Buzzer

Gambar 2.10. Buzzer 5v

10
2.2.8. Light Emitting Diode
Light Emitting Diode (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.
Cara kerja LED hanya akan memancarkan cahaya apabila dialiri
tegangan maju (bias forward) dari Anoda menuju ke Katoda. 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 2.11. Light Emitting Diode

2.2.9. Dioda
Pengertian dioda (diode) adalah komponen elektronika aktif yang
terbuat dari bahan semikonduktor dan mempunyai fungsi untuk
menghantarkan arus listrik ke satu arah tetapi menghambat arus listrik dari
arah sebaliknya.

11
Gambar 2.12. Dioda
2.2.10. PCB Polos
PCB adalah singkatan dari “Printed Circuit Board” atau jika
diterjemahkan dalam bahasa Indonesia berarti Papan Rangkaian Cetak alias
Papan Sirkuit Cetak.
Seperti namanya, PCB ini punya bentuk papan yang berfungsi
sebagai tempat meletakkan komponen dan menghubungkan komponen satu
dengan komponen yang lain menggunakan jalur atau circuit konduktor
(biasanya berupa tembaga) yang ada di dalamnya.
Jika dirunut, dalam sebuah PCB terdiri dari beberapa jenis lapisan
mulai dari lapisan landasan (substrat), tembaga (copper), soldermask, dan
silkscreen.

Gambar 2.12. PCB Polos

12
BAB III
METODE PENELITIAN

3.1.Sumber Data
Terdapat dua sumber data yang diperoleh pada Tugas Besar kali ini, yaitu
ID pada kartu untuk pembacaan data RFID dan Webserver yang digunakan
untuk switch power system dengan menggunakan wifi sebagai media transfer
datanya, kedua data tersebut dapat dilihat pada blok diagram yang penulis
berikan.

3.2.Teknik Pengumpulan Data


Penulis melakukan pengamatan dan pengambilan data secara langsung dari
kartu identitas milik anggota kelompok dengan menggunakan prototype alat.

3.3.Teknik Analisis Data


Teknik analisis yang digunakan adalah kuantitatif karena pada system
menghasilkan data kuantitatif bervariasi dimana nantinya akan dilakukan
analisi keseluruhan untuk menilai system ini dapat bekerja dengan lancar.

3.4.Desain Rangkaian

Gambar 3.1. Desain rangkaian sistem

13
3.5.Rangkaian Skematik

Gambar 3.2. Skematik rangkaian sistem


3.6.Blok Diagram

Gambar 3.3. Block diagram sistem


3.7.Desain PCB

Gambar 3.4. Desain PCB sistem yang digunakan

14
3.8 Flow Chart

Gambar 3.5. Flowchart sistem pemograman

15
3.8.State Machine Diagram

Gambar 3.6. State Machine Diagram RFID sistem

Gambar 3.7. State Machine Diagram Webserver sistem

16
BAB IV

ANALISIS DAN PEMBAHASAN

Pada sistem keamanan yang dirancang, menggunakan 2 (dua) fitur yang


dapat membuka pengunci dari pintu yang diaplikasikan. Fitur tersebut adalah
penggunaan Radio Frequency Identification (RFID) dan Webserver berbasis Wi-
Fi.
Digunakan modul nodemcu ESP8266 sebagai mikrokontroller penerima
sinyal Wi-Fi untuk Webserver. Terdapat program tersendiri pada modul ini, yang
dimana dapat terhubung dengan aplikasi telefon genggam yaitu Telegram.
Penggunaan aplikasi tersebut dimaksudkan karna terdapatnya fitur BotAPI, yang
dapat berkomunikasi dengan nodemcu. Untuk dapat membuka pengunci, perlu
perintah khusus yang harus dimasukan pada Telegram yang ditentukan terlebih
dahulu di program dalam nodemcu.
Sistem RFID yang dirancang digunakan untuk mendeteksi frekuensi pada
kartu tertentu yang dimana tertanam ID unik didalamnya. Digunakan RFID RC522
pada rangkaian. Program pada mikrokontroller Arduino Nano diatur agar hanya ID
unik tertentu saja yang dapat membuka pengunci ketika kartu ditempelkan pada
tranducer RFID. ID unik pada program dan kartu yang digunakan oleh pengguna
tentunya harus sama agar pengunci dapat terbuka. ID unik yang dipersilahkan
adalah:
1 "04 84 57 6A C6 2E 80" untuk ‘Dimas’ sebagai pengguna
2 "04 6B 08 8A FE 2A 80" untuk ‘Ega’ sebagai pengguna
3 "D6 B3 42 1E" untuk ‘Babeh’ sebagai pengguna
Indikator penanda sistem untuk mempersilahkan dan melarang pengguna
membuka pengunci adalah Buzzer dan LED, LED Merah menandakan perbedaan
ID unik pada pengguna dan LED Hijau menandakan persamaan ID unik pada
pengguna.
Penguncinya sendiri menggunakan Solenoid Lock. Pengunci (lock) akan
tertarik (open) ketika ada tegangan yang mengalir pada lilitan (solenoid).
Digunakan relay sebagai switch dimana jika diberikan tegangan tertentu akan
meneruskan tegangan kepada lilitan (solenoid) sehingga pengunci (lock) akan
tertarik (open) dan pengunci terbuka. Pemberi tegangannya adalah output dari
RFID (Arduino Nano) dan atau Webserver (nodemcu ESP8266). Dikarnakan
terdapat dua pemberi tegangan, perlu digunakan diode untuk menahan pemberian
tegangan satu sama lain, agar tidak terjadi tabrakan antar tegangan.

17
BAB V

KESIMPULAN

5.1.Kesimpulan
Sistem kunci yang penulis buat berbasis Arduino dengan dua buah input yang
terpisah, yaitu ID dari kartu pengguna yang digunakan sebagai data sensor
RFID dan Webserver sebagai switch power system dengan konektifitas wifi
sehingga terhubung dengan modul nodeMCU pada rangkaian system, dan
dengan satu output yaitu solenoid yang berfungsi sehingga pintu dapat dibuka.

5.2.Saran
Karena system yang penulis buat masih dalam bentuk prototype, diharapkan
kedepannya dapat diimplementasikan kedalam pintu yang sebenarnya.

18
DAFTAR PUSTAKA

[1] Tobing, S. L. (2014). RANCANG BANGUN PENGAMAN PINTU


MENGGUNAKAN SIDIK JARI (FINGERPRINT) DAN SMARTPHONE
ANDROID BERBASIS MIKROKONTROLER ATMEGA8. Jurnal Teknik
Elektro Universitas Tanjungpura, 1(1).
[2] Yudahnto, Y. 28 Mei 2019. Apa itu IOT (Internet Of Things) ?. Komunitas
eLearning IlmuKomputer.Com, (Online), (yuda@mipa.uns.ac.id, diakses 28 Mei
2019)
[3] Badan Pusat Statistik. 2016. Statistik Kriminal 2016. Jakarta: Badan Pusat
Statistik
[4] Atmadera, N. 2016. BAB II_3, [pdf], (eprints.polsri.ac.id, diakses 28 Mei 2019)
[5] Ramakumbo, A.R. 2012. MAGNETIC DOOR LOCK MENGGUNAKAN
KODE PENGAMAN BERBASIS AT MEGA 328. Yogyakarta: Universitas Negeri
Yogyakarta.
[6] Future Electronic Colaboration.2015.Relay Modules, [pdf], (facegypt.com,
diakses 28 Mei 2019)
[7] John. 2018. Arduino Nano Tutorial – Pinout & Schematics.
http://www.circuitstoday.com/arduino-nano-tutorial-pinout-schematics. (26 Mei
2019).
[8] ________. 2019. Mengenal Arduino Nano. http://family-
cybercode.blogspot.com/2016/01/mengenal-arduino-nano.html (26 Mei 2019).
[9] Agus Faudin. 2017. Tutorial Arduino mengakses module RFID RC522.
https://www.nyebarilmu.com/tutorial-arduino-mengakses-module-rfid-rc522/ (26 Mei
2019).
[10] Budiawan Sidik A. 2018. Ada Celah, Rumah Dibobol.
https://www.pressreader.com/ (26 Mei 2019)

19
LAMPIRAN

1. Program yang digunakan pada sistem

A. Program Sistem RFID


#include <SPI.h> //input library
#include <MFRC522.h> //input library RFID

#define SS_PIN 10 //deklarasi pin 10 sebagai input SDA RFID


#define RST_PIN 9 //deklarasi pin 9 sebagai reset RFID
#define LED_G 5 //deklarasi LED hijau sebagai indikator pintu terbuka
#define LED_R 4 //deklarasi LED merah sebagai indikator pintu tertutup
#define RELAY 3 //deklarasi pin 3 sebagai input relay
#define BUZZER 2 //deklarasi input bazzer pada pin 2
#define ACCESS_DELAY 2000
#define DENIED_DELAY 1000
MFRC522 mfrc522(SS_PIN, RST_PIN); // membuat instansi MFRC522.

void setup()
{
Serial.begin(9600); // inisiasi serial komunikasi PC dan arduino
SPI.begin(); // inisiasi alamat bus SPI RFID
mfrc522.PCD_Init(); // inisiasi sensor RFID
pinMode(LED_G, OUTPUT); //deklarasi pin output lED hijau
pinMode(LED_R, OUTPUT); //deklarasi pin output LED merah
pinMode(RELAY, OUTPUT); //deklarasi pin output relay
pinMode(BUZZER, OUTPUT); //deklarasi pin output buzzer
noTone(BUZZER); //deklarasi untuk mematikan buzzer
digitalWrite(RELAY, HIGH); /*karena output mikrokontroller adalah active
low, maka deklarasi awal output relay adalah high */
Serial.println("Put your card to the reader..."); //menampilkan informasi ke
serial monitor
Serial.println(); //menampilkan informasi line space ke serial monitor

}
void loop()
{
// Mencari kartu baru
if ( ! mfrc522.PICC_IsNewCardPresent()) //mencari informasi yang
dimasukan
{
return;

20
}
// Memilih salah satu kartu
if ( ! mfrc522.PICC_ReadCardSerial()) //
{
return;
}
//Menampilkan UID kartu pada serial monitor
Serial.print("UID tag :");
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();
if (content.substring(1) == "04 84 57 6A C6 2E 80") //change here the UID of
the card/cards that you want to give access
{
Serial.println("Halo dimas");
Serial.println();
delay(500);
digitalWrite(RELAY, LOW);
digitalWrite(LED_G, HIGH);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
digitalWrite(LED_G, LOW);
}
else if (content.substring(1) == "04 6B 08 8A FE 2A 80")
{
Serial.println("Halo Ega");
Serial.println();
delay(500);
digitalWrite(RELAY, LOW);
digitalWrite(LED_G, HIGH);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
digitalWrite(LED_G, LOW);
}

21
else if (content.substring(1) == "D6 B3 42 1E")
{
Serial.println("Halo babeh");
Serial.println();
delay(500);
digitalWrite(RELAY, LOW);
digitalWrite(LED_G, HIGH);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
digitalWrite(LED_G, LOW);
}
else {
Serial.println(" Access denied");
digitalWrite(LED_R, HIGH);
tone(BUZZER, 300);
delay(DENIED_DELAY);
digitalWrite(LED_R, LOW);
noTone(BUZZER);
}
}

B. Program NodeMCU ESP8266 Webserver & Telegram


#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>

// Initialize Wifi connection to the router


char ssid[] = "dimasku"; // your network SSID (name)
char password[] = "dimaskami"; // your network key

// Initialize Telegram BOT


#define BOTtoken "866385828:AAGQ6tQubT9bGrko-
d8ZeNVf0IApOTMURP4" // your Bot Token (Get from Botfather)

WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

int Bot_mtbs = 1000; //mean time between scan messages


long Bot_lasttime; //last time messages' scan has been done
bool Start = false;
int relay = 5;
int relayStatus = 0;
// Set web server port number to 80

22
WiFiServer server(80);

// Variable to store the HTTP request


String header;

// Auxiliar variables to store the current output state


String output5State = "Tertutup";

// Assign output variables to GPIO pins

void handleNewMessages(int numNewMessages) {


Serial.println("handleNewMessages");
Serial.println(String(numNewMessages));

for (int i=0; i<numNewMessages; i++) {


String chat_id = String(bot.messages[i].chat_id);
String text = bot.messages[i].text;

String from_name = bot.messages[i].from_name;


if (from_name == "") from_name = "Guest";

if (text == "/tutup") {
digitalWrite(relay, HIGH); // turn the LED on (HIGH is the voltage level)
relayStatus = 1;
bot.sendMessage(chat_id, "Pintu Tertutup", "");
}

if (text == "/buka") {
relayStatus = 0;
digitalWrite(relay, LOW); // turn the LED off (LOW is the voltage level)
bot.sendMessage(chat_id, "Pintu Terbuka", "");
}

if (text == "/status") {
if(relayStatus){
bot.sendMessage(chat_id, "Pintu Tertutup", "");
} else {
bot.sendMessage(chat_id, "Pintu Terbuka", "");
}
}

if (text == "/start") {

23
String welcome = "Selamat datang di Rumah Makise, " + from_name +
".\n";
welcome += "Ini adalah sistem Solenoid Door Lock.\n\n";
welcome += "/tutup : untuk menutup pintu\n";
welcome += "/buka : untuk membuka pintu\n";
welcome += "/status : Kpintu kembali tutup\n";
bot.sendMessage(chat_id, welcome, "Markdown");
}
}
}

void setup() {
Serial.begin(9600);

// Set WiFi to station mode and disconnect from an AP if it was Previously


// connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);

// attempt to connect to Wifi network:


Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {


Serial.print(".");
delay(500);
}

Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());

pinMode(relay, OUTPUT); // initialize digital relay as an output.


delay(10);
digitalWrite(relay, HIGH); // initialize pin as off
}

void loop() {
WiFiClient client = server.available(); // Listen for incoming clients

24
if (client) { // If a new client connects,
Serial.println("New Client."); // print a message out in the serial port
String currentLine = ""; // make a String to hold incoming data from
the client
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
header += c;
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200
OK)
// and a content-type so the client knows what's coming, then a blank
line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();

// turns the GPIOs on and off


if (header.indexOf("GET /pintu_tertutup") >= 0) {
Serial.println("Pintu Tertutup");
output5State = "Tertutup";
digitalWrite(relay, HIGH);
} else if (header.indexOf("GET /pintu_terbuka") >= 0) {
Serial.println("Pintu Terbuka");
output5State = "Terbuka";
digitalWrite(relay, LOW);
}

// Display the HTML web page


client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\"
content=\"width=device-width, initial-scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
// CSS to style the on/off buttons
// Feel free to change the background-color and font-size attributes to fit
your preferences

25
client.println("<style>html { font-family: Helvetica; display: inline-
block; margin: 0px auto; text-align: center;}");
client.println(".button { background-color: #195B6A; border: none;
color: white; padding: 16px 40px;");
client.println("text-decoration: none; font-size: 30px; margin: 2px;
cursor: pointer;}");
client.println(".button2 {background-color:
#77878A;}</style></head>");

// Web Page Heading


client.println("<body><h1>BABEH KEUN!</h1>");

// Display current state, and ON/OFF buttons for GPIO 5


client.println("<p>Pintu " + output5State + "</p>");
//If the output5State is off, it displays the ON button
if (output5State=="Terbuka") {
client.println("<p><a href=\"/pintu_tertutup\"><button
class=\"button\">ON</button></a></p>");
} else {
client.println("<p><a href=\"/pintu_terbuka\"><button class=\"button
button2\">OFF</button></a></p>");
}

client.println();
// Break out of the while loop
break;
} else { // if you got a newline, then clear currentLine
currentLine = "";
}
} else if (c != '\r') { // if you got anything else but a carriage return
character,
currentLine += c; // add it to the end of the currentLine
}
}
}
// Clear the header variable
header = "";
// Close the connection
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
if (millis() > Bot_lasttime + Bot_mtbs) {

26
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

while(numNewMessages) {
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}

Bot_lasttime = millis();
}
}

2. Hasil Output Sistem


Akses Diterima Akses Ditolak

Akses Webserver

27

Anda mungkin juga menyukai