projekt:python_erste_skripte
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Erste Skripte
Raspberry-Pi-Kursprojekt: GPIO-App mit wachsender Architektur
- erst reines Python
- dann Dauerprozess
- dann Web-API
- dann Apache davor
- EIN Projekt, keine Neuentwicklung
ENV: gpio_projects Projektpfad: ~/devel/gpio_projects
PHASE 1 – Reines Python + GPIO
0) System vorbereiten
sudo apt update sudo apt install -y python3 python3-pip python3-venv
1) Projektordner anlegen
mkdir -p ~/devel/gpio_projects cd ~/devel/gpio_projects
2) Virtuelle Umgebung anlegen (NAME: gpio_projects)
python3 -m venv gpio_projects source gpio_projects/bin/activate pip install RPi.GPIO
3) Projektstruktur Phase 1
gpio_projects/ ├── gpio_hw.py ├── logic.py ├── main.py └── gpio_projects/ # ENV (gpio_env) pi@raspi88:~/devel/gpio_projects $ tree -L 1 . ├── gpio_env ├── gpio_hw.py ├── logic.py └── main.py
4) gpio_hw.py
- gpio_hw.py
import RPi.GPIO as GPIO PIN = 17 GPIO.setmode(GPIO.BCM) GPIO.setup(PIN, GPIO.OUT) def on(): GPIO.output(PIN, GPIO.HIGH) def off(): GPIO.output(PIN, GPIO.LOW) def status(): return GPIO.input(PIN) def cleanup(): GPIO.cleanup()
5) logic.py
- logic.py
import gpio_hw def turn_on(): gpio_hw.on() return "on" def turn_off(): gpio_hw.off() return "off" def get_status(): return "on" if gpio_hw.status() else "off"
6) main.py
- main.py
import logic import gpio_hw print("GPIO CLI gestartet (CTRL+C beendet)") try: while True: cmd = input("on / off / status > ").strip() if cmd == "on": print(logic.turn_on()) elif cmd == "off": print(logic.turn_off()) elif cmd == "status": print(logic.get_status()) except KeyboardInterrupt: pass finally: gpio_hw.cleanup()
7) Start Phase 1
cd ~/devel/gpio_projects source gpio_projects/bin/activate python3 main.py
PHASE 3 – Web später
pip install fastapi uvicorn
systemd später mit dieser ENV
ExecStart=/home/pi/devel/gpio_projects/gpio_projects/bin/uvicorn api:app --host 127.0.0.1 --port 8000
Ergebnis
- ENV = gpio_projects
- Projekt = ~/devel/gpio_projects
- kein raspi_gpio_env mehr
- konsistent für alle Phasen
projekt/python_erste_skripte.1770571720.txt.gz · Zuletzt geändert: von torsten.roehl
