Passer au contenu principal

Partie III

Création d'un script python

Pourquoi construire un script ?

Lors du chapitre précédent, nous avons découvert comment lire les données du capteur DHT22 en mode interactif dans le terminal Python. Ce mode est idéal pour expérimenter, tester et comprendre le fonctionnement de la sonde. Mais il a ses limites : chaque mesure doit être lancée manuellement, les calculs doivent être refaits à la main, et les résultats ne sont pas sauvegardés.

Avec un script Python autonome, on passe à l'étape supérieure : notre station de jardin devient automatisée et réutilisable. Le code tourne en boucle, effectue les relevés à intervalle régulier, calcule automatiquement le point de rosée et l’humidex, puis affiche les résultats joliment formatés. C’est une première vraie brique vers une station pour le jardin libre et autonome, que l’on peut faire évoluer ensuite (enregistrement des données, affichage web, alertes, etc.). On quitte l’expérimentation manuelle pour poser les bases d’un service automatisé, éthique, et maîtrisé de bout en bout.

Bref : on libère notre station.

Création du script

Créer un script et éditer le avec la commande suivante :

nano station.py

Importation

Commençons par importer la bibliothèque adafruit-circuitpython-dht, qui permet de lire les données des capteurs DHT (température et humidité) :

import adafruit_dht

Importons aussi la bibliothèque board qui sert à indiquer l'emplacement de la sonde :

import board

Imports supplémentaires :

  • time pour gérer les temporisations entre les mesures.
  • math pour les calculs scientifiques.
  • datetime pour afficher la date et l'heure des relevés.
import time
import math
from datetime import datetime

Différences entre import et from ... import ...

Quand on écrit import math, on importe toute la bibliothèque, et on accède à ses fonctions avec le préfixe math.nom_fonction (ex : math.log()).

Quand on écrit from datetime import datetime, on importe directement une fonction ou une classe précise, ce qui permet de l’utiliser sans préfixe (ex : datetime.now() au lieu de datetime.datetime.now()).

La première forme est plus explicite et lisible dans les grands scripts, la seconde est plus concise quand on utilise souvent la même fonction.

Déclaration du capteur

 dhtDevice = adafruit_dht.DHT22(board.D4)

Cette ligne permet de créer un objet Python qui représente le capteur DHT22 connecté à la broche GPIO 4 du Raspberry Pi.

À noter : Ici, le capteur apparaît sous une forme de variable et non pas de constante car c'est un objet dont l'état peut évoluer (ex. : erreurs, fermeture avec .exit())