diff --git a/fastapi/main.py b/fastapi/main.py new file mode 100644 index 0000000..69bd891 --- /dev/null +++ b/fastapi/main.py @@ -0,0 +1,68 @@ +import os +import sys +from fastapi import FastAPI +import RPi.GPIO as GPIO + +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") +sys.path.insert(0, composants) + +from lumieres import SystemeLumieres +from thermostat import SystemeThermostat +#from volets import SystemeVolets +from etatsystemes import EtatSysteme +from septsegments import afficher_temperature + +app = FastAPI(title="Loustiques API - Pi 2") + +controleur_lumieres = SystemeLumieres() +controleur_thermostat = SystemeThermostat() +#controleur_volet = SystemeVolets() +etatSysteme = EtatSysteme() + +@app.get("/up_led") +async def allumer_led(): + try: + controleur_lumieres.allumerLumieres() + controleur_lumieres.modeManuel = True + etatSysteme.signalerOk() + return {"success": True, "message": "Lumière allumée par le Pi 2"} + + except Exception as e: + etatSysteme.signalerProbleme() + return {"success": False, "message": str(e)} + +@app.get("/down_led") +async def eteindre_led(): + try: + controleur_lumieres.eteindreLumieres() + controleur_lumieres.modeManuel = True + etatSysteme.signalerOk() + return {"success": True, "message": "Lumière éteinte par le Pi 2"} + + except Exception as e: + etatSysteme.signalerProbleme() + return {"success": False, "message": str(e)} + +@app.get("/temperature") +async def read_temp(): + try: + temp = controleur_thermostat.lireTemperature() + if temp is None: + etatSysteme.signalerProbleme() + return {"success": False, "message": "Impossible de lire le capteur DHT11"} + + etatSysteme.signalerOk() + afficher_temperature(temp) + return {"success": True, "temperature": temp} + + except Exception as e: + etatSysteme.signalerProbleme() + return {"success": False, "message": str(e)} + +if __name__ == "__main__": + import uvicorn + uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True) diff --git a/flask/templates/index.html b/flask/templates/index.html index fd8d24d..5edc540 100644 --- a/flask/templates/index.html +++ b/flask/templates/index.html @@ -192,7 +192,7 @@ setInterval(async () => { try { - const res = await fetch('/api/check-rfid-login'); + const res = await fetch('/check-rfid-login'); const data = await res.json(); if (data.success) {