Ethernet Voltage Meter?

Hello,

I am very new to Arduino, I don't have a clue where to start I wish to make a webpage that has a voltage meter on it. The reason I want to do this is because I have 3 Solar panels that I want to be able to monitor on my phone and other devices.

It can be basic text but what I want to do in the future is:

Store the page on SD card. log the voltages at diffrent times of day. more than one volt meter. Amp meter. Graphing on the webpage powered by the Arduino its self.

Thanks for you help, I really appreciate it :)

So let's see...not much detail in your request.

  1. Uno
  2. Ethernet shield (Perhaps a wireless card)
  3. Micros SD card.

Do you need xbee for wireless comms? There are other options for wireless. Do you need batteries? Perhaps an ehternet cable. What voltage and current are you working with?

Randy

Hello,

Thanks for your reply,

I have an Arduino Mega 2560.
Ethernet Wiznet W5100
I have a 2gb or 4gb micro SDHC

I wont be needing a Xbee shield I just need a small length of wire.
It will be powered by a 12 volt lead acid battery.
I Have a Ethernet cable for the job and it will be wired directly into my hub.
The voltage I will be using is 11-13.6 volt DC.
The current I will be using is 0-10 amps

Thanks for your help :slight_smile:

I suggest sending your data to Pachube.com and let them do the graphing. There's an iphone app called Hubcape where you can see the data you're sending to Pachube. There's a lots of code examples showing how to use an Arduino and Ethernet shield to send the data to pachube.

Here's a link to a guy with a wind farm who sends data to Pachube: http://code.google.com/p/arduwind/

Some test code that puts the input to the analog pins in a refreshing web page.

// arduino IDE 1.0
// for W5100 ethernet shield
// the IP address will be dependent on your local network/router
// port 80 is default for HTTP, but can be changed as needed
// use IP address like http://192.168.1.102:84 in your brouser
// or http://zoomkat.no-ip.com:84 with dynamic IP service
// use the \ slash to escape the " in the html
// meta refresh set for 2 seconds

#include <SPI.h>
#include <Ethernet.h>

int x=0; //set refresh counter to 0
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,102); // ip in lan
EthernetServer server(84); //server is using port 84

void setup()
{
  // start the server
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
     while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // see if HTTP request has ended with blank line
        if (c == '\n') {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          //meta-refresh page every 2 seconds
          x=x+1; //page upload counter
          client.println("<HTML>");
          client.print("<HEAD>");
          client.print("<meta http-equiv=\"refresh\" content=\"2\">");
          client.print("<TITLE />Zoomkat's meta-refresh test</title>");
          client.print("</head>");
          client.println("<BODY>");
          client.print("Zoomkat's meta-refresh test IDE 1.0");
          client.println("
");
                    
          client.print("page refresh number ");
          client.println(x); //current refresh count
          client.println("
");
          client.println("
");
          
          client.print("Zoomkat's arduino analog input values:");
          client.println("
");
          client.println("
");
          
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));
            client.println("
");
            }
           break;
          client.println("</BODY>");
          client.println("</HTML>");
         }
        }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
  }
}