====== 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);
}
}