P4 IOT 2017
Sommaire
- 1 Présentation du sujet
- 2 Réalisation
- 2.1 Matériel utilisé
- 2.2 Suivi de réalisation
- 2.3 Détail du travail de la première séance
- 2.4 Détail du travail de la deuxième séance
- 2.5 Détail du travail de la troisième séance
- 2.6 Détail du travail de la quatrième séance
- 2.7 Détail du travail de la cinquième séance
- 2.8 Détail du travail de la sixième séance
- 3 Rendu
Présentation du sujet
Nous avons choisi de réaliser une veilleuse mobile, une veilleuse qui cherchera le meilleur emplacement dans une pièce (une ligne droite entre deux murs ou deux obstacles) pour recharger sa batterie grâce à un panneau solaire.
Contexte
Ce projet est réalisé dans le cadre du module transversale IOT (Internet of Things).
Description du projet
Nous allons utiliser un Mindstorm pour la plateforme mobile sur lequel sera monté un ou plusieurs panneaux photovoltaïques. Aussi, ce dernier sera équipé d'un capteur de lumière car le but étant d'abord de détecter l'endroit le plus lumineux. Après avoir déterminé cet endroit, l'appareil sera capable à l'aide des panneaux photovoltaïque et une batterie rechargeable d'alimenter une veilleuse (une LED dans un premier temps).
Réalisation
Matériel utilisé
- Mindstorm
- Panneau photovoltaïque
- capteur de lumière
Suivi de réalisation
Séance 1 (08/01/2018) | activité : - Formation des groupes
- Chercher un sujet - Le faire valider |
---|---|
Séance 2 (09/01/2018) | activité ... |
Séance 3 (16/01/2018) | activité ... |
Séance 4 (17/01/2018) | activité ... |
Séance 5 (22/01/2018) | activité ... |
Séance 6 (24/01/2018) | activité ... |
Détail du travail de la première séance
Code pour le capteur de luminosité:
int sensorPin = A0; // select the input pin for the potentiometer float rawRange = 1024; // 3.3v float logRange = 5.0; // 3.3v = 10^5 lux void setup() { analogReference(EXTERNAL); // Serial.begin(9600); Serial.println("Adafruit Analog Light Sensor Test"); } void loop() { // read the raw value from the sensor: int rawValue = analogRead(sensorPin); Serial.print("Raw = "); Serial.print(rawValue); Serial.print(" - Lux = "); Serial.println(RawToLux(rawValue)); delay(1000); } float RawToLux(int raw) { float logLux = raw * logRange / rawRange; return pow(10, logLux); }
Les valeurs en retour:
Illuminance Example
0.002 lux Moonless clear night sky
0.2 lux Design minimum for emergency lighting (AS2293).
0.27 - 1 lux Full moon on a clear night
3.4 lux Dark limit of civil twilight under a clear sky
50 lux Family living room
80 lux Hallway/toilet
100 lux Very dark overcast day
300 - 500 lux Sunrise or sunset on a clear day. Well-lit office area.
1,000 lux Overcast day; typical TV studio lighting
10,000 - 25,000 lux Full daylight (not direct sun)
32,000 - 130,000 lux Direct sunlight
https://learn.adafruit.com/adafruit-ga1a12s202-log-scale-analog-light-sensor/use-it
http://www.instructables.com/id/Solar-Battery-Charging/
Détail du travail de la deuxième séance
https://learn.adafruit.com/adafruit-ga1a12s202-log-scale-analog-light-sensor/use-it
int sensorPin = A0, rawValue, maxValue=0, marge = 50; boolean firstSearch = false, searchAgain = false, keepMoving; void setup() { analogReference(EXTERNAL); Serial.begin(9600); } void loop() { while (firstSearch == false || searchAgain == true) { rawValue = analogRead(sensorPin); if (rawValue > maxValue) { maxValue = rawValue; } searchAgain = false, firstSearch = true; } Serial.println("PAUSE"); //3seconds delay(3000); Serial.println("WERE BACK"); do { rawValue = analogRead(sensorPin); if (rawValue < maxValue - marge) { keepMoving = true; } else { keepMoving = false; } Serial.println(keepMoving); } while (keepMoving == true); //delay(6000); searchAgain = true; }
Détail du travail de la troisième séance
Détail du travail de la quatrième séance
Détail du travail de la cinquième séance
Détail du travail de la sixième séance
Rendu
Poster
Version électronique du poster :
Fichiers rendus
Notre application : Media:2017_IOT_P0_application.zip