Pages: 1 2 [3]   Go Down
Author Topic: Controlling Arduino via Web  (Read 3392 times)
0 Members and 1 Guest are viewing this topic.
Santo Domingo, Dominican Republic
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
Keep it simple.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry for double posting.
Almost everything is always working perfectly, except one thing:
After some minutes online with the server, it stops working, like after 5 minutes or so.
Here's the code, it's pretty simple, its a variant from a Example Sketch of the book: Arduino Cookbook.

Code:
/*
* WebServerPost sketch
*
*/
#if ARDUINO > 18
#include <SPI.h> // needed for Arduino versions later than 0018
#endif
#include <Ethernet.h>
#include <TextFinder.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,100,110 };
byte gateway[] ={ 192, 168, 100, 1 }; // add this if needed by your router or gateway
char buffer[8]; // buffer holding the requested page name
Server server(8000);
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip, gateway);
server.begin();
delay(250);
Serial.println("Ready");
}
void loop()
{
Client client = server.available();
if (client) {
TextFinder finder(client );
int type = 0;
while (client.connected()) {
if (client.available()) {
// GET, POST, or HEAD
if(finder.getString("","/", buffer,sizeof(buffer))){
if(strcmp(buffer,"POST ") == 0){
finder.find("\n\r"); // skip to the body
// find string starting with "pin", stop on first blank line
// the POST parameters expected in the form pinDx=Y
// where x is the pin number and Y is 0 for LOW and 1 for HIGH
while(finder.findUntil("pinD", "\n\r")){
int pin = finder.getValue(); // the pin number
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
delay(250);
digitalWrite(pin, LOW);
delay(250);
}
}
sendHeader(client,"Post example");
//create HTML button to turn on pin 8
client.print("<form action='/' method='POST'><p><input type='hidden' name='pinD8'");
client.print(" value='1'><input type='submit' value='On'/></form>");
//create HTML button to turn on pin 9
client.print("<form action='/' method='POST'><p><input type='hidden' name='pinD9'");
client.print(" value='1'><input type='submit' value='On'/></form>");
client.println("</body></html>");
client.stop();
}
break;
}
}
// give the web browser time to receive the data
delay(1);
client.stop();
}
}
void sendHeader(Client client, char *title)
{
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<html><head><title>");
client.print(title);
client.println("</title><body>");
}

The Ethernet Shield IC also gets incredibly hot. Any ideas?
« Last Edit: August 22, 2011, 06:25:13 pm by Rainier9 » Logged

Keep it simple.

The people's republic of Massachusetts
Offline Offline
Full Member
***
Karma: 0
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Even some DHCP IP address will remain static.

Comcast is an example of this, the only time an IP will change is if YOU change your hardware or they do a major system change.  The last IP I had was static for 3 years.
Logged

Santo Domingo, Dominican Republic
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
Keep it simple.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What do you mean? My public IP is actually static, I paid for one. Also, the problem is not the address, the server just doesnt host the page after a few minutes. In order for it to work again I have to reset the Shield.
Logged

Keep it simple.

The people's republic of Massachusetts
Offline Offline
Full Member
***
Karma: 0
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I was just mentioning it since Comcast does not offer static IP's for non business accounts.

My Arduino also gets very hot, the Ethernet shield is hot but not intolerable.  What hardware are you using?
I have not noticed mine resetting or turning off, but it may.


Logged

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 643
Posts: 50438
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
In order for it to work again I have to reset the Shield.
How are you powering the Arduino/Ethernet shield?

Quote
The Ethernet Shield IC also gets incredibly hot.
My thermometer does not have "incredibly" on it. Can you identify on a scale of say 32 to 212 where incredibly falls?

Perhaps the W5100 chip (if that's the one you have) is getting too hot. You may need a fan, or a different power supply.
Logged

Pages: 1 2 [3]   Go Up
Jump to: