This commit is contained in:
2026-03-30 23:17:08 +02:00
parent 703f7df12f
commit bb566f7da2
9 changed files with 41 additions and 161 deletions

View File

@@ -1,102 +0,0 @@
# README
## Description
Ce serveur **FastAPI** est destiné à être déployé sur le **deuxième Raspberry Pi** de larchitecture.
Son rôle principal est de **gérer et traiter toutes les requêtes envoyées par le Raspberry Pi 1**, afin de centraliser la logique de traitement et dassurer une communication fluide entre les deux الأجهزة.
---
## Architecture
* **Raspberry Pi 1**
* Envoie les requêtes (HTTP/API)
* Sert de client / déclencheur
* **Raspberry Pi 2 (ce serveur)**
* Héberge le serveur FastAPI
* Reçoit, traite et répond aux requêtes
* Exécute la logique métier
---
## Installation
Pour garantir une installation propre et optimale, il est recommandé dutiliser le script fourni.
### 1. Cloner le projet
```bash
git clone <repo_url>
cd <repo>
```
### 2. Lancer linstallation automatique
Le script `main.sh` permet de :
* créer un environnement virtuel Python (`venv`)
* installer toutes les dépendances nécessaires
* configurer lenvironnement correctement
```bash
chmod +x main.sh
./main.sh
```
---
## Environnement virtuel
Le projet utilise **Python venv** pour isoler les dépendances.
Si besoin, activation manuelle :
```bash
source venv/bin/activate
```
---
## Dépendances
Les dépendances sont listées dans le fichier :
```
requirements.txt
```
Elles sont automatiquement installées via le script `main.sh`.
---
## Lancement du serveur
Une fois linstallation terminée, le serveur peut être lancé avec :
```bash
uvicorn main:app --host 0.0.0.0 --port 8000
```
---
## Objectif
Ce serveur a pour objectif de :
* centraliser le traitement des requêtes
* améliorer les performances globales du système
* permettre une architecture distribuée entre plusieurs Raspberry Pi
---
## Notes
* Assurez-vous que les deux Raspberry Pi sont sur le même réseau.
* Vérifiez les ports et adresses IP pour permettre la communication entre les deux machines.
* Adapter la configuration si nécessaire selon votre environnement.
---

View File

@@ -1,6 +1,10 @@
import os
import sys
from fastapi import FastAPI
import RPi.GPIO as GPIO # <-- CORRIGÉ : "import" au lieu de "from"
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
composants = os.path.join(BASE_DIR, "composants", "byPanda")
@@ -9,7 +13,7 @@ sys.path.insert(0, composants)
from lumieres import SystemeLumieres
from thermostat import SystemeThermostat
from volets import SystemeVolets
from septsegments import afficher_temperature
from septsegments import afficher_temperature # <-- CORRIGÉ : On a enlevé le "#" !
app = FastAPI(title="Loustiques API - Pi 2")
@@ -34,21 +38,11 @@ async def read_temp():
temp = controleur_thermostat.lireTemperature()
if temp is None:
return {"success": False, "message": "Impossible de lire le capteur DHT11"}
afficher_temperature(temp)
afficher_temperature(temp)
return {"success": True, "temperature": temp}
"""
@app.get("/open_volet")
async def open_volet():
volet = controleur_volet.ouvrirVolets()
if volet is None:
return {"success": False, "message": "Impossible de lire le capteur DHT11"}
return {"success": True, "message" :"Volet ouvert par le raspberry 2"}
"""
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)

View File

@@ -1,2 +1,3 @@
fastapi
uvicorn
uvicorn
rpi.gpio