diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7327c91 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +web_secu/ssl \ No newline at end of file diff --git a/composants/test/DHT11.py b/composants/byPanda/DHT11.py similarity index 77% rename from composants/test/DHT11.py rename to composants/byPanda/DHT11.py index 189dbab..367553b 100644 --- a/composants/test/DHT11.py +++ b/composants/byPanda/DHT11.py @@ -1,10 +1,12 @@ import Adafruit_DHT as dht import time as t +import RPi.GPIO as GPIO +GPIO.setmode(GPIO.BOARD) capteur = dht.DHT11 pin = 22 -while True: +def lire_temperature(): humidite, temperature = dht.read_retry(capteur, pin) if temperature is not None: diff --git a/composants/byPanda/septsegments.py b/composants/byPanda/septsegments.py index 254b56c..ba39ac7 100644 --- a/composants/byPanda/septsegments.py +++ b/composants/byPanda/septsegments.py @@ -1,22 +1,16 @@ import tm1637 import time as t -# attention : mode BOARD + display = tm1637.TM1637(clk=4, dio=17) - -display.brightness = 5 - +display.brightness(2) def afficher_temperature(temperature): - print("Test affichage...") - - + print(f"Test affichage: {temperature}") try: - while True: - display.show(temperature) - print(temperature) - t.sleep(2) - - except KeyboardInterrupt: - display.show("----") - print("Stop") \ No newline at end of file + temp_entiere = int(temperature) + texte_ecran = f"{temp_entiere} C" + display.show(texte_ecran) + + except Exception as e: + print(f"Erreur d'affichage : {e}") \ No newline at end of file diff --git a/composants/byPanda/thermostat.py b/composants/byPanda/thermostat.py index 475ea6d..3cd3a3f 100644 --- a/composants/byPanda/thermostat.py +++ b/composants/byPanda/thermostat.py @@ -9,7 +9,7 @@ GPIO.setwarnings(False) class SystemeThermostat: def __init__(self): self.capteur = Adafruit_DHT.DHT11 - self.pinDht = 22 + self.pinDht = 25 self.boutonPlus = 16 self.boutonMoins = 18 diff --git a/composants/test/7segments.py b/composants/test/7segments.py deleted file mode 100644 index 875ebff..0000000 --- a/composants/test/7segments.py +++ /dev/null @@ -1,23 +0,0 @@ -import tm1637 -import time as t - -# attention : mode BOARD -display = tm1637.TM1637(clk=7, dio=11) - -display.brightness(2) - -print("Test affichage...") - -try: - while True: - display.show("1234") - print("1234") - t.sleep(2) - - display.show("0000") - print("0000") - t.sleep(2) - -except KeyboardInterrupt: - display.show("----") - print("Stop") \ No newline at end of file diff --git a/fastapi/Readme b/fastapi/Readme deleted file mode 100644 index 6896b0a..0000000 --- a/fastapi/Readme +++ /dev/null @@ -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 -cd -``` - -### 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. - ---- diff --git a/fastapi/main.py b/fastapi/main.py index c5d32a3..f60906f 100644 --- a/fastapi/main.py +++ b/fastapi/main.py @@ -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) \ No newline at end of file diff --git a/fastapi/requirement.txt b/fastapi/requirement.txt index f0615cf..17f5a2a 100644 --- a/fastapi/requirement.txt +++ b/fastapi/requirement.txt @@ -1,2 +1,3 @@ fastapi -uvicorn \ No newline at end of file +uvicorn +rpi.gpio \ No newline at end of file diff --git a/flask/templates/dashboard.html b/flask/templates/dashboard.html index 472eef7..483b9e5 100644 --- a/flask/templates/dashboard.html +++ b/flask/templates/dashboard.html @@ -324,18 +324,31 @@ } catch { showToast("Erreur lors de l'appel alarme."); } - } - async function callBoard1() { + async function call_led_down() { try { - const res = await fetch('/board1', { - method: 'POST', + const res = await fetch('http://pi32.local/down_led', { + method: 'GET', headers: { 'Content-Type': 'application/json' } }); - showToast("board1 activée !"); + showToast("led activée !"); + } catch { + showToast("Erreur lors de l'appel board1."); + }} + } + async function call_led_up() { + try { + const res = await fetch('http://pi32.local/up_led', { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + showToast("led activée !"); } catch { showToast("Erreur lors de l'appel board1."); } + + } + function go_admin() { window.location.href = "/admin";