4 – Void (loop)
void loop()
{
while (SerialGPS.available() > 0)
{
if (gps.encode(SerialGPS.read()))
{
if (gps.date.isValid())
{
Day = gps.date.day();
Month = gps.date.month();
Year = gps.date.year();
}
if (gps.time.isValid())
{
Hour = gps.time.hour() + changement_heure; // ajuste UTC (heure hivers +1 - heure été +2)
Minute = gps.time.minute();
Second = gps.time.second();
}
GestionZero(); // Ajout 0 si var < 10
val_heure = zh + String(Hour) + ":" + zmn + String(Minute) + ":" + zs + String(Second);
val_date = String(Day) + "/" + zmois + String(Month) + "/" + String(Year);
total_mn_gps = (Hour) * 60 + Minute; // calcul nb total en minutes des heures du GPS
}
}
// ------------------------- Conversion des heures en minutes & calcul tranche début fin --------------------------
if (T1_Debut_EV1 != "")
{
T1_Debut_EV1_Int = T1_Debut_EV1.toInt();
}
if (T1_Debut_M_EV1 != "")
{
T1_Debut_M_EV1_Int = T1_Debut_M_EV1.toInt();
}
if (T1_Nb_Cycle_EV1 != "")
{
Nb_Cycle_EV1_Int = T1_Nb_Cycle_EV1.toInt();
}
if (T1_Periode_Cycle_EV1 != "")
{
T1_Periode_Cycle_EV1_Int = T1_Periode_Cycle_EV1.toInt();
}
if (T1_Duree_Cycle_EV1 != "")
{
T1_Duree_Cycle_EV1_Int = T1_Duree_Cycle_EV1.toInt();
}
// ----------------------------------- traitement des tranches à afficher sur la page web -----------------------------
T1M = ""; // Ajout 0 si mn entre 0et 9
if (T1_Debut_M_EV1_Int < 10)
{
T1M = "0";
}
T1_Total_Debut_EV1 = T1_Debut_EV1_Int * 60 + T1_Debut_M_EV1_Int + T1_Periode_Cycle_EV1_Int * T1_Cpt_Nb_Cycle_EV1; // Conversion des heures en minutes
T1_Total_Fin_Cycle_EV1 = T1_Total_Debut_EV1 + T1_Duree_Cycle_EV1_Int; // Calcul de la fin des cycles
if (T1_Total_Fin_Cycle_EV1 == total_mn_gps && T1_Cpt_Nb_Cycle_EV1 < Nb_Cycle_EV1_Int) // A la fin du cycle calcul le cycle suivant
{
T1_Cpt_Nb_Cycle_EV1++;
}
if (T1_Cpt_Nb_Cycle_EV1 == Nb_Cycle_EV1_Int)
{
T1_Cpt_Nb_Cycle_EV1 = 0;
}
//------------------------------Gestion des cde de sortie électrovannes (PCF8475) -----------------------------
I_EV1 = PCF_21.read(7); // inter marche/arrêt forcée EV1
I_EV2 = PCF_21.read(6); // inter march/arrête forcée EV2
I_EV3 = PCF_21.read(5); // inter marche/arrêt forcée EV3
I_EV4 = PCF_21.read(4); // inter marche/arrêt forcée EV4
if (inputMessage1 == "4" && inputMessage2 == "0")
{
Mode_AM = 0;
inputMessage1 == "";
}
if (inputMessage1 == "4" && inputMessage2 == "1")
{
Mode_AM = 1;
inputMessage1 == "";
}
//* ----------------------- Marche/Arrêt mode manuel -----------------------
if (Mode_AM == 0)
{
val_out = 5; //! permet de na pas activer les sortie de 0 à 4 (essai)
val_state = 0;
if (inputMessage1 == "3")
{
if (I_EV1 == 1 || inputMessage2 == "1")
{
PCF_21.write(S_EV1, 0); // Marche EV1
}
else if (I_EV1 == 0 || inputMessage2 == "0")
{
PCF_21.write(S_EV1, 1); // Arrêt EV1
}
}
if (inputMessage1 == "2")
{
if (I_EV2 == 1 || inputMessage2 == "1")
{
PCF_21.write(S_EV2, 0); // Marche EV2
}
else if (I_EV2 == 0 || inputMessage2 == "0")
{
PCF_21.write(S_EV2, 1); // Arrêt EV2
}
}
if (inputMessage1 == "1")
{
if (I_EV3 == 1 || inputMessage2 == "1")
{
PCF_21.write(S_EV3, 0); // Marche EV3
}
else if (I_EV3 == 0 || inputMessage2 == "0")
{
PCF_21.write(S_EV3, 1); // Arrêt EV3
}
}
if (inputMessage1 == "0")
{
if (I_EV4 == 1 || inputMessage2 == "1")
{
PCF_21.write(S_EV4, 0); // Marche EV4
}
else if (I_EV4 == 0 || inputMessage2 == "0")
{
PCF_21.write(S_EV4, 1); // Arrêt EV4
}
}
}
//* ----------------------- Marche/Arrêt mode automatique -----------------------
if (Mode_AM == 1)
{
// if (((total_mn_gps >= T1_Total_Debut_EV1) && (total_mn_gps < T1_Total_Fin_Cycle_EV1)))
if (total_mn_gps >= T1_Total_Debut_EV1 && total_mn_gps < T1_Total_Fin_Cycle_EV1)
{
PCF_21.write(S_EV1, 0); // marche auto
val_out = 3;
val_state = 1;
}
else
{
PCF_21.write(S_EV1, 1); // arrêt auto
val_out = 3;
val_state = 0;
}
}
affiche_ecran();
}