Projet IMA3 P3, 2016/2017, TD2 : Différence entre versions

De Wiki de Projets IMA
(Page créée avec « = Projet IMA3-SC 2016/2017 : <TITRE> = == Cahier des charges == === Description du système === === Le matériel === == Séance 1 == === Partie électronique === === Pa... »)
 
(Partie électronique)
 
(39 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
= Projet IMA3-SC 2016/2017 : <TITRE> =
+
= Projet IMA3-SC 2016/2017 : Banc test pour station météo =
  
 
== Cahier des charges ==
 
== Cahier des charges ==
 +
* Commande  du taux d'humidité dans l’air
 +
* Commande de la température
 +
* Commande de la luminosité
 +
* Commande du vent
 +
* Commande de la pluie
 +
* Commande depuis  une interface Web.
 +
* Système  de comparaison  avec les valeurs de la station météo et alerte si les valeurs sont incohérentes 
  
 
=== Description du système ===
 
=== Description du système ===
 +
 +
Le  banc de test  pour  station  météo  est un  banc  de test  destiné à vérifier le bon fonctionnement des stations météo en  sortie d’usine . Pour  cela  le  banc de test  crée une atmosphère  dans une  cloche fermée. Cette  atmosphère  est « programmable » c’est  à dire que la  personne chargée du  test va  rentrer par  exemple  les paramètres  suivants : température :22° humidité : 30 % , temps : ensoleillé , vent : 10 km/h. Une fois la commande envoyée par l’opérateur le banc de test « crée » les conditions  météorologiques souhaitées, l’opérateur enregistre les valeurs affichées sur la station météo sur l’interface web qui valide ou non le  produit.
  
 
=== Le matériel ===
 
=== Le matériel ===
 +
 +
====En notre possession====
 +
 +
* 1 hygromètre/sonde de température DHT11
 +
* 1 photorésistance LDR
 +
* 1 lampe
 +
* 1 ventilateur
 +
* 1 Arduino Uno (en  attendant le  FPGA)
 +
* 1 Rapsberry Pi
 +
*      3 résistance de 9k ohm
 +
*      3 résistance de 10k ohm
 +
*      3 transistor
 +
 +
====En attente====
 +
 +
 +
* 1 système d'écoulement d'eau (fabrication artisanale)
 +
* 1 réservoir  d’eau (fabrication artisanale)
 +
* 1 résistance chauffante (fabrication artisanale)
 +
  
 
== Séance 1 ==
 
== Séance 1 ==
  
 
=== Partie électronique ===
 
=== Partie électronique ===
 +
 +
*      Étude des capteurs :
 +
 +
====Température====
 +
 +
Voici les caractéristiques des 2 modèles envisageables de capteurs de températures:
 +
 +
=====DHT11=====
 +
 +
*Voltage: 0-5V
 +
*Plage humidité: 20% à 90%
 +
*Plage température: 0 à 50°C
 +
*Précision humidité: +/- 5%
 +
*Précision température: +/- 2°C
 +
 +
=====DHT22=====
 +
 +
 +
*Voltage: 0-5V
 +
*Plage humidité: 0% à 100%
 +
*Plage température: -40°C à 80°C
 +
*Précision humidité: +/- 2%
 +
*Précision température: +/- 0.5°C     
 +
 +
Le capteur DHT22 est plus précis et plus cher, cependant nous n'avons pas besoin de tant de précision. C'est pourquoi, nous avons choisi d'utiliser le capteur DHT11. 
 +
       
 +
====Humidité====
 +
 +
Nous avons la possibilité d'utiliser le même capteur que le capteur de température pour obtenir les valeurs de l'humidité. Alors, nous utiliserons aussi le capteur DHT11.
 +
 +
====Luminosité====
 +
 +
=====Photorésistance LDR=====
 +
 +
*Plage de photorésistance : 2 à 20 Kohm
 +
*Résistance d'obscurité (après 10 secondes) : supérieur à 2 Mohm
 +
*Valeur de gamma à 10-100 Lux : 0.7
 +
*Dissipation de puissance maximale : 100 mW
 +
*Tension de claquage maximale : 150 Vcc
 +
*Temps de réponse (montée) : 20 ms
 +
*Temps de réponse (descente) : 30 ms
 +
*Température ambiante : -35°C à +70°C
  
 
=== Partie informatique ===
 
=== Partie informatique ===
 +
 +
*    Ecriture des programmes tests :
 +
 +
===== Test de la réception de valeur en LUX  =====
 +
 +
Nous avons codé un programme qui reçoit une valeur en Lux. En fonction de la valeur retournée, nous affichons l'environnement autour de la photorésistance.
 +
Nous avons réparti les différents environnements avec les plages suivantes :
 +
 +
* 0 < LUX <10,          le capteur est couvert.
 +
* 10 < LUX < 200,        l'environnement est sombre.
 +
* 200 < LUX < 500,      l'environnement est exposé à de la lumière.
 +
* 500 < LUX < 800,      l'environnement est lumineux.
 +
* 800 < LUX < + ∞,      l'environnement est très lumineux.
 +
 +
===== Commande de la LED =====
 +
 +
Nous avons réalisé un programme qui commande une photorésistance et une LED.
 +
 +
Ce programme reçoit une valeur en Lux, captée par la photorésistance, et si la valeur est supérieur à 700 Lux, la LED reste éteinte et inversement si la valeur est inférieur à 700 Lux, le LED s'allume afin d'avoir une bonne luminosité.
 +
 +
===== Test de réception de la valeur en °C =====
 +
 +
Nous voulions tester la réception de la valeur de la température en °C. C'est pourquoi,nous avons réalisé un programme qui reçoit une valeur en °C avec le capteur DHT11.
 +
 
 +
===== Test de réception de la valeur en % =====
 +
 +
Nous voulions tester la réception de la valeur de l'humidité en %. C'est pourquoi,nous avons codé un programme qui reçoit une valeur en % avec le capteur DHT11.
  
 
== Séance 2 ==
 
== Séance 2 ==
  
 
=== Partie électronique ===
 
=== Partie électronique ===
 +
 +
Dans ce projet, il nous était conseillé d'utiliser une carte FPGA NanoBoard. Tout d'abord, nous avons commencé par nous renseigner sur la carte. Ensuite, nous avons réalisé le tutoriel , donné au début du projet.
  
 
=== Partie informatique ===
 
=== Partie informatique ===
 +
 +
Pour notre projet, nous avons décidé d'utiliser une Raspberry Pi qui est un très petit ordinateur.Pour se faire, nous avons dû configurer le nano-ordinateur.
 +
Notre Raspberry Pi doit pouvoir communiquer avec un ordinateur afin de  facilité le  développement (on saisie  directement les commandes sur un ordinateur  plus puissant et donc fluide)et aussi nous connecter en  réseau pour permettre l'installation de paquetages(apache2 et scrot).
 +
Pour accéder à la carte Raspberry Pi, nous avons utilisé un câble série et le logiciel 'minicom' afin d'établir une connexion série avec une vitesse de 115200 bauds et aucun contrôle de flux matériel.
 +
Pour connecté la  raspberry au réseau nous avons  d'abord utilisé une carte wifi externe brancher en USB  , nous  avons du modifier le  fichier "/etc/network/interfaces" pour y rentrer les caractéristiques  de notre connexion  wifi(clé WAP2 ,nom du réseau)
  
 
== Séance 3 ==
 
== Séance 3 ==
  
 
=== Partie électronique ===
 
=== Partie électronique ===
 +
 +
Prise de mesures pour l'utilisation du ventilateur:
 +
Nous nous sommes rendu au frabricarium de Polytech Lille afin d'utiliser un anémomètre dont voici le protocole:
 +
* Mettre une étiquette blanche sur l'une des hélices  du ventilateur
 +
* Pointer le laser de l'anémomètre sur l'étiquette
 +
* A l'aide d'une alimentation (0-12V) faire varier la tension puis relever la vitesse
  
 
=== Partie informatique ===
 
=== Partie informatique ===
 +
 +
Dans notre projet, nous avons utilisé des Websockets. Les WebSockets permettent au navigateur et à l'application distante de communiquer de façon
 +
bi-directionnelle . leurs utilisation se décompose en plusieurs partie:
 +
*une vérification de la connexion établie
 +
*une réception des information de la même façon  qu'un fichier en C
 +
*d'un envoie de donnée qui ici sera vers une arduino via la  liaison série
  
 
== Séance supplémentaire 1 ==
 
== Séance supplémentaire 1 ==
Ligne 30 : Ligne 147 :
  
 
=== Partie informatique ===
 
=== Partie informatique ===
 +
 +
Utilisation des Websockets
  
 
== Conclusion ==
 
== Conclusion ==
 +
 +
Pour conclure, notre projet n'est pas vraiment un succès car il n'est que partiellement fini. Notre projet aurait pu être fini dans les temps si ce dernier aurait été plus simple.De plus, nous avons eu des problèmes d'accès à la salle FPGA, ce qui a chamboulé un peu notre programme mais nous avons dû fait avoir les contres-temps, comme dans la vie quotidienne. Cependant, ce projet complexe nous a permis de voir le travail de groupe et aussi d'appliquer les cours que nous avons suivis au cours de cette 3ème année.
 +
notre travail est  disponible  sur GIT :
 +
https://archives.plil.fr/ftaingla/projet_sc_lepoivre_lepolard_gao_taingland.git

Version actuelle datée du 22 juin 2017 à 14:00

Projet IMA3-SC 2016/2017 : Banc test pour station météo

Cahier des charges

  • Commande du taux d'humidité dans l’air
  • Commande de la température
  • Commande de la luminosité
  • Commande du vent
  • Commande de la pluie
  • Commande depuis une interface Web.
  • Système de comparaison avec les valeurs de la station météo et alerte si les valeurs sont incohérentes

Description du système

Le banc de test pour station météo est un banc de test destiné à vérifier le bon fonctionnement des stations météo en sortie d’usine . Pour cela le banc de test crée une atmosphère dans une cloche fermée. Cette atmosphère est « programmable » c’est à dire que la personne chargée du test va rentrer par exemple les paramètres suivants : température :22° humidité : 30 % , temps : ensoleillé , vent : 10 km/h. Une fois la commande envoyée par l’opérateur le banc de test « crée » les conditions météorologiques souhaitées, l’opérateur enregistre les valeurs affichées sur la station météo sur l’interface web qui valide ou non le produit.

Le matériel

En notre possession

  • 1 hygromètre/sonde de température DHT11
  • 1 photorésistance LDR
  • 1 lampe
  • 1 ventilateur
  • 1 Arduino Uno (en attendant le FPGA)
  • 1 Rapsberry Pi
  • 3 résistance de 9k ohm
  • 3 résistance de 10k ohm
  • 3 transistor

En attente

  • 1 système d'écoulement d'eau (fabrication artisanale)
  • 1 réservoir d’eau (fabrication artisanale)
  • 1 résistance chauffante (fabrication artisanale)


Séance 1

Partie électronique

  • Étude des capteurs :

Température

Voici les caractéristiques des 2 modèles envisageables de capteurs de températures:

DHT11
  • Voltage: 0-5V
  • Plage humidité: 20% à 90%
  • Plage température: 0 à 50°C
  • Précision humidité: +/- 5%
  • Précision température: +/- 2°C
DHT22
  • Voltage: 0-5V
  • Plage humidité: 0% à 100%
  • Plage température: -40°C à 80°C
  • Précision humidité: +/- 2%
  • Précision température: +/- 0.5°C

Le capteur DHT22 est plus précis et plus cher, cependant nous n'avons pas besoin de tant de précision. C'est pourquoi, nous avons choisi d'utiliser le capteur DHT11.

Humidité

Nous avons la possibilité d'utiliser le même capteur que le capteur de température pour obtenir les valeurs de l'humidité. Alors, nous utiliserons aussi le capteur DHT11.

Luminosité

Photorésistance LDR
  • Plage de photorésistance : 2 à 20 Kohm
  • Résistance d'obscurité (après 10 secondes) : supérieur à 2 Mohm
  • Valeur de gamma à 10-100 Lux : 0.7
  • Dissipation de puissance maximale : 100 mW
  • Tension de claquage maximale : 150 Vcc
  • Temps de réponse (montée) : 20 ms
  • Temps de réponse (descente) : 30 ms
  • Température ambiante : -35°C à +70°C

Partie informatique

  • Ecriture des programmes tests :
Test de la réception de valeur en LUX

Nous avons codé un programme qui reçoit une valeur en Lux. En fonction de la valeur retournée, nous affichons l'environnement autour de la photorésistance. Nous avons réparti les différents environnements avec les plages suivantes :

  • 0 < LUX <10, le capteur est couvert.
  • 10 < LUX < 200, l'environnement est sombre.
  • 200 < LUX < 500, l'environnement est exposé à de la lumière.
  • 500 < LUX < 800, l'environnement est lumineux.
  • 800 < LUX < + ∞, l'environnement est très lumineux.
Commande de la LED

Nous avons réalisé un programme qui commande une photorésistance et une LED.

Ce programme reçoit une valeur en Lux, captée par la photorésistance, et si la valeur est supérieur à 700 Lux, la LED reste éteinte et inversement si la valeur est inférieur à 700 Lux, le LED s'allume afin d'avoir une bonne luminosité.

Test de réception de la valeur en °C

Nous voulions tester la réception de la valeur de la température en °C. C'est pourquoi,nous avons réalisé un programme qui reçoit une valeur en °C avec le capteur DHT11.

Test de réception de la valeur en %

Nous voulions tester la réception de la valeur de l'humidité en %. C'est pourquoi,nous avons codé un programme qui reçoit une valeur en % avec le capteur DHT11.

Séance 2

Partie électronique

Dans ce projet, il nous était conseillé d'utiliser une carte FPGA NanoBoard. Tout d'abord, nous avons commencé par nous renseigner sur la carte. Ensuite, nous avons réalisé le tutoriel , donné au début du projet.

Partie informatique

Pour notre projet, nous avons décidé d'utiliser une Raspberry Pi qui est un très petit ordinateur.Pour se faire, nous avons dû configurer le nano-ordinateur. Notre Raspberry Pi doit pouvoir communiquer avec un ordinateur afin de facilité le développement (on saisie directement les commandes sur un ordinateur plus puissant et donc fluide)et aussi nous connecter en réseau pour permettre l'installation de paquetages(apache2 et scrot). Pour accéder à la carte Raspberry Pi, nous avons utilisé un câble série et le logiciel 'minicom' afin d'établir une connexion série avec une vitesse de 115200 bauds et aucun contrôle de flux matériel. Pour connecté la raspberry au réseau nous avons d'abord utilisé une carte wifi externe brancher en USB , nous avons du modifier le fichier "/etc/network/interfaces" pour y rentrer les caractéristiques de notre connexion wifi(clé WAP2 ,nom du réseau)

Séance 3

Partie électronique

Prise de mesures pour l'utilisation du ventilateur: Nous nous sommes rendu au frabricarium de Polytech Lille afin d'utiliser un anémomètre dont voici le protocole:

  • Mettre une étiquette blanche sur l'une des hélices du ventilateur
  • Pointer le laser de l'anémomètre sur l'étiquette
  • A l'aide d'une alimentation (0-12V) faire varier la tension puis relever la vitesse

Partie informatique

Dans notre projet, nous avons utilisé des Websockets. Les WebSockets permettent au navigateur et à l'application distante de communiquer de façon bi-directionnelle . leurs utilisation se décompose en plusieurs partie:

  • une vérification de la connexion établie
  • une réception des information de la même façon qu'un fichier en C
  • d'un envoie de donnée qui ici sera vers une arduino via la liaison série

Séance supplémentaire 1

Partie électronique

Partie informatique

Utilisation des Websockets

Conclusion

Pour conclure, notre projet n'est pas vraiment un succès car il n'est que partiellement fini. Notre projet aurait pu être fini dans les temps si ce dernier aurait été plus simple.De plus, nous avons eu des problèmes d'accès à la salle FPGA, ce qui a chamboulé un peu notre programme mais nous avons dû fait avoir les contres-temps, comme dans la vie quotidienne. Cependant, ce projet complexe nous a permis de voir le travail de groupe et aussi d'appliquer les cours que nous avons suivis au cours de cette 3ème année. notre travail est disponible sur GIT : https://archives.plil.fr/ftaingla/projet_sc_lepoivre_lepolard_gao_taingland.git