Gracias carmeloco, Estaba buscando esto mismo que jvasquez05 hace mucho, A veces no se encuentra mucha info de lo que uno quiere hacer. Les paso mi código, es un monitor de entrega de energía de un panel solar, lo veo por la web y lo registro en una sd card, y ahora con fecha y hora gracias a ustedes, gracias.
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include <Wire.h>
#include "RTClib.h" //llamado de libreria DS1307
RTC_DS1307 RTC;
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(***, ***, **, );
IPAddress gateway(, *, ,);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server();
// SD card
const int chipSelect = 4;
//Sensor de corriente
float amps = 0;
float maxAmps = 0;
float lastAmps = 0;
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip, gateway, subnet);
Wire.begin();
RTC.begin();
//RTC.adjust(DateTime(DATE, TIME));
server.begin();
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect)) {
return;
}
}
void loop() {
// Sensor de corriente
amps = (508 - analogRead(A0)) * 27.03 / 1023;
amps = (amps + lastAmps) / 2;
lastAmps = amps;
maxAmps = max(maxAmps, amps);
{
// Creamos el String para almacenar lo que vayamos a mandar al archivo
String dataString = "";
DateTime now = RTC.now();
//Guardamos la temperratura en un string
dataString += String(amps);
dataString += " A;";
dataString += String(maxAmps);
dataString += " A;";
dataString += String(now.year(), DEC);
dataString += "/";
dataString += String(now.month(), DEC);
dataString += "/";
dataString += String(now.day(), DEC);
dataString += " ";
dataString += " - ";
dataString += String(now.hour(), DEC);
dataString += ":";
dataString += String(now.minute(), DEC);
dataString += ":";
dataString += String(now.second(), DEC);
File dataFile = SD.open("datalog.csv", FILE_WRITE); //Abrimos el archivo datalog.csv
// Si el archivo se ha abierto correctamente
if (dataFile) {
//almacenamos el string en elarchivo
dataFile.println(dataString);
dataFile.close();
}
}
delay (1000);
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 500 OK");
client.println("Content-Type: text/html");
client.println("Refresh: 0");
client.println();
client.print("");
client.print("Energia de Panel Solar");
client.print("");
client.print("");
client.print("");
client.print("
ENERGIA CAPTADA DEL SOL.
");
client.print("
Actual: ");
client.print(amps);
client.print(" A - ");
client.print("Maxima: ");
client.println(maxAmps);
client.print(" A");
client.println("
");
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(1000);
client.stop();
}
}