Home Automation web server using Arduino and Ethernet shield
Home Automation web server

Home Automation web server using Arduino and Ethernet shield

Pada postingan ini akan dibahas tentang bagaimana membuat Home automation web server menggunakan arduino dan module Ethernet Shield yang mengendalikan relay yang terhubung ke lampu
Pada arduino Ethernet shield tutorial ini, anda dapat mengakses atau mengendalikan relay pada browser menggunakan perangkat apapun yang terhubung pada jaringan yang sama.

Catatan : Jika anda mencoba merangkaikan proyek tutorial ini, diharapkan berhati – hati dikarenakan menggunakan tegangan AC 220 V.

Module Shield Ethernet

Module Arduino Shield Ethernet ini dapat mengkoneksikan Arduino Anda ke internet dengan cara yang sederhana. Pasang saja modul ini ke papan Arduino Anda, hubungkan ke jaringan Anda dengan kabel RJ45 dan ikuti beberapa langkah sederhana untuk mulai mengendalikan proyek Anda melalui web.

Catatan: Anda harus menghubungkan kabel Ethernet dari router Anda ke perisai Ethernet Anda seperti yang ditunjukkan pada gambar berikut.

Ketika Arduino terhubung ke perisai Ethernet, Anda tidak dapat menggunakan pin digital dari 10 hingga 13, karena Arduino digunakan untuk membangun komunikasi antara Arduino dan perisai Ethernet.

home automation web server using arduino and ethernet shield

Modul relay

Relai adalah sakelar yang dioperasikan secara elektronik. Ini berarti bahwa itu dapat diaktifkan atau dinonaktifkan, membiarkan arus masuk atau tidak.Modul relai adalah yang ada pada gambar di bawah ini.

Module Relay 1 channel

  •  COM : pin umum
  •  NO : biasanya terbuka – tidak ada kontak antara pin umum dan pin yang biasanya terbuka. Jadi, ketika Anda memicu relay, itu terhubung ke pin COM dan daya disediakan untuk beban (lampu, dalam kasus kami).
  •  NC: biasanya tertutup – ada kontak antara pin umum dan pin yang biasanya tertutup. Selalu ada kontak antara pin COM dan NC, bahkan ketika relai dimatikan. Ketika Anda memicu relay, rangkaian dibuka dan tidak ada daya yang disediakan untuk beban.

Berkaitan dengan proyek ini, lebih baik menggunakan sirkuit terbuka secara normal , karena kami ingin menyalakan lampu sesekali.

Bagian yang dibutuhkan

Berikut daftar lengkap komponen yang Anda perlukan untuk proyek ini:

  • Arduino UNO
  • Module shield Ethernet
  • Modul relay
  • Set kabel lampu
  • Breakboard
  • Jumper Wires

Skema Home Automation web server using Arduino and Ethernet shield

Kawat Anda sirkuit sesuai dengan skema di bawah ini:

Home Automation web server using Arduino and Ethernet shield

Kode Home automation web server

Salin kode berikut ke Arduino IDE Anda dan sebelum mengunggahnya ke papan Arduino Anda, baca bagian “Konfigurasi jaringan Anda” di bawah ini.

#include <SPI.h> //Library komunikasi Serial Parallel Interface
#include <Ethernet.h> //libary untuk pengakses module shiel ethernet

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //default mac address module shield ethernet
IPAddress ip(192,168,0,5); //dapat dicek menggunakan wifi router dengan masuk ke menu admin

EthernetServer server(80); //default port server yaitu 80

String status_relay = "Off";
const int pin_relay = 2; //pin yang digunakan yaitu pada pin D3

char linebuf[80]; //variabel buffer

int charcount=0;

void setup() {
  //mendeklarasikan relay sebagai output
  pinMode(pin_relay, OUTPUT);
//nilai default relay yaitu HIGH
  digitalWrite(pin_relay, HIGH);
 
  //baud komunikasi serial pada 9600kpbs
  Serial.begin(9600);
   //prosedur memulai
  Ethernet.begin(mac, ip);
  server.begin();
  //tertampil di serial monitor
  Serial.print("Ip Module Ethernet pada : ");
  Serial.println(Ethernet.localIP());
}

void dashboardPage(EthernetClient &client) {
  client.println("<!DOCTYPE HTML><html><head>");
  client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head><body>");                                                            
  client.println("<h3>Arduino Web Server - <a href=\"/\">Refresh</a></h3>");
  //Logo button Relay untuk proses ON OFF
  client.println("<h4>Status Relay saat ini: " + status_relay + "</h4>");
  //Jika kondisi relay dalam keadaan off makan button akan menampilkan tulisan "ON"          
  if(status_relay == "Off"){
    client.println("<a href=\"/relayon\"><button>ON</button></a>");
  }
   //Jika kondisi relay dalam keadaan on makan button akan menampilkan tulisan "OFF"       
  else if(status_relay == "On"){
    client.println("<a href=\"/relayoff\"><button>OFF</button></a>");                                                                    
  }
  client.println("</body></html>");
}

void loop() {
 //jika ethernet terhubung dengan router dan berhasil maka
  EthernetClient client = server.available();
  if (client) {
    Serial.println("client baru");
    memset(linebuf,0,sizeof(linebuf));
    charcount=0;
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
       char c = client.read();
        linebuf[charcount]=c;
        if (charcount<sizeof(linebuf)-1) charcount++;
        if (c == '\n' && currentLineIsBlank) {
          dashboardPage(client);
          break;
        }
        if (c == '\n') {
          if (strstr(linebuf,"GET /relayoff") > 0){
            digitalWrite(pin_relay, HIGH);
            status_relay = "Off";
          }
          else if (strstr(linebuf,"GET /relayon") > 0){
            digitalWrite(pin_relay, LOW);
            status_relay = "On";
          }
          currentLineIsBlank = true;
          memset(linebuf,0,sizeof(linebuf));
          charcount=0;          
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
    Serial.println("client disonnected");
  }
}

Konfigurasi IP Address

Lihatlah konfigurasi kode jaringan Anda:

mac byte [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
 IPAddress ip (192,168,0, XXX ); //dapat dicek di router 192.168.0.0 user dan pass : admin secara default

Penting: Anda sebenarnya mungkin perlu mengganti variabel yang disorot dengan warna merah dengan nilai yang sesuai yang cocok untuk jaringan Anda, jika tidak Arduino Anda tidak akan membuat sambungan dengan jaringan Anda.

Silahkan mencoba, untuk hasilnya akan segera menyusul berupa video youtube, thanks!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *