Dernière révision : septembre 2023










Projet ESP8266 n° 1

Philippe Notez (philippe.notez@musee-info.fr)





Sommaire

Introduction

L’électronique et l’informatique ont profondément modifié notre société. C’est certainement la révolution industrielle la plus rapide de l’histoire de l’humanité. En effet, l’ordinateur que nous connaissons aujourd’hui était tout simplement inimaginable il y a seulement une cinquantaine d’années. Et avec les Arduino, les ESP8266 ou les Raspberry Pi Pico, l'aventure est loin d'être terminée.

L’auteur ne pourra en aucun cas être tenu responsable des dommages qui résulteraient de l’utilisation des informations publiées sur ce site, sous licence Creative Commons BY-NC-SA. Toute reproduction ou modification d'un document, même partielle, est autorisée à condition que son origine et le nom de l'auteur soient clairement indiqués (BY), qu'il soit utilisé à des fins non commerciales (NC), que son mode de diffusion soit identique au document initial (SA), et que cela ne porte pas atteinte à l’auteur.

Ce document présente un projet utilisant une carte ESP8266 (ESP-01), en espérant toujours être le plus clair et précis possible. Malgré tout le soin apporté à la rédaction, l'auteur vous remercie de bien vouloir le contacter si vous relevez la moindre erreur ou omission, et vous souhaite une agréable lecture.

Si vous avez apprécié ce document, vous pouvez faire un don ici. Merci pour votre soutien.


Objectif

Gérer un relais avec un ESP-01, via un navigateur web et une connexion wifi (maj OTA).


Niveau




Matériel utilisé
  • une carte ESP-01 (mémoire flash : 512 kio*) ou ESP-01S (mémoire flash : 1 Mio)
  • un module relais
  • un convertisseur USB - RS-232 avec interrupteur (voir ci-dessous)

Programme (sketch)

esp-01.ino
// gérer un relais avec un ESP8266 (ESP-01),
// via un navigateur web et une connexion wifi (maj OTA)

#include <ESP8266WiFi.h>
#include <ArduinoOTA.h>
#include <WiFiUdp.h>
#include <NTPClient.h>

#define nom_wifi "..."
#define mdp_wifi "..."
#define nom_ota "Serveur web ESP8266"
#define mdp_ota "..."
#define relais 0

IPAddress ip(192,168,1,47);
IPAddress masque(255,255,255,0);
IPAddress passerelle(192,168,1,1);
IPAddress dns(192,168,1,1);

WiFiServer serveur_web(80);
WiFiClient client_web;
WiFiUDP client_udp;
NTPClient client_ntp(client_udp,"fr.pool.ntp.org",0,14400000);
// 0 s = fuseau horaire (GMT), 14400000 ms = 14400 s = 4 h (taux de rafraîchissement)

int jour_m=1,mois_m=1,annee_m=1970,heures_m=0,minutes_m=0;
int jour_a=1,mois_a=1,annee_a=1970,heures_a=0,minutes_a=0;
int jour,mois,annee,heures,minut;

void setup()
  {
  pinMode(relais,OUTPUT);
  digitalWrite(relais,HIGH);
  // WiFi.mode(WIFI_AP);                        // Access Point mode (box)
  // WiFi.softAPConfig(ip,passerelle,masque);
  // WiFi.softAP(nom_wifi,mdp_wifi,1,false,8);  // channel (1 to 13, default = 1), ssid_hidden (true or false, default = false), max_connection (0 to 8, default = 4)
  // WiFi.setOutputPower(5.0);                  // puissance d'émission (0 à 20.5 dBm, -3 dBm pour une puissance divisée par 2, +3 dBm pour une puissance multipliée par 2)
  WiFi.mode(WIFI_STA);
  WiFi.config(ip,passerelle,masque,dns);
  WiFi.begin(nom_wifi,mdp_wifi);
  Serial.begin(9600);
  Serial.write(13);
  Serial.write(10);
  Serial.write("Numéro de série de l'ESP8266 : ");
  Serial.println(ESP.getChipId());
  Serial.write("Fréquence CPU (MHz) : ");
  Serial.println(ESP.getCpuFreqMHz());
  Serial.write("Fréquence mémoire flash (MHz) : ");
  Serial.println(ESP.getFlashChipSpeed()/1000000);
  Serial.write("Capacité mémoire flash (octets) : ");
  Serial.println(ESP.getFlashChipRealSize());
  Serial.write("Mémoire flash utilisée (octets) : ");
  Serial.println(ESP.getSketchSize());
  Serial.write("Mémoire flash disponible (octets) : ");
  Serial.println(ESP.getFreeSketchSpace());
  Serial.write("Connexion au réseau wifi");
  while (WiFi.status()!=WL_CONNECTED)
    {
    Serial.write('.');
    delay(100);
    }
  Serial.write(13);
  Serial.write(10);
  Serial.write("Connecté au réseau wifi !");
  Serial.write(13);
  Serial.write(10);
  Serial.write("Nom du réseau : ");
  Serial.println(WiFi.SSID());
  Serial.write("Force du signal : ");
  Serial.print(WiFi.RSSI());  // Received Signal Strength Indication
  Serial.write(" dBm");       // dB mW, 0 dBm = puissance max. (1 mW)
  Serial.write(13);
  Serial.write(10);
  Serial.write("Adresse MAC : ");
  Serial.println(WiFi.macAddress());
  Serial.write("Adresse IP : ");
  Serial.println(WiFi.localIP());
  Serial.write("Masque de sous-réseau : ");
  Serial.println(WiFi.subnetMask());
  Serial.write("Passerelle : ");
  Serial.println(WiFi.gatewayIP());
  Serial.write("Serveur DNS : ");
  Serial.println(WiFi.dnsIP());
  ArduinoOTA.setHostname(nom_ota);
  ArduinoOTA.setPassword(mdp_ota);
  ArduinoOTA.begin();
  Serial.write("OTA démarré !");
  Serial.write(13);
  Serial.write(10);
  serveur_web.begin();
  Serial.write("Serveur web démarré !");
  Serial.write(13);
  Serial.write(10);
  client_ntp.begin();
  Serial.write("Client NTP démarré !");
  Serial.write(13);
  Serial.write(10);
  }

