.
This commit is contained in:
102
fastapi/Readme
102
fastapi/Readme
@@ -1,102 +0,0 @@
|
||||
# README
|
||||
|
||||
## Description
|
||||
|
||||
Ce serveur **FastAPI** est destiné à être déployé sur le **deuxième Raspberry Pi** de l’architecture.
|
||||
|
||||
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 d’assurer 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é d’utiliser le script fourni.
|
||||
|
||||
### 1. Cloner le projet
|
||||
|
||||
```bash
|
||||
git clone <repo_url>
|
||||
cd <repo>
|
||||
```
|
||||
|
||||
### 2. Lancer l’installation automatique
|
||||
|
||||
Le script `main.sh` permet de :
|
||||
|
||||
* créer un environnement virtuel Python (`venv`)
|
||||
* installer toutes les dépendances nécessaires
|
||||
* configurer l’environnement 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 l’installation 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.
|
||||
|
||||
---
|
||||
@@ -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)
|
||||
@@ -1,2 +1,3 @@
|
||||
fastapi
|
||||
uvicorn
|
||||
uvicorn
|
||||
rpi.gpio
|
||||
Reference in New Issue
Block a user