Skip to content

Fkmraxxx/Projet-CAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dashboard CAN badge ESP32 badge Raspberry Pi badge WebSocket badge CAN badge

Dashboard CAN

Dashboard temps réel pour bus CAN avec ESP32, MCP2515, Raspberry Pi, WebSocket et interface web

Interface web · Code ESP32 · Serveur WebSocket · Serveur HTTP


Aperçu

Ce dépôt contient un projet de dashboard CAN temps réel permettant de lire des données issues d’un bus CAN et de les afficher dans une interface web moderne.

Le système repose sur :

  • un ESP32 connecté à un MCP2515 pour la lecture et l’émission sur le bus CAN
  • un Raspberry Pi exécutant un serveur Node.js
  • un serveur WebSocket pour transmettre les données en temps réel
  • une interface web affichant les jauges, le rapport engagé et l’état moteur
  • une commande Start / Stop envoyée sur le bus CAN

Le projet permet notamment de :

  • lire la trame 0x3E1
  • extraire le régime moteur
  • extraire la vitesse
  • afficher le rapport engagé
  • envoyer une commande moteur sur l’ID 0x101
  • piloter l’ensemble via une interface web fluide

Fonctionnalités

Lecture CAN

  • réception des trames via MCP2515
  • filtrage de la trame 0x3E1
  • extraction des données utiles depuis le message CAN
  • lecture en continu sur bus 250 kbps

Télémétrie temps réel

  • affichage du régime moteur
  • affichage de la vitesse
  • affichage du rapport engagé
  • affichage du type de boîte détecté

Interface web

  • dashboard responsive
  • jauge RPM de 0 à 8000 tr/min
  • jauge vitesse de 0 à 220 km/h
  • zones colorées sur les compteurs
  • état de connexion WebSocket
  • bouton Start / Stop visuel et interactif

Commande moteur

  • envoi de la commande CAN sur 0x101
  • support du START
  • support du STOP
  • répétition de la commande pour fiabiliser l’action

Communication réseau

  • serveur HTTP pour servir l’interface
  • serveur WebSocket pour diffuser les données
  • diffusion en temps réel vers tous les clients connectés

Architecture du projet

Le projet est découpé en 3 blocs principaux :

1. ESP32 + MCP2515

Le fichier src/esp32.cpp gère :

  • la connexion Wi-Fi
  • la connexion WebSocket vers le Raspberry Pi
  • l’initialisation du contrôleur CAN MCP2515
  • la réception de la trame 0x3E1
  • l’extraction des valeurs de télémétrie
  • l’envoi périodique des données au dashboard web
  • la réception des ordres Start / Stop
  • l’émission de la trame CAN 0x101

2. Raspberry Pi / Node.js

Le Raspberry Pi héberge deux serveurs :

WS/server.js

  • serveur WebSocket “maison”
  • sans dépendance externe
  • gestion manuelle du handshake WebSocket
  • broadcast des messages à tous les clients connectés

WEB/server_https.js

  • serveur HTTP simple
  • sert les fichiers du dashboard web
  • expose l’interface sur le port 4500

3. Interface web

Le fichier WEB/public/index.html affiche :

  • un compte-tours
  • un compteur de vitesse
  • le rapport engagé
  • un bouton Start / Stop
  • le statut de connexion WebSocket

L’interface communique en direct avec le serveur WebSocket sur le port 8015.


Stack utilisée

ESP32 MCP2515 Node.js WebSocket Frontend PlatformIO

Embarqué

  • ESP32 DevKit V1
  • Arduino framework
  • MCP2515
  • SPI
  • CAN bus

Backend

  • Node.js
  • module http
  • module crypto
  • WebSocket custom

Frontend

  • HTML
  • CSS
  • JavaScript vanilla
  • Canvas 2D

Réseau

  • Wi-Fi
  • HTTP
  • WebSocket

Structure du projet

PROJET-CAN-main/
├── WEB/
│   ├── public/
│   │   └── index.html
│   └── server_https.js
├── WS/
│   └── server.js
├── src/
│   └── esp32.cpp
├── include/
├── lib/
├── test/
├── platformio.ini
└── README.md

About

Dashboard CAN temps réel avec ESP32, MCP2515 et Raspberry Pi : télémétrie 0x3E1, commande moteur 0x101, WebSocket et interface web

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors