// Déclaration des librairies utilisées
#include "lcdgfx.h"
#include "SimpleDHT.h"
// Déclaration globales
const uint8_t Thermometre_PGM [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x70, 0x18, 0x0C, 0x0C, 0x06, 0x06,
0x06, 0x06, 0x06, 0x04, 0x0C, 0x18, 0x38, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFE, 0xFF, 0xFE, 0x30, 0x30, 0x30, 0x30, 0x30, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x38, 0x0F, 0x07, 0x00,
0x00, 0x00, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x00, 0x07,
0x0F, 0x1C, 0x70, 0xE0, 0x80, 0x00, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1E, 0x3F, 0x61, 0x40, 0x40, 0x40, 0x61, 0x3F, 0x1F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0E,
0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x20, 0x30,
0x18, 0x18, 0x0C, 0x07, 0x03, 0x01, 0x00, 0x00,
};
DisplaySSD1306_128x64_I2C Afficheur_G(-1);
SimpleDHT22 CapteurDHT22_G(4);
// Fonction de démarrage, s'exécute une seule fois:
void setup()
{
/* Sélection de la fonte de 6x8 */
Afficheur_G.setFixedFont( ssd1306xled_font6x8 );
// Initialisation et effacement de l'écran
Afficheur_G.begin();
Afficheur_G.clear();
}
// Fonction principale du programme, s'exécute en boucle:
void loop()
{
byte temperature_L = 0;
byte humidite_L = 0;
char TexteTemperature_L[100];
char TexteHumidite_L[100];
int CodeRetour_L;
CodeRetour_L = CapteurDHT22_G.read(&temperature_L, &humidite_L, NULL);
if( CodeRetour_L == SimpleDHTErrSuccess)
{
Afficheur_G.drawBitmap1(0, 0, 27, 64, Thermometre_PGM);
sprintf(TexteTemperature_L, "Temper.: %d C", temperature_L);
sprintf(TexteHumidite_L, "Humidite: %d%%", humidite_L);
Afficheur_G.printFixed (35, 16, TexteTemperature_L, STYLE_NORMAL);
Afficheur_G.printFixed (35, 40, TexteHumidite_L, STYLE_NORMAL);
}
else
{
Afficheur_G.printFixed (5, 30, "Erreur d'acquisition !!!", STYLE_NORMAL);
}
delay(2000);
Afficheur_G.clear();
}