Projet systeme de régulation temperature avec menusur lcd i2c [resolu]

Bonjour,

J'ai pour projet un systeme de controle et régulation de temperature et humidité sur lequel je débute et apres avoir testé la lecture simple de la temperature , puis lecture et affichage sur LCD 16x2 I2C qui fonctionnent.
J'ai trouvé un code ( sur plaisir Arduino ) pour créer un menu pour les réglages ( j'ai bien vu le post de J.M.L qui sera ma prochaine étape car pour le moment je n'ai pas les composants utilisé dans son post)

J'ai fait quelques modifications sur le code original, maintenant le programme utilise la temperature relevé par le DHT11 ( le programme avait un potentiometre a l'origine pour simuler les variations de temperatures.

Les bibliotheques fonctionnent ( utilisées sur les programmes cités plus haut)
le branchement du capteur aussi ( j'ai televerser un autre code de lecture simple et j'ai bien les valeurs corrects)

//***** Mise en place des déclarations *****//
//***** Bibliothèques. *****//
 //Gestion de l'afficheur LCD

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

#include <LiquidCrystal_I2C.h>


#define DHTPIN 13
#define DHTTYPE DHT11
DHT dht (DHTPIN,DHTTYPE);

LiquidCrystal_I2C lcd(0x27,16,2);[code]


J’espère avoir "respecté les règles d'édition de post, et je remercie d'avance ceux qui aurons le courage de se penché sur mon problème ( oui je sais un énième post avec un DHT11... mais c'est le seul que j'ai actuellement)

Salut

Ca donne quoi température ?

...

float temperature = dht.readTemperature ();

...

le DHT est un capteur numérique et non analogique il me semble ...donc pas besoin des lignes paramètres[0] .

A confirmer ..

il manquait le code en pièce jointe désolé

MENU_LCD_THERMOSTAT_1.zip (8.01 KB)

la partie paramètre envoi vers les menus liés aux 4 boutons poussoirs, mais je pense que mon problème vient de ce coté la, j'ai l'impression qu il manque quelque chose pour que le programme reconnaisse les valeurs données par le DHT qui sont utilisées pour la temp et les réglages des menus.
le DHT affiche -14°.

j'ai envoyé le sketch complet en pièce jointe.

et donc température renvoie quoi ?

ca renvoie-14°, et -11°

ho, je crois que j'ai compris ce que tu voulais dire par

BrUnO14200:
et donc température renvoie quoi ?

c'est justement dans cette partie ou je dois mal m'y prendre, dans mon programme initial ( lecture temp et humi du DHT11 sur LCD) temperature renvoi a la valeur du DHT11,

Et pour ce programme ( si j'ai bien compris) parametre 0 renvoi la donnée de temperature du DHT pour quelle soit utilisable dans les menu et affichée en mode affichage.

En gros le -15° reste affiché meme en débranchant le capteur donc c'est moi déclare mal le capteur , ou qui ne fait pas le lien avec le programme pour renvoyer la donnée transmise par le DHT,

hello
"-15" parce qu'en ligne 213
parametres[0] = dht.readTemperature (); //Lecture du signale à la broche dédié.
parametres[0] = map(parametres[0], 0, 1023, -15, 50); //Mise à l'échelle et chargement de la valeur.

tu recuperes une valeur à zéro et la fonction map te la transforme en "-15"

ce "traitement" est fait pour un potentiomètre non ?

BrUnO14200:
Salut

Ca donne quoi température ?

...

float temperature = dht.readTemperature ();

...

Pour la 3ieme fois, le "température" donne quoi ?
Serial.println(temperature); si besoin ...

Désolé Bruno, (c'est le probleme quand on a affaire a des novices comme moi )

temperature est censé etre la valeur lue du DHT et doit etre affichée sur l'écran,
je te joint le code que j'utilise pour lecture et affichage du DHT11 sur LCD ci dessous

#include <DHT.h>
#include <DHT_U.h>

#include <Adafruit_Sensor.h>



#include <LiquidCrystal_I2C.h>


#define DHTPIN 13
#define DHTTYPE DHT11
DHT dht (DHTPIN,DHTTYPE);
#include <LiquidCrystal.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
  // put your setup code here, to run once:
lcd.begin ();

lcd.println("TEST CAPTEUR DHT11"); 
delay(1000);
lcd.clear();
dht.begin (DHT11);
}

void loop() {
  // put your main code here, to run repeatedly:
float temperature= dht.readTemperature ();
float humidite = dht.readHumidity ();

if (isnan (temperature) || isnan (humidite)){
}

else{
  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(temperature);
  lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("Humi: ");
  lcd.print(humidite);
  lcd.print("%");

}

delay (1000);
}

mais comme le programme utilisait un potentiometre pour simuler les variations de temperature, je dois mal m'y prendre pour remplacer le potentiometre par le DHT.
Au cas ou ça puisse aider je met en pièce jointe le code original ( trouvé sur Plaisir Arduino).

Je vais continuer a m’entraîner avec quelques programme plus simple en parallèle sinon je sens que je vais craquer >:(
:slight_smile:

MENU_LCD_THERMOSTAT 3.zip (9.12 KB)

Bon, et bien la température s'affiche enfin maintenant je tente de rajouter le paramètre d'humidité dans ce programme . je joint le code complet on ne sait jamais ça peux servir a d'autres

MENU_LCD_THERMOSTAT_1.zip (8.19 KB)