3 – Void (setup)
void setup()
{
// Serial port for debugging purposes
Serial.begin(9600);
EEPROM.begin(512);
PCF_21.begin(); // Entrées sortie sup.
//-------------------------------------- Gestion AHT10 -------------------------------
aht.begin();
//---------------------------------------- Gestion GPS -------------------------------
SerialGPS.begin(9600);
//--------------------------- Gestion écran OLED -----------------------------
pinMode(input_ecran, INPUT_PULLUP);
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
{
Serial.println(F("SSD1306 allocation erreur"));
for (;;)
; // Ne continuez pas, bouclez pour toujours
}
display.clearDisplay();
display.drawBitmap(0, 0, logo_arrosage, 128, 64, 1); // affiche le logo arrosage sur l'écran Oled
display.display();
delay(1000); // Pause de 1 secondes
display.setCursor(0, 0); // Déplacement du curseur en position (0,0), angle supérieur gauche
display.clearDisplay();
display.setTextColor(EcritureTexteBlanc, FondTexteNoir);
display.println("Recherche borne Wifi");
//-------------------------------------- Gestion Wi-Fi -------------------------------
WiFi.begin(ssid, password);
Serial.print("Recherche borne Wifi");
while (WiFi.status() != WL_CONNECTED)
{
Clignotement(500);
Serial.print(".");
display.print(".");
display.display();
cpt++;
if (cpt == 1000)
{
wifi_ok = 0;
return; // Sortir de la boucle si non connexion au bout de x tentatives}
}
}
Serial.print("Connection à l'adresse IP: ");
Serial.println(WiFi.localIP());
WiFi.printDiag(Serial); // imprimer les principales informations du wifi
Serial.println();
// ---------- Etat connection du wifi sur ecran Oled -------------
display.setCursor(0, 0);
display.clearDisplay();
display.display();
display.println(WiFi.localIP());
display.display();
lecture_json(); // lire les valeurs des heure et incorporer dans les variables
// ---- Page web bouton & varables (heure/date ...) Initialisation du serveur Web ------------------
server.on("/", HTTP_POST, [](AsyncWebServerRequest *request) { // HTTP POST ssid value
});
server.on("/get_out", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send_P(200, "text/plain", readOut().c_str()); });
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send_P(200, "text/html", index_html, processor); });
server.on("/val_heure", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send_P(200, "text/plain", readHeure().c_str()); });
server.on("/val_date", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send_P(200, "text/plain", readDate().c_str()); });
server.on("/temperatureInt", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send_P(200, "text/plain", readAHTTemperature().c_str()); });
server.on("/humidite", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->send_P(200, "text/plain", readAHTHumidity().c_str()); });
server.on("/update", HTTP_GET, [](AsyncWebServerRequest *request)
{
if (request->hasParam(PARAM_INPUT_1) && request->hasParam(PARAM_INPUT_2))
{
inputMessage1 = request->getParam(PARAM_INPUT_1)->value();
inputMessage2 = request->getParam(PARAM_INPUT_2)->value();
}
Affiche_gpio();
request->send(200, "text/plain", "OK"); });
// ----------------------------- Formulaire -------------------------------
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
{
request->send_P(200, "text/html", index_html); // Envoyer la page HTML depuis le fichier index_html.h
});
server.on("/submit", HTTP_POST, [](AsyncWebServerRequest *request)
{
if (request->hasParam("T1_Debut_EV1", true)) {
T1_Debut_EV1 = request->getParam("T1_Debut_EV1", true)->value();
}
if (request->hasParam("T1_Debut_M_EV1", true)) {
T1_Debut_M_EV1 = request->getParam("T1_Debut_M_EV1", true)->value();
}
if (request->hasParam("T1_Nb_Cycle_EV1", true)) {
T1_Nb_Cycle_EV1 = request->getParam("T1_Nb_Cycle_EV1", true)->value();
}
if (request->hasParam("T1_Periode_Cycle_EV1", true)) {
T1_Periode_Cycle_EV1 = request->getParam("T1_Periode_Cycle_EV1", true)->value();
}
if (request->hasParam("T1_Duree_Cycle_EV1", true)) {
T1_Duree_Cycle_EV1 = request->getParam("T1_Duree_Cycle_EV1", true)->value();
}
String response = "<!DOCTYPE html><html lang=\"fr\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>Résultat de l'Arrosage</title></head><body>";
response += "<div style=\"background-color: blue; padding: 10px;\">";
response += "<h3 style=\"color: white;\">Zone 1</h3>";
response += "<p style=\"color: white;\">Heure de démarrage: " + T1_Debut_EV1 + "</p>";
response += "<p style=\"color: white;\">Minute de démarrage: " + T1_Debut_M_EV1 + "</p>";
response += "<p style=\"color: white;\">Nombre d'arrosage: " + T1_Nb_Cycle_EV1 + "</p>";
response += "<p style=\"color: white;\">Intervalle d'arrosage: " + T1_Periode_Cycle_EV1 + "</p>";
response += "<p style=\"color: white;\">Durée d'arrosage: " + T1_Duree_Cycle_EV1 + "</p>";
response += "</div>";
response += "<br><br><a href=\"/\" style=\"background-color: white; color: blue; padding: 10px 20px; text-decoration: none; border: 1px solid blue;\">Retour</a>";
response += "</body></html>";
ecriture_json();
request->send(200, "text/html", response); });
// Start server
server.begin();
}