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.
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.
- 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:
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!