• Tidak ada hasil yang ditemukan

Daftar Pusataka. Budiharto, W. (2010). Robotika - Teori dan Implementasinya. Yogyakarta: ANDI.

N/A
N/A
Protected

Academic year: 2021

Membagikan "Daftar Pusataka. Budiharto, W. (2010). Robotika - Teori dan Implementasinya. Yogyakarta: ANDI."

Copied!
20
0
0

Teks penuh

(1)

Daftar Pusataka

Guntur Dharma Putra (2013). Pengembangan Gateway Berbasis Embedded Device

Untuk Interoperabilitas Jaringan Sensor Nirkabel Dan Protokol Internet,

Yogyakarta. Tugas Akhir. Teknik Elektro. Universitas Gadjah Mada.

Zudiono (2016). Alat Peringatan Keamanan Dini Rumah Secara Nirkabel Dengan

Teknologi Sms Gateway.

Yogyakarta. Tugas Akhir. D3 Elektronika Dan

Instrumentasi. Universitas Gadjah Mada.

Heranudin (2007).

Rancang Bangun Sisetm Keamnana Ruangan Menggunakan

Radio Frequency Identification (RFID) Berbasis Mikrokontroler AT89C51.

Skripsi . Teknik Elektro. Universitas Indonesia. Depok.

I Gusti Agung Putu Raka Agung, I Made Irwan Susanto (2012), Rancang Bangun

Prototipe Penghitung Jumlah Orang Dalam Ruangan Terpadu Berbasis

Mikrokontroler ATMEGA328P. Jimbaran Bali. Teknik Elektro. Universitas

Udayana.

Mustopa (2015). Sistem Keamanan Rumah Berbasis Rfid Terintegrasi Dengan Sms

Gateway Sebagai Peringatan Dini Kepada Pemilik Rumah.

Jakarta. Teknik

Elektro. Universitas Mercu Buana.

Jani Sujatmoko (2017).

Rancang Bangun Pemodelan Sistem Keamanan

Perumahan Berbasis Arduino Dengan Kontrol Modul GSM. Jakarta. Teknik

Elektro. Universitas Mercu Buana.

Hakim, R. A; Bramanto, A dan Syahri, R. (2010). “Aplikasi Monitoring Suhu

Ruangan Berbasis Komputer dan SMS Gateway”. Jurnal Informatika

Mulawarman. Vol. 5. No. (3). 32 – 38.

Eko Ihsanto. (2013) “Rancang Bangun Akses Pintu Keluar Masuk Menggunakan

PIN Berbasis Mikrokontroller AT89S52”. Jurnal Teknik Elektro, Universitas

Mercu Buana Vol.4 No.(1).

Budiharto, W. (2010). Robotika - Teori dan Implementasinya. Yogyakarta: ANDI.

Syahwil, M. (2013).

Panduan Mudah Simulasi dan Praktik Mikrokontroler

Arduino. Yogyakarta: ANDI.

A. B. bin Ladjamudin, Analisis dan Desain Sistem Informasi. Yogyakarta. Graha

Ilmu, 2005.

(2)

Rui Santos. Complete Guide for nRF24L01 – 2.4GHz RF Transceiver Module With

Arduino.

http://randomnerdtutorials.com/nrf24l01-2-4ghz-rf-transceiver-module-with-arduino

.

Mike

McCauley.

Library

nRF24l01

Module

for

Arduino.

http://www.airspayce.com/mikem/arduino/RadioHead

.

Cristian Steib. Library SIM800L Module for Arduino UNO.

https://github.com/cristiansteib/Sim800l/releases

.

Miguelbalboa and Community development. Library MFRC522 Module.

https://github.com/miguelbalboa/rfid/releases

.

[Online]

https://adafruit.com

Diakses (06/03/2017).

[Online]

http://playground.arduino.cc/Main/InterfacingWithHardware

. Diakses

(06/03/2017

(3)
(4)

LAMPIRAN KODE PROGRAM

###Central Node###

#include <SPI.h> //Library koneksi spi

#include <RH_NRF24.h> //Library modul radio transceiver #include <Sim800l.h> //Library modul GSM

#include <SoftwareSerial.h> //Library modul GSM

Sim800l Sim800l; //Deklarasi modul gsm

RH_NRF24 nrf24; //Deklarasi modul radio transceiver int peringatan = LOW;

int keamanan = LOW; char* text;

char* number; char* textz; char* nomor; char* nPengirimc;

bool error; //to catch the response of sendSms

String texts, gantinomor, nPengirim; // to almacenate the text of the sms

int bacaPesan = LOW;

long previousMillis = 0; // will store last time LED was updated

long OnTime = 60000; void setup()

{

Serial.begin(9600);

Sim800l.begin(); // initializate the library.

//pinMode(switch2, INPUT); pinMode(7, OUTPUT); digitalWrite(7, HIGH); Sim800l.delAllSms(); kotakmasuk(); nomor = "+6281291494507"; while (!Serial)

; // wait for serial port to connect. Needed for Leonardo only

if (!nrf24.init())

{

Serial.println("init failed");

for(int i = 0; i < 4; i++) { digitalWrite(7, LOW); delay(200); digitalWrite(7, HIGH); delay(200); } }

// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm

if (!nrf24.setChannel(1))

{

Serial.println("setChannel failed");

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

(5)

delay(200); digitalWrite(7, HIGH); delay(200); } } if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) {

Serial.println("setRF failed");

for(int i = 0; i < 4; i++) { digitalWrite(7, LOW); delay(200); digitalWrite(7, HIGH); delay(200); } } } void loop() { //Serial.println(lastpress);

unsigned long currentMillis = millis(); //Membaca kotakmasuk setiap 60 detik

if((bacaPesan == HIGH) && (currentMillis - previousMillis >=

OnTime))

{

bacaPesan = LOW; // Turn it off

previousMillis = currentMillis; // Remember the time

kotakmasuk();

textz = strlwr(texts.c_str());

nPengirimc = strlwr(nPengirim.c_str());

Serial.print("Pengirim : ");

Serial.println(nPengirimc);

if (strstr (nPengirimc, nomor)) // Filter nomor

{

Serial.println("Pesan :");

Serial.println(textz);

if (strstr (textz, "securityon"))

{

Serial.println("Kemanan Dinyalakan.");

for(int i = 0; i < 2; i++) { digitalWrite(7, LOW); delay(200); digitalWrite(7, HIGH); delay(200); }

kirim("KEAMANAN DIAKTIFKAN!", nomor); keamanan = HIGH;

delay(1000); kotakmasuk(); //Sim800l.delAllSms();

}

else if (strstr (textz, "securityoff"))

{

(6)

for(int i = 0; i < 4; i++) { digitalWrite(7, LOW); delay(200); digitalWrite(7, HIGH); delay(200); }

kirim("KEAMANAN DINONAKTIFKAN!", nomor); keamanan = LOW;

delay(1000);

kotakmasuk(); //Sim800l.delAllSms();

}

else if (strstr (textz, "ganti"))

{

Serial.println("asdf");

gantinomor = strstr(textz, "ganti");

gantinomor.replace("ganti", "");

//gantinomor.replace("\"", "");

gantinomor.replace("ok", "");

gantinomor.replace("\n", "");

gantinomor.replace("\r", ""); nomor = gantinomor.c_str();

kirim("NOMOR TELAH DIGANTI!", nomor);

delay(1000); kotakmasuk(); } } } bacaPesan = HIGH; if (nrf24.available()) {

// Should be a message for us now

uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];

uint8_t len = sizeof(buf);

if (nrf24.recv(buf, &len))

{

// NRF24::printBuffer("request: ", buf, len);

//Serial.print("got request: ");

Serial.println((char*)buf);

//Serial.println(textz);

if (keamanan == HIGH)

{

if (strcmp ("pintub",(char*)buf) == 0)

{ digitalWrite(7, LOW); //kotakmasuk(); //Sim800l.delAllSms(); // if (peringatan == LOW) {

kirim("PINTU TERBUKA!", nomor); peringatan = HIGH;

}

}

else if (strcmp ("jendelab",(char*)buf) == 0)

(7)

digitalWrite(7, LOW); //kotakmasuk(); //Sim800l.delAllSms(); // if (peringatan == LOW) {

kirim("JENDELA TERBUKA!", nomor); peringatan = HIGH;

}

}

