salve ho necessità di monitore quando si accende e si spegne il relè che aziona in automatico la pompa dell'acqua per irrigare, ho scritto già lo skecht che aziona in automatico la pompa quando arriva al liv max e spegne quando arriva al liv min, ma visto che lo fa in automatico non so per quante ore ha irrigato, quindi la necessità di memorizzare tali dati, sarebbe bello riuscire a visualizzare su uno schermo lcd a 4 linee gli start e stop che sono stati eseguiti es:
18-02-20-10:30- pompa ON
18-02-20-12:30- pompa OFF
18-02-20-16:30- pompa ON
18-02-20-18:30- pompa OFF
18-02-20-22:30- pompa ON
magari a scorrimento fino a 10 precedenti e memorizzare tutto su sd
premetto che nel codice manca l'inserimento del monitor e relativo pulsante di scorrimento, il modulo SD presente sulla shield ethernet e il modulo Ds 3231 RTC per data e ora, che faro a breve.........la cosa più difficile se potreste aiutarmi è risolvere quanto descritto prima
Grazie a tutti!
/*ATTIVAZIONE RELè CON SENSORI DI LIV MAX E MIN */
/*
50 led rosso livello acqua min 50 mt
51 led verde livello acqua max 35 mt
52 led rosso pompa spenta
53 led verde pompa accesa
A0 sensore livello acqua max 35 mt
A1 sensore livello acqua min 50 mt
22 relè pompa
*/
#define pompa 22 // relè pompa
#define led_liv_min 50
#define led_liv_max 51
#define led_pompa_off 52
#define led_pompa_on 53
#define liv_max A0
#define liv_min A1
const int soglia_minima = 800; //sensore di livello mimino
const int soglia_massima = 400; //sensore di livello massimo
void setup()
{
Serial.begin(9600);
pinMode(50, OUTPUT); //led rosso livello acqua min 50 mt
pinMode(51, OUTPUT); //led verde livello acqua max 35 mt
pinMode(52, OUTPUT); //led verde pompa accesa
pinMode(53, OUTPUT); //led rossa pompa spenta
pinMode(pompa, OUTPUT); //relè pompa
pinMode(A0, INPUT); // sensore livello acqua min 50 mt
pinMode(A1, INPUT); // sensore livello acqua max 35 mt
}
void loop()
{
int sensorValue_1 = analogRead(A0); //Legge il valore analogico liv MAX
{
if (sensorValue_1 <= soglia_massima)
{
Serial.println("pompa accesa livello acqua ok");
digitalWrite(pompa, LOW); //Accendi pompa
digitalWrite(led_pompa_on, HIGH); //Accendi led VERDE pompa
digitalWrite(led_liv_max, HIGH); //Accendi led VERDE liv MAX
digitalWrite(led_liv_min, LOW); //Spegni led ROSSO liv min
digitalWrite(led_pompa_off, LOW); //Spegni led ROSSO pompa
}
}
int sensorValue_2 = analogRead(A1); //Legge il valore analogico liv Min
{
if (sensorValue_2 >= soglia_minima)
{
Serial.println("pompa spenta livello acqua Basso" );
digitalWrite(pompa, HIGH); //spegni pompa
digitalWrite(led_pompa_on, LOW); //Spegni led VERDE pompa
digitalWrite(led_liv_max, LOW); //Spegni led VERDE liv MAX
digitalWrite(led_liv_min, HIGH); //Accendi led ROSSO liv min
digitalWrite(led_pompa_off, HIGH); //Accendi led ROSSO pompa
}
}
delay(2000); //Attende due secondi
}