BAB III Runah Pintar
BAB III Runah Pintar
Dalam bab ini akan dibahas mengenai proses perancangan mekanik serta
penyusunan rangkaian untuk merealisasikan sistem alat. Dalam hal ini Ethernet
Adapun sistem alat yang dibuat dan dirancang sesuai blok diagram. Pembahasan
dititik beratkan pada perancangan alat yang dibuat berdasarkan pemikiran dan
perancangan saklar kran selenoid Berbasis Arduino Mega Ethernet Shield sebagai
web server. Perancangan alat ini terdapat tiga tahapan yaitu perancangan
dilakukan perencanaan blok diagram yang akan menjadi kerangka acuan dalam
pembuatan alat aplikasi sesuai dengan yang diinginkan. Adapun blok diagram dari
Relay
Kran Selenoid
jaringan lokal dan tidak dapat berkomunikasi langsung dengan kran selenoid.
Maka Arduino uno harus ditambahkan dengan Ethernet Shield untuk dapat
adalah gambaran susunan diagram blok Arduino uno dengan Ethernet Shield.
Adapun fungsi dan peran dari masing-masing gambar 3.1 di atas adalah
berikut:
Tabel 3.1 : Fungsi dan peran komponen
1. Arduino uno
2. Ethernet Shield
3. Relay
4. Jumper Wire
5. Selenoid Valve
6. DLL.
ATmega 328 (data sheet). Arduino uno seperti yang di lihat pada Gambar 3.2
mempunyai 14 pin digital input/output ,6 diantaranya dapat digunakan sebagai
kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ISCP
Untuk data-data spesifikasi dari Arduino UNO secara ringkas bisa dilihat
Ethernet Shield.
paket perangkat lunak Arduino IDE), dan Arduino Anda siap dikendalikan
lewat internet.
pasangkan dengan ethernet shield W5100 yaitu arduino uno dan mega.
3.2.3 Relay
Peran dan fungsi relay disini adalah sebagai saklar otomatis untuk
apabila memperoleh input logika High dari Arduino dan begitu sebaliknya
relay akan berhenti bekerja apabila memperoleh input logika Low dari
digital. Alasan memilih arduino uno karena jumlah pin dan memori pada
arduino uno dengan Ethernet shield dapat dilihat pada gambar 3.5
Ethernet shield pada arduino uno dapat dapat di lihat pada gambar 3.6
Gambar 3.6 Pemasangan internet Shield pada Socket Arduino UN
menghubungkan pin-pin yang ada pada ethernet shield dengan relay agar
hubungkan dengan IN 1 pada Relay sehingga relay ini dapat bekerja sesuai
Ethernet shield dihubungkan dengan pin VCC pada relay yang berfungsi
dihubungkan ke arduino uno pada pin yang sudah ditentukan. Adapun relay
yang digunakan dalam perancangan modul ini adalah relay SPDT (single
Pole Double Throw). Relay akan bekerja apabila memperoleh input logika
High dari arduino. Untuk rangkaian relay pengontrol kran selenoid dapat
alat sehingga apabila ada kesalahan dalam program dapat diketahui dan di
selenoid ini bisa dioperasikan melalui laptop maupun handphone dari jarak
jauh. Fungsi dari alat ini adalah untuk menghidupkan dan mematikan kran dari
berisikan perintah- perintah yang akan dikerjakan Ethernet Shield dan relay
#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
#include <Ultrasonic.h>
#define echoPin 5 // Echo Pin
#define trigPin 6 // Trigger Pin
#define kamarmandi 2 // Onboard LED
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x36 }; // Endereo Mac
byte ip[] = { 192, 168, 1, 17 }; // Endereo de Ip da sua Rede
EthernetServer server(80);
unsigned int powerOnSOM[100] = {3300, 1850, 450, 1150, 450, 1100, 450,
450, 450, 400, 450, 400, 450, 450, 450, 1100, 450, 450, 450, 1100, 450, 1150,
450, 400, 450, 450, 450, 1100, 450, 450, 450, 1100, 450, 450, 450, 1100, 450,
450, 450, 400, 450, 400, 450, 450, 450, 400, 450, 450, 450, 400, 450, 400,
500, 400, 450, 1100, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 450,
1150, 450, 400, 450, 450, 450, 400, 450, 400, 450, 450, 450, 400, 500, 400,
450, 1100, 450, 450, 450, 1100, 450, 400, 450, 450, 450, 400, 450, 450, 450,
400, 450};
void setup(){
setupUltrasonic();
setupEthernet();
}
void loop(){
loopUltrasonic();
loopEthernet();
}
void setupUltrasonic() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(kamarmandi, OUTPUT); // Use LED indicator (if required)
digitalWrite(kamarmandi, LOW);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
}
// start the Ethernet connection and the server:
void setupEthernet(){
Ethernet.begin(mac, ip);
pinMode(kamarmandi, OUTPUT);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loopUltrasonic() {
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH)/2;
distance = duration/29.1;
delay(500);
if (distance <= 5 ){
digitalWrite (kamarmandi,HIGH);
}
}
// listen for incoming clients
void loopEthernet() {
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("<HEAD>");
client.println("<meta http-equiv=\"Refresh\" content=\"4; url=/wakwaw\"
/>");
client.println("<meta http-equiv=\"Content-Type\"
content=\"application/vnd.wap.xhtml+xml; charset=utf-8\" />");
client.println("<link type=\"text/css\" rel=\"stylesheet\"
href=\"http://haidao.mw.lt/js_css/css_pages.css\" />");
client.println("<TITLE>Room Automation</TITLE>");
client.println("</HEAD>");
client.println("<BODY align=\"center\">");
client.println("<h1>Penel Kontrol Air </h1>");
client.println("<hr />");
client.println("<br />");
client.println("<br />");
client.println("<table align=\"center\"><tr>");
client.println("<th width=\"10%\">Nama Perangkat</th>");
client.println("<th width=\"10%\">Status Perangkat</th>");
client.println("<th width=\"10%\">Saklar ON/OFF</th></tr>");
client.println("<tr class=\"trh1\"><td align=\"left\">");
client.println(" ");
client.println(" ");
client.println("Relay 1");
client.println("</td><td align=\"center\">");
if (statusR1 == false) {
client.println("<b>MATI</b>");
} else {
client.println("<b>HIDUP</b>");
}
client.println("</td><td align=\"center\">");
if (statusR1 == false) {
client.println("<a href=\"/1on\" />HIDUP</a>");
} else {
client.println("<a href=\"/1off\" />MATI</a>");
}
client.println("</td></tr>");
client.println();
client.println("<tr class=\"trh2\"><td align=\"left\">");
client.println(" ");
client.println(" ");
client.println("</td></tr>");
client.println();
client.println("</BODY>");
delay(1);
client.stop();
if (readString.indexOf("1on") >0){
digitalWrite(kamarmandi, LOW);
statusR1 = true;
}
if (readString.indexOf("1off") >0){
digitalWrite(kamarmandi, HIGH);
statusR1 = false;
}
readString="";
}}}}}
Keterangan pin yang dipakai pada arduino sebagai acuan dalam
3.3.2 Flowchar
4. Apabila kondisi bak mancapai volume tertentu, kran selenoid akan mati
1. Form Login
2. Form Daftar
Gambar 3.11. Daftar Pengguna Aplikasi
Tombol
Kendali
Tombol
On/Off