else if (strcmp ("gerakh",(char*)buf) == 0)

{ digitalWrite(7, LOW); //kotakmasuk(); //Sim800l.delAllSms(); // if (peringatan == LOW) {

kirim("ADA PERGERAKAN DIDALAM KAMAR!", nomor); peringatan = HIGH;

}

}

else if (strcmp ("rfidt",(char*)buf) == 0)

{

if (peringatan == HIGH)

{

digitalWrite(7, HIGH); }

else if (peringatan == LOW)

{

Serial.println("AKSES DITERMA, SECURITY DINONAKTIFKAN!"); keamanan = LOW; peringatan = LOW; for(int i = 0; i < 4; i++) { digitalWrite(7, LOW); delay(200); digitalWrite(7, HIGH); delay(200); }

kirim("KEAMANAN DINONAKTIFKAN!", nomor);

}

} }

else if (keamanan == LOW)

{

if (strcmp ("rfidt",(char*)buf) == 0)

{

digitalWrite(7, HIGH);

Serial.println("AKSES DITERMA, SECURITY DIAKTIFKAN!"); keamanan = HIGH; peringatan = LOW; for(int i = 0; i < 2; i++) { digitalWrite(7, LOW); delay(200); digitalWrite(7, HIGH); delay(200); }

(8)

} //Serial.println("Kemanan Dimatikan."); //peringatan = LOW; //kotakmasuk(); //digitalWrite(7, HIGH); } } else {

Serial.println("recv failed");

} }

}

void kirim(char* text, char* number) {

//mengirim pesan

Sim800l.signalQuality();

error=Sim800l.sendSms(number,text);

Serial.println("Send sms");

//

//menyalakan kembali radio transceiver

while (!Serial)

; // wait for serial port to connect. Needed for Leonardo only

if (!nrf24.init())

Serial.println("init failed");

// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm

if (!nrf24.setChannel(1))

Serial.println("setChannel failed");

if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,

RH_NRF24::TransmitPower0dBm))

Serial.println("setRF failed"); //

}

void kotakmasuk() {

//membaca isi pesan yang diterima paling awal

nPengirim=Sim800l.getNumberSms(1);

texts=Sim800l.readSms(1); //Serial.println(texts);

Sim800l.delAllSms(); //

//menyalakan kembali radio transceiver

while (!Serial)

; // wait for serial port to connect. Needed for Leonardo only

if (!nrf24.init())

Serial.println("init failed");

// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm

if (!nrf24.setChannel(1))

Serial.println("setChannel failed");

if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,

RH_NRF24::TransmitPower0dBm))

Serial.println("setRF failed"); //

(9)

###RFID###

#include <SPI.h> #include <MFRC522.h> #include <RH_NRF24.h> #include <RHSoftwareSPI.h> #define SS_PIN 10 #define RST_PIN 9 RHSoftwareSPI spi; RH_NRF24 nrf24(8, 7, spi);

MFRC522 rfid(SS_PIN, RST_PIN);

MFRC522::MIFARE_Key key;

// Init array that will store new NUID

byte nuidPICC[4]; void setup() {

spi.setPins(4, 5, 6);

Serial.begin(9600);

SPI.begin(); // Init SPI bus

pinMode(3, OUTPUT);

rfid.PCD_Init(); // Init MFRC522

for (byte i = 0; i < 6; i++) {

key.keyByte[i] = 0xFF;

}

Serial.println(F("This code scan the MIFARE Classsic NUID."));

Serial.print(F("Using the following key:"));

printHex(key.keyByte, MFRC522::MF_KEY_SIZE);

while (!Serial) if (!nrf24.init())

Serial.println("init failed");

if (!nrf24.setChannel(1))

Serial.println("setChannel failed");

if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,

RH_NRF24::TransmitPower0dBm))

Serial.println("setRF failed");

}

void loop() {

// Look for new cards

if ( ! rfid.PICC_IsNewCardPresent())

return;

// Verify if the NUID has been readed

if ( ! rfid.PICC_ReadCardSerial())

return;

Serial.print(F("PICC type: "));

MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);

Serial.println(rfid.PICC_GetTypeName(piccType));

