🌐 Dashboard Web Flask
Criar um servidor web local no RPi para monitorizar sensores e controlar GPIO a partir de qualquer browser na rede local — telemóvel, tablet ou computador.
Instalar Flask
Terminal
pip3 install flask
Servidor Flask com controlo de LED
Python · app.py
from flask import Flask, render_template_string, redirect import RPi.GPIO as GPIO app = Flask(__name__) LED = 18 GPIO.setmode(GPIO.BCM) GPIO.setup(LED, GPIO.OUT) GPIO.output(LED, GPIO.LOW) HTML = """ <!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width,initial-scale=1"> <style>body{font-family:sans-serif;text-align:center;padding:2rem} .btn{padding:1rem 2rem;font-size:1.2rem;border:none;border-radius:8px;cursor:pointer} .on{background:#c51a4a;color:white}.off{background:#1db954;color:white} </style></head> <body><h1>Dashboard RPi</h1> <p>LED está: <strong>{{ estado }}</strong></p> <a href="/led/on"><button class="btn on">Ligar LED</button></a> <a href="/led/off"><button class="btn off">Apagar LED</button></a> </body></html> """ @app.route('/') def index(): estado = "LIGADO" if GPIO.input(LED) else "APAGADO" return render_template_string(HTML, estado=estado) @app.route('/led/<acao>') def controlar(acao): GPIO.output(LED, GPIO.HIGH if acao == 'on' else GPIO.LOW) return redirect('/') if __name__ == '__main__': print("Acede em http://<IP_DO_RPI>:5000") app.run(host='0.0.0.0', port=5000, debug=False)
Para saber o IP do teu RPi, escreve
hostname -I no terminal. Abre o browser no telemóvel (na mesma rede WiFi) e vai a http://<IP>:5000.