Mesure luminosité – groupe 10
Enzo François, Élie Butler, Kaocen Djermakoye
Objectif
Acquérir et enregistrer l’intensité lumineuse, pendant tout le vol.
Il y a plusieurs types de luminosité mesurable :
- luminosité dans le domaine visible
- intensité des UV
- flux actinique
Tâches à réaliser
Analyse fonctionnelle
(amplitudes de températures, conditions susceptibles de perturber la mesure, …)
Avec l’altitude, la température décroît. En tout point de la Terre la température décroît avec l’altitude selon une moyenne de 0,60°C/100 mètres.
Les nuages peuvent venir perturber la mesure en cachant les rayons du soleil.
la pression diminue (de moitié à 5 500 m) au fur et à mesure que l’altitude augmente, puisque le poids de l’air qui nous surplombe est moins important.
À des altitudes plus élevées, les rayons du soleil ne sont pas aussi bien filtrés par l’atmosphère. L’intensité de l’exposition au soleil en haute altitude augmente de 4% pour chaque 1000 pieds d’altitude au-dessus du niveau de la mer.
Mise en œuvre de différents capteurs
- Photorésistance
- Cellule PV
- Photo-transistor
Comparaison des bandes passantes
Analyse des performances
prix, précision, rapidité, justesse, poids, …
Répartition des tâches
Enzo Francois | Elie Butler | Kaocen Djermakoye |
Recherches 22/01/2019 | Recherches 22/01/2019 | Recherches 22/01/2019 |
Recherches photorésistance | Recherches cellule PV | Recherches photo-transistor |
Recherches 05/03/2019 | Recherches 05/03/2019 | Recherches 05/03/2019 |
12/03/2019 Montage et programme pour utiliser le capteur tsl2561 fait. | 12/03/2019 Montage et programme pour utiliser le capteur tsl2561 fait. | 12/03/2019 Montage et programme pour utiliser le capteur tsl2561 fait. |
19/03/2019 Absent | 19/03/2019 Montage et programme pour utiliser le capteur veml6075 | 19/03/2019 Montage et programme pour utiliser le capteur veml6075 |
26/03/2019 Absent |
26/03/2019 Combinaison du programme pour utiliser le capteur veml6075 et le programme pour utiliser le capteur tsl2561. Comparaison de la mesure de lux du capteur avec un luxometre. |
26/03/2019 Absent |
21/05/2019 Absent | 21/05/2019 Optimisation du Programme. | 21/05/2019 Absent |
04/06/2019 Changer de groupe | 04/06/2019 Finalisation du Site | 04/06/2019 Léo Pradier a rejoins la partie. |
Objets utilisés :
Montage Veml6075 (Capteur UV)
Programme :
#include #include "Adafruit_VEML6075.h" Adafruit_VEML6075 uv = Adafruit_VEML6075(); void setup() { Serial.begin(115200); Serial.println("VEML6075 Test"); if (! uv.begin()) { Serial.println("Erreur capteur VEML6075 !"); } Serial.println("Capteur VEML6075 trouvé"); } void loop() { Serial.print("Index UV : "); Serial.println(uv.readUVI()); delay(1000); }
tsl2561 (Capteur de lumière)
Utilisable avec une carte arduino
Programme utilisés :
–Arduino
-On va utilisé Adafruit_TSL2561 library pour éviter de faire tout les programmes nécessaire pour utilisé le capteur.
#include #include #include #include "Adafruit_VEML6075.h" /* This driver uses the Adafruit unified sensor library (Adafruit_Sensor), which provides a common 'type' for sensor data and some helper functions. To use this driver you will also need to download the Adafruit_Sensor library and include it in your libraries folder. You should also assign a unique ID to this sensor for use with the Adafruit Sensor API so that you can identify this particular sensor in any data logs, etc. To assign a unique ID, simply provide an appropriate value in the constructor below (12345 is used by default in this example). Connectionsf =========== Connect SCL to I2C SCL Clock Connect SDA to I2C SDA Data Connect VDD to 3.3V or 5V (whatever your logic level is) Connect GROUND to common ground I2C Address =========== The address will be different depending on whether you leave the ADDR pin floating (addr 0x39), or tie it to ground or vcc. The default addess is 0x39, which assumes the ADDR pin is floating (not connected to anything). If you set the ADDR pin high or low, use TSL2561_ADDR_HIGH (0x49) or TSL2561_ADDR_LOW (0x29) respectively. History ======= 2013/JAN/31 - First version (KTOWN) */ Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345); Adafruit_VEML6075 uv = Adafruit_VEML6075(); /**************************************************************************/ /* Displays some basic information on this sensor from the unified sensor API sensor_t type (see Adafruit_Sensor for more information) */ /**************************************************************************/ void displaySensorDetails(void) { sensor_t sensor; tsl.getSensor(&sensor); Serial.println("------------------------------------"); Serial.print ("Sensor: "); Serial.println(sensor.name); Serial.print ("Driver Ver: "); Serial.println(sensor.version); Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" lux"); Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" lux"); Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" lux"); Serial.println("------------------------------------"); Serial.println(""); delay(500); } /**************************************************************************/ /* Configures the gain and integration time for the TSL2561 */ /**************************************************************************/ void configureSensor(void) { /* You can also manually set the gain or enable auto-gain support */ //tsl.setGain(TSL2561_GAIN_16X); /* No gain ... use in bright light to avoid sensor saturation */ // tsl.setGain(TSL2561_GAIN_16X); /* 16x gain ... use in low light to boost sensitivity */ tsl.enableAutoRange(true); /* Auto-gain ... switches automatically between 1x and 16x */ /* Changing the integration time gives you better sensor resolution (402ms = 16-bit data) */ tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS); /* fast but low resolution */ // tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_101MS); /* medium resolution and speed */ // tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS); /* 16-bit data but slowest conversions */ // tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_13MS); /* Update these values depending on what you've set above! */ Serial.println("------------------------------------"); Serial.print ("Gain: "); Serial.println("auto"); Serial.print ("Timing: "); Serial.println("13 ms"); Serial.println("------------------------------------"); } /**************************************************************************/ /* Arduino setup function (automatically called at startup) */ /**************************************************************************/ void setup(void) { Serial.begin(9600); Serial.println("Light Sensor Test"); Serial.println(""); Serial.println("VEML6075 Simple Test"); if (! uv.begin()) { Serial.println("Failed to communicate with VEML6075 sensor, check wiring?"); } Serial.println("Found VEML6075 sensor"); /* Initialise the sensor */ //use tsl.begin() to default to Wire, //tsl.begin(&Wire2) directs api to use Wire2, etc. if(!tsl.begin()) { /* There was a problem detecting the TSL2561 ... check your connections */ Serial.print("Ooops, no TSL2561 detected ... Check your wiring or I2C ADDR!"); while(1); } /* Display some basic information on this sensor */ displaySensorDetails(); /* Setup the sensor gain and integration time */ configureSensor(); /* We're ready to go! */ Serial.println(""); } /**************************************************************************/ /* Arduino loop function, called once 'setup' is complete (your own code should go here) */ /**************************************************************************/ void loop(void) { /* Get a new sensor event */ sensors_event_t event; tsl.getEvent(&event); /* Display the results (light is measured in lux) */ if (event.light) { Serial.print(event.light); Serial.println(" lux"); Serial.print("UV Index reading: "); Serial.println(uv.readUVI()); delay(1000); } else { /* If event.light = 0 lux the sensor is probably saturated and no reliable data could be generated! */ Serial.println("Sensor overload"); Serial.print("UV Index reading: "); Serial.println(uv.readUVI()); delay(1000); } delay(250); }