Le code de l'arduino:
// sorties numeriques
byte impulsion = 4;
byte contactPuits = 12;
byte contactCuve = 11;
// entrees analogiques
byte niveauPuits = 0;
byte cuveH = 2;
byte cuveB = 1;
byte lumiere = 3;
byte pressostat = 7;
// seuil de lumiere
int sLum = 850;
int lu;
int puit;
int cH;
int cB;
int pres;
unsigned long tps0;
unsigned long tps;
unsigned long dtps;
void setup()
{
// initialisation des 4 relais ou pas
plutot ou plus
// Putain j'arrive pas a trouver la logique avec le nodemcu
// ça m'enerve
// pourtant c'est simple
// un petit coups de The Agonist
// Putaiiiiiiiiiiiiiiiiiin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Voilà je l'ai
// Ah ben non
pinMode(impulsion,OUTPUT);
digitalWrite(impulsion,LOW);
pinMode(contactPuits,OUTPUT);
digitalWrite(contactPuits,HIGH);
pinMode(contactCuve,OUTPUT);
digitalWrite(contactCuve,HIGH);
pinMode(1,INPUT);
digitalWrite(1,LOW);
pinMode(2,INPUT);
digitalWrite(2,LOW);
// initialisation port série pour l'affichage des valeurs lors des tests
Serial.begin(9600);
Serial.println("Demarrage de l'arduino");
}
void loop()
{
Serial.print("Lumiere \t");
lu = analogRead(lumiere);
Serial.println(lu);
digitalWrite(impulsion, HIGH);
delay(1000);
puit = analogRead(niveauPuits);
cH = analogRead(cuveH);
cB = analogRead(cuveB);
pres = analogRead(pressostat);
Serial.print("puit \t");
Serial.println(puit);
Serial.print("cuve haut \t");
Serial.println(cH);
Serial.print("cuve bas \t");
Serial.println(cB);
Serial.print("pressostat \t");
Serial.println(pres);
delay(1000);
digitalWrite(impulsion, LOW);
// boucle de remplissage de la cuve
if(digitalRead(6) || cB < 500)
{
Serial.println("demarrage puits");
puits();
}
if(digitalRead(5))
{
Serial.println("demarrage cuve");
cuve();
}
if(!digitalRead(5))
{
Serial.println("Arret cuve");
digitalWrite(11,HIGH);
}
delay(30000);
}
void puits()
{
tps0 = millis();
dtps = 0;
while(cH < 250 && dtps < 420000 && puit > 250 && lu > sLum)
{
tps = millis();
dtps = tps - tps0;
Serial.print("tps \t");
Serial.println(dtps);
Serial.println("demarrage pompe puit");
digitalWrite(contactCuve,HIGH);
digitalWrite(contactPuits,LOW);
digitalWrite(impulsion, HIGH);
delay(1000);
cH = analogRead(cuveH);
cB = analogRead(cuveB);
puit = analogRead(niveauPuits);
pres = analogRead(pressostat);
lu = analogRead(lumiere);
Serial.print("puit \t");
Serial.println(puit);
Serial.print("cuve haut \t");
Serial.println(cH);
Serial.print("cuve bas \t");
Serial.println(cB);
delay(1000);
digitalWrite(impulsion, LOW);
delay(20000);
}
digitalWrite(contactPuits,HIGH);
}
void cuve()
{
if(cB > 250 && pres > 500 && lu > sLum)
{
digitalWrite(impulsion, HIGH);
delay(1000);
cB = analogRead(cuveB);
pres = analogRead(pressostat);
lu = analogRead(lumiere);
Serial.print("cuve bas \t");
Serial.println(cB);
delay(1000);
digitalWrite(impulsion, LOW);
Serial.println("demarrage pompe surpresseur");
digitalWrite(11,LOW);
}
else
{
digitalWrite(11,HIGH);
}
}