LoRa, MQTT and Oled

This commit is contained in:
2026-07-16 16:32:50 +02:00
parent 1df9d878ca
commit aa60f5bca1
31 changed files with 3367 additions and 21 deletions
+32 -7
View File
@@ -8,18 +8,43 @@ PYTHON_SCRIPT="${1:-$SCRIPT_DIR/main.py}"
REQUIREMENTS_FILE="$REPO_ROOT/requirements.txt"
if [ ! -f "$PYTHON_SCRIPT" ]; then
echo "Python script not found: $PYTHON_SCRIPT" >&2
exit 1
echo "Python script not found: $PYTHON_SCRIPT" >&2
exit 1
fi
export PYTHONPATH="$REPO_ROOT${PYTHONPATH:+:$PYTHONPATH}"
# 1. On définit proprement le PYTHONPATH pour tout le script
export PYTHONPATH="$REPO_ROOT"
cd "$SCRIPT_DIR"
docker compose pull
docker compose up -d
# 2. On lance Docker en arrière-plan
echo "Démarrage des conteneurs Docker..."
docker compose pull
docker compose up -d --remove-orphans
# 3. Installation des dépendances (sans '--user' si on est déjà root sous systemd)
if [ -f "$REQUIREMENTS_FILE" ]; then
"$PYTHON_BIN" -m pip install --user -r "$REQUIREMENTS_FILE"
echo "Vérification des dépendances Python..."
if [ "$(id -u)" -eq 0 ]; then
"$PYTHON_BIN" -m pip install -r "$REQUIREMENTS_FILE"
else
"$PYTHON_BIN" -m pip install --user -r "$REQUIREMENTS_FILE"
fi
fi
# 4. Sécurité anti-conflit : On vérifie si Docker n'a pas verrouillé le port USB de la LA66
PORT="/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0"
if [ -e "$PORT" ]; then
echo "Vérification de la disponibilité du port série..."
# Si le port est occupé, on force sa libération en tuant le processus docker/screen persistant
if lsof "$PORT" >/dev/null 2>&1; then
echo "Le port série est occupé ! Libération en cours..."
fuser -k "$PORT" || true
sleep 1
fi
fi
# 5. Lancement propre du script Python
echo "Launching Python script: $PYTHON_SCRIPT"
cd "$REPO_ROOT"
exec "$PYTHON_BIN" "$PYTHON_SCRIPT"
exec "$PYTHON_BIN" "$PYTHON_SCRIPT"