#include <Ethernet.h>
#include <SPI.h>
/*
Simple Ethernet Test
Arduino server outputs simple text to browser
The circuit:
- Arduino Duemilanove
- Arduino Ethernet shield
- Basic FTDI breakout 5V
*LED connected to GND and digital pin 4 via resistor
By Minde
http://www.sciencprog.com/
*/
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = {192, 168, 1, 33 }; // ip in lan
byte gateway[] = {192, 168, 2, 254 }; // internet access via router
byte subnet[] = {255, 255, 255, 0 }; //subnet mask
EthernetServer server(5675); //server port
byte sampledata=50; //some sample data - outputs 2 (ascii = 50 DEC)
int ledPin = 7; // LED pin
String readString = String(30); //string for fetching data from address
boolean LEDON = false; //LED status flag
boolean ReleON = false; //LED status flag
int relayPin = 2; // PIN al que va conectado el relé
int pinTemperatura = 0; // Damos un nombre al pin de la temp
int tempValor ; // La variable donde guardaremos la temperatura
void setup(){
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
//Set pin 4 to output
pinMode(ledPin, OUTPUT);
//enable serial datada print
pinMode(relayPin, OUTPUT);
Serial.begin(9600);
}
void loop(){
/* digitalWrite(relayPin, HIGH); // ENCENDIDO
delay(1000);
digitalWrite(relayPin, LOW); // APAGADO
delay(1000);*/
// Primero transformamos la lectura analógica de tensión a un valor de temperatura
tempValor = ( 5.0 * analogRead(pinTemperatura) * 100.0) / 1024.0;
// Ahora imprimimos el valor en el puerto serie donde podremos monitorizarlo
Serial.print("Temperatura (Celsius) = ");
Serial.println(tempValor);
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 30)
{
//store characters to string
readString += c;
}
//output chars to serial port
Serial.print(c);
//if HTTP request has ended
if (c == '\n') {
//lets check if LED should be lighted
readString.trim();
if(readString == ("GET /?L=1 HTTP/1.1") )
{
//led has to be turned ON
digitalWrite(ledPin, HIGH); // set the LED on
LEDON = true;
}
else{
//led has to be turned OFF
digitalWrite(ledPin, LOW); // set the LED OFF
LEDON = false;
}
if(readString == ("GET /?L=2 HTTP/1.1") )
{
//led has to be turned ON
digitalWrite(relayPin, HIGH);
ReleON = true;
}
else{
//led has to be turned OFF
digitalWrite(relayPin, LOW);
ReleON = false;
}
// now output HTML data starting with standart header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
//set background to yellow
// client.print("");
//send first heading
client.println("
HTTP test routines
");
client.println("
" + readString + "
");
client.println("
");
client.println("
");
//output some sample data to browser
client.println("Sample data: ");
client.print(sampledata);//lets output some data
client.println("
");//some space between lines
client.println("
");
//drawing simple table
client.println("Simple table: ");
client.println("
");
client.println("");
client.println("
row 1, cell 1 |
row 1, cell 2 |
row 2, cell 1 |
row 2, cell 2 |
");
client.println("
");
client.println("
");
//controlling led via checkbox
client.println("
LED control
");
//address will look like
http://192.168.1.110/?L=1 when submited
client.println("LED
Rele
");
client.println("
");
//printing LED status
client.print("LED status: ");
if (LEDON)
client.println("ON");
else
client.println("OFF");
if (ReleON)
client.println("ON");
else
client.println("OFF");
client.println("
");
client.println("
");
client.println("temp: ");
client.println(tempValor);
client.println("");
//clearing string for next read
readString="";
//stopping client
client.stop();
}
}
}
}
}