Projet IMA3 P3, 2016/2017, TD2

De Wiki d'activités IMA
Révision datée du 16 juin 2017 à 23:03 par Ftaingla (discussion | contributions) (Partie informatique)

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 se 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
  • Tracer une courbe afin de pouvoir choisir notre vitesse
  • COURBE+photo anémomètre

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:
  • CODE
  • une réception des information de la même façon qu'un fichier en C:
  • CODE
  • d'un envoie de donnée qui ici sera vers une arduino:
  • CODE

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.