Go Down

Topic: Arduino Ethernet Site Web (Read 1 time) previous topic - next topic

Bonjour à tous et à toutes, je viens vers vous pour obtenir de votre savoir et peut-être ainsi résoudre mes problèmes.
Je fais actuellement une station météo Arduino  composé d'un capteur de température, une photorésistance, un anémomètre et une girouette. Je dois envoyer le tout sur un site web géré par la carte Arduino Ethernet. Mon problème intervient lors du codage de la page internet car je l'ai codé en html et avec css mais le problème c'est que comment dire au programme ou ce trouve le fichier .css ainsi que les images que le site web et censé chargé.

Merci d'avance pour votre aide.

Ps: Je vous mets en annexe mon code déjà réalisé.


Code: [Select]
#include <SPI.h>                                        //Importation de la bibliothéque SPI.
#include <Ethernet.h>                                   //Importation de la bibliothéque Ethernet.

#define uint  unsigned int                              //Nomme la fonction "unsigned int" unit.
#define ulong unsigned long                             //Nomme la fonction "unsigned long" ulong.
#define PIN_ANEMOMETRE  2                               //Nomme le port 2 de la carte Arduino Uno PIN_ANEMOMETRE.
#define CALC_VITESSE_VENT 5000                          //Temps de rafraichissement du calcul de la vitesse du vent

volatile int compteurAnemometre = 0;                    //Déclare la variable compteurAnemometre de type volatile entière qui permet de calculer la vitesse du vent.
ulong prochainCalcVitesse;                              //Déclare la variable prochainCalcVitesse de type long non signé c'est à dire une variable qui peut contenir des nombres positifs entiers de plus de 32 bits soit 2^32.
ulong time;                                             //Déclare la variable time de type long non signé c'est à dire une variable qui peut contenir des nombres positifs entiers de plus de 32 bits.

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x82, 0x27 };    //Adresse mac de la carte Ethernet Arduino.
byte ip[] = { 172,19,126,103 };                         //Adresse ip de la carte Ethernet Arduino.

EthernetServer server(80);                              //Fonction permettant la communication de la carte Arduino Ethernet sur internet en impruntant le port 80 du routeur.

void setup()
{
 // Démarrage de la connexion Ethernet et du serveur WEB serveur.
 
 Ethernet.begin(mac, ip);
 server.begin();
 Serial.begin(9600);
 
 //Initialisation des fonctions et des éléments permettant le calcul de la vitesse du vent.
 
 pinMode(PIN_ANEMOMETRE, INPUT);
 digitalWrite(PIN_ANEMOMETRE, HIGH);                    //Définit la valeur du port 2 à l'état initiale sur la valeur 1.
 attachInterrupt(0, Anemometre, FALLING);               //Fonction permettant de déterminer chaque changement de la valeur du port 2 de l'état 1 à l'état 0 et renvoi au void Anemometre().
 
 prochainCalcVitesse = millis() + CALC_VITESSE_VENT;
}

void loop()
{
 
 //Anémomètre
 
 time = millis();                                        //Calcul du temps passé en milliseconde.                          

 if (time >= prochainCalcVitesse) {
   anemometre();
    prochainCalcVitesse = time + CALC_VITESSE_VENT;
  }
 
}
   
void Anemometre()
{
 compteurAnemometre++;  
}

