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.
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?
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
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.
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();
}
}