Pages: [1]   Go Down
Author Topic: Ethernet shield  (Read 1267 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi guys, I got a problem with  my ethernet-shield.
I'm using it on an arduino duemilanove und it has worked before.
When im turning it off an on a lot of times sometimes i can connect and see the page and its just driving me crazy.
Im guessing it has something to do with the code, i think the hardware is ok.
I would be VERY glad if someone could take a look at it.
It has a lot of stuffe unrelatet to the ethernet, but i'll post it complete as i dont know which parts are relavant.

Thanks you allready =)

Code:
#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"
#include <RCSwitch.h>
#include <VirtualWire.h>

int RF_TX_PIN = 2;

RCSwitch mySwitch = RCSwitch();
int red = 0;            //integer for red darkness
int blue = 0;           //integer for blue darkness
int green = 0;          //integer for green darkness

int i=0;
char befehl[40];
int bar1redmix=0;
int bar1greenmix=0;
int bar1bluemix=0;

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 0, 16};
  byte gateway[] = { 192, 168, 0, 1 };

#define PREFIX ""
WebServer webserver(PREFIX, 80);

void indexCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) =   
      "<!DOCTYPE html><html><head><title>Homeserver</title>"     
      "<meta charset=\"utf-8\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\" /><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"><meta name=\"viewport\" content=\"width=device-width, user-scalable=no\">"
      "<link rel=\"stylesheet\" href=\"http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css\" />"
      "<script src=\"http://code.jquery.com/jquery-1.6.4.min.js\"></script>"
      "<script src=\"http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js\"></script>"
      "</head>"
      "<body>"
      "<center>"
      "<h1>Index!</h1>"
      "<form action='/tv.html' method='POST'>"
      "<p><button value='0'>Tv</button></p>"
      "</form>"
      "<form action='/bar.html' method='POST'>"
      "<p><button value='0'>Bar</button></p>"
      "</form>"
      "<form action='/lights.html' method='POST'>"
      "<p><button value='0'>Lights</button></p>"
      "</form>"
      "</center></body></html>";
    server.printP(helloMsg);
  }
}
void barCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{

  if (type == WebServer::POST)
  {
    bool repeat;
    char name[16], value[16];
    do
    {
      repeat = server.readPOSTparam(name, 16, value, 16);

      if (strcmp(name, "+") == 0)
      {       
        const char *msg = "bar1up/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "-") == 0)
      {       
        const char *msg = "bar1down/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "on") == 0)
      {
        const char *msg = "bar1on/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "off") == 0)
      {       
        const char *msg = "bar1off/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "flash") == 0)
      {       
        const char *msg = "bar1flash/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "strobe") == 0)
      {
        const char *msg = "bar1strobe/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "fade") == 0)
      {       
        const char *msg = "bar1fade/";
        vw_send((uint8_t *)msg, strlen(msg));
      }
      else if (strcmp(name, "mix") == 0)
      {       
        const char *msg = "bar1mix/";
        vw_send((uint8_t *)msg, strlen(msg));
      }

    }
    while (repeat);
    server.httpSeeOther(PREFIX);
    return;
  }

  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) =   
      "<!DOCTYPE html><html><head>"
      "<title>Bar Remote</title>"     
      "</head>"
      "<body>"
      "<center>"
      "<h1>Bar</h1>"
      "<form action='/index.html' method='POST'>"
      "<p><button value='0'>Index</button></p>"
      "</form>"

      "<table border='0'>"
      "<tr>"
      "<td><form action='/bar.html' method='POST'><p><button name='+' value='0'>+</button></form></p></td>"
      "<td><form action='/bar.html' method='POST'><p><button name='-' value='0'>-</button></form></p></td>"
      "<td><form action='/bar.html' method='POST'><p><button name='on' value='0'>On</button></form></p></td>"
      "<td><form action='/bar.html' method='POST'><p><button name='off' value='0'>Off</button></form></p></td>"
      "</tr>"
      "<br>"
      "<tr>"
      "<td><form action='/bar.html' method='POST'><p><button name='flash' value='0'>Flash</button></form></p></td>"
      "<td><form action='/bar.html' method='POST'><p><button name='strobe' value='0'>Strobe</button></form></p></td>"
      "<td><form action='/bar.html' method='POST'><p><button name='fade' value='0'>Fade</button></form></p></td>"
      "<td><form action='/bar.html' method='POST'><p><button name='mix' value='0'>Mix</button></form></p></td>"
      "</tr>"
      "</table></center>"



      "</body></html>";
    server.printP(helloMsg);
  }
}


void tvCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  if (type == WebServer::POST)
  {
    bool repeat;
    char name[16], value[16];
    do
    {
      repeat = server.readPOSTparam(name, 16, value, 16);

      if (strcmp(name, "on/off") == 0)
      {
        Serial.print("irbatvonoff/");
      }
      else if (strcmp(name, "tv/av") == 0)
      {
        Serial.print("irbatvav/");
      }
      else if (strcmp(name, "txt") == 0)
      {
        Serial.print("irbatvtxt/");
      }
      else if (strcmp(name, "mute") == 0)
      {       
        Serial.print("irbatvmute/");
      }
      else if (strcmp(name, "vol+") == 0)
      {
        Serial.print("irbatvvolup/");
      }
      else if (strcmp(name, "vol-") == 0)
      {
        Serial.print("irbatvvoldown/");
      }
      else if (strcmp(name, "prog+") == 0)
      {
        Serial.print("irbatvproup/");
      }
      else if (strcmp(name, "prog-") == 0)
      {
        Serial.print("irbatvprodown/");
      }
    }
    while (repeat);
    server.httpSeeOther(PREFIX);
    return;
  }
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) =   
      "<!DOCTYPE html><html>"
      "<head>"
      "<title>Tv Remote</title>"
      "</head>"
      "<body>"
      "<center>"
      "<h1>TV</h1>"
      "<form action='/index.html' method='POST'>"
      "<p><button value='0'>Index</button></p>"
      "</form>"
      "<form action='/tvprog.html' method='POST'>"
      "<p><button value='0'>Programme</button></p>"
      "</form>"

      "<table border='0'>"

      "<tr>"
      "<td><form action='/tv.html' method='POST'><button name='on/off' value='0'>On/Off</button></form></td>"
      "<td><form action='/tv.html' method='POST'><p><button name='prog+' value='+'>Prog +</button></form></p></td>"
      "<td><form action='/tv.html' method='POST'><button name='tv/av' value='0'>Tv/Av</button></form></td>"
      "</tr>"
      "<tr>"
      "<td><form action='/tv.html' method='POST'><p><button name='vol-' value='4'>Vol -</button></form></p></td>"
      "<td><form action='/tv.html' method='POST'><p><button name='txt' value='5'>Txt</button></form></p></td>"
      "<td><form action='/tv.html' method='POST'><p><button name='vol+' value='6'>Vol +</button></form></p></td>"
      "</tr>"
      "<td><form action='/tv.html' method='POST'><p><button name='mute' value='0'>Mute</button></form></p></td>"
      "<td><form action='/tv.html' method='POST'><p><button name='prog-' value='8'>Prog -</button></form></p></td>"
      "<td>&#160;</td>"
      "</tr>"
      "</table>"
      "</center>"
      "</body></html>";
    server.printP(helloMsg);
  }
}

void lightsCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  if (type == WebServer::POST)
  {
    bool repeat;
    char name[16], value[16];
    do
    {
      repeat = server.readPOSTparam(name, 16, value, 16);
      if (strcmp(name, "max") == 0)
      {
        Serial.print("rmaxswitch/");
      }
      else if (strcmp(name, "Aon") == 0)
      {
        mySwitch.switchOn("11111", 1);
      }
      else if (strcmp(name, "Bon") == 0)
      {
        mySwitch.switchOn("11111", 2);
      }
      else if (strcmp(name, "Con") == 0)
      {
        mySwitch.switchOn("11111", 3);
      }
      else if (strcmp(name, "Don") == 0)
      {
        mySwitch.switchOn("11111", 4);
      }
      else if (strcmp(name, "Aoff") == 0)
      {
        mySwitch.switchOff("11111", 1);
      }
      else if (strcmp(name, "Boff") == 0)
      {
        mySwitch.switchOff("11111", 2);
      }
      else if (strcmp(name, "Coff") == 0)
      {
        mySwitch.switchOff("11111", 3);
      }
      else if (strcmp(name, "Doff") == 0)
      {
        mySwitch.switchOff("11111", 4);
      }
    }
    while (repeat);

    server.httpSeeOther(PREFIX);
    return;
  }


  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) =   
      "<!DOCTYPE html><html><head><title>Light Remote</title>"
      "<meta charset=\"utf-8\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\" /><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\"><meta name=\"viewport\" content=\"width=device-width, user-scalable=no\">"
      "<link rel=\"stylesheet\" href=\"http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css\" />"
      "<script src=\"http://code.jquery.com/jquery-1.6.4.min.js\"></script>"
      "<script src=\"http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js\"></script>"
      "</head>"
      "<body>"
      "<center>"

      "<h1>Lights</h1>"
      "<form action='/index.html' method='POST'><p><button value='0'>Index</button></p></form>"
      "<h3>Deckenlichter</h3>"
      "<form action='/lights.html' method='POST'><p><button name='max' value='0'>Max On/Off</button></p>"


      "<h3>Steckdosen</h3>"     
      "<table border='0'>"
      "<tr>"
      "<td><font>A</font></p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Aon' value='0'>On</button></form></p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Aoff' value='0'>OFF</button></form></p></td>"
      "<td><font>Beschreibung A</font></p></td>"
      "</tr>"

      "<tr>"
      "<td><font>B</font></p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Bon' value='0'>On</button></form></p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Boff' value='0'>OFF</button></form></p></td>"
      "<td><font>Standlampe </font></p></td>"
      "</tr>"

      "<tr>"
      "<td>C</p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Con' value='0'>On</button></form></p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Coff' value='0'>OFF</button></form></p></td>"
      "<td>Werkbank</p></td>"
      "</tr>"

      "<tr>"
      "<td>D</p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Don' value='0'>On</button></form></p></td>"
      "<td><form action='/lights.html' method='POST'><button name='Doff' value='0'>OFF</button></form></p></td>"
      "<td>Beschreibung D</p></td>"     
      "</tr>"
      "</table>"
      "</center></body></html>";
    server.printP(helloMsg);
  }
}
void tvprogCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) =   
      "<!DOCTYPE html><html><head><title>TV Remote</title>"
      "<body>"
      "<center>"
      "<h1>Programme</h1>"
      "<form action='/index.html' method='POST'>"
      "<p><button value='0'>Index</button></p></form>"
      "<form action='/tv.html' method='POST'>"
      "<p><button value='0'>Back</button></p></form>"
      "</center></body></html>";
    server.printP(helloMsg);
  }
}



