# Partie II

## <span style="color: rgb(55, 190, 140);">**Récupération des données** </span><span style="color: rgb(55, 190, 140);">**avec python en mode interactif**</span>

### <span style="color: rgb(115, 100, 100);">Qu’est-ce que Python ?</span>

<span style="color: rgb(115, 100, 100);"><span style="font-family: Linux Libertine;">![python.jpeg](https://doc.arles-linux.org//uploads/images/gallery/2025-08/scaled-1680-/SVMBEXuylRuTMWoJ-python.jpeg)</span></span>

- Python est un langage de programmation populaire, connu pour sa simplicité et sa lisibilité.
- Il est largement utilisé dans divers domaines, comme le développement web, l'analyse de données, et l'intelligence artificielle.

#### <span style="color: rgb(110, 115, 50);">Pourquoi Python ?</span>

- Facile à apprendre et à utiliser, surtout pour les débutants.
- Grande communauté de soutien et de nombreuses ressources disponibles en ligne.
- Utilisé dans de nombreux projets éducatifs et scientifiques.

#### <span style="color: rgb(110, 115, 50);">Découverte du terminal</span>

Un terminal est une interface où l'on peut taper des commandes pour interagir avec l'ordinateur.

#### <span style="color: rgb(110, 115, 50);">Nos premières commandes Python</span>

Dans le terminal, tapez python3 et appuyez sur Entrée. Cela lancera l'interpréteur Python en mode interactif.

Commande print :

La commande print affiche du texte à l'écran.

```python
print (“Python, c'est cool !”)
```

### <span style="color: rgb(115, 100, 100);">Constantes et variables</span>

- Une **constante** est un emplacement de stockage nommé pour des données qui ne changent pas au cours de l'exécution d'un programme.
- Une **variable** est un emplacement de stockage nommé pour des données qui peuvent changer au cours de l'exécution d'un programme.

```python
prenom = “Olivier”
```

### <span style="color: rgb(115, 100, 100);">Installation de la bibliothèque adafruit-circuitpython-dht sur le Raspberry Pi</span>

Les bibliothèques permettent d'étendre les fonctionnalités de Python.

Pour éviter les conflits entre bibliothèques, nous allons créer un environnement virtuel isolé pour gérer les dépendances de notre projet.

Pour créer un environnement virtuel, nous devons installer le paquet python3-venv :

```bash
sudo apt update
sudo apt install python3-venv
```

[![install-python3-venv-on-ubuntu.png](https://doc.arles-linux.org//uploads/images/gallery/2025-08/scaled-1680-/hxHRrlfBqnATogoE-install-python3-venv-on-ubuntu.png)](https://doc.arles-linux.org//uploads/images/gallery/2025-08/hxHRrlfBqnATogoE-install-python3-venv-on-ubuntu.png)

Pour créer un environnement virtuel (par exemple pour le projet jardin LIBRE), taper la commande suivante :

```bash
python3 -m venv jardin
```

Tapez la commande suivante pour installer pip, le gestionnaire de paquets Python :

```bash
sudo apt update 
sudo apt install python3-pip
```

Pour pouvoir installer la bibliothèque, commençons pas entrer dans notre environnement virtuel :

```bash
source jardin/bin/activate
```

Tapez les commandes suivantes pour installer la bibliothèque adafruit-circuitpython-dht :

```bash
pip3 install adafruit-circuitpython-dht
pip3 install lgpio
pip3 install gpiod
```

### <span style="color: rgb(115, 100, 100);">lgpio : la bibliothèque GPIO de nouvelle génération</span>

📡 Elle permet un **accès bas niveau rapide et fiable** aux broches GPIO.

🧰 Elle est utilisée en coulisse par certaines bibliothèques Adafruit pour gérer les **signaux numériques très précis** du capteur DHT.

Pour quitter un environnement virtuel, taper la commande suivante :

```bash
deactivate
```

### <span style="color: rgb(115, 100, 100);">Lecture et affichage des données</span>

Démarrer le mode interactif de Python :

```bash
python3
```

Importer la bibliothèque adafruit-circuitpython-dht afin d’interagir avec la sonde DHT22 :

```python
import adafruit_dht
```

Importer la bibliothèque board :

La bibliothèque board sert à **nommer les broches physiques du microcontrôleur ou du Raspberry Pi de façon claire et universelle**.

```python
import board
```

Définition de notre capteur (ici, pour le GPIO4) :

```python
dhtDevice = adafruit_dht.DHT22(board.D4)
```

Lire les données :

```python
humidity = dhtDevice.humidity
temperature = dhtDevice.temperature
```

**humidity** et **temperature** sont deux variables, elles servent à stocker les valeurs.

Afficher les données :

```python
humidity
temperature
```

[![dht22-pi5.png](https://doc.arles-linux.org//uploads/images/gallery/2025-08/scaled-1680-/7xiPu0OoUCp7mUjr-dht22-pi5.png)](https://doc.arles-linux.org//uploads/images/gallery/2025-08/7xiPu0OoUCp7mUjr-dht22-pi5.png)