Kamis, 29 September 2016

Cara Membuat Aplikasi Web Untuk Kendali Jarak Jauh (LAN)

Kendali jarak jauh merupakan suatu turunan dari bidang automasi, yaitu mengendalikan perangkat dari jarak jauh sesuai jangkauan sinyal pengirim dan penerima. Dalam kasus ini adalah menggunakan web. Dewasa ini penggunaan web tidak sebatas pada tempat postingan pribadi atau tempat jualan. Web juga dapat dijadikan aplikasi kendali jarak jauh dengan memanipulasi koding HTML yang diintegrasikan dengan bahasa pemrograman lainnya.

Pada postingan kali ini, penulis akan sharing tentang projek akhir yang dibuat ketika menginjak semester 6. Projek akhir yang dibuat tentang kendali jarak jauh menggunakan web yang terpasang pada jaringan LAN. Karena dipasang pada jaringan LAN, maka jarak kendali pun terbatas pada seberapa jauh jaringan LAN itu sendiri (20 meter).

Untuk membuat projek tersebut, dibutuhkan kira2 peralatan seperti yang tertera dibawah :

1. Arduino Uno/Mega
2. Ethernet Shield
3. Router
4. Kabel UTP Straight
5. Power Supply
6. PC atau Laptop untuk setting IP Address
7. Arduino IDE

Berikut adalah langkah-langkahnya

1. Pengaturan IP Address

IP Address merupakan alamat logic pada jaringan yang menunjukan alamat sumber data dan alamat tujuan data dikirimkan. Berikut cara mengatur IP Address pada EthernetShield (diasumsikan jaringan LAN sudah terpasang dan router telah disetting atau cari sendiri referensi cara instalasi LAN).

A. Siapkan kabel UTP jenis straight
B. Pasang ethernetshield diatas Arduino (ditumpuk)
C. Hubungkan arduino ke sumber 5V
D. Hubungkan port RJ45 yang terdapat di ethernetshield ke router
E. Buka arduino IDE dan buka program example DHCPAddressPrint yang sudah terdapat didalam arduino IDE
F. Download program ke board arduino
G. Buka serial monitor dan tunggu sampai IP Address arduino muncul
H. Setelah IP Address muncul simpan untuk program arduino.

2. Membuat Program Web di Arduino

Buka arduino IDE dan copy program berikut :



#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };//mac address arduino
byte ip[] = { 192, 168, 0, 133};//ip address arduino
EthernetServer server(80); 
String readString;
int LED1 = 3; //pir dalam, paralel dgn solenoid
int LED2 = 4; //pirluar
int LED3 = 5; //solenoid lock
int LED4 = 6; //alarm
int LED5 = 7; //system
int LED6 = 8; //LEFT
int LED7   = 9; //RIGHT
void setup()
{
  pinMode(LED1, OUTPUT);//pir luar
  pinMode(LED2, OUTPUT);//pir dalam
  pinMode(LED3, OUTPUT);//sld lock
  pinMode(LED4, OUTPUT);//alarm
  pinMode(LED6, OUTPUT);//left
  pinMode(LED7, OUTPUT);//right
  Ethernet.begin(mac, ip);
  server.begin();
}
void loop(){
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (readString.length() < 100) {
          readString += c;             
        }
        if (c == '\n') {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");  
          client.println();    
         client.println("<HTML>");
          client.println("<STYLE TYPE=\"text/css\">");
          client.println("a { text-decoration : none; color:white }");
          client.println("a:hover { color : white }");
         client.println("#btn {padding : 4px 2px;background-color:#008040; font-size:100%;}");
          client.println("#btn:hover { padding : 4px 2px;background-color:blue; font-size:100%; }");
          client.println("</STYLE>");
          client.println("<BODY>");
          client.println("<H1 STYLE=\"TEXT-ALIGN:CENTER;color:#008040\"><marquee>MANAGE YOUR SECURITY SYSTEM THROUGH THIS VIRTUAL CONTROL PANEL</marquee></H1>");
          client.println("<hr />");
          client.println("<br />");
          client.println("<table border=\"0\" width=\"100%\" bgcolor=\"grey\">");
          client.println("<tr>");
          client.println("<td width=\"16%\"></td>");
          client.println("<td align=\"center\" bgcolor=\"white\">");
          client.println("<a align=\"center\" id=\"btn\" href=\"/?sct\"\">Security Mode</a>");
          client.println("<a id=\"btn\" href=\"/?std\"\">Standby Mode</a><br /><br /><br />"); 
          client.println("<a id=\"btn\" href=\"/?almoff\"\">Turn Off Alarm</a><br /><br /><br />");
          client.println("<a id=\"btn\" href=\"/?sldon\"\">Turn On Sld Lock</a>"); 
          client.println("<a id=\"btn\" href=\"/?sldoff\"\">Turn Off Sld Lock</a><br /><br /><br />");
          client.println("<a id=\"btn\" href=\"/?left\"\">Left(Slider)</a>"); 
          client.println("<a id=\"btn\" href=\"/?right\"\">Right(Slider)</a><br /><br /><br />");
          client.println("</td>");
          client.println("<td width=\"16%\"></td>");
          client.println("</tr>");
          client.println("</table>");
          client.println("<br />");
          client.println("<br />");
          client.println("<hr />");
          client.println("<H3 STYLE=\"TEXT-ALIGN:CENTER;color:#008040\"><marquee>DESIGNED BY FAHMI AHMAD HUSAENI, RIZKY FITRI HIDAYATULLAH, MUHAMMAD IMAM FAISAL</marquee></H3>");
          client.println("<H4 STYLE=\"TEXT-ALIGN:CENTER;color:#008040\">copyright 2016</H4>");
          client.println("<H4 STYLE=\"TEXT-ALIGN:CENTER;color:#008040\">supported by www.hmkpage.16mb.com</H4>");
          client.println("</BODY>");
          client.println("</HTML>");
          delay(1);
          client.stop();
          if(readString.indexOf("?sct") > 0)//security mode
            {
              digitalWrite(LED1, HIGH);//output pir luar on
              digitalWrite(LED2, LOW);//output pir dalam off
            }
          if(readString.indexOf("?std") > 0)//standby mode
            {
              digitalWrite(LED1, LOW);//output pir luar off
              digitalWrite(LED2, HIGH);//output pir dalam on
            }
          if(readString.indexOf("?sldon") > 0)//sld on opened
            {
              digitalWrite(LED3, HIGH);
            }
          if(readString.indexOf("?sldoff") > 0)//sld off locked
            {
              digitalWrite(LED3, LOW);
            }
          if(readString.indexOf("?almoff") > 0)//manual alarm off
            {
              digitalWrite(LED4, LOW);
            }
          if(readString.indexOf("?left") > 0)//manual LEFT SLIDER
            {
              digitalWrite(LED6, HIGH);
              digitalWrite(LED7, LOW);
            }
          if(readString.indexOf("?right") > 0)//manual RIGHT SLIDER
            {
              digitalWrite(LED7, HIGH);
              digitalWrite(LED6, LOW);
            }
         readString="";
        }
      }
    }
  }
}

Note : Silahkan pahami list programnya, jika ada yang tidak mengerti silahkan ditanyakan


Tidak ada komentar:

Posting Komentar