Sistema de Riego

Hola amigos este es mi primer post en el foro y espero que con vuestra sabiduría me ayudéis a solucionar mi problema.
Estoy haciendo una práctica para la universidad que se centra en un sistema de riego y estos son los requisitos que tenemos que cumplir:
–Programación RTC Software mediante Timer 1y uso de estructuras.
–Lectura, calibración y filtraje de los sensores.
–Implementación driver PCF8574 interface I2C.
–Implementación de terminal de comandos serie.
•Aplicación de control.
–Programador horario por zonas independientes, con un máximo de 4 zonas.
–Limite de humedad elevada, anula el riego si la humedad se encuentra por encima de un nivel.
–Limite de humedad inferior, si se encuentra durante un periodo de tiempo programable por debajo del nivel prefijado el sistema de riego se activa.
–Limite de temperatura del aire elevada, Si la temperatura del aire supera el limite prefijado, el riego se pospone hasta que la temperatura se encuentre por debajo.
–Todos los parámetros de configuración se almacenaran en la EEEPRON.
–El sistema dispondrá de un botón de reset por defecto. Si se mantiene pulsado durante 7 Segundos todos los datos de la EEPRON son borrados por los parámetros por defecto.

Mi problema viene a la hora de hacer una función con parámetros por defecto como por ejemplo la hora que quiero que se encienda y se apague cada zona una vez hecho el reset y hacer un reset que funcione en mi codigo.

Os dejo directamente el archivo con el codigo porque tiene muchas lineas de codigo y sino esto iba a ser muy grande.
Espero que con vuestra ayuda me ayudeis a encontrar una solucion. Gracias.

prueba6.ino (18 KB)

Por favor hechale un ojo a las normas del foro ,sobre todo en lo referente a la elección del titulo y edita tu post.En cuanto al tiempo ,tienes un ejemplo en el ide de como calcular el tiempo transcurrido (blinkingwithdelay) .en los parametros ,a partir del ide 1.6.2 (creo) la libreria eeprom incorpora metodos para trabajar directamente con tipos de datos ,en vez de grabar byte a byte ,entonces tendras que ver que estructura de datos usar segun el tipo de datos que quieras guardar.

[modo_moderador]
Como te dijo jose edita ese título y ponle por ejemplo : Sistema de riego.
[/modo_moderador]

Para el tema de las alarmas horarias te recomiendo usar Time.h y TimeAlarm.h libraries.
El ejemplo de TimeAlarms es la respuesta a lo que pides.
Veo que con esto no respondo tu consulta, asi que miro con mas detalle.

Cual es la función de la que hablas, donde quieres pasar la hora?
veo que creaste una estructura de tiempo pero pudiste usar time_t que es una variable especial de tiempo, eso requiere que uses Time.h, de cualquier manera no hay problema para pasarlo como parámetro.
Espero tu respuesa para poder darte precisiones.
Que función es la que quieres usar para pasarle el parámetro de tiempo?

Lo que no se muy bien como poner es por ejemplo que una vez que haga el reset, me muestre por pantalla por ejemplo que la zona 1 se enciende a las 09:00 y se apaga a las 10:00 y lo mismo con el resto de zonas.
Además no se muy bien como implementar la función de reset y que después haga lo que he puesto anteriormente.
Todo eso hecho mediante strings.
Como verás en el codigo he intentado hacer una función de reset y de valores por defecto para que aparezcan después del reset pero no me termina de salir.

De nuevo.. dime donde esta la rutina correspondiente. Son 16k de código.