void setup()
{
  /* initialize the Ethernet adapter */
 
  vw_set_tx_pin(RF_TX_PIN); // Setup transmit pin
  vw_setup(2000);

  Ethernet.begin(mac, ip, gateway);
  webserver.begin();
  webserver.setDefaultCommand(&indexCmd);
  webserver.addCommand("index.html", &indexCmd);
  webserver.addCommand("tv.html", &tvCmd);
  webserver.addCommand("bar.html", &barCmd);
  webserver.addCommand("lights.html", &lightsCmd);
  webserver.addCommand("tvprog.html", &tvprogCmd);
  mySwitch.enableTransmit(9);
  Serial.begin(9600);

}

void loop()
{
  char buff[64];
  int len = 64;
  analogWrite(5, red);

  webserver.processConnection(buff, &len);
}
Logged

0
Offline Offline
Tesla Member
***
Karma: 145
Posts: 9636
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
When im turning it off an on a lot of times sometimes i can connect and see the page and its just driving me crazy.

Whenever I hear the sparrow chirping, watch the woodpecker chirp, catch a chirping trout, or listen to the sad howl of the chirp rat, I think: Oh boy! I'm going insane again. - Deep Thoughts by Jack Handy
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

not very helpful but a great quote smiley-grin
Logged

0
Offline Offline
Tesla Member
***
Karma: 145
Posts: 9636
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

not very helpful but a great quote smiley-grin

As "i can connect and see the page and its just driving me crazy" is the only problem discription given, not much more can be said.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 77
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

oh yeah, maybe i didn't pointet my problem out well enough.
I have no idea why it works sometime and why not.
I was hoping it had something to do with the code and maybe the initialising of the ethernet shield or something like that.
Logged

Miramar Beach, Florida
Offline Offline
Faraday Member
**
Karma: 147
Posts: 6040
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What ethernet shield are you using? Is it a w5100 based shield?
What IDE version are you using?
Where did you get that ethernet library?

You will get a lot more help if you are using IDE v1.0.1, a w5100 ethernet shield, and the IDE ethernet library.
Logged

Thessaloniki, Greece
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Very interesting code!
If you already have a card into the SD card slot, reset and try whithout the card.
« Last Edit: November 21, 2012, 06:54:52 pm by Zeus » Logged

Pages: [1]   Go Up
Jump to: