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

Compléter le synoptique suivant

Réaliser des recherches sur les conditions en altitude

(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.

 

Réaliser des recherches sur les longueurs d’ondes et le flux actinique
Les rayons ultraviolets, les rayons solaires, les rayons x, les rayons gamma, pour ne nommer que ceux-là, sont des radiations actiniques. #
La longueurs d’ondes est un paterne qui se répète de façon cyclique. Il existe de nombreuses ondes (ondes radio, onde infrarouge, onde a rayons x, etc…)

Mise en œuvre de différents capteurs

A l’aide d’un Arduino et après quelques recherches sur Internet, mettre en œuvre les capteurs de luminosité des technologies suivantes :
  • Photorésistance
  • Cellule PV
  • Photo-transistor

 

Comparaison des bandes passantes

A l’aide de recherches et de mesures, déterminer les bandes passantes des capteurs étudiés

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)

adafruit_products_image.png

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

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *