bangnaga icon

Arduino Ethernet Shield Baca Sensor

bangnaga | PRO | 05/28/12 02:25:44 AM UTC | 0 ⭐ | 365 👁️ | Never ⏰ | []
C |

4.96 KB

|

None

|

0 👍

/

0 👎

#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>
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);
}

Comments