Bonjour
Je voudrais lire les valeurs mesurées par mon détecteur de température/humidité DHT11 avec un écran LCD.
J’ai 2 petits problèmes.
- j’ai des zéro qui s’affichent en fin de ligne
temperature :32*C0
humidity:31%00
j’ai mis un espace pour décaler les 0 “hors du lcd” et je ne les voie plus mais je ne comprend pas pourquoi ils sont là.
- le LCD affiche 32*C alors qu mon IDE affiche 23°C
j’ai un module DHT11 avec une résistance déja présente sur le circuit.
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <LiquidCrystal.h>
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
const int rs = 12, en = 11, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup() {
Serial.begin(9600);
// Initialize device.
dht.begin();
sensor_t sensor;
dht.temperature().getSensor(&sensor);
dht.humidity().getSensor(&sensor);
// Set delay between sensor readings based on sensor details.
delayMS = sensor.min_delay / 1000;
}
void loop() {
// Delay between measurements.
delay(delayMS);
// Get temperature event and print its value.
sensors_event_t event;
dht.temperature().getEvent(&event);
if (isnan(event.temperature)) {
Serial.println(“Error reading temperature!”);
}
else {
Serial.print(“Temperature: “);
Serial.print(event.temperature);
Serial.println(” *C”);
}
// Get humidity event and print its value.
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)) {
Serial.println(“Error reading humidity!”);
}
else {
Serial.print(“Humidity: “);
Serial.print(event.relative_humidity);
Serial.println(”%”);
}
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(0, 0);
lcd.print(“Temp:”);
lcd.setCursor(6, 0);
lcd.print(event.temperature);
lcd.setCursor(8, 0);
lcd.print("*C");
lcd.setCursor(0, 1);
lcd.print(“humidity:”);
lcd.setCursor(9, 1);
lcd.print(event.relative_humidity);
lcd.setCursor(11, 1);
lcd.print("%");
}