Prochaine révision | Révision précédente |
projets:thl [2020/11/08 15:44] – créée chef | projets:thl [2024/12/23 14:49] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== Module lumière, pression, température, humidité ====== | ====== Module lumière, pression, température, humidité ====== |
Test pour connecter un modue tout complet qui comprend plusieurs capteur sur une même carte.\\ | Test pour connecter un modue tout complet qui comprend plusieurs capteur sur une même carte.\\ |
Description du module : | 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.\\ | 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 :\\ |
| <code c> |
| // 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")); |
| } |
| </code> |
| |
| Donc en résumé ce que l'on a besoin :\\ |
| <code c> |
| #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); |
| } |
| } |
| |
| </code> |
| |