Go Down

Topic: Ethernet shield (Read 1 time) previous topic - next topic

Jesusismybrother

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: [Select]
#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;
  }

Jesusismybrother

Code: [Select]
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);
}

zoomkat

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
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

Jesusismybrother

not very helpful but a great quote :D

zoomkat


not very helpful but a great quote :D


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.
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

Jesusismybrother

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.

SurferTim

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.

Zeus

#7
Nov 22, 2012, 12:50 am Last Edit: Nov 22, 2012, 12:54 am by Zeus Reason: 1
Very interesting code!
If you already have a card into the SD card slot, reset and try whithout the card.

Go Up