Skip to content

Zeluck-github/Arduino_web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Carte Modbus des régions françaises

Une application complète (backend FastAPI + interface web moderne) pour piloter un tableau physique des régions françaises connecté à un automate Modbus/Arduino. En cliquant sur une région depuis le navigateur, la LED correspondante s'allume ou s'éteint via le protocole Modbus TCP.

Aperçu rapide

  • Backend Python (FastAPI) : expose des API REST /api/regions pour lire et écrire l'état des LED.
  • Intégration Modbus : repose sur pymodbus et réutilise la logique de connexion fournie (ModbusTcpClient).
  • Interface graphique : carte PNG haute résolution avec marqueurs dynamiques, rafraîchissement automatique, retours visuels (statut, toasts, badges) et navigation clavier.

Prérequis

  • Python 3.10 ou supérieur recommandé
  • Accès réseau au contrôleur Modbus/Arduino (TCP)
  • Optionnel : environnement virtuel (python -m venv .venv)

Installation backend

  1. Cloner/créer un environnement Python :

    cd backend
    python -m venv .venv
    source .venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
  2. Configurer les variables Modbus :

    cp .env.example .env

    Ajustez l'adresse IP (MAP_MODBUS_HOST), le port et le décalage (MAP_COIL_OFFSET) si besoin.

  3. Lancer le serveur :

    cd backend/
    uvicorn app.main:app --host 0.0.0.0 --port 8000

    L'interface est disponible sur http://localhost:8000.

Fonctionnement du frontend

  • L'interface est servie directement par FastAPI (/), aucun build supplémentaire n'est nécessaire.
  • La carte PNG est recouverte de marqueurs positionnés en pourcentage, chaque région est accessible via clic ou clavier (Entrée/Espace).
  • Le statut est synchronisé en continu via polling (intervalle MAP_POLL_INTERVAL_MS) et reflété dans la liste de contrôle et la légende flottante.

Adapter la carte au tableau physique

  • Le fichier backend/app/data/regions.json liste les régions et la bobine Modbus associée (coil).
  • Les coordonnées des marqueurs sont centralisées dans backend/app/static/js/app.js (REGION_PIN_POSITIONS) et exprimées en pourcentage de la carte.
  • Adaptez librement la liste ou les positions, puis redémarrez le serveur pour recharger la configuration.

Tests automatisés

Depuis le dossier backend (avec l'environnement Python activé) :

pytest

Les tests utilisent un faux contrôleur Modbus afin de vérifier les routes sans contacter le matériel.

Déploiement & sécurité

  • Pour un usage intensif, envisagez de conserver une connexion Modbus persistante ou de superviser les latences.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published