element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum Ethernet Shield error
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 19 replies
  • Subscribers 402 subscribers
  • Views 2819 views
  • Users 0 members are here
  • arduino
Related

Ethernet Shield error

Former Member
Former Member over 11 years ago

I am using below Open source Code to test my Ethernet sheild connected to Uno . Seems Everything is fine  but when I try to compile or upload its comming up with error ; 'Ethernet has not been declared' and There are few other error probally causing because of the Main error ;

rbbb_server:11: error: 'Ethernet' has not been declared

rbbb_server:12: error: 'BufferFiller' does not name a type

rbbb_server.ino: In function 'void setup()':

rbbb_server:15: error: 'ether' was not declared in this scope

rbbb_server:15: error: 'Ethernet' has not been declared

rbbb_server:17: error: 'ether' was not declared in this scope

rbbb_server.ino: In function 'word homePage()':

rbbb_server:25: error: 'bfill' was not declared in this scope

rbbb_server:25: error: 'ether' was not declared in this scope

rbbb_server.ino: In function 'void loop()':

rbbb_server:39: error: 'ether' was not declared in this scope.

 

if someone can help me fix this issues it will be grateful Thank you

 

// This is a demo of the RBBB running as webserver with the Ether Card

// 2010-05-28 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

 

 

 

//#include <Ethernet.h>

#include <EtherCard.h>

 

 

// ethernet interface mac address, must be unique on the LAN

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

static byte myip[] = { 192,168,1,203 };

 

 

byte Ethernet::buffer[500];

BufferFiller bfill;

 

 

void setup () {

  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)

    Serial.println( "Failed to access Ethernet controller");

  ether.staticSetup(myip);

}

 

 

static word homePage() {

  long t = millis() / 1000;

  word h = t / 3600;

  byte m = (t / 60) % 60;

  byte s = t % 60;

  bfill = ether.tcpOffset();

  bfill.emit_p(PSTR(

    "HTTP/1.0 200 OK\r\n"

    "Content-Type: text/html\r\n"

    "Pragma: no-cache\r\n"

    "\r\n"

    "<meta http-equiv='refresh' content='1'/>"

    "<title>RBBB server</title>"

    "<h1>$D$D:$D$D:$D$D</h1>"),

      h/10, h%10, m/10, m%10, s/10, s%10);

  return bfill.position();

}

 

 

void loop () {

  word len = ether.packetReceive();

  word pos = ether.packetLoop(len);

 

  if (pos)  // check if valid tcp data is received

    ether.httpServerReply(homePage()); // send web page data

}

  • Sign in to reply
  • Cancel