void loop()
  {
  char car,requete_client[256],compteur=0,texte[5],j=0;
  unsigned char i=0;

  ArduinoOTA.handle();    
  client_web=serveur_web.available();
  if (client_web)
    {
    Serial.write("Client connecté !");
    Serial.write(13);
    Serial.write(10);
    do
      {
      car=client_web.read();
      if ((i<255) && (car!=13)) requete_client[i++]=car;
      if (car=='=')
        {
        // jour de marche
        if (compteur==0)
          {
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) jour_m=atoi(texte);
          else jour_m=1;
          }
        // mois de marche
        if (compteur==1)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) mois_m=atoi(texte);
          else mois_m=1;
          }
        // année de marche
        if (compteur==2)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<4) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<4) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) annee_m=atoi(texte);
          else annee_m=1970;
          }
        // heures de marche
        if (compteur==3)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) heures_m=atoi(texte);
          else heures_m=0;
          }
        // minutes de marche
        if (compteur==4)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) minutes_m=atoi(texte);
          else minutes_m=0;
          }
        // jour d'arrêt
        if (compteur==5)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) jour_a=atoi(texte);
          else jour_a=1;
          }
        // mois d'arrêt
        if (compteur==6)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) mois_a=atoi(texte);
          else mois_a=1;
          }
        // année d'arrêt
        if (compteur==7)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<4) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<4) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) annee_a=atoi(texte);
          else annee_a=1970;
          }
        // heures d'arrêt
        if (compteur==8)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!='&') && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!='&') && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) heures_a=atoi(texte);
          else heures_a=0;
          }
        // minutes d'arrêt
        if (compteur==9)
          {
          j=0;
          do
            {
            car=client_web.read();
            if ((i<255) && (car!=13)) requete_client[i++]=car;
            if ((j<2) && (car!=13)) texte[j++]=car;
            }
          while ((j<2) && (car!=13));
          texte[j]=0;
          if (texte[0]!=0) minutes_a=atoi(texte);
          else minutes_a=0;
          }
        if (compteur<10) compteur++;
        }
      }
    while ((i<255) && (car!=13));
    while (client_web.available()>0) client_web.read();
    // client_web.flush();
    requete_client[i]=0;
    if (requete_client[0]!=0)
      {
      Serial.write(requete_client);
      Serial.write(13);
      Serial.write(10);
      }
    reponse_serveur();
    if ((jour==jour_m) && (mois==mois_m) && (annee==annee_m)
    && (heures==heures_m) && (minut==minutes_m)) digitalWrite(relais,LOW);
    if ((jour==jour_a) && (mois==mois_a) && (annee==annee_a)
    && (heures==heures_a) && (minut==minutes_a)) digitalWrite(relais,HIGH);
    }
  }

void reponse_serveur()
  {
  time_t temps_unix;  // nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00
  struct tm *date_heure;
  char texte[27],tab_jour[3],tab_annee[5],tab_heures[3],tab_minutes[3];

  client_web.write("HTTP/1.1 200 OK");
  client_web.write(13);
  client_web.write(10);
  client_web.write("Content-type: text/html; charset=UTF-8");
  client_web.write(13);
  client_web.write(10);
  client_web.write("Refresh: 60");
  client_web.write(13);
  client_web.write(10);
  client_web.write(13); // ligne vide obligatoire à la fin de l'en-tête HTTP
  client_web.write(10);
  client_web.write("<!DOCTYPE HTML>");
  client_web.write("<HTML LANG=\"fr\">");
  client_web.write("<HEAD>");
  client_web.write("<TITLE>Serveur web ESP8266</TITLE>");
  client_web.write("</HEAD>");
  client_web.write("<BODY>");
  client_web.write("<CENTER>");
  client_web.write("<FONT FACE=calibri>");
  client_web.write("<BR><BR><B>Gérer un relais via un ESP8266</B>");
  // afficher la date et l'heure
  client_ntp.update();
  temps_unix=client_ntp.getEpochTime();
  date_heure=localtime(&temps_unix);
  // jour de la semaine
  switch (date_heure->tm_wday)
    {
    case 0 : strcpy(texte,"Dimanche "); break;
    case 1 : strcpy(texte,"Lundi "); break;
    case 2 : strcpy(texte,"Mardi "); break;
    case 3 : strcpy(texte,"Mercredi "); break;
    case 4 : strcpy(texte,"Jeudi "); break;
    case 5 : strcpy(texte,"Vendredi "); break;
    case 6 : strcpy(texte,"Samedi ");
    }
  // jour du mois
  jour=date_heure->tm_mday;
  if (jour<10)
    {
    tab_jour[0]=48;
    tab_jour[1]=jour+48;
    tab_jour[2]=0;
    }
  else itoa(jour,tab_jour,10);
  strcat(texte,tab_jour);
  // mois
  mois=date_heure->tm_mon+1;
  switch (mois)
    {
    case  1 : strcat(texte," janvier "); break;
    case  2 : strcat(texte," février "); break;
    case  3 : strcat(texte," mars "); break;
    case  4 : strcat(texte," avril "); break;
    case  5 : strcat(texte," mai "); break;
    case  6 : strcat(texte," juin "); break;
    case  7 : strcat(texte," juillet "); break;
    case  8 : strcat(texte," août "); break;
    case  9 : strcat(texte," septembre "); break;
    case 10 : strcat(texte," octobre "); break;
    case 11 : strcat(texte," novembre "); break;
    case 12 : strcat(texte," décembre ");
    }
  // année
  annee=date_heure->tm_year+1900;
  itoa(annee,tab_annee,10);
  strcat(texte,tab_annee);
  client_web.write("<BR><BR><BR>");
  client_web.write(texte);
  // heures
  heures=date_heure->tm_hour;
  if (heures<10)
    {
    tab_heures[0]=48;
    tab_heures[1]=heures+48;
    tab_heures[2]=0;
    }
  else itoa(heures,tab_heures,10);
  texte[0]=tab_heures[0];
  texte[1]=tab_heures[1];
  texte[2]=':';
  // minutes
  minut=date_heure->tm_min;
  if (minut<10)
    {
    tab_minutes[0]=48;
    tab_minutes[1]=minut+48;
    tab_minutes[2]=0;
    }
  else itoa(minut,tab_minutes,10);
  texte[3]=tab_minutes[0];
  texte[4]=tab_minutes[1];
  texte[5]=0;
  client_web.write("<BR>");
  client_web.write(texte);
  client_web.write("<FORM ACTION=/ METHOD=get>");
  // date de marche
  client_web.write("<BR><BR><BR>Date de marche : ");
  // jour de marche
  client_web.write("<SELECT NAME=jour_m>");
  if (jour_m==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (jour_m==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (jour_m==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (jour_m==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (jour_m==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (jour_m==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (jour_m==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (jour_m==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (jour_m==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (jour_m==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (jour_m==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (jour_m==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  if (jour_m==13) client_web.write("<OPTION VALUE=13 SELECTED>13</OPTION>");
  else client_web.write("<OPTION VALUE=13>13</OPTION>");
  if (jour_m==14) client_web.write("<OPTION VALUE=14 SELECTED>14</OPTION>");
  else client_web.write("<OPTION VALUE=14>14</OPTION>");
  if (jour_m==15) client_web.write("<OPTION VALUE=15 SELECTED>15</OPTION>");
  else client_web.write("<OPTION VALUE=15>15</OPTION>");
  if (jour_m==16) client_web.write("<OPTION VALUE=16 SELECTED>16</OPTION>");
  else client_web.write("<OPTION VALUE=16>16</OPTION>");
  if (jour_m==17) client_web.write("<OPTION VALUE=17 SELECTED>17</OPTION>");
  else client_web.write("<OPTION VALUE=17>17</OPTION>");
  if (jour_m==18) client_web.write("<OPTION VALUE=18 SELECTED>18</OPTION>");
  else client_web.write("<OPTION VALUE=18>18</OPTION>");
  if (jour_m==19) client_web.write("<OPTION VALUE=19 SELECTED>19</OPTION>");
  else client_web.write("<OPTION VALUE=19>19</OPTION>");
  if (jour_m==20) client_web.write("<OPTION VALUE=20 SELECTED>20</OPTION>");
  else client_web.write("<OPTION VALUE=20>20</OPTION>");
  if (jour_m==21) client_web.write("<OPTION VALUE=21 SELECTED>21</OPTION>");
  else client_web.write("<OPTION VALUE=21>21</OPTION>");
  if (jour_m==22) client_web.write("<OPTION VALUE=22 SELECTED>22</OPTION>");
  else client_web.write("<OPTION VALUE=22>22</OPTION>");
  if (jour_m==23) client_web.write("<OPTION VALUE=23 SELECTED>23</OPTION>");
  else client_web.write("<OPTION VALUE=23>23</OPTION>");
  if (jour_m==24) client_web.write("<OPTION VALUE=24 SELECTED>24</OPTION>");
  else client_web.write("<OPTION VALUE=24>24</OPTION>");
  if (jour_m==25) client_web.write("<OPTION VALUE=25 SELECTED>25</OPTION>");
  else client_web.write("<OPTION VALUE=25>25</OPTION>");
  if (jour_m==26) client_web.write("<OPTION VALUE=26 SELECTED>26</OPTION>");
  else client_web.write("<OPTION VALUE=26>26</OPTION>");
  if (jour_m==27) client_web.write("<OPTION VALUE=27 SELECTED>27</OPTION>");
  else client_web.write("<OPTION VALUE=27>27</OPTION>");
  if (jour_m==28) client_web.write("<OPTION VALUE=28 SELECTED>28</OPTION>");
  else client_web.write("<OPTION VALUE=28>28</OPTION>");
  if (jour_m==29) client_web.write("<OPTION VALUE=29 SELECTED>29</OPTION>");
  else client_web.write("<OPTION VALUE=29>29</OPTION>");
  if (jour_m==30) client_web.write("<OPTION VALUE=30 SELECTED>30</OPTION>");
  else client_web.write("<OPTION VALUE=30>30</OPTION>");
  if (jour_m==31) client_web.write("<OPTION VALUE=31 SELECTED>31</OPTION>");
  else client_web.write("<OPTION VALUE=31>31</OPTION>");
  client_web.write("</SELECT> ");
  // mois de marche
  client_web.write("<SELECT NAME=mois_m>");
  if (mois_m==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (mois_m==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (mois_m==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (mois_m==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (mois_m==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (mois_m==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (mois_m==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (mois_m==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (mois_m==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (mois_m==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (mois_m==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (mois_m==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  client_web.write("</SELECT> ");
  // année de marche
  client_web.write("<INPUT TYPE=text NAME=annee_m VALUE=");
  itoa(annee_m,texte,10);
  client_web.write(texte);
  client_web.write(" REQUIRED MINLENGTH=4 MAXLENGTH=4 SIZE=2>");
  // heure de marche
  client_web.write("<BR><BR>Heure de marche : ");
  // heures de marche
  client_web.write("<SELECT NAME=heures_m>");
  if (heures_m==0) client_web.write("<OPTION VALUE=0 SELECTED>0</OPTION>");
  else client_web.write("<OPTION VALUE=0>0</OPTION>");
  if (heures_m==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (heures_m==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (heures_m==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (heures_m==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (heures_m==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (heures_m==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (heures_m==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (heures_m==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (heures_m==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (heures_m==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (heures_m==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (heures_m==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  if (heures_m==13) client_web.write("<OPTION VALUE=13 SELECTED>13</OPTION>");
  else client_web.write("<OPTION VALUE=13>13</OPTION>");
  if (heures_m==14) client_web.write("<OPTION VALUE=14 SELECTED>14</OPTION>");
  else client_web.write("<OPTION VALUE=14>14</OPTION>");
  if (heures_m==15) client_web.write("<OPTION VALUE=15 SELECTED>15</OPTION>");
  else client_web.write("<OPTION VALUE=15>15</OPTION>");
  if (heures_m==16) client_web.write("<OPTION VALUE=16 SELECTED>16</OPTION>");
  else client_web.write("<OPTION VALUE=16>16</OPTION>");
  if (heures_m==17) client_web.write("<OPTION VALUE=17 SELECTED>17</OPTION>");
  else client_web.write("<OPTION VALUE=17>17</OPTION>");
  if (heures_m==18) client_web.write("<OPTION VALUE=18 SELECTED>18</OPTION>");
  else client_web.write("<OPTION VALUE=18>18</OPTION>");
  if (heures_m==19) client_web.write("<OPTION VALUE=19 SELECTED>19</OPTION>");
  else client_web.write("<OPTION VALUE=19>19</OPTION>");
  if (heures_m==20) client_web.write("<OPTION VALUE=20 SELECTED>20</OPTION>");
  else client_web.write("<OPTION VALUE=20>20</OPTION>");
  if (heures_m==21) client_web.write("<OPTION VALUE=21 SELECTED>21</OPTION>");
  else client_web.write("<OPTION VALUE=21>21</OPTION>");
  if (heures_m==22) client_web.write("<OPTION VALUE=22 SELECTED>22</OPTION>");
  else client_web.write("<OPTION VALUE=22>22</OPTION>");
  if (heures_m==23) client_web.write("<OPTION VALUE=23 SELECTED>23</OPTION>");
  else client_web.write("<OPTION VALUE=23>23</OPTION>");
  client_web.write("</SELECT> ");
  // minutes de marche
  client_web.write("<SELECT NAME=minutes_m>");
  if (minutes_m==0) client_web.write("<OPTION VALUE=0 SELECTED>0</OPTION>");
  else client_web.write("<OPTION VALUE=0>0</OPTION>");
  if (minutes_m==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (minutes_m==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (minutes_m==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (minutes_m==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (minutes_m==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (minutes_m==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (minutes_m==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (minutes_m==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (minutes_m==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (minutes_m==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (minutes_m==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (minutes_m==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  if (minutes_m==13) client_web.write("<OPTION VALUE=13 SELECTED>13</OPTION>");
  else client_web.write("<OPTION VALUE=13>13</OPTION>");
  if (minutes_m==14) client_web.write("<OPTION VALUE=14 SELECTED>14</OPTION>");
  else client_web.write("<OPTION VALUE=14>14</OPTION>");
  if (minutes_m==15) client_web.write("<OPTION VALUE=15 SELECTED>15</OPTION>");
  else client_web.write("<OPTION VALUE=15>15</OPTION>");
  if (minutes_m==16) client_web.write("<OPTION VALUE=16 SELECTED>16</OPTION>");
  else client_web.write("<OPTION VALUE=16>16</OPTION>");
  if (minutes_m==17) client_web.write("<OPTION VALUE=17 SELECTED>17</OPTION>");
  else client_web.write("<OPTION VALUE=17>17</OPTION>");
  if (minutes_m==18) client_web.write("<OPTION VALUE=18 SELECTED>18</OPTION>");
  else client_web.write("<OPTION VALUE=18>18</OPTION>");
  if (minutes_m==19) client_web.write("<OPTION VALUE=19 SELECTED>19</OPTION>");
  else client_web.write("<OPTION VALUE=19>19</OPTION>");
  if (minutes_m==20) client_web.write("<OPTION VALUE=20 SELECTED>20</OPTION>");
  else client_web.write("<OPTION VALUE=20>20</OPTION>");
  if (minutes_m==21) client_web.write("<OPTION VALUE=21 SELECTED>21</OPTION>");
  else client_web.write("<OPTION VALUE=21>21</OPTION>");
  if (minutes_m==22) client_web.write("<OPTION VALUE=22 SELECTED>22</OPTION>");
  else client_web.write("<OPTION VALUE=22>22</OPTION>");
  if (minutes_m==23) client_web.write("<OPTION VALUE=23 SELECTED>23</OPTION>");
  else client_web.write("<OPTION VALUE=23>23</OPTION>");
  if (minutes_m==24) client_web.write("<OPTION VALUE=24 SELECTED>24</OPTION>");
  else client_web.write("<OPTION VALUE=24>24</OPTION>");
  if (minutes_m==25) client_web.write("<OPTION VALUE=25 SELECTED>25</OPTION>");
  else client_web.write("<OPTION VALUE=25>25</OPTION>");
  if (minutes_m==26) client_web.write("<OPTION VALUE=26 SELECTED>26</OPTION>");
  else client_web.write("<OPTION VALUE=26>26</OPTION>");
  if (minutes_m==27) client_web.write("<OPTION VALUE=27 SELECTED>27</OPTION>");
  else client_web.write("<OPTION VALUE=27>27</OPTION>");
  if (minutes_m==28) client_web.write("<OPTION VALUE=28 SELECTED>28</OPTION>");
  else client_web.write("<OPTION VALUE=28>28</OPTION>");
  if (minutes_m==29) client_web.write("<OPTION VALUE=29 SELECTED>29</OPTION>");
  else client_web.write("<OPTION VALUE=29>29</OPTION>");
  if (minutes_m==30) client_web.write("<OPTION VALUE=30 SELECTED>30</OPTION>");
  else client_web.write("<OPTION VALUE=30>30</OPTION>");
  if (minutes_m==31) client_web.write("<OPTION VALUE=31 SELECTED>31</OPTION>");
  else client_web.write("<OPTION VALUE=31>31</OPTION>");
  if (minutes_m==32) client_web.write("<OPTION VALUE=32 SELECTED>32</OPTION>");
  else client_web.write("<OPTION VALUE=32>32</OPTION>");
  if (minutes_m==33) client_web.write("<OPTION VALUE=33 SELECTED>33</OPTION>");
  else client_web.write("<OPTION VALUE=33>33</OPTION>");
  if (minutes_m==34) client_web.write("<OPTION VALUE=34 SELECTED>34</OPTION>");
  else client_web.write("<OPTION VALUE=34>34</OPTION>");
  if (minutes_m==35) client_web.write("<OPTION VALUE=35 SELECTED>35</OPTION>");
  else client_web.write("<OPTION VALUE=35>35</OPTION>");
  if (minutes_m==36) client_web.write("<OPTION VALUE=36 SELECTED>36</OPTION>");
  else client_web.write("<OPTION VALUE=36>36</OPTION>");
  if (minutes_m==37) client_web.write("<OPTION VALUE=37 SELECTED>37</OPTION>");
  else client_web.write("<OPTION VALUE=37>37</OPTION>");
  if (minutes_m==38) client_web.write("<OPTION VALUE=38 SELECTED>38</OPTION>");
  else client_web.write("<OPTION VALUE=38>38</OPTION>");
  if (minutes_m==39) client_web.write("<OPTION VALUE=39 SELECTED>39</OPTION>");
  else client_web.write("<OPTION VALUE=39>39</OPTION>");
  if (minutes_m==40) client_web.write("<OPTION VALUE=40 SELECTED>40</OPTION>");
  else client_web.write("<OPTION VALUE=40>40</OPTION>");
  if (minutes_m==41) client_web.write("<OPTION VALUE=41 SELECTED>41</OPTION>");
  else client_web.write("<OPTION VALUE=41>41</OPTION>");
  if (minutes_m==42) client_web.write("<OPTION VALUE=42 SELECTED>42</OPTION>");
  else client_web.write("<OPTION VALUE=42>42</OPTION>");
  if (minutes_m==43) client_web.write("<OPTION VALUE=43 SELECTED>43</OPTION>");
  else client_web.write("<OPTION VALUE=43>43</OPTION>");
  if (minutes_m==44) client_web.write("<OPTION VALUE=44 SELECTED>44</OPTION>");
  else client_web.write("<OPTION VALUE=44>44</OPTION>");
  if (minutes_m==45) client_web.write("<OPTION VALUE=45 SELECTED>45</OPTION>");
  else client_web.write("<OPTION VALUE=45>45</OPTION>");
  if (minutes_m==46) client_web.write("<OPTION VALUE=46 SELECTED>46</OPTION>");
  else client_web.write("<OPTION VALUE=46>46</OPTION>");
  if (minutes_m==47) client_web.write("<OPTION VALUE=47 SELECTED>47</OPTION>");
  else client_web.write("<OPTION VALUE=47>47</OPTION>");
  if (minutes_m==48) client_web.write("<OPTION VALUE=48 SELECTED>48</OPTION>");
  else client_web.write("<OPTION VALUE=48>48</OPTION>");
  if (minutes_m==49) client_web.write("<OPTION VALUE=49 SELECTED>49</OPTION>");
  else client_web.write("<OPTION VALUE=49>49</OPTION>");
  if (minutes_m==50) client_web.write("<OPTION VALUE=50 SELECTED>50</OPTION>");
  else client_web.write("<OPTION VALUE=50>50</OPTION>");
  if (minutes_m==51) client_web.write("<OPTION VALUE=51 SELECTED>51</OPTION>");
  else client_web.write("<OPTION VALUE=51>51</OPTION>");
  if (minutes_m==52) client_web.write("<OPTION VALUE=52 SELECTED>52</OPTION>");
  else client_web.write("<OPTION VALUE=52>52</OPTION>");
  if (minutes_m==53) client_web.write("<OPTION VALUE=53 SELECTED>53</OPTION>");
  else client_web.write("<OPTION VALUE=53>53</OPTION>");
  if (minutes_m==54) client_web.write("<OPTION VALUE=54 SELECTED>54</OPTION>");
  else client_web.write("<OPTION VALUE=54>54</OPTION>");
  if (minutes_m==55) client_web.write("<OPTION VALUE=55 SELECTED>55</OPTION>");
  else client_web.write("<OPTION VALUE=55>55</OPTION>");
  if (minutes_m==56) client_web.write("<OPTION VALUE=56 SELECTED>56</OPTION>");
  else client_web.write("<OPTION VALUE=56>56</OPTION>");
  if (minutes_m==57) client_web.write("<OPTION VALUE=57 SELECTED>57</OPTION>");
  else client_web.write("<OPTION VALUE=57>57</OPTION>");
  if (minutes_m==58) client_web.write("<OPTION VALUE=58 SELECTED>58</OPTION>");
  else client_web.write("<OPTION VALUE=58>58</OPTION>");
  if (minutes_m==59) client_web.write("<OPTION VALUE=59 SELECTED>59</OPTION>");
  else client_web.write("<OPTION VALUE=59>59</OPTION>");
  client_web.write("</SELECT>");
  // date d'arrêt
  client_web.write("<BR><BR><BR><BR>Date d'arrêt : ");
  // jour d'arrêt
  client_web.write("<SELECT NAME=jour_a>");
  if (jour_a==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (jour_a==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (jour_a==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (jour_a==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (jour_a==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (jour_a==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (jour_a==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (jour_a==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (jour_a==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (jour_a==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (jour_a==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (jour_a==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  if (jour_a==13) client_web.write("<OPTION VALUE=13 SELECTED>13</OPTION>");
  else client_web.write("<OPTION VALUE=13>13</OPTION>");
  if (jour_a==14) client_web.write("<OPTION VALUE=14 SELECTED>14</OPTION>");
  else client_web.write("<OPTION VALUE=14>14</OPTION>");
  if (jour_a==15) client_web.write("<OPTION VALUE=15 SELECTED>15</OPTION>");
  else client_web.write("<OPTION VALUE=15>15</OPTION>");
  if (jour_a==16) client_web.write("<OPTION VALUE=16 SELECTED>16</OPTION>");
  else client_web.write("<OPTION VALUE=16>16</OPTION>");
  if (jour_a==17) client_web.write("<OPTION VALUE=17 SELECTED>17</OPTION>");
  else client_web.write("<OPTION VALUE=17>17</OPTION>");
  if (jour_a==18) client_web.write("<OPTION VALUE=18 SELECTED>18</OPTION>");
  else client_web.write("<OPTION VALUE=18>18</OPTION>");
  if (jour_a==19) client_web.write("<OPTION VALUE=19 SELECTED>19</OPTION>");
  else client_web.write("<OPTION VALUE=19>19</OPTION>");
  if (jour_a==20) client_web.write("<OPTION VALUE=20 SELECTED>20</OPTION>");
  else client_web.write("<OPTION VALUE=20>20</OPTION>");
  if (jour_a==21) client_web.write("<OPTION VALUE=21 SELECTED>21</OPTION>");
  else client_web.write("<OPTION VALUE=21>21</OPTION>");
  if (jour_a==22) client_web.write("<OPTION VALUE=22 SELECTED>22</OPTION>");
  else client_web.write("<OPTION VALUE=22>22</OPTION>");
  if (jour_a==23) client_web.write("<OPTION VALUE=23 SELECTED>23</OPTION>");
  else client_web.write("<OPTION VALUE=23>23</OPTION>");
  if (jour_a==24) client_web.write("<OPTION VALUE=24 SELECTED>24</OPTION>");
  else client_web.write("<OPTION VALUE=24>24</OPTION>");
  if (jour_a==25) client_web.write("<OPTION VALUE=25 SELECTED>25</OPTION>");
  else client_web.write("<OPTION VALUE=25>25</OPTION>");
  if (jour_a==26) client_web.write("<OPTION VALUE=26 SELECTED>26</OPTION>");
  else client_web.write("<OPTION VALUE=26>26</OPTION>");
  if (jour_a==27) client_web.write("<OPTION VALUE=27 SELECTED>27</OPTION>");
  else client_web.write("<OPTION VALUE=27>27</OPTION>");
  if (jour_a==28) client_web.write("<OPTION VALUE=28 SELECTED>28</OPTION>");
  else client_web.write("<OPTION VALUE=28>28</OPTION>");
  if (jour_a==29) client_web.write("<OPTION VALUE=29 SELECTED>29</OPTION>");
  else client_web.write("<OPTION VALUE=29>29</OPTION>");
  if (jour_a==30) client_web.write("<OPTION VALUE=30 SELECTED>30</OPTION>");
  else client_web.write("<OPTION VALUE=30>30</OPTION>");
  if (jour_a==31) client_web.write("<OPTION VALUE=31 SELECTED>31</OPTION>");
  else client_web.write("<OPTION VALUE=31>31</OPTION>");
  client_web.write("</SELECT> ");
  // mois d'arrêt
  client_web.write("<SELECT NAME=mois_a>");
  if (mois_a==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (mois_a==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (mois_a==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (mois_a==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (mois_a==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (mois_a==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (mois_a==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (mois_a==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (mois_a==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (mois_a==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (mois_a==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (mois_a==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  client_web.write("</SELECT> ");
  // année d'arrêt
  client_web.write("<INPUT TYPE=text NAME=annee_a VALUE=");
  itoa(annee_a,texte,10);
  client_web.write(texte);
  client_web.write(" REQUIRED MINLENGTH=4 MAXLENGTH=4 SIZE=2>");
  // heure d'arrêt
  client_web.write("<BR><BR>Heure d'arrêt : ");
  // heures d'arrêt
  client_web.write("<SELECT NAME=heures_a>");
  if (heures_a==0) client_web.write("<OPTION VALUE=0 SELECTED>0</OPTION>");
  else client_web.write("<OPTION VALUE=0>0</OPTION>");
  if (heures_a==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (heures_a==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (heures_a==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (heures_a==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (heures_a==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (heures_a==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (heures_a==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (heures_a==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (heures_a==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (heures_a==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (heures_a==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (heures_a==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  if (heures_a==13) client_web.write("<OPTION VALUE=13 SELECTED>13</OPTION>");
  else client_web.write("<OPTION VALUE=13>13</OPTION>");
  if (heures_a==14) client_web.write("<OPTION VALUE=14 SELECTED>14</OPTION>");
  else client_web.write("<OPTION VALUE=14>14</OPTION>");
  if (heures_a==15) client_web.write("<OPTION VALUE=15 SELECTED>15</OPTION>");
  else client_web.write("<OPTION VALUE=15>15</OPTION>");
  if (heures_a==16) client_web.write("<OPTION VALUE=16 SELECTED>16</OPTION>");
  else client_web.write("<OPTION VALUE=16>16</OPTION>");
  if (heures_a==17) client_web.write("<OPTION VALUE=17 SELECTED>17</OPTION>");
  else client_web.write("<OPTION VALUE=17>17</OPTION>");
  if (heures_a==18) client_web.write("<OPTION VALUE=18 SELECTED>18</OPTION>");
  else client_web.write("<OPTION VALUE=18>18</OPTION>");
  if (heures_a==19) client_web.write("<OPTION VALUE=19 SELECTED>19</OPTION>");
  else client_web.write("<OPTION VALUE=19>19</OPTION>");
  if (heures_a==20) client_web.write("<OPTION VALUE=20 SELECTED>20</OPTION>");
  else client_web.write("<OPTION VALUE=20>20</OPTION>");
  if (heures_a==21) client_web.write("<OPTION VALUE=21 SELECTED>21</OPTION>");
  else client_web.write("<OPTION VALUE=21>21</OPTION>");
  if (heures_a==22) client_web.write("<OPTION VALUE=22 SELECTED>22</OPTION>");
  else client_web.write("<OPTION VALUE=22>22</OPTION>");
  if (heures_a==23) client_web.write("<OPTION VALUE=23 SELECTED>23</OPTION>");
  else client_web.write("<OPTION VALUE=23>23</OPTION>");
  client_web.write("</SELECT> ");
  // minutes d'arrêt
  client_web.write("<SELECT NAME=minutes_a>");
  if (minutes_a==0) client_web.write("<OPTION VALUE=0 SELECTED>0</OPTION>");
  else client_web.write("<OPTION VALUE=0>0</OPTION>");
  if (minutes_a==1) client_web.write("<OPTION VALUE=1 SELECTED>1</OPTION>");
  else client_web.write("<OPTION VALUE=1>1</OPTION>");
  if (minutes_a==2) client_web.write("<OPTION VALUE=2 SELECTED>2</OPTION>");
  else client_web.write("<OPTION VALUE=2>2</OPTION>");
  if (minutes_a==3) client_web.write("<OPTION VALUE=3 SELECTED>3</OPTION>");
  else client_web.write("<OPTION VALUE=3>3</OPTION>");
  if (minutes_a==4) client_web.write("<OPTION VALUE=4 SELECTED>4</OPTION>");
  else client_web.write("<OPTION VALUE=4>4</OPTION>");
  if (minutes_a==5) client_web.write("<OPTION VALUE=5 SELECTED>5</OPTION>");
  else client_web.write("<OPTION VALUE=5>5</OPTION>");
  if (minutes_a==6) client_web.write("<OPTION VALUE=6 SELECTED>6</OPTION>");
  else client_web.write("<OPTION VALUE=6>6</OPTION>");
  if (minutes_a==7) client_web.write("<OPTION VALUE=7 SELECTED>7</OPTION>");
  else client_web.write("<OPTION VALUE=7>7</OPTION>");
  if (minutes_a==8) client_web.write("<OPTION VALUE=8 SELECTED>8</OPTION>");
  else client_web.write("<OPTION VALUE=8>8</OPTION>");
  if (minutes_a==9) client_web.write("<OPTION VALUE=9 SELECTED>9</OPTION>");
  else client_web.write("<OPTION VALUE=9>9</OPTION>");
  if (minutes_a==10) client_web.write("<OPTION VALUE=10 SELECTED>10</OPTION>");
  else client_web.write("<OPTION VALUE=10>10</OPTION>");
  if (minutes_a==11) client_web.write("<OPTION VALUE=11 SELECTED>11</OPTION>");
  else client_web.write("<OPTION VALUE=11>11</OPTION>");
  if (minutes_a==12) client_web.write("<OPTION VALUE=12 SELECTED>12</OPTION>");
  else client_web.write("<OPTION VALUE=12>12</OPTION>");
  if (minutes_a==13) client_web.write("<OPTION VALUE=13 SELECTED>13</OPTION>");
  else client_web.write("<OPTION VALUE=13>13</OPTION>");
  if (minutes_a==14) client_web.write("<OPTION VALUE=14 SELECTED>14</OPTION>");
  else client_web.write("<OPTION VALUE=14>14</OPTION>");
  if (minutes_a==15) client_web.write("<OPTION VALUE=15 SELECTED>15</OPTION>");
  else client_web.write("<OPTION VALUE=15>15</OPTION>");
  if (minutes_a==16) client_web.write("<OPTION VALUE=16 SELECTED>16</OPTION>");
  else client_web.write("<OPTION VALUE=16>16</OPTION>");
  if (minutes_a==17) client_web.write("<OPTION VALUE=17 SELECTED>17</OPTION>");
  else client_web.write("<OPTION VALUE=17>17</OPTION>");
  if (minutes_a==18) client_web.write("<OPTION VALUE=18 SELECTED>18</OPTION>");
  else client_web.write("<OPTION VALUE=18>18</OPTION>");
  if (minutes_a==19) client_web.write("<OPTION VALUE=19 SELECTED>19</OPTION>");
  else client_web.write("<OPTION VALUE=19>19</OPTION>");
  if (minutes_a==20) client_web.write("<OPTION VALUE=20 SELECTED>20</OPTION>");
  else client_web.write("<OPTION VALUE=20>20</OPTION>");
  if (minutes_a==21) client_web.write("<OPTION VALUE=21 SELECTED>21</OPTION>");
  else client_web.write("<OPTION VALUE=21>21</OPTION>");
  if (minutes_a==22) client_web.write("<OPTION VALUE=22 SELECTED>22</OPTION>");
  else client_web.write("<OPTION VALUE=22>22</OPTION>");
  if (minutes_a==23) client_web.write("<OPTION VALUE=23 SELECTED>23</OPTION>");
  else client_web.write("<OPTION VALUE=23>23</OPTION>");
  if (minutes_a==24) client_web.write("<OPTION VALUE=24 SELECTED>24</OPTION>");
  else client_web.write("<OPTION VALUE=24>24</OPTION>");
  if (minutes_a==25) client_web.write("<OPTION VALUE=25 SELECTED>25</OPTION>");
  else client_web.write("<OPTION VALUE=25>25</OPTION>");
  if (minutes_a==26) client_web.write("<OPTION VALUE=26 SELECTED>26</OPTION>");
  else client_web.write("<OPTION VALUE=26>26</OPTION>");
  if (minutes_a==27) client_web.write("<OPTION VALUE=27 SELECTED>27</OPTION>");
  else client_web.write("<OPTION VALUE=27>27</OPTION>");
  if (minutes_a==28) client_web.write("<OPTION VALUE=28 SELECTED>28</OPTION>");
  else client_web.write("<OPTION VALUE=28>28</OPTION>");
  if (minutes_a==29) client_web.write("<OPTION VALUE=29 SELECTED>29</OPTION>");
  else client_web.write("<OPTION VALUE=29>29</OPTION>");
  if (minutes_a==30) client_web.write("<OPTION VALUE=30 SELECTED>30</OPTION>");
  else client_web.write("<OPTION VALUE=30>30</OPTION>");
  if (minutes_a==31) client_web.write("<OPTION VALUE=31 SELECTED>31</OPTION>");
  else client_web.write("<OPTION VALUE=31>31</OPTION>");
  if (minutes_a==32) client_web.write("<OPTION VALUE=32 SELECTED>32</OPTION>");
  else client_web.write("<OPTION VALUE=32>32</OPTION>");
  if (minutes_a==33) client_web.write("<OPTION VALUE=33 SELECTED>33</OPTION>");
  else client_web.write("<OPTION VALUE=33>33</OPTION>");
  if (minutes_a==34) client_web.write("<OPTION VALUE=34 SELECTED>34</OPTION>");
  else client_web.write("<OPTION VALUE=34>34</OPTION>");
  if (minutes_a==35) client_web.write("<OPTION VALUE=35 SELECTED>35</OPTION>");
  else client_web.write("<OPTION VALUE=35>35</OPTION>");
  if (minutes_a==36) client_web.write("<OPTION VALUE=36 SELECTED>36</OPTION>");
  else client_web.write("<OPTION VALUE=36>36</OPTION>");
  if (minutes_a==37) client_web.write("<OPTION VALUE=37 SELECTED>37</OPTION>");
  else client_web.write("<OPTION VALUE=37>37</OPTION>");
  if (minutes_a==38) client_web.write("<OPTION VALUE=38 SELECTED>38</OPTION>");
  else client_web.write("<OPTION VALUE=38>38</OPTION>");
  if (minutes_a==39) client_web.write("<OPTION VALUE=39 SELECTED>39</OPTION>");
  else client_web.write("<OPTION VALUE=39>39</OPTION>");
  if (minutes_a==40) client_web.write("<OPTION VALUE=40 SELECTED>40</OPTION>");
  else client_web.write("<OPTION VALUE=40>40</OPTION>");
  if (minutes_a==41) client_web.write("<OPTION VALUE=41 SELECTED>41</OPTION>");
  else client_web.write("<OPTION VALUE=41>41</OPTION>");
  if (minutes_a==42) client_web.write("<OPTION VALUE=42 SELECTED>42</OPTION>");
  else client_web.write("<OPTION VALUE=42>42</OPTION>");
  if (minutes_a==43) client_web.write("<OPTION VALUE=43 SELECTED>43</OPTION>");
  else client_web.write("<OPTION VALUE=43>43</OPTION>");
  if (minutes_a==44) client_web.write("<OPTION VALUE=44 SELECTED>44</OPTION>");
  else client_web.write("<OPTION VALUE=44>44</OPTION>");
  if (minutes_a==45) client_web.write("<OPTION VALUE=45 SELECTED>45</OPTION>");
  else client_web.write("<OPTION VALUE=45>45</OPTION>");
  if (minutes_a==46) client_web.write("<OPTION VALUE=46 SELECTED>46</OPTION>");
  else client_web.write("<OPTION VALUE=46>46</OPTION>");
  if (minutes_a==47) client_web.write("<OPTION VALUE=47 SELECTED>47</OPTION>");
  else client_web.write("<OPTION VALUE=47>47</OPTION>");
  if (minutes_a==48) client_web.write("<OPTION VALUE=48 SELECTED>48</OPTION>");
  else client_web.write("<OPTION VALUE=48>48</OPTION>");
  if (minutes_a==49) client_web.write("<OPTION VALUE=49 SELECTED>49</OPTION>");
  else client_web.write("<OPTION VALUE=49>49</OPTION>");
  if (minutes_a==50) client_web.write("<OPTION VALUE=50 SELECTED>50</OPTION>");
  else client_web.write("<OPTION VALUE=50>50</OPTION>");
  if (minutes_a==51) client_web.write("<OPTION VALUE=51 SELECTED>51</OPTION>");
  else client_web.write("<OPTION VALUE=51>51</OPTION>");
  if (minutes_a==52) client_web.write("<OPTION VALUE=52 SELECTED>52</OPTION>");
  else client_web.write("<OPTION VALUE=52>52</OPTION>");
  if (minutes_a==53) client_web.write("<OPTION VALUE=53 SELECTED>53</OPTION>");
  else client_web.write("<OPTION VALUE=53>53</OPTION>");
  if (minutes_a==54) client_web.write("<OPTION VALUE=54 SELECTED>54</OPTION>");
  else client_web.write("<OPTION VALUE=54>54</OPTION>");
  if (minutes_a==55) client_web.write("<OPTION VALUE=55 SELECTED>55</OPTION>");
  else client_web.write("<OPTION VALUE=55>55</OPTION>");
  if (minutes_a==56) client_web.write("<OPTION VALUE=56 SELECTED>56</OPTION>");
  else client_web.write("<OPTION VALUE=56>56</OPTION>");
  if (minutes_a==57) client_web.write("<OPTION VALUE=57 SELECTED>57</OPTION>");
  else client_web.write("<OPTION VALUE=57>57</OPTION>");
  if (minutes_a==58) client_web.write("<OPTION VALUE=58 SELECTED>58</OPTION>");
  else client_web.write("<OPTION VALUE=58>58</OPTION>");
  if (minutes_a==59) client_web.write("<OPTION VALUE=59 SELECTED>59</OPTION>");
  else client_web.write("<OPTION VALUE=59>59</OPTION>");
  client_web.write("</SELECT>");
  client_web.write("<BR><BR><BR><BR><INPUT TYPE=submit VALUE=Valider>");
  client_web.write("</FORM>");
  client_web.write("</FONT>");
  client_web.write("</CENTER>");
  client_web.write("</BODY>");
  client_web.write("</HTML>");
  delay(1000);
  client_web.stop();
  delay(1000);
  }

N'oubliez pas de modifier les paramètres en fonction de votre réseau !


L'ESP-01 ne possède que quatre E/S : GPIO0, GPIO1 (TX), GPIO2 et GPIO3 (RX). A la mise sous tension, l'interrupteur permet de sélectionner le mode UART pour télécharger votre programme en mémoire flash (GPIO0 = 0) ou le mode PROG pour exécuter votre programme (GPIO0 = 1). Il faut malheureusement débrancher et rebrancher le convertisseur USB - RS-232 après chaque changement, car il n'y a pas de bouton-poussoir reset.





* 1 ki (kilo informatique) = 1024 et non pas 1000, donc 1 kio = 1024 octets et 16 kio = 16384 octets.



Haut de page