#include #include #include dht11 DHT11; #define DHT11PIN 2 // Digital 2 // LED pin int ledPin0 = 3; // Digital 3 int ledPin1 = 4; // Digital 4 int ledPin2 = 5; // Digital 5 int ledPin3 = 6; // Digital 6 int ledPin4 = 7; // Digital 7 // Suhu pin int SHPin0 = 0; // Analog 0 // IR pin int IRpin = 4; // Analog 4 // Speaker pin int SPKpin = 8; // Digital 8 // Satuan int status_kirim_data = 0; float distance; int ledPin[5] = {3,4,5,6,7}; int i; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address byte ip[] = { 192, 168, 20, 254 }; // ip jaringan byte gateway[] = { 192, 168, 0, 3 }; // internet access melalui router byte subnet[] = { 255, 255, 0, 0 }; //subnet mask EthernetServer server(80); //server port String url_metadata = String(100); //mengambil url metadata void setup() { //Mengaktifkan Ethernet Ethernet.begin(mac, ip, gateway, subnet); server.begin(); pinMode(ledPin0, OUTPUT); pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); pinMode(ledPin4, OUTPUT); pinMode(SPKpin, OUTPUT); //Membuka serial data print Serial.begin(9600); Kedip_On(); delay(500); Kedip_Off(); delay(500); //Delay Ethernet module untuk boot up: Serial.print("Booting Ethernet.. Silahkan Tunggu.."); Serial.println(); Kedip_On(); delay(500); Kedip_Off(); delay(500); Kedip_On(); delay(500); Kedip_Off(); delay(500); run_led(); } void loop() { //DHT11 Sensor int chk = DHT11.read(DHT11PIN); switch (chk) { case 0: //Serial.println("OK"); Serial.print("H0, "); //KELEMBABAN ALAT Serial.print((float)DHT11.humidity, 1); Serial.println(); Serial.print("T1, "); //SUHU ALAT Serial.print((float)DHT11.temperature, 1); Serial.println(); break; } //SENSOR SUHU 0 float SUHU0=analogRead(SHPin0); float SH0=((5.00 * SUHU0 * 100)/1024); Serial.print("T0, "); //SUHU ETHERNET Serial.print(SH0,1); Serial.println(); //IR Sensor float volt = analogRead(IRpin); float volts = ((volt*5)/1024); // 5 volts = ((volt * 5)/1024), 3.3.volts = ((volt * 3.3)/1024) float distance = (65*pow(volts, -1.10))/10; // worked out from graph 65 = theretical distance / (1/Volts)S - luckylarry.co.uk Serial.print("D0, "); //JARAK SENSOR Serial.print(distance,1); Serial.println(); //STATUS DATA Serial.print("SD"); Serial.print(status_kirim_data,1); Serial.println(); if (distance < 5) { if (status_kirim_data == 0) { status_kirim_data = 1; } else { Kedip_On(); digitalWrite(SPKpin, HIGH); } } else { status_kirim_data = 0; } // Membuat Koneksi Client EthernetClient client = server.available(); if (client) { Serial.println("Menerima Request Data Dari Client"); while (client.connected()) { if (client.available()) { char c = client.read(); //membaca char per char dalam HTTP request if (url_metadata.length() < 100) { //menampilkan characters kedalam string url_metadata = url_metadata + c; } //Serial.println(url_metadata); if (url_metadata.indexOf("=") >= 0) { int Input_Pertama = (url_metadata.indexOf("=") + 1); int Pin_Pertama = int(url_metadata.charAt(Input_Pertama)) - 48; int Input_Kedua = (url_metadata.indexOf("=", Input_Pertama) + 1); int Pin_Kedua = int(url_metadata.charAt(Input_Kedua)) - 48; Serial.println(Pin_Pertama); Serial.println(Pin_Kedua); //if (Pin_Pertama == 2) //{ //} Kedip_On(); delay(100); Kedip_Off(); } client.print(" D0"); //JARAK SENSOR client.println(distance,1); digitalWrite(ledPin0, HIGH); client.print(" T0"); //SUHU ETHERNET client.println(SH0,1); digitalWrite(ledPin1, HIGH); switch (chk) { case 0: //Serial.println("OK"); client.print(" T1"); //SUHU ALAT ALAT client.println((float)DHT11.temperature, 1); digitalWrite(ledPin2, HIGH); client.print(" H0"); //KELEMBABAN ALAT client.println((float)DHT11.humidity, 1); digitalWrite(ledPin3, HIGH); break; } client.print(" SD"); //KELEMBABAN ALAT client.println((float)status_kirim_data, 1); client.println(" FR100"); //ID ALAT digitalWrite(ledPin4, HIGH); //menutup client if (!client.connected()) { Serial.println("Memutuskan Koneksi Dengan Client"); } client.stop(); //} } } } else { Serial.println("Tidak Ada Request Data Dari Client"); if (distance > 5) { Kedip_Off(); } } } void Kedip_On() { digitalWrite(ledPin0, HIGH); digitalWrite(ledPin1, HIGH); digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin4, HIGH); } void Kedip_Off() { digitalWrite(ledPin0, LOW); digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, LOW); } void run_led() { digitalWrite(ledPin0, HIGH); delay(200); // digitalWrite(ledPin0, LOW); digitalWrite(ledPin1, HIGH); delay(200); // digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, HIGH); delay(200); // digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, HIGH); delay(200); digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, HIGH); delay(200); digitalWrite(ledPin4, LOW); delay(200); }