RASP-SENSE-HAT-ASTRO-PI-Humidite

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Senseur de température

Le Sense HAT met en oeuvre de nombreux senseurs, l'un d'eux est le senseur d'humidité qui mesure la quantité d'humidité dans l'air.

La source anglaise de cette traduction se trouve ici https://www.raspberrypi.org/learning/astro-pi-guide/sensors/humidity.md

Qu'est ce que l'humidité?

Voici quelques fait intéressant sur l'humidité

  • L'humidité est la quantité de vapeur d'eau dans l'air.
  • La vapeur d'eau est l'état gazeux de l'eau.
  • La quantité de vapeur d'eau en suspension dans l'air dépend de la température.
    • Plus la température est élevée et plus il y peut y avoir de vapeur d'eau en suspension dans l'air
    • Moins la température est élevée et moins de vapeur d'eau peut rester en suspend dans l'air.

Hygrometrie-et-temperature.jpg
Hygrométrie et température. Sous licence CC BY-SA 3.0 via Wikimedia Commons

Lorsque vous sortez une bouteille ou une canette du frigo, vous voyez rapidement apparaître de l'eau à la surface de celle-ci. Cela arrive parce que l'air est refroidit autour de la bouteille/canette. Comme l'air refroidit, il devient moins capable de retenir de la vapeur d'eau en suspension. De fait, la vapeur d'eau qui ne peut plus rester en suspension se transforme en eau liquide. Cela s'appelle la condensation.

Cette information connue, nous devons maintenant comprendre qu'il y a deux façons de mesurer l'humidité:

  • L'humidité Absolue est la masse totale de vapeur d'eau en suspension dans un volume d'air donné. La température n'est pas prise en considération. L'humidité absolue est exprimée en gramme d'eau par mètre cube d'air.
  • L'humidité Relative, elle, est exprimée en pourcentage. Pour une température donnée de l'air, il y a une quantité maximum de vapeur d'eau que l'air "contenir" en suspension. L'humidité relative est le pourcentage actuel de vapeur d'eau présente par rapport à la quantité maximum que l'air peut contenir (pour cette température).</nowiki>

D'une quantité de vapeur d'eau résultera différentes lectures d'humidité relative, en fonction de la température de l'air (et la capacité de l'air d'accepter de l'eau en suspension). Par conséquent un air à basse température peut donner une lecture d'humidité relative élevée parce que l'air ne peut pas accepter plus de vapeur d'eau (à cette température). Augmenter la température de l'air en maintenant à l'identique la quantité d'eau en suspension provoquera une chute des lectures d'humidité relative (parce que la quantité acceptable de vapeur d'eau en suspension à augmenté).

Le Sense Hat vous offre la mesure de l'humidité relative. C'est la raison pour laquelle le senseur d'humidité embarque également un senseur de température.

Quel est le taux d'humidité

1. Ouvrez Python 3 repuis une fenêtre terminal en utilisant sudo. Tapez la commande suivante:

sudo idle3 &

2. Sélectionnez File > New Window (Fichier > Nouvelle fenêtre) et saisissez le code suivant:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

humidity = sense.get_humidity()
print(humidity)

3. Sélectionnez File > Save (Fichier > Sauver) et choisissez un nom pour votre programme.

4. Selectionnez Run > Run module (Exécuter > Exécuter module).

5. Si vous voyez le message d'erreur Humidity Init Failed, please run as root / use sudo sur le dernière ligne rouge alors cela signifie que vous n'avez pas suivit les instructions ci-dessus. Fermez tout et recommencez au point 1.
Le message signifie Initialisation d'humidité échouée, exécutez comme root / utiliser sudo.

6. Vous devriez voir quelque-chose comme ceci:

Humidity sensor Init Succeeded
34.6234588623

La première ligne du message signifiant Senseur d'humidité initialisé avec succès.

7. Ajoutez la ligne suivante juste avant la ligne print(humidity):

humidity = round(humidity, 1)

8. Vous devriez maintenant voir quelque-chose comme ceci, sans tous ces nombres derrière le point décimal:

Humidity sensor Init Succeeded
34.6

Surveiller l'évolution de l'humidité

1. Ce serait intéressant de surveiller les changements d'humidité. Nous allons mettre notre code dans une boucle while et l'exécuter à nouveau:

while True:
        humidity = sense.get_humidity()
        humidity = round(humidity, 1)
        print(humidity)

2. Expirez doucement sur le senseur. La vapeur d'eau contenue dans votre haleine devrait faire provoquer l'augmentation des lectures.

3. Gardez un oeil sur les valeurs, elles devraient revenir doucement à la valeur correspondant à l'humidité de la pièce.

4. Pressez Ctrl + C pour arrêter le programme.

Afficher l'humidité sur la matrice LED

Pensez à la façon d'utiliser l'affichage de la matrice.

Une approche est de diviser 64 (le nombre de LEDs de la matrice) par 100 (la valeur MAX du senseur d'humidité) PUIS de multiplier ce rapport par le pourcentage d'humidité relative lue sur le senseur. Cette opération donne le nombre de LEDs à allumer sur la matrice.

Par exemple, les 64 LEDs sont allumées pour 100%.

Pour réaliser cela vous aurez besoin de construire une liste de Pixels avec le nombre correct de pixel à allumé et du nombre de pixel éteint. Ensuite, nous pourrons appeler la fonction set_pixels.

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

on_pixel = [255, 0, 0] # Pixel/Point allumé
off_pixel = [0, 0, 0]  # Pixel/Point éteint

while True:
    humidity = sense.get_humidity()
    humidity = round(humidity, 1)

    if humidity > 100:
        humidity = 100.0

    pixels = []
    # Nombre de pixels allumés
    on_count = int((64 / 100.0) * humidity)
    # Nombre de pixels éteint
    off_count = 64 - on_count

    # ajouter X fois le Pixel allumé dans la liste
    pixels.extend([on_pixel] * on_count)
    # puis Y fois le Pixel éteint dans la liste
    pixels.extend([off_pixel] * off_count)

    # Appliquer la liste des pixels éteint/allumés sur la matrice
    sense.set_pixels(pixels)

Source: Getting Started with Astro PI et Astro-Pi Guide proposé par Raspberry Pi Learning Resource (www.raspberrypi.org)

Licence Creative Commons - CC-BY-SA
The learning resource is provided for free by the Raspberry Pi Foundation under a Creative Commons licence.
Find more at raspberrypi.org/resources and github.com/raspberrypilearning.

Traduction réalisée par Meurisse. D pour shop.MCHobby.be - Licence CC-BY-SA.
Crédit de traduction: Toute référence, mention ou extrait de cette traduction doit également être explicitement accompagné du crédit de traduction suivant : «  Traduction par MCHobby (shop.MCHobby.be) » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.