#include "EmonLib.h"
#include <SPI.h>
#include <Ethernet.h>
float Irms, Potencia;
long last_read = 1;
float volts =230.00; // Voltage
unsigned long periodo = 3000;
unsigned long tiempoAnterior = 0;
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0xA0, 0x88
};
IPAddress ip(192,168,0,229);
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server = EthernetServer(80);
EnergyMonitor energyMonitor;
void setup() {
Serial.begin(9600);
delay(5000);
energyMonitor.current(0, 1.6 );
Serial.println("Servidor Web Ethernet Temperatura & Humedad");
// Iniciar la conexión Ethernet
Ethernet.begin(mac, ip);
// Verificar que el Ethernet Shield está correctamente conectado.
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Ethernet shield no presente :(");
while (true) {
delay(1); // do nothing, no point running without Ethernet hardware
}
}
if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("El cable Ethernet no está conectado o está defectuoso.");
}
// Iniciar el servidor
server.begin();
}
void loop() {
if ( millis() - last_read > 8000) { // actualizar cada 8 segundos
updateSCT();
last_read = millis();
}
listenForClients();
}
void updateSCT() {
double Irms = energyMonitor.calcIrms(1484);
// Calculamos la potencia aparente
double Potencia = Irms * volts;
// Mostramos la información por el monitor serie
}
void listenForClients() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.print("nuevo cliente conectado desde ");
Serial.println( client.remoteIP() );
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
// Enviar cabecera de respuesta http
// protocolo HTTP 1.1
client.println("HTTP/1.1 200 OK");
// Formato del contenido en HTML
client.println("Content-Type: text/html");
// Cerrar conexión al terminar la respuesta
client.println("Connection: close");
// El navegador refresca la página cada 5 segundos
client.println("Refresh: 10");
client.println();
// Enviar pagina web en HTML
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// Enviar temperatura
client.print( "Corriente consumida: " );
client.print(Irms);
client.println( " Amperios" );
// Enviar humedad
client.print( "Potencia consumida: " );
client.print(Potencia);
client.println( " Watios" );
client.println("</html>");
break;
}
Buenas noches queridos amigos. Estoy realizando un proyecto, en el cual estoy midiendo la corriente con un SCT-013-00. Para la comunicación web, finalmente me he decidido por una ethernet shield.
Consigo mostrar los textos por la web, pero no consigo que se muestren los datos actualizados del sensor.
He realizado pruebas y el sensor funciona puesto que muestra los datos por el monitor serial.
Espero que podáis ayudarme porque estoy desesperado.