Mesure de temperature

Bonjour à tous.
Je débute depuis sur Arduino. J'ai pour projet de faire un relevé de température et que ce relevé me soit envoyé par mail. J'ai acheté tout le matériel. A force de recherche j'ai enfin réussi à récupérer la valeur de la sonde et l'afficher dans le moniteur série.
Mais une fois que j'en suis là je ne sais comment me l'envoyer par mail. J'ai chercher du côté de Carriots mais je n'ai pas tout compris. Est ce que l'un d'entre vous aurais la solution pour que je puisse recevoir cette mesure?

Merci

OnDeath:
J'ai acheté tout le matériel.

Plus précisément ?

Tu as un exemple ici : http://playground.arduino.cc/Code/Email

Merci des réponses
Par le matériel j'entend sonde, résitance, shield ethernet et Arduino

je vais jeter un oeuil à ton lien Viproz

merci

Voici le code que j'ai pu en tirer

//Inclusion des librairies
#include <OneWire.h>
#include <SPI.h>
#include <Ethernet.h>

//Partie Réseau
//Attribution de la MAC Adress du Shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x59, 0x67 };
//Adressage du Shield
IPAddress ip(192,168,1,60);
IPAddress gateway(192,168,1,254);
IPAddress subnet(255,255,255,0);
//Serveur Mail
char server[] = "monserveur.com";
EthernetClient client;

#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 7 // Broche utilisée pour le bus 1-Wire

OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
  
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(800);             // Et on attend la fin de la mesure
  
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
  
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625; 
  
  // Pas d'erreur
  return true;
}

// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
  Ethernet.begin(mac, ip, gateway, gateway, subnet); 
  delay(2000);
  Serial.println(F("Ready. Press 'e' to send."));
}

// loop()
void loop() {
  float temp;
  
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
    
    // Affiche la température
    Serial.print("Temperature : ");
    Serial.print(temp);
    Serial.write(176); // caractère °
    Serial.write('C');
    Serial.println();
    
   //Partie Mail
   byte inChar;
    
  inChar = Serial.read();

  if(inChar == 'e')
  {
      if(sendEmail()) Serial.println(F("Email sent"));
      else Serial.println(F("Email failed"));
  }
}

byte sendEmail()
{
  byte thisByte = 0;
  byte respCode;

  if(client.connect(server,25)) {
    Serial.println(F("connected"));
  } else {
    Serial.println(F("connection failed"));
    return 0;
  }

  if(!eRcv()) return 0;
  Serial.println(F("Sending helo"));

// change to your public ip
  client.println(F("helo 1.2.3.4"));

  if(!eRcv()) return 0;
  Serial.println(F("Sending From"));

// change to your email address (sender)
  client.println(F("MAIL From: <me@mydomain.com>"));

  if(!eRcv()) return 0;

// change to recipient address
  Serial.println(F("Sending To"));
  client.println(F("RCPT To: <you@yourdomain.com>"));

  if(!eRcv()) return 0;

  Serial.println(F("Sending DATA"));
  client.println(F("DATA"));

  if(!eRcv()) return 0;

  Serial.println(F("Sending email"));

// change to recipient address
  client.println(F("To: You <you@yourdomain.com>"));

// change to your address
  client.println(F("From: Me <me@mydomain.com>"));

  client.println(F("Subject: Arduino email test\r\n"));

  client.println(F("This is from my Arduino!"));

  client.println(F("."));

  if(!eRcv()) return 0;

  Serial.println(F("Sending QUIT"));
  client.println(F("QUIT"));

  if(!eRcv()) return 0;

  client.stop();

  Serial.println(F("disconnected"));

  return 1;
}

byte eRcv()
{
  byte respCode;
  byte thisByte;
  int loopCount = 0;

  while(!client.available()) {
    delay(1);
    loopCount++;

    // if nothing received for 10 seconds, timeout
    if(loopCount > 10000) {
      client.stop();
      Serial.println(F("\r\nTimeout"));
      return 0;
    }
  }

  respCode = client.peek();

  while(client.available())
  {  
    thisByte = client.read();    
    Serial.write(thisByte);
  }

  if(respCode >= '4')
  {
    efail();
    return 0;  
  }

  return 1;
}


void efail()
{
  byte thisByte = 0;
  int loopCount = 0;

  client.println(F("QUIT"));

  while(!client.available()) {
    delay(1);
    loopCount++;

    // if nothing received for 10 seconds, timeout
    if(loopCount > 10000) {
      client.stop();
      Serial.println(F("\r\nTimeout"));
      return;
    }
  }

  while(client.available())
  {  
    thisByte = client.read();    
    Serial.write(thisByte);
  }

  client.stop();

  Serial.println(F("disconnected"));
  }
}

Mais j'ai une erreur lors de la vérification: sendEmail was not declared in this scope

Comment et où je dois le déclarer?

ta fonction "sendEmail" est placée dans ton code en dessous de la fonction loop dans laquelle elle est appelée. Donc quand le compilateur arrive sur l'appel de sendEmail il ne sais pas encore que la fonction sendEmail existe, puisqu'il ne l'a pas lue.

Donc soit tu la place au dessus dans ton code (avant loop() ), soit tu crées un fichier .h qui contient les déclarations de toutes tes fonctions.

le plus simple est de la placer au dessus dans le code !

Merci de la réponse. J'ai en fait rajouter un } qui manquait. Il n'y a plus d’erreur lors de la compilation, reste plus qu'a vérifier si ça fonctionne une fois charger dans l'Arduino mais pour le moment il faut que je me trouve je pense une alim externe car lorsque je branche le shield ethernet sur l'Arduino ma sonde n'a plus l'air d’être alimentée. Elle ne me retourne plus de valeur.
Je vais tester tout ça et vous donnerais le résultat.

Merci de la réponse.