Pada kesempatan special sekali akan dibahas mengenai bagaimana cara mengakses ARDUINO untuk memonitoring level kemiringan via ethernet webserver, dan juga bisa di aplikasikan untuk kendali ruangan seperti yang ditampilkan pada video diatas, karena menggunakan ARDUINO maka device yang diperlukan untuk pembuatan kali ini yaitu ARDUINO UNO R3, Modul ETHERNET WEBSERVER, dan sensor accelerometer, jadi prinsip kerjanya yaitu sensor accelerometer akan memberikan data ke arduino kemudian arduino akan menampilkannya ke komputer melalui ethernet webserver, sehingga jika menggunakan ethernet haruslah memiliki IP address, maka dari itu usahakan IP address komputer tidak sama dengan IPaddress ethernet modul. berikut program dan skemanya.
a. ARDUINO UNO R3
b. ETHERNET WEBSERVER MODUL
c. Accelerometer Sensor ADXL335
d. Program ARDUINO
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,99);
EthernetServer server(80);
const int ledpin7 = 7;
const int ledpin8 = 8;
const int ledpin9 = 9;
const int ledpin2 = 2;
String readString;
void setup() {
pinMode(ledpin7, OUTPUT);
pinMode(ledpin8, OUTPUT);
pinMode(ledpin9, OUTPUT);
pinMode(ledpin2, OUTPUT);
Serial.begin(9600);
while (!Serial) {
}
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
int sumbux = analogRead(0);
int sumbuy = analogRead(1);
int sumbuz = analogRead(2);
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 1");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println(" ");
client.println("<title> Monitor Kemiringan </title> ");
client.println("<body bgcolor = #000000>");
client.println("<center>");
client.println("<font color = yellow><center><h1>MONITOR KEMIRINGAN DATARAN<br>BY YANUAR MUKHAMMAD</h1></center><br></font>");
client.println("<font color = #FFFFFF>");
client.println("<h2>");
client.println("Sumbu X = ");
client.print(sumbux);
client.println("<br />");
client.println("Sumbu Y = ");
client.print(sumbuy);
client.println("<br />");
client.println("Sumbu Z = ");
client.print(sumbuz);
client.println("</h2>");
client.println("</font>");
client.println("<a href = \"/?lighton\"\"><input type = 'button' value = 'ON' ></a>");
client.println("<a href = \"/?lightoff\"\"><input type = 'button' value = 'OFF' ></a> ");
client.println("</center>");
client.println("</body>");
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
Serial.println("client disonnected");
}
if(readString.indexOf("?lighton") >0)
{
digitalWrite(ledpin7, HIGH);
}
else{
if(readString.indexOf("?lightoff") >0)
{
digitalWrite(ledpin7, LOW);
}
}
readString="";
if (sumbux > 400){
digitalWrite(ledpin8, HIGH);
digitalWrite(ledpin9, LOW);
digitalWrite(ledpin2, LOW);
} else if (sumbux < 300){
digitalWrite(ledpin8, LOW);
digitalWrite(ledpin9, HIGH);
digitalWrite(ledpin2, LOW);
}else {
digitalWrite(ledpin8, LOW);
digitalWrite(ledpin9, LOW);
digitalWrite(ledpin2, HIGH);
}
}
VIDEO HASILNYA
saya udah coba gan.. tpi kok IP yg saya set pada Ethernetnya gak mau d panggil ya gan..
ReplyDeleteRTO terus gan..
ada pencerahanya gan?