Re, Bonjour
J'ai refait le teste, la "lib" que j'utilise n'est peut être pas super mais elle marche !
J’obtiens des valeurs "corrects" toutes les 5 secondes (delay 5000)
Si j'inclue a mon programme la partie RTC mais surtout le rafraichissement de 1 seconde , pour voir défilé les secondes a l'écran OLED.
Alors les valeurs que je reçois du DHT11 sont moins précise, et reçu 8 fois tout les (delay x)
EX :
T: 31C / H: 31%
T: 31C / H: 31%
T: 31C / H: 31%
T: 31C / H: 31%
T: 31C / H: 31%
T: 31C / H: 31%
T: 31C / H: 31%
T: 31C / H: 31% // Delay 1000
T: 32C / H: 30%
T: 32C / H: 30%
T: 32C / H: 30%
T: 32C / H: 30%
T: 32C / H: 30%
T: 32C / H: 30%
T: 32C / H: 30%
T: 32C / H: 30% // Delay 1000
T: 32C / H: 35%
T: 32C / H: 35%
T: 32C / H: 35%
T: 32C / H: 35%
T: 32C / H: 35%
T: 32C / H: 35%
T: 32C / H: 35%
T: 32C / H: 35% // Delay 1000
T: 34C / H: 38%
T: 34C / H: 38%
T: 34C / H: 38%
T: 34C / H: 38%
T: 34C / H: 38%
T: 34C / H: 38%
T: 34C / H: 38%
T: 34C / H: 38%
Quelqu'un aurais t'il une idée d’où peut survenir le problème ?
#68tjs
Merci pour ta réponse même si je n'ai pas vraiment tous compris.
Comme je le disait je suis nouveau dans le "monde" Arduino.
J'ai reçu il y a quelques jours seulement mon premier kit et quelques modules (Dont le DHT11 et le SSD1307) afin de testé un peut tous !
Aillent pour but final de créé un jardin eco/intelligent ![]()
EDIT :
Je viens de refaire le programme au complet en n'utilisent uniquement les "lib" Adafruit.
Le tout et visiblement plus stable !!!
Voici le nouveau code :
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <Wire.h>
#include "RTClib.h"
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 0
#define DELTAY 2
#define OLED_MOSI 11
#define OLED_CLK 13
#define OLED_DC 9
#define OLED_CS 10
#define OLED_RESET 8
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
#define DHTPIN 2
#define DHTTYPE DHT11
DHT_Unified dht(DHTPIN, DHTTYPE);
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"DIM", "LUN", "MAR", "MER", "JEU", "VEN", "SAM"};
void setup() {
display.begin();
delay(1);
display.display();
display.clearDisplay();
dht.begin();
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("RTC Introuvable ");
while (1);}
if (! rtc.isrunning()) {
Serial.println("RTC Ne Fonctionne Pas !");}
}
void loop() {
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(42,0);
display.print(now.hour(), DEC);
display.print(":");
display.print(now.minute(), DEC);
display.print(":");
display.print(now.second(),DEC);
display.setCursor(23,13);
display.print(daysOfTheWeek[now.dayOfTheWeek()]);
display.print(": ");
display.print(now.day(), DEC);
display.print("/");
display.print(now.month(), DEC);
display.print("/");
display.print(now.year(), DEC);
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");
display.setCursor(23,25);
display.print("T:");
display.print(event.temperature, 0);
display.print("C");}
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("%");
display.setCursor(78,25);
display.print("H:");
display.print(event.relative_humidity, 0);
display.print("%");}
delay(1000);
display.display();
display.clearDisplay();
}
J'aimerais a présent savoir si il existe d'autre type de police de texte que celle présente (display.setTextSize(1),
Et comment ajouté un 0 si les valeurs sont inférieur à 10
Ex: if (now.hour <10)
{ display.print("0");}
Merci a vous Bonne journée