(10)

if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K &&

piccType != MFRC522::PICC_TYPE_MIFARE_4K) {

Serial.println(F("Your tag is not of type MIFARE Classic."));

return;

}

if (rfid.uid.uidByte[0]==0xC6 && rfid.uid.uidByte[1]==0x8F &&

rfid.uid.uidByte[2]==0x26 && rfid.uid.uidByte[3]==0x07) {

Serial.println(F("Selamat Datang BOS!"));

uint8_t data[] = "rfidt";

nrf24.send(data, sizeof(data));

delay(400);

digitalWrite(3, HIGH); // Buzzer high

delay(500); // wait for 1/2 second

digitalWrite(3, LOW); // Buzzer low

delay(500); // wait for 1/2 second

digitalWrite(3, HIGH); // Buzzer high

delay(500); // wait for 1/2 second

digitalWrite(3, LOW); // Buzzer low

delay(500); // wait for 1/2 second

//Serial.println(F("The NUID tag is:"));

//Serial.print(F("In hex: "));

//printHex(rfid.uid.uidByte, rfid.uid.size);

//Serial.println();

}

else {

Serial.println(F("AKSES DITOLAK!"));

uint8_t data[] = "rfidf";

nrf24.send(data, sizeof(data));

delay(400);

digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)

delay(3000); // wait for a second

digitalWrite(3, LOW); // turn the LED off by making the voltage LOW } // Halt PICC rfid.PICC_HaltA(); // Stop encryption on PCD rfid.PCD_StopCrypto1(); }

void printHex(byte *buffer, byte bufferSize) {

for (byte i = 0; i < bufferSize; i++) {

Serial.print(buffer[i] < 0x10 ? " 0" : " ");

Serial.print(buffer[i], HEX);

} }

(11)

###PINTU###

#include <SPI.h> #include <RH_NRF24.h> RH_NRF24 nrf24; int switch1; int switch2 = 2; int pintu = LOW; void setup()

{

Serial.begin(9600);

pinMode(switch2, INPUT);

pinMode(9, OUTPUT);

while (!Serial)

; // wait for serial port to connect. Needed for Leonardo only

if (!nrf24.init())

Serial.println("init failed");

// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm

if (!nrf24.setChannel(1))

Serial.println("setChannel failed");

if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,

RH_NRF24::TransmitPower0dBm))

Serial.println("setRF failed");

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

if(i !=2)

Serial.println("Pintu Terbuka!");

}

attachInterrupt(0, digitalInterrupt, CHANGE); }

void loop() {

switch1 = digitalRead(switch2);

//Serial.println(switch1);

if (switch1 == HIGH)

{

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

switch1 = digitalRead(switch2);

if (switch1 == HIGH)

{

uint8_t data[] = "pintut"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

pintu = HIGH; delay(500);

Serial.println("TUTUP");

}

else {

uint8_t data[] = "pintub"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

(12)

Serial.println("BUKA"); } } } else { for(int i = 0; i < 20; i++) {

switch1 = digitalRead(switch2);

if (switch1 == LOW)

{

uint8_t data[] = "pintub"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

pintu = HIGH; delay(500);

Serial.println("BUKA");

}

else {

uint8_t data[] = "pintut"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

delay(500);

Serial.println("TUTUP");

} } } ADCSRA &= ~(1 << 7); //ENABLE SLEEP SMCR |= (1 << 2); SMCR |= 1; //BOD DISABLE MCUCR |= (3 << 5);

MCUCR = (MCUCR & ~(1 << 5)) | (1 <<6);

__asm__ __volatile__("sleep"); }

void digitalInterrupt(){ }

(13)

###JENDELA###

#include <SPI.h> #include <RH_NRF24.h> RH_NRF24 nrf24; int switch1; int switch2 = 2; int pintu = LOW; void setup()

{

Serial.begin(9600);

pinMode(switch2, INPUT);

pinMode(9, OUTPUT);

while (!Serial)

; // wait for serial port to connect. Needed for Leonardo only

if (!nrf24.init())

Serial.println("init failed");

// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm

if (!nrf24.setChannel(1))

Serial.println("setChannel failed");

if (!nrf24.setRF(RH_NRF24::DataRate2Mbps,

RH_NRF24::TransmitPower0dBm))

Serial.println("setRF failed");

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

if(i !=2)

Serial.println("Jendela Terbuka!");

}

