Bonjour,
Je suis en STI2D, SIN. Je rencontre un problème avec mon projet. Le but est d’envoyer les valeurs du capteur de température de température au LCD. Le programme pour faire cela marche bien mais quand j’ajoute la partie ethernet, le LCD m’affiche une ligne de la même valeur ( ffffffffffff ou 3333333333) et cela varie mais affiche jamais la température.
voici le code:
#include <SPI.h> // Libairie communication avec le Shield ethernet
#include <Ethernet.h> // Librairie communication Ethernet sur un réseau local
#include <LiquidCrystal.h> //Librairie LED
LiquidCrystal lcd(11,10,5,4,3,2);
int timer = 0;
byte MAC = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25 };
IPAddress IP(192,168,1, 10);
EthernetServer server(80); // Le Shield devient un serveur sur le port 80 (port HTTP)
void setup(){
pinMode(7,OUTPUT);
pinMode(A0,INPUT);
Serial.begin(9600);
timer = millis() + 3000;
//Lancement connexion Ethernet avec l’adresse MAC et l’adresse IP
Ethernet.begin(MAC, IP);
server.begin();
Serial.print("Le serveur est lancé | ip: ");
Serial.println(Ethernet.localIP());
}
void loop() {
if(millis() == timer)
{
timer = millis() + 3000;
temp();
}
ethernet();
}
void ethernet() {
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.print(c);
if (c == ‘\n’) {
client.println("<HTTP/1.1 200 OK>");
client.println("<Connection-Type: text/html");
client.println("<Connection: close>");
client.println("");
client.println("");
client.println("");
client.println("");
client.println(" Serveur Web “);
client.println(”");
client.println("");
client.println("<a href ="/?btn_on""> ON “);
client.println(”<a href ="/?btn_off""> OFF ");
client.println("");
client.println("");
client.stop();
}
}
}
}
}
void temp() {
int valeur_brute = analogRead(A0);
float temperature_celcius = valeur_brute * (5.0 / 1024.0 * 100.0);
Serial.println(temperature_celcius);
lcd.begin(16, 2);
lcd.write("Temperature: ");
lcd.setCursor(1,1);
lcd.print(temperature_celcius);
float temp_demande = analogRead(A1);
temp_demande = (temp_demande / 1024 * 100);
Serial.println(temp_demande);
if (temperature_celcius <= temp_demande)
{
digitalWrite(7,HIGH);
}
else
{
digitalWrite(7,LOW);
}
}
Si vous pouvez m’aider cela serai géniale, Merci.