Penulis
i
Abstrak
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
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.
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.
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.
7
Gambar 2.7. Relay beserta pinnya
8
Gambar 2.8. Selonoid Door Lock
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).
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).
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.
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.4.Desain Rangkaian
13
3.5.Rangkaian Skematik
14
3.8 Flow Chart
15
3.8.State Machine Diagram
16
BAB IV
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
19
LAMPIRAN
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);
}
}
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
22
WiFiServer server(80);
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);
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
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();
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>");
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();
}
}
Akses Webserver
27