attachInterrupt(0, digitalInterrupt, CHANGE); }

void loop() {

switch1 = digitalRead(switch2);

//Serial.println(switch1);

if (switch1 == HIGH)

{

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

switch1 = digitalRead(switch2);

if (switch1 == HIGH)

{

uint8_t data[] = "jendelat"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

pintu = HIGH; delay(500);

Serial.println("TUTUP");

}

else {

uint8_t data[] = "jendelab"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

(14)

Serial.println("BUKA"); } } } else { for(int i = 0; i < 20; i++) {

switch1 = digitalRead(switch2);

if (switch1 == LOW)

{

uint8_t data[] = "jendelab"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

pintu = HIGH; delay(500);

Serial.println("BUKA");

}

else {

uint8_t data[] = "jendelat"; nrf24.send(data, sizeof(data));

nrf24.waitPacketSent();

delay(500);

Serial.println("TUTUP");

} } } ADCSRA &= ~(1 << 7); //ENABLE SLEEP SMCR |= (1 << 2); SMCR |= 1; //BOD DISABLE MCUCR |= (3 << 5);

MCUCR = (MCUCR & ~(1 << 5)) | (1 <<6);

__asm__ __volatile__("sleep"); }

void digitalInterrupt(){ }

(15)

Gambar 6-1

. Sensor Gerak(sensor node)

(16)

Gambar 6-3

. Pengukuran daya mengunakan multimeter

(17)
(18)
(19)
(20)

Gambar

Gambar 6-1. Sensor Gerak(sensor node)
Gambar 6-3. Pengukuran daya mengunakan multimeter
Gambar 6-5. Purwarupa Sistem Keamanan Kamar Kos

Referensi

Dokumen terkait

Muatan program yang paling penting dalam program ini adalah mengajak siswa untuk belajar tentang cerita wayang dengan mengajarkan drama berbahasa jawa dengan cerita

Tugas akhir ini guna salah satu syarat untuk menyelesaikan program dipoloma 3, program studi D3 Fisika Instrumentasi Univeresitas Sumatera Utara (USU) Medan.Adapun

Pada zaman yang serba modern dan teknologi semakin canggih sekarang ini, teknologi digunakan dalam kehidupan sehari-hari, bahkan digunakan oleh

Bundo Kanduang sebagai penasihat kaum kurang didengarkan fatwanya disebabkan antara lain perubahan pola hidup, kurangnya rasa persatuan kaum, Bundo Kanduang ada yang

– Sisa anggaran tahun sebelumnya, yang menjadi bagian dari penerimaan dalam pembiayaan di APBD kabupaten/kota tahun berjalan, memberikan kontribusi berarti terhadap pengalokasian

لﻮﺼﺤﻠﻟ مﻼﻜﻟا ةرﺎﻬﻣ ﻰﻠﻋ ﺔﻐﻠﻟ ﺔﻴﺑﺮﻌﻟا ﺔﺒﻠﻃ ىﺪﻟ ﻟا ّﻒﺼ ّﺜﻟا ﻦﻣﺎ ﺑ ﳌﺎ ﺔﺳرﺪ ﺔﻄﺳﻮﺘﳌا ﺔّﻴﻣﻮﻜﳊا ﺔﻴﻣﻼﺳﻹا ١ ﻻ ﺒﻣ ﺞﻧﻮ ﳉا ﺑﻮﻨ ﻴﺔ , ﻂﺒﻨﺘﺴﻨﻓ :ﻰﻠﻋ ﻖﻴﺒﻄﺘﻟا ﻰﻠﻋ ﺔﻴﳘإ و

Bahwa dalam rangka meningkatkan daya saing Badan Usaha Milik Negara (selanjutnya disebut BUMN) untuk menghadapi persaingan dunia usaha yang kompetitif di era global seperti saat

Kreatif adalah sebuah proses yang memiliki peranan strategi dalam inovasi dalam inovasi dimana sebagai pemecah masalah (Problem Solving), Ia juga boleh diterjemah