Go Down

Topic: Projet mesure de l'humidité (Read 522 times) previous topic - next topic

DiMs

Bonjour !

Alors voila je travail actuellement sur un projet qui est le suivant: je voudrai affiché une gauge sur une page web de l'humidité mesuré par un capteur dans une zone de culture.
Pour cela j'utilise ce capteur:
(Ref=SEN-0114)

Je voulais procédé de la facon suivante:
_L'utilisateur arrive sur l'index
_Il a le choix entre plusieur zone de mesure, il en choisie une et donc il arrive sur une nouvel page htm
_Afficher la gauge de l'humidité

J'ai le code arduino qui affiche les pages htm, ce programme marche bien.
Je voudrai maintenant ajouter la gauge mais je n'ai aucune idées de comment m'y prendre :/
Code: [Select]


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


// size of buffer used to capture HTTP requests
#define REQ_BUF_SZ   20

// MAC address from Ethernet shield sticker under board
byte mac[] = {
  0x92, 0xA2, 0xDA, 0x00, 0x1A, 0x71 };
IPAddress ip(172, 26, 253, 101); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80

int const PinAnalogiqueHumidite=0;       //Broche Analogique de mesure d'humidité
int const PinNumeriqueHumidite=3;        //Broche Numérique mesure de l'humidité
int humidite;  //Humidite su sol, mesure analogique


File webFile;
char HTTP_req[REQ_BUF_SZ] = {
  0}; // buffered HTTP request stored as null terminated string
char req_index = 0;              // index into HTTP_req buffer

void setup()
{

  pinMode(PinAnalogiqueHumidite, INPUT);       //pin A0 en entrée analogique
  pinMode(PinNumeriqueHumidite, OUTPUT);      //pin 3 en sortie numérique
  Ethernet.begin(mac, ip);  // initialize Ethernet device
  server.begin();           // start to listen for clients
  Serial.begin(9600);       // for debugging

  // initialize SD card
  Serial.println("Initializing SD card...");
  if (!SD.begin(4)) {
    Serial.println("ERROR - SD card initialization failed!");
    return;    // init failed
  }
  Serial.println("SUCCESS - SD card initialized.");
  // check for index.htm file
  if (!SD.exists("index.htm")) {
    Serial.println("ERROR - Can't find index.htm file!");
    return;  // can't find index file
  }
  Serial.println("SUCCESS - Found index.htm file.");
}

void loop()
{
  digitalWrite(PinNumeriqueHumidite, HIGH);
  humidite = analogRead(PinAnalogiqueHumidite); // Lit la tension analogique

    EthernetClient client = server.available();  // try to get client

  if (client) {  // got client?
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {   // client data available to read
        char c = client.read(); // read 1 byte (character) from client
        // last line of client request is blank and ends with \n
        // respond to client only after last line received
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          if (StrContains(HTTP_req, "GET / ")
            || StrContains(HTTP_req, "GET /index.htm")) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println("Connnection: close");
            client.println();
            // send web page
            webFile = SD.open("index.htm");        // open web page file
          }
          else if (StrContains(HTTP_req, "GET /salade.htm")) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println("Connnection: close");
            client.println();
            webFile = SD.open("salade.htm");        // open web page file
          }
          else if (StrContains(HTTP_req, "GET /tomate.htm")) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println("Connnection: close");
            client.println();
            webFile = SD.open("tomate.htm");        // open web page file
          }
          else if (StrContains(HTTP_req, "GET /laitue.png")) {
            webFile = SD.open("laitue.png");
            if (webFile) {
              client.println("HTTP/1.1 200 OK");
              client.println("Content-Type: image/png");
              client.println();
            }
          }
          else if (StrContains(HTTP_req, "GET /tomate.png")) {
            webFile = SD.open("tomate.png");
            if (webFile) {
              client.println("HTTP/1.1 200 OK");
              client.println("Content-Type: image/png");
              client.println();
            }
          }
          if (webFile) {
            while(webFile.available()) {
              client.write(webFile.read()); // send web page to client
            }
            webFile.close();
          }
          //reset buffer index and all buffer elements to 0
          req_index = 0;
          StrClear(HTTP_req, REQ_BUF_SZ);
          break;
        }
        // every line of text received from the client ends with \r\n
        if (c == '\n') {
          // last character on line of received text
          // starting new line with next character read
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // a text character was received from client
          currentLineIsBlank = false;
        }
      } // end if (client.available())
    } // end while (client.connected())
    delay(1);      // give the web browser time to receive the data
    client.stop(); // close the connection
  } // end if (client)
}

// sets every element of str to 0 (clears array)
void StrClear(char *str, char length)
{
  for (int i = 0; i < length; i++) {
    str[i] = 0;
  }
}

// searches for the string sfind in the string str
// returns 1 if string found
// returns 0 if string not found
char StrContains(char *str, char *sfind)
{
  char found = 0;
  char index = 0;
  char len;

  len = strlen(str);

  if (strlen(sfind) > len) {
    return 0;
  }
  while (index < len) {
    if (str[index] == sfind[found]) {
      found++;
      if (strlen(sfind) == found) {
        return 1;
      }
    }
    else {
      found = 0;
    }
    index++;
  }

  return 0;
}


B@tto

Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

Go Up