Parents
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago

    And to prove the new ENC library is code comparable with the Wiznet library here is the same sketch working on the ENC chip, the ONLY difference was which library I included

    You don't have permission to edit metadata of this video.
    Edit media
    x
    image
    Upload Preview
    image

     

    Code :

    #include <SPI.h>
    #include <Wire.h>
    #include <stdio.h>
    //#include <Ethernet.h>
    #include <UIPEthernet.h>
    
    // ethercard interface mac address, must be unique on the LAN
    //static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
    //static byte myip[] = { 192,168,1,203 };
    // byte Ethernet::buffer[500];
             
    //ethernet
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x4E, 0x10 };  // MAC address 84.85.88.16.0.36
    byte ip[]  = { 192, 168, 1, 203 };                     // ip-address, please change to fit your network
    byte mydns[] = { 192, 168, 1, 1 };           
    byte gateway[] = { 192, 168, 1, 1 };            
    byte subnet[] = { 255,255,255,0 };
    EthernetServer server(80);
    static char output[300] = "";
    #define BUFLEN 255
    
    
    //BufferFiller bfill;
    
    
    void setup () {
    //ethercard
    // if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    //   Serial.println( "Failed to access Ethernet controller");
    //ether.staticSetup(myip);
      Serial.begin(9600);
    
    
      //ethernet
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.print("server is at ");
      Serial.println(Ethernet.localIP());
    }
    char headerHTML[] = "HTTP/1.1 200 OK\r\n"
              "Content-Type: text/html\r\n"
              "Connection: close\r\n"
              "Refresh: 5\r\n"
              "\r\n"
              "<!DOCTYPE HTML>"
              "<Title>RBBS Server</Title>"
              "<html>";
             
    char footerHTML[] = "</html>" ;
    
    char * TimeElapsed() { // Was Home Page
      long t = millis() / 1000;
      word h = t / 3600;
      byte m = (t / 60) % 60;
      byte s = t % 60;
      sprintf(output, "<h1>%d%d:%d%d:%d%d</h1>" , h/10, h%10, m/10, m%10, s/10, s%10);
      return output;
    }
    
    void sendAnalogToNetwork(EthernetClient myClient)
    {
        // output the value of each analog input pin for good measure
        for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
          int sensorReading = analogRead(analogChannel);
          myClient.print("analog input ");
          myClient.print(analogChannel);
          myClient.print(" is ");
          myClient.print(sensorReading);
          myClient.println("<br />");      
        }
    }
    
    void loop ()
    {
    // listen for incoming clients
      EthernetClient client = server.available();
      if (client) {
        Serial.println("new client");
        // an http request ends with a blank line
        boolean currentLineIsBlank = true;
        while (client.connected()) {
          if (client.available()) {
            char c = client.read();
            Serial.write(c);
            // if you've gotten to the end of the line (received a newline
            // character) and the line is blank, the http request has ended,
            // so you can send a reply
            if (c == '\n' && currentLineIsBlank) {
              // send a standard http response header
              client.print(headerHTML);
              // now send the stuff we want
              client.print(TimeElapsed()); // your old code here
              // do some more stuff
              sendAnalogToNetwork(client);
               // were done sending so now send the footer to close the page
              client.println(footerHTML);
              break;
            }
            if (c == '\n') {
              // you're starting a new line
              currentLineIsBlank = true;
            }
            else if (c != '\r') {
              // you've gotten a character on the current line
              currentLineIsBlank = false;
            }
          }
        }
        // give the web browser time to receive the data
        delay(1);
        // close the connection:
        client.stop();
        Serial.println("client disconnected");
      }
    }

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    Thank you very much sir. Really appreciate your help. I would like you to help me if possible with this code below, Will it work with Wiznet ethernet module ? it works fine on ENC chip module.

     

    // DHT code from:

    // Example testing sketch for various DHT humidity/temperature sensors

    // Written by ladyada, public domain

     

    #include "DHT.h"

     

    #define DHTPIN 2     // what pin we're connected to

     

    // Uncomment whatever type you're using!

    #define DHTTYPE DHT11   // DHT 11

    // #define DHTTYPE DHT22   // DHT 22  (AM2302)

    //#define DHTTYPE DHT21   // DHT 21 (AM2301)

    DHT dht(DHTPIN, DHTTYPE);

     

    // LCD

    // LCD RS=3, EN=4, DS4=5, DS5=6, DS6=7, DS7=8

    #include Humidity: $D %

    "),

      t, h);

      return bfill.position();

    }

     

    // The main loop

    //  We add to the timer and read the DHT11 values when Timer == 1, otherwise we loop without reading it

    // Once the Timer value == to 1100 we zero it and start the count again.  This way the sensors are only

    // read once every 1100 loops.  Every time we go through the loop we listen for a request on the Ethernet

    //  If we see one we send the webpage.  We also add an animation on the LCD so we know the loop is working.

     

    void loop () {

     

      Timer  = Timer+1;

      if(Timer==1)

      {

        ReadDHT11();

        // set the cursor to (0,0):

        lcd.setCursor(0, 0);

        // print from 0 to 9:

     

        lcd.print("Temp: ");

        lcd.print(t);

        lcd.print("C");

        // set the cursor to (16,1):

        lcd.setCursor(0,1);

        lcd.print("Humidity: ");

        lcd.print(h);

        lcd.print("%");

     

        if(Animation==0)

        {

          lcd.print("  *");

        }

        if(Animation==1)

        {

          lcd.print("  +");

        }

        Animation = Animation + 1;

        if(Animation==2)

        {

          Animation=0;

        }

      }

      if(Timer==1100)a

      {

        Timer=0;

      }

     

      word len = ether.packetReceive();

      word pos = ether.packetLoop(len);

     

      if (pos)  // check if valid tcp data is received

      {

        ReadDHT11();

        ether.httpServerReply(homePage()); // send web page data

      }

    }

     

    Thank you

    Regards

    Ankit Patel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    Thank you very much sir. Really appreciate your help. I would like you to help me if possible with this code below, Will it work with Wiznet ethernet module ? it works fine on ENC chip module.

     

    // DHT code from:

    // Example testing sketch for various DHT humidity/temperature sensors

    // Written by ladyada, public domain

     

    #include "DHT.h"

     

    #define DHTPIN 2     // what pin we're connected to

     

    // Uncomment whatever type you're using!

    #define DHTTYPE DHT11   // DHT 11

    // #define DHTTYPE DHT22   // DHT 22  (AM2302)

    //#define DHTTYPE DHT21   // DHT 21 (AM2301)

    DHT dht(DHTPIN, DHTTYPE);

     

    // LCD

    // LCD RS=3, EN=4, DS4=5, DS5=6, DS6=7, DS7=8

    #include Humidity: $D %

    "),

      t, h);

      return bfill.position();

    }

     

    // The main loop

    //  We add to the timer and read the DHT11 values when Timer == 1, otherwise we loop without reading it

    // Once the Timer value == to 1100 we zero it and start the count again.  This way the sensors are only

    // read once every 1100 loops.  Every time we go through the loop we listen for a request on the Ethernet

    //  If we see one we send the webpage.  We also add an animation on the LCD so we know the loop is working.

     

    void loop () {

     

      Timer  = Timer+1;

      if(Timer==1)

      {

        ReadDHT11();

        // set the cursor to (0,0):

        lcd.setCursor(0, 0);

        // print from 0 to 9:

     

        lcd.print("Temp: ");

        lcd.print(t);

        lcd.print("C");

        // set the cursor to (16,1):

        lcd.setCursor(0,1);

        lcd.print("Humidity: ");

        lcd.print(h);

        lcd.print("%");

     

        if(Animation==0)

        {

          lcd.print("  *");

        }

        if(Animation==1)

        {

          lcd.print("  +");

        }

        Animation = Animation + 1;

        if(Animation==2)

        {

          Animation=0;

        }

      }

      if(Timer==1100)a

      {

        Timer=0;

      }

     

      word len = ether.packetReceive();

      word pos = ether.packetLoop(len);

     

      if (pos)  // check if valid tcp data is received

      {

        ReadDHT11();

        ether.httpServerReply(homePage()); // send web page data

      }

    }

     

    Thank you

    Regards

    Ankit Patel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago in reply to Former Member

    I think this will answer your question

     

    DHT22 temperature and Humidity Sensor with Arduino Uno and Ethernet Card (ENC or WizNet) (Instant weather Station)

     

    I posted this last night, all you need to do is incorporate the LCD bits of code and your done. It will work with the ENC or WIZ, just change the include statement

     

    Peter

     

    Please click "Correct Answer" or helpful if this is. thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    ?Thank you sir,

     

     

             I am sorry I sound so not clever. But Can you Please help me adding LCD bits onto this Code ?

     

     

    Thank you

     

    Regards

     

    Ankit Patel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    at below The Code with LCD interface which doesnt work

     

     

    // DHT code from:

    // Example testing sketch for various DHT humidity/temperature sensors

    // Written by ladyada, public domain

     

    #include "DHT.h"

     

    #define DHTPIN 2     // what pin we're connected to

     

    // Uncomment whatever type you're using!

    #define DHTTYPE DHT11   // DHT 11

    // #define DHTTYPE DHT22   // DHT 22  (AM2302)

    //#define DHTTYPE DHT21   // DHT 21 (AM2301)

    DHT dht(DHTPIN, DHTTYPE);

     

    // LCD

    // LCD RS=3, EN=4, DS4=5, DS5=6, DS6=7, DS7=8

    #include Humidity: $D %

    "),

      t, h);

      return bfill.position();

    }

     

    // The main loop

    //  We add to the timer and read the DHT11 values when Timer == 1, otherwise we loop without reading it

    // Once the Timer value == to 1100 we zero it and start the count again.  This way the sensors are only

    // read once every 1100 loops.  Every time we go through the loop we listen for a request on the Ethernet

    //  If we see one we send the webpage.  We also add an animation on the LCD so we know the loop is working.

     

    void loop () {

     

      Timer  = Timer+1;

      if(Timer==1)

      {

        ReadDHT11();

        // set the cursor to (0,0):

        lcd.setCursor(0, 0);

        // print from 0 to 9:

     

        lcd.print("Temp: ");

        lcd.print(t);

        lcd.print("C");

        // set the cursor to (16,1):

        lcd.setCursor(0,1);

        lcd.print("Humidity: ");

        lcd.print(h);

        lcd.print("%");

     

        if(Animation==0)

        {

          lcd.print("  *");

        }

        if(Animation==1)

        {

          lcd.print("  +");

        }

        Animation = Animation + 1;

        if(Animation==2)

        {

          Animation=0;

        }

      }

      if(Timer==1100)

      {

        Timer=0;

      }

     

      word len = ether.packetReceive();

      word pos = ether.packetLoop(len);

     

      if (pos)  // check if valid tcp data is received

      {

        ReadDHT11();

        ether.httpServerReply(homePage()); // send web page data

      }

    }

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    This is the code below you suggested but need to add LCD code bit ! I have no qlue what to do .. I am kind of Stuck!  ( I am using It with Wiznet Based Ethernet Sheild)

    #include ");

        }

    }

    /*******************************************************************************

     

    • Main Loop

    *******************************************************************************/

    void loop()

    {

     

    // listen for incoming clients

      EthernetClient client = server.available();

      if (client) {

        Serial.println("new client");

        // an http request ends with a blank line

        boolean currentLineIsBlank = true;

        while (client.connected()) {

          if (client.available()) {

            char c = client.read();

            Serial.write(c);

            // if you've gotten to the end of the line (received a newline

            // character) and the line is blank, the http request has ended,

            // so you can send a reply

            if (c == '\n' && currentLineIsBlank) {

              // send a standard http response header

              client.print(headerHTML);

              // now send the stuff we want

              client.print(TimeElapsed()); // your old code here

              // do some more stuff

              sendTempToNetwork(client);

              sendAnalogToNetwork(client);

               // were done sending so now send the footer to close the page

              client.println(footerHTML);

              break;

            }

            if (c == '\n') {

              // you're starting a new line

              currentLineIsBlank = true;

            }

            else if (c != '\r') {

              // you've gotten a character on the current line

              currentLineIsBlank = false;

            }

          }

        }

        // give the web browser time to receive the data

        delay(1);

        // close the connection:

        client.stop();

        Serial.println("client disconnected");

      }

    delay(2000);

    }

     

    void Cal_Temp()

    {

      if (TempHi&0x80)    // If bit7 of the TempHi is HIGH then the temperature is negative

        P_N = 0;

      else    // Else the temperature is positive

      P_N = 1;

     

      TempHi = TempHi & 0x7F;   // Remove sign

      TempLo = TempLo & 0xF0;   // Filter out last nibble

      TempLo = TempLo >>4; // Shift right 4 times

      Decimal = TempLo;

      Decimal = Decimal * 625;  // Each bit = 0.0625 degree C

      combined_temp_C= TempHi + TempLo*.0625;

      combined_temp_F = combined_temp_C*1.8+32;

       sprintf(strTempC, "%f", combined_temp_C);

       sprintf(strTempF, "%f", combined_temp_F);

    }

    ////Celsius to Kelvin conversion

    //double Kelvin(double celsius)

    //{

    //        return celsius + 273.15;

    //}

     

    // dewPoint function NOAA

    // reference: http://wahiduddin.net/calc/density_algorithms.htm

    double dewPoint(double celsius, double humidity)

    {

            double A0= 373.15/(273.15 + celsius);

            double SUM = -7.90298 * (A0-1);

            SUM += 5.02808 * log10(A0);

            SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;

            SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;

            SUM += log10(1013.246);

            double VP = pow(10, SUM-3) * humidity;

            double T = log(VP/0.61078);   // temp var

            return (241.88 * T) / (17.558-T);

    }

     

    // delta max = 0.6544 wrt dewPoint()

    // 5x faster than dewPoint()

    // reference: http://en.wikipedia.org/wiki/Dew_point

    double dewPointFast(double celsius, double humidity)

    {

            double a = 17.271;

            double b = 237.7;

            double temp = (a * celsius) / (b + celsius) + log(humidity/100);

            double Td = (b * temp) / (a - temp);

            return Td;

    }

     

    Thank you

    Regards

    Ankit Patel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago in reply to Former Member

    link in the LCD your using, maybe a link to the product page, there are so many I want to ensure I am helping with the right one

     

    Peter

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    ?Dear Sir ,

     

    I am using OLED 2x16 yellow 84x44 (Product Code N07QQ)

     

    Here is the Link ; http://www.maplin.co.uk/p/oled-2x16-yellow-character-display-n07qq

     

    OLED 2x16 Yellow Character Display | Maplin

    Colour Organic Light Emitting Display with alphanumeric characters. OLEDs remove the requirement for back lit panels and offer vibrant, sharp colours. Low power cons

    Read more...<http://www.maplin.co.uk/p/oled-2x16-yellow-character-display-n07qq>

     

    ?

     

     

    Thank you

     

    Regards

     

    Ankit Patel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    Sir,

     

    The Help I am receiving from you sir. I really appreciate it.

     

     

    Thank you

     

    Regards

     

    Ankit Patel

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube