Como mandar una falla de energía a un servidor web utilizando Ethernet shield

Que tal todos , estoy realizando un proyecto con arduino que mide la temperatura de una sala con un sensor Dth11 y mediante un servidor web me indique la temperatura con un refresco de 3 segundos , eso está hecho pero el problema es que necesito acoplar una simulación de falla eléctrica y que me muestre en el servidor que existe esa falla pero la verdad soy nuevo en esto y no tengo idea de como hacerlo. Les agradezco por leer y si me podrían ayudar o dar orientación , saludos!

este es mi cpodigo

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

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // Ingresamos la MAC y la IP del arduino, la ip tiene que estar en el mismo rango que nuestro router.
IPAddress ip(10, 13, 81, 175);
EthernetServer server(80);// Iniciamos la libreria de ethernet con la ip y el puerto que vayamos a usar(puerto 80 por defecto para http)
DHT dht( 2, DHT11); // indicamos que dentro de la libreria del DHT, vamos a crear un objeto que va a usar el pin 2, y va a ser del tipo dht11

void setup() {

  dht.begin(); //inicializamos la libreria DHT
  Serial.begin(9600); //inicializamos la comunicacion serie
  while (!Serial) {
    ; // espera a que el puerto serie se conecte.
  }

  // comienza la conexion con internet:
  Ethernet.begin(mac, ip);//inicializa cual es la mac y la ip
  server.begin();//inicializa el servidor
  Serial.print("servidor esta en ");//imprime
  Serial.println(Ethernet.localIP());//imprime la ip local
}

////////////////////////////////////////////////////////////////////////////////////
// PRINCIPAL ///////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
void loop() {
  
  EthernetClient client = server.available();                   // se crea el objeto cliente cuando el servidor esté disponible
  if (client) {                                                 // si el cliente esta conectado
    Serial.println("Nuevo cliente");                            //imprime
    // una respuesta http termina con una linea en blanco
    boolean currentLineIsBlank = true;                          // y detecta una linea en blanco
    while (client.connected()) {                                //mientras el cliente esté conectado
      if (client.available()) {                                 // y si el cliente está disponible
        char c = client.read();                                 // crea un objeto llamado c para leer al cliente
        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.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.print("<head><title>TEMPERATURA</title><head>");
          client.print("<body background=http://static.vueling.com/cms/media/1217000/santander.jpg>");

          

            float t=dht.readTemperature();
            
            client.print("<hr weidth=130 noshade>");// una linea horizontal de 150 que no tiene sombra
            client.print("<font face=arial><font size=4><div align=right>Telefonos de Mexico</font></div>");
            client.print("<font face=arial><font size=4><div align=right>José Antonio Vargas</font></div>");
            client.print("



");// espacio de separacion
            client.print("<font face=arial><font size=6><div align=center>Temperatura actual del cuarto</div></font face></font size>
"); // fuente, tamaño y alineamiento del texto, el tamaño entre 1 y 6, 3 el de por defecto.
            client.print("

");
            client.print("<font face=arial><font size=7><div align=center>");
            client.print(t);
            client.print(" &degC</div></font face></font size>");
            client.println("








"); // espacios para insertar la linea de separacion final, antes del logo
          
     
          
          client.println("</html>");
          break;
        }
        
        if (c == '\n') {
          // comienzas una nueva linea
          currentLineIsBlank = true;
        } else if (c != '\r') {
          // has conseguido un nuevo caracter en la misma linea
          currentLineIsBlank = false;
        }
      }
    }
    // le da un tiempo al navegador para dar los datos
    delay(1);
    // conexion terminada:
    client.stop();
    Serial.println("Cliente desconectado");
  }
}

Para detectar una falla electrica necesitas tener algo que te lo informe.
Y en tal caso requieres de que tu arduino pueda enviar información aún cuando se caiga la energía electrica, de manera que debe estar alimentado desde baterias que a la vez se cargan cuando hay energía.

Otra posibilidad sería que tuvieras un gran capacitor o supercapacitor que mantenga la energia en el Arduino por los mseg necesarios para enviar el dato y luego chau.

Ahora si se cae la energía tal vez te quedes sin red o tienes un backup para que la red (router y demas) sigua funcionenado cuando te quedas sin energía?

surbyte:
Para detectar una falla electrica necesitas tener algo que te lo informe.
Y en tal caso requieres de que tu arduino pueda enviar información aún cuando se caiga la energía electrica, de manera que debe estar alimentado desde baterias que a la vez se cargan cuando hay energía.

Otra posibilidad sería que tuvieras un gran capacitor o supercapacitor que mantenga la energia en el Arduino por los mseg necesarios para enviar el dato y luego chau.

Ahora si se cae la energía tal vez te quedes sin red o tienes un backup para que la red (router y demas) sigua funcionenado cuando te quedas sin energía?

Antes que nada , gracias por responder , lo que quiero hacer no es algo mucho menos complejo que eso , tengo pensado representar la falla con un simple encendido y apagado de led con botón donde el apagar del led represente la falla de corriente , simplemente necesito que en el servidor web aparezca el mensaje que hay falla de energía y la hora en que sucedió , esto representado por el led apagado con el botón

Si pero para representar algo primero debes detectarlo y para detectarlo tu sistema debe seguir funcionando.
Entonces es fácil.

Puedes por ejemplo usar un detector de AC basado en un optoacoplador. Lo hemos explicado muchas veces en el foro, busca Detector de 220VAC y verás las opciones.
Normalmente se trata de un optoacoplador común o bien uno dedicado como el h11A1

Que te hará este circuito te dirá esto

Cada 10 mseg tendras un pulso y ese pulso te dirá hay AC. Los 10 mseg son el semiperíodo de la AC. Eso lo conectas a una Interrupción y tendras el detector de AC que buscas. Muy muy simple.

Creo que lo venden en módulo para ARduino.

Hay otros optoacopladores que pueden usarse, basados en versiones comunes como el 4n25 u otros.