====== Module lumière, pression, température, humidité ====== Test pour connecter un modue tout complet qui comprend plusieurs capteur sur une même carte.\\ Description du module : [[achats:doc#module_set_hdc1080_bmp280_bh1750fvi]] En fait pour la programmation, on agit comme si on avait affaire a des capteurs séparés.\\ On peu trouver un exemple sur :\\ [[http://arduinolearning.com/code/htu21d-bmp180-bh1750fvi-sensor-example.php]] Pour ma carte, je l'ai relier au SDA(20)/SCL(21) de la carte mega/ESP.\\ Il y a une petit subtilité pour le BH1750, il faut l'initialiser dans le begin sinon on se trouve avec une erreur.\\ Cette erreur est signalée readLightLevel si l'attribut BH1750_MODE n'est pas défini. \\ L'attribut BH1750_MODE est défini dans configure lequel est appelé à partir de la begin fonction. \\ Il est initialisé à UNCONFIGURED et par défaut à CONTINUOUS_HIGH_RES_MODE dans la déclaration de la begin fonction. \\ j'ai ajouté dans mon code :\\ // begin returns a boolean that can be used to detect setup problems. if ( !lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) { Serial.println(F("Error initialising BH1750")); } Donc en résumé ce que l'on a besoin :\\ #include #include #include ... BH1750 lightMeter(0x23); Adafruit_BMP085 bmp; ... float lux = 0; // data BH1750 luminosité float pression = 0; // data BMP180 pressio float temp = 0; // data HTU21D température float hum = 0; // data HTU21D humidité ... //======== Fonction SETUP ================================================================ void setup(void) { ... ... // begin returns a boolean that can be used to detect setup problems. if ( !lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) { Serial.println(F("Error initialising BH1750")); } if (!bmp.begin()) { Serial.println("Could not find a valid BMP085 sensor, check wiring!"); while (1) {} } ... } ... //======================================================================================== // Affiche le résultat des capteurs void Aff_capteur() { // Test luminosité lux = lightMeter.readLightLevel(); pression = bmp.readPressure(); hum = SHT2x.GetHumidity(); temp = SHT2x.GetTemperature(); // affichage Serialprint(... .... ou // Affichage du code sur l'écran TFT 3.5 tft.fillRect(0,455 ,200, 455 , BLACK); tft.setTextSize(2); tft.setTextColor(GRAY); tft.setCursor(10, 300); tft.print("Temperature :"); tft.setCursor(180, 300); tft.print(temp); tft.setCursor(10, 320); tft.print("Humidite :"); tft.setCursor(180, 320); tft.print(hum); tft.setCursor(10, 340); tft.print("Luminosite :"); tft.setCursor(180, 340); tft.print(lux); tft.setCursor(10, 360); tft.print("Pression :"); tft.setCursor(180, 360); tft.print(pression); delay(500); tft.fillRect(0,455 ,200, 455 , BLACK); if (debug) { Serial.print("reçu="); Serial.println(value); } }