Go Down

Topic: Problems with my webserver (Read 1 time) previous topic - next topic


Feb 27, 2011, 12:58 am Last Edit: Feb 27, 2011, 01:03 am by prozorianu Reason: 1
I built a code for Arduino + Ethernet Shield ... Relay webserver or Led webserver- works well but in my webpage apears some errors .....
My page does not load completely

This is my code
Code: [Select]

#include <SPI.h>
#include <Ethernet.h>
#include <avr/pgmspace.h>

byte    mac[] =     { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //physical mac address
byte    ip[] =      { 192, 168, 137, 103 };                     // ip in lan
byte    gateway[] = { 192, 168, 137, 255 };                       // internet access via router
byte    subnet[] =  { 255, 255, 255, 0 };                     //subnet mask
Server  server(80);                // server port

#define     A_pin 9                
#define     B_pin 2              
#define     C_pin 3
#define     D_pin 4
#define     E_pin 5
#define     F_pin 6
#define     Y_pin 7
#define     Z_pin 8

char    link[]= "";                // link data
String  readString = String(70);   // string for fetching data from address

boolean Ledstatus[8];

//var globale, pt afisarea etichetelor(cap de tabel)
char font_gray[] ="<font color=\"black\" size=\"5\">";
char font_green[]="<font color=\"green\" size=\"5\">";

prog_char string0[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='A' value='1'>ON<br><input type='submit' name='A' value='0'>OFF</td>";
prog_char string1[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='B' value='1'>ON<br><input type='submit' name='B' value='0'>OFF</td>";
prog_char string2[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='C' value='1'>ON<br><input type='submit' name='C' value='0'>OFF</td>";
prog_char string3[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='D' value='1'>ON<br><input type='submit' name='D' value='0'>OFF</td>";
prog_char string4[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='E' value='1'>ON<br><input type='submit' name='E' value='0'>OFF</td>";
prog_char string5[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='F' value='1'>ON<br><input type='submit' name='F' value='0'>OFF</td>";
prog_char string6[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='Y' value='1'>ON<br><input type='submit' name='Y' value='0'>OFF</td>";
prog_char string7[] PROGMEM = "<font color=\"gray\" size=\"2\"><input type='submit' name='Z' value='1'>ON<br><input type='submit' name='Z' value='0'>OFF</td>";

PROGMEM const char *string_table[] =   // change "string_table" name to suit
{ string0,
char buffer[140]; //lungimea max a unui string din PROGMEM +1

void setup()
//  Serial.begin(57600); //enable serial datada print
 Ethernet.begin(mac, ip, gateway, subnet); //start Ethernet
 pinMode(A_pin, OUTPUT); //Set pin 4 to output
 pinMode(B_pin, OUTPUT);
 pinMode(C_pin, OUTPUT);
 pinMode(D_pin, OUTPUT);
 pinMode(E_pin, OUTPUT);
 pinMode(F_pin, OUTPUT);
 pinMode(Y_pin, OUTPUT);
 pinMode(Z_pin, OUTPUT);
 Serial.print("Started server");


void loop(){

 Client client = server.available();  // Create a client connection
   if (client) {
     while (client.connected()) {
       if (client.available()) {

         char c = client.read();

       if (readString.length() < 70) { //read char by char HTTP request
         readString.concat(c); } //store characters to string
       Serial.print(c); //output chars to serial port for debugging

       if (c == '\n') { //if HTTP request has ended
         int Ae = readString.indexOf("A=");
         int Be = readString.indexOf("B=");
         int Ce = readString.indexOf("C=");
         int De = readString.indexOf("D=");
         int Ee = readString.indexOf("E=");
         int Fe = readString.indexOf("F=");
         int Ye = readString.indexOf("Y=");
         int Ze = readString.indexOf("Z=");
         //lets check if LED should be lighted
         if (readString.substring(Ae,(Ae+3)) == "A=1") { //led has to be turned ON
             digitalWrite(A_pin, HIGH); // set the LED on
             //Serial.println("A_pin paa");
             Ledstatus[0] = true;
         if (readString.substring(Ae,(Ae+3))== "A=0") {  //led has to be turned OFF
           digitalWrite(A_pin, LOW); // set the LED OFF
           //Serial.println("A_pin av");
           Ledstatus[0] = false;
         if (readString.substring(Be,(Be+3)) == "B=1") {
             digitalWrite(B_pin, HIGH);
             Ledstatus[1] = true;
         if (readString.substring(Be,(Be+3)) == "B=0") {
           digitalWrite(B_pin, LOW);
           Ledstatus[1] = false;
         if (readString.substring(Ce,(Ce+3)) == "C=0") {
           digitalWrite(C_pin, LOW);
         if (readString.substring(Ce,(Ce+3)) == "C=1") {
           digitalWrite(C_pin, HIGH);
         if (readString.substring(De,(De+3)) == "D=0") {
           digitalWrite(D_pin, LOW);
         if (readString.substring(De,(De+3)) == "D=1") {
           digitalWrite(D_pin, HIGH);
         if (readString.substring(Ee,(Ee+3)) == "E=0") {
           digitalWrite(E_pin, LOW);
         if (readString.substring(Ee,(Ee+3)) == "E=1") {
           digitalWrite(E_pin, HIGH);
         if (readString.substring(Fe,(Fe+3)) == "F=0") {
           digitalWrite(F_pin, LOW);
         if (readString.substring(Fe,(Fe+3)) == "F=1") {
           digitalWrite(F_pin, HIGH);
         if (readString.substring(Ye,(Ye+3)) == "Y=0") {
           digitalWrite(Y_pin, LOW);
         if (readString.substring(Ye,(Ye+3)) == "Y=1") {
           digitalWrite(Y_pin, HIGH);
          if (readString.substring(Ze,(Ze+3)) == "Z=0") {
           digitalWrite(Z_pin, LOW);
         if (readString.substring(Ze,(Ze+3)) == "Z=1") {
           digitalWrite(Z_pin, HIGH);
client.println("HTTP/1.1 200 OK"); // now output HTML data starting with standart header
client.println("Content-Type: text/html");
client.print  ("<body style=background-color:white>"); //set background to white

         // HTML Code
         client.println("<br />");
         client.println("<font color=\"blue\"><h2>WEB SERVER PRO</font></h2>");//send first heading
         client.println("<form><table border=2><tr>");
         for(int i=0; i<8; i++){
             if(Ledstatus[i]) client.println(font_green);
                   else       client.println(font_gray);
             client.println("</b></font><br />");
             strcpy_P(buffer, (char*)pgm_read_word(&(string_table[i])));
             if(i==3) client.println("</tr><tr>"); //new row
         client.println("</tr></table></form> <br />");

client.stop();//stopping client
//Serial.println("Stopper klient");

//clearing string for next read

Please help me to understand why this errors apears :(


Can you paste the html that gets outputted?

Alternatively you may want to take a look at Webduino by Ben Combee and Ran Talbott.
Common sense is not so common...


Resolved !  :)

Code: [Select]
client.stop();//stopping client

"delay" was the problem pffffff

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131