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 : 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 <BH1750.h>
#include <Adafruit_BMP085.h>
#include <Sodaq_SHT2x.h>
...
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);
    }
}
projets/thl.txt · Dernière modification : 2020/11/08 15:09 de chef
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0