Perancangan Dan Implementasi Pengendali Pintu Pagar Otomatis Berbasis Arduino

LAMPIRAN A
GAMBAR RANGKAIAN KESELURUHAN
Perancangan dan implementasi pengendali pintu pagar otomatis berbasis
arduino

Universitas Sumatera Utara

LANJUTAN LAMPIRAN A
GAMBAR RANGKAIAN KESELURUHAN
Perancangan dan implementasi pengendali pintu pagar otomatis berbasis
arduino

Universitas Sumatera Utara

LAMPIRAN B
PROGRAM KESELURUHAN SISTEM
 Program pada pagar
#include
#include
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
byte ip[] = { 10,0,0,103 };

Server server(80);
char c = 0;
char command[2] = "\0";
String tampilan = "";
char incomingByte; // incoming data
int LED1 = 13; // LED pin
const int tombol_buka = 2;
const int tombol_tutup = 3;
const int motorbuka = 6;
const int motortutup = 7;
const int sensor = 5;
const int limitbuka = 9;
const int limittutup = 8;
String pesan = "N";
int sinyal_tombol_buka = 1;
int sinyal_tombol_tutup = 1;
int sinyal_sensor = 1;
int sinyal_limitbuka = 1;
int sinyal_limittutup = 1;
int status_pintu=0;

int indikator = 0;

void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(tombol_buka, INPUT);
pinMode(tombol_tutup, INPUT);
pinMode(sensor, INPUT);
pinMode(motorbuka, OUTPUT);
pinMode(motorbuka, OUTPUT);
digitalWrite(LED1, LOW);
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
Client client = server.available();
boolean current_line_is_first = true;
baca_serial();
if (client) {
boolean current_line_is_blank = true;

while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && current_line_is_blank) {
client.println("HTTP/1.1 200 OK");

Universitas Sumatera Utara

client.println("Content-Type: text/html");
client.println();
//client.println("");
client.println("Arduino + Gate Controller");
if(status_pintu==0){client.println("Gate Tertutup");}
if(status_pintu==1){client.println("Gate Terbuka");}
client.println("");
client.println("Gate
Open");
client.println("Gate
Close");
client.println("");

client.println("");
client.println("Klik Gate Open Untuk Membuka Gerbang");
client.println("Klik Gate Close Untuk Menutup Gerbang");
baca_serial();
break;
}
if (c == '\n') {
current_line_is_first = false;
current_line_is_blank = true;
}
else if (c != '\r') {
current_line_is_blank = false;
}
if (current_line_is_first && c == '=') {
for (int i = 0; i < 1; i++) {
c = client.read();
command[i] = c;
}
if (!strcmp(command, "1")) {
digitalWrite(LED1, LOW);

//tampilan = "B";
buka_pintu();
}
else if (!strcmp(command, "2")) {
digitalWrite(LED1, HIGH);
//tampilan = "T";
tutup_pintu();
}}} }
delay(1);
client.stop();
baca_serial();
}
baca_serial();
}
void baca_serial()
{
if (Serial.available() > 0) {
incomingByte = Serial.read();
// Serial.println(incomingByte);
if(incomingByte == 'A') {buka_pintu();}

if(incomingByte == 'T') {pesan = "N"; digitalWrite(LED1, HIGH); tutup_pintu(); }}
if(pesan == 'S') {Serial.println(pesan); delay(50); }
if(status_pintu==0 && pesan != 'S'){Serial.println("C"); delay(50); }
if(status_pintu==1 && pesan != 'S'){Serial.println("B"); delay(50); }
sinyal_tombol_buka = digitalRead(tombol_buka);
sinyal_tombol_tutup = digitalRead(tombol_tutup);

Universitas Sumatera Utara

sinyal_limitbuka = digitalRead(limitbuka);
sinyal_limittutup = digitalRead(limittutup);
sinyal_sensor = digitalRead(sensor);
if (sinyal_tombol_buka==LOW) {buka_pintu();}
if (sinyal_tombol_tutup==LOW) { tutup_pintu();}
if (sinyal_sensor==LOW) {pesan="S";}
if (sinyal_limitbuka==LOW && status_pintu==0) {stop_buka_pintu();}
if (sinyal_limittutup==LOW && status_pintu==1) {stop_tutup_pintu();}
}
void buka_pintu()
{

if(status_pintu==0){
digitalWrite(motorbuka, HIGH);
digitalWrite(motortutup, LOW);
digitalWrite(LED1, HIGH);
}}
void stop_buka_pintu()
{
digitalWrite(motorbuka, LOW);
digitalWrite(motortutup, LOW);
digitalWrite(LED1, LOW);
status_pintu=1; }

void tutup_pintu()
{
if(status_pintu==1){
digitalWrite(motorbuka, LOW);
digitalWrite(motortutup, HIGH);
digitalWrite(LED1, HIGH);
pesan = "N";
}}

void stop_tutup_pintu()
{
digitalWrite(motorbuka, LOW);
digitalWrite(motortutup, LOW);
digitalWrite(LED1, LOW);
status_pintu=0;
pesan = "N";
}

 Program pada mobil
#include

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
char incomingByte;
String pesan = "A";

void setup() {
lcd.begin(16, 2);
lcd.print("Menunggu Sinyal");
Serial.begin(9600);

}

Universitas Sumatera Utara

void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
delay(100);
if(incomingByte == 'B') {lcd.begin(16, 2); lcd.print("Pintu Terbuka");}
if(incomingByte == 'C') {lcd.begin(16, 2); lcd.print("Pintu Tertutup");}
if(incomingByte == 'S') {lcd.begin(16, 2); lcd.print("Sinyal Tutup"); pesan="T";}
delay(500); }
Serial.println(pesan);
delay(500);
Serial.println(pesan);
delay(500);
}

Universitas Sumatera Utara


LAMPIRAN C
DATASHEET KOMPONEN
1. DATASHEET MIKROKONTROLER ATMEGA 328P-PU
2. DATASHEET ARDUINO UNO R3
3. DATASHEET LCD (LIQUID CRYSTAL DISPLAY) HD44780U
4. DATASHEET ADJUSTABLE INFRARED
5. DATASHEET DRIVER MOTOR L293D
6. DATASHEET 433MHZ YS-1020
7. DATASHEET DFRDUINO ETHERNET SHIELD
8. DATASHEET GWS MOTOR DC

Universitas Sumatera Utara