void anemometre()
{
 float vit;
 float vitesse;
 Serial.print("Vitesse vent: ");
 vit= compteurAnemometre/3;
 vitesse= vit*2.40114125;
 Serial.println(vitesse,1);
 compteurAnemometre = 0;
 
 //Communication avec la carte Arduino Ethernet
 
 // Gestion de la requête WEB
 
 EthernetClient client = server.available();                        
 if (client) {

   boolean currentLineIsBlank = true;

   while (client.connected()) {                                        
     if (client.available()) {
             
             client.println("<!DOCTYPE html>");
             client.println("<html>");
             client.println("<head>");
             client.println("<meta charset=""utf-8"" />");
             client.println("<link rel=""stylesheet"" href=""arduino.css"" />");
             client.println("<title>Projet ISN 2013</title>");
             client.println("</head>");
             client.println("<nav>");
             client.println("<ul><p><a href=""http://www.eiffel-bordeaux.org/"" target=""_blank""><img src=""arduino.png"" alt=""Logo eiffel"" /></a></p></ul>");
             client.println("<ul><p><a href=""https://www.facebook.com/official.arduino?fref=ts"" target=""_blank""><img src=""facebook.png"" alt=""logo facebook"" /></a><a href=""mailto: cambou.romain@gmail.com""><img src=""gmail.png"" alt=""logo gmail"" /></a><a href=""https://twitter.com/arduino"" target=""_blank""><img src=""twitter.png"" alt=""logo twitter"" /></a></p></ul>");
             client.println("</nav>");
             client.println("<section>");
             client.println("<h1>Station météorologique du lycée G.Eiffel</h1>");
             client.println();
             client.println("<center><table>");
             client.println("<caption><h3>Météo en salle A23</h3></caption>");
             client.println("<tr>");
             client.println("<th>Température</th>");
             client.println("<th>Luminosité</th>");
             client.println("<th>Vitesse du vent</th>");
             client.println("<th>Direction du vent</th>");
             client.println("</tr>");
             client.println("<tr>");
       
             //Affichage température:
             
             
             int Temp;                                                
             Temp = analogRead (0);                                  
             float tension = (Temp*5.0);                              
             tension /=1024.0;                                        
             float temperature=((tension*1000)-550)/10;
             client.print("<th>");
             client.println(temperature);                            
             client.println("</th>");
             //Affichage Luminosité ambiante:
             
             int Lux;
             Lux = analogRead (1);
             if (Lux<=30) {client.print("<th>"),client.print ("Tres ensoleille"),client.println("</th>");}
             if (30<Lux && Lux<=90) {client.print("<th>"),client.print ("Ensoleille"),client.println("</th>");}
             if (90<Lux && Lux<=300) {client.print("<th>"),client.print ("Nuageux"),client.println("</th>");}
             if (300<Lux && Lux<=500) {client.print("<th>"),client.print ("Sombre"),client.println("</th>");}
             if (500<Lux) {client.print("<th>"),client.print ("Nuit"),client.println("</th>");}
             
             //Affichage vitesse du vent:
             
             client.print("<th>");
             client.print (vitesse,1);
             client.println("</th>");
             
             //Affichage direction du vent:
             
             int Gir;
             Gir= analogRead (2);
             if (Gir<=100) {client.print("<th>"),client.print ("Ouest"),client.println("</th>");}
             if (280<Gir && Gir<=300) {client.print("<th>"),client.print ("Nord"),client.println("</th>");}
             if (940<Gir && Gir<=950) {client.print("<th>"),client.print ("Est"),client.println("</th>");}
             if (780<Gir && Gir<=790) {client.print("<th>"),client.print ("Sud"),client.println("</th>");}
             if (180<Gir && Gir<=190) {client.print("<th>"),client.print ("Nord-Ouest"),client.println("</th>");}
             if (630<Gir && Gir<=640) {client.print("<th>"),client.print ("Nord-Est"),client.println("</th>");}
             if (460<Gir && Gir<=470) {client.print("<th>"),client.print ("Sud-Ouest"),client.println("</th>");}
             if (885<Gir && Gir<=895) {client.print("<th>"),client.print ("Sud-Est"),client.println("</th>");}
             client.println("</tr>");
             client.println("</table></center>");
             client.println();
             client.println("</section>");
             client.println("</html>");
             delay (1);
        client.stop();}                                                //Fin de la fonction.
   }}}

skywodd

Bonjour,

Pour cela il te faut gérer les requêtes HTTP GET que t'envois les clients.
Voir "webduino" ou "arduino tinywebserver" ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Merci pour ta réponse. Je suppose que ce sont des librairies à télécharger et à importer que tu me parle mais n'étant pas une bête de l'anglais et ayant du mal à trouver des tutoriels en français je galère un peu.

skywodd


Merci pour ta réponse. Je suppose que ce sont des librairies à télécharger et à importer que tu me parle mais n'étant pas une bête de l'anglais et ayant du mal à trouver des tutoriels en français je galère un peu.

C'est ça.

1) bouton "ZIP en haut :
https://github.com/sirleech/Webduino

2) http://www.robot-maker.com/index.php?/tutorials/article/30-creer-une-bibliotheque-arduino/#3

3) Enjoy ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Go Up