Pour réaliser l'application, il vous faut : 

  • une carte arduino;
  • un shield ethernet;
  • une del;
  • un potentiomètre ou un capteur analogique.

Avec ce programme vous pourrez, à partir d'une page html, visualiser la valeur analogique du potentiomètre et allumer une del .

#include <SPI.h>
#include <Ethernet.h>

//Valeur d'une entree analogique
int valeurDuCAN;

//Pour la gestion de la requete recus
String buffer; //mise en mémolre de la requete
boolean requeteGET ;
char buff[6]; //tableau de char pour recuperer la requete GET
int compteur;

//Pour la gestion des broches digitales

int brocheD;
boolean valeurD;

//Déclaration de l'adresse mac de la carte
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//byte ip[] = { 192, 168, 1, 102 }; //Si on veut une Adresse IP fixe
EthernetServer server(80); //le protocole http est sur le port 80

void setup()
{
    // start the server
    //Ethernet.begin(mac, ip); //SI on veut une Adresse IP fixe
    Ethernet.begin(mac); //Adresse donnée par DHCP
    server.begin();

    Serial.begin(9600);
    delay(1000); // Delai pour l'initialisation de la carte Ethernet

    //Affichage sur le port serie de l'adresse Ip de la carte
    Serial.print("L'adresse Ip de la carte : ");
    IPAddress monAddressIp = Ethernet.localIP();
    Serial.print(monAddressIp);

    //initialisation de la borne 2
    pinMode( 2 , OUTPUT);

    //intialisation des variables    
   buffer = "";

  compteur = 0;

 

}

void loop()
{
   // Attend une requete
    EthernetClient client = server.available();
    if (client) {
        while (client.connected()) {
            if (client.available()) {
                char c = client.read();
                //Serial.print(c);

            //recupere les donnees recues dans la requete GET
            if ( requeteGET ) { buffer += c ;
                  buff[compteur] = c;
                  compteur++;

           }

            if ( c == '?' ) //Enregistre les données après ?
{requeteGET = true; }
//Recuperation des donnees terminée
if ( c == ' ' && requeteGET )
{requeteGET = false;
Serial.println(buffer);

if (buff[0]='D') {
if (buff[1]='O')
brocheD = int(buff[2]) - 48; //en Ascii 0 = 48
valeurD = int(buff[4]) - 48;
Serial.println(brocheD);
Serial.println(buff[4]);

digitalWrite( brocheD , valeurD);

}
compteur = 0;

buffer = "";

}


// Attend la fin de la requete HTTP reçu pour envoyer la page
if (c == '\n') {
// Protocole HTTP utilisaté pour envoyer la page internet
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

//en-tête de la page
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<meta charset=\"utf-8\">");

//rafraichissement de la page toutes les 1 secondes
//client.println("<meta http-equiv=\"refresh\" content=\"1\">");
client.println("<title>Ethernet Arduino STI2D</title>");

//style de la page (css)
client.println("<style type=\"text/css\">");
client.println("article,header, footer , div {display: block;}");
client.println("form {display : inline ;}");
client.println("body header { background-color : #008181 ; color : #ffffff ; ");
client.println("border:solid 1px black; text-align : center ; }");
client.println("body article {text-align : center ; height:300px;background-color: #ffffff;}");
client.println("body div {padding : 5px ; width = 300}");
client.println("body footer { padding : 5px ; border:solid 1px black;");
client.println("background-color : #4db7bb ; color : #002325 ;text-align : center ; }");
client.println("</style>");

client.println("</head>");

//corps de la page internet
client.println("<body>");

//en-tete du document
client.println("<header>");
client.println("<h1>Ethernet Arduino STI2D</h1>");
client.println("</header>");


//contenu du document
client.println("<article>");

client.println("<div>");
client.println("Valeur de l'entree analogique A0 :");
//Recuperation de la valeur numérique de l'entrée analogique A0
valeurDuCAN = analogRead(A0);
client.println( valeurDuCAN );
client.println("</div>");

client.println("<div>");
client.println("DEL 2 :");
client.print("<form method=get name=LED ><input type='hidden' name='DO2'");
client.println(" value='0'><input type='submit' value='Off'/></form>");
client.print("<form method=get name=LED ><input type='hidden' name='DO2'");
client.println(" value='1'><input type='submit' value='On'/></form>");
client.println(" Etat ");
client.println( digitalRead(2) );
client.println("</div>");


client.println("</article>");


//pied de page du document
client.println("<footer>");
client.println("Ecrit par Richard GAUTHIER");
client.println("</footer>");

client.println("</body>");
client.println("</html>");

break;
}
}
}
// Temps d'attente pour que les donnees de ia page internet est le temps d'etre envoyee
delay(1);
//fermer la connexion:
client.stop();
}
}


Logo Lycée Paul Sérusier

J'enseigne au
Lycée Paul SERUSIER
Avenue de Waldkappel
29270 CARHAIX PLOUGUER
Tél : 02 98 99 29 29
Site : www.lycee-serusier.fr

footer2

Richard GAUTHIER
Professeur de Physique Appliquée
Certification ISN
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

 

 


Mentions légales


Plan du site

  Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.