Arduíno Ethernet + SD

Fala galera blz?
Preciso de uma ajuda pois já fazem algumas semanas que estou apanhando deste código e não consigo sair do lugar.
O Código abaixo liga e desliga um botão em uma página hospedada no cartão SD.
O problema é que preciso ler uma porta analógica ou digital para um sensor e não sei como fazê-lo.
Alguém pode me dar uma luz de como fazer?

Valeu galera.

Codígo ARDUINO

#if ARDUINO > 18
#include <SPI.h> 
#endif
#include <Ethernet.h>
#include <TextFinder.h>
#include <SD.h>

byte mac[] = { 0x5A, 0xA2, 0xDA, 0x0D, 0x56, 0x7A };
byte ip[] = { 192, 168, 2, 102 };
byte sdPin = 4;

EthernetServer server(80); 

File webFile;

void setup()
{ 
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
Serial.println("ARDUINO - STEUERUNG");

Serial.println("Initialisiere SD-Karte...");
if (!SD.begin(sdPin)) 
{
Serial.println(" - Initialisierung der SD-Karte fehlgeschlagen!");
return;
}
Serial.println(" - SD-Karte erfolgreich initialisiert.");

if (!SD.exists("index.htm")) 
{
Serial.println(" - Datei (index.htm) wurde nicht gefunden!");
return;
}
Serial.println(" - Datei (index.htm) wurde gefunden.");

Serial.println();
Serial.println("Verbraucher schalten");
}

void loop()
{
EthernetClient client = server.available(); 

if(client)
{
/*****************************************
Ausgänge über das Webformular steuern *
*****************************************/
TextFinder finder(client);

if(finder.find("GET"))
{
while(finder.findUntil("pin", "\n\r"))
{
char typ = client.read();
int pin = finder.getValue();
int val = finder.getValue();

if(typ == 'D')
{
pinMode(pin, OUTPUT);
digitalWrite(pin, val);
Serial.print(" - D"+String(pin));
}
else if(typ == 'A')
{
analogWrite(pin, val);
Serial.print(" - A"+String(pin));
}
else Serial.print(" - Falscher Typ");

if(val==1) Serial.println(" ein"); else Serial.println(" aus");
}
}

/************************
Webformular anzeigen *
************************/
boolean current_line_is_blank = true;

while (client.connected()) 
{
if (client.available())
{
char c = client.read(); 
if (c == '\n' && current_line_is_blank) 
{ 
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();


webFile = SD.open("index.htm"); 
if (webFile)
{
while(webFile.available())
{
client.write(webFile.read()); 
}
webFile.close();
}
break;
}
if (c == '\n') 
{
current_line_is_blank = true;
} 
else if (c != '\r') 
{
current_line_is_blank = false;
}
}
}
delay(1);
client.stop();
}
}

INDEX.HTM

<!DOCTYPE html>
<html>
<head>
<title>Arduino</title>
<style type="text/css">
h2 { margin-bottom:5px; }
</style>
</head>
<body>

<h1>Arduíno OnLine</h1>

<h2>Digital Pin3:</h2>
<a href="/?pinD3=1" target="ifr">ON</a>
<a href="/?pinD3=0" target="ifr">OFF</a>


<h2>Digital Pin6:</h2>
<a href="/?pinD6=1" target="ifr">ON</a>
<a href="/?pinD6=0" target="ifr">OFF</a>

<iframe name="ifr" style="display:none;" width="0" height="0"></iframe>
</body>
</html>

alexandre.yoshikawa:
Fala galera blz?
Preciso de uma ajuda pois já fazem algumas semanas que estou apanhando deste código e não consigo sair do lugar.
O Código abaixo liga e desliga um botão em uma página hospedada no cartão SD.
O problema é que preciso ler uma porta analógica ou digital para um sensor e não sei como fazê-lo.
Alguém pode me dar uma luz de como fazer?

Valeu galera.

Codígo ARDUINO

#if ARDUINO > 18

#include <SPI.h>
#endif
#include <Ethernet.h>
#include <TextFinder.h>
#include <SD.h>

byte mac[] = { 0x5A, 0xA2, 0xDA, 0x0D, 0x56, 0x7A };
byte ip[] = { 192, 168, 2, 102 };
byte sdPin = 4;

EthernetServer server(80);

File webFile;

void setup()
{
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
Serial.println("ARDUINO - STEUERUNG");

Serial.println("Initialisiere SD-Karte...");
if (!SD.begin(sdPin))
{
Serial.println(" - Initialisierung der SD-Karte fehlgeschlagen!");
return;
}
Serial.println(" - SD-Karte erfolgreich initialisiert.");

if (!SD.exists("index.htm"))
{
Serial.println(" - Datei (index.htm) wurde nicht gefunden!");
return;
}
Serial.println(" - Datei (index.htm) wurde gefunden.");

Serial.println();
Serial.println("Verbraucher schalten");
}

void loop()
{
EthernetClient client = server.available();

if(client)
{
/*****************************************
Ausgänge über das Webformular steuern *
*****************************************/
TextFinder finder(client);

if(finder.find("GET"))
{
while(finder.findUntil("pin", "\n\r"))
{
char typ = client.read();
int pin = finder.getValue();
int val = finder.getValue();

if(typ == 'D')
{
pinMode(pin, OUTPUT);
digitalWrite(pin, val);
Serial.print(" - D"+String(pin));
}
else if(typ == 'A')
{
analogWrite(pin, val);
Serial.print(" - A"+String(pin));
}
else Serial.print(" - Falscher Typ");

if(val==1) Serial.println(" ein"); else Serial.println(" aus");
}
}

/************************
Webformular anzeigen *
************************/
boolean current_line_is_blank = true;

while (client.connected())
{
if (client.available())
{
char c = client.read();
if (c == '\n' && current_line_is_blank)
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();

webFile = SD.open("index.htm");
if (webFile)
{
while(webFile.available())
{
client.write(webFile.read());
}
webFile.close();
}
break;
}
if (c == '\n')
{
current_line_is_blank = true;
}
else if (c != '\r')
{
current_line_is_blank = false;
}
}
}
delay(1);
client.stop();
}
}






INDEX.HTM



Arduino h2 { margin-bottom:5px; }

Arduíno OnLine

Digital Pin3:

ON OFF

Digital Pin6:

ON OFF > ```

Hey guys blz?
Need a little help since they are already a few weeks I'm picking up this code and I can not move.
The code below turns on and off a button on a page hosted on the SD card.
The problem is that I need to read an analog port or digital sensor and do not know how to do it.
Can anyone shed some light on how to do?

Thanks guys.

You will need to review the implementation of a webserver with the Arduino. One such example is Ethernet Help. - Programming Questions - Arduino Forum.

Search this forum for 'zoomkat' -- he has extensively written about how to do this sort of thing for other people, including me.

In short, you will need an HTML form that posts data back to the Arduino, which can then read and process the request from your web page.