- Projet de petit afficheur montrant en temps réel les arrivées des trains BART, conçu pour recréer l’ambiance des panneaux de quai réels
- Matériel basé sur un Seeed Studio XIAO ESP32C6 et un écran OLED alphanumérique rouge 20x4
- Au lieu de traiter directement les données de l’API GTFS Realtime, un serveur intermédiaire (middleware) a été créé pour les convertir en une API simplifiée ensuite appelée depuis l’ESP32
- Un boîtier fabriqué en impression 3D intègre des détails comme des étiquettes et des vis afin de reproduire l’apparence d’un véritable panneau BART
- Le produit fini est fixé sous l’étagère au-dessus du moniteur et affiche les temps d’arrivée, des messages de sécurité et l’heure, pour recréer une sensation de quai même en intérieur
Configuration matérielle
- Le projet se compose d’un Seeed Studio XIAO ESP32C6, d’un SPI Red 20x4 Character OLED Display et d’un SparkFun Logic Level Converter
- L’ESP32C6 se charge de piloter l’afficheur et de récupérer les informations d’arrivée BART
- Le convertisseur de niveaux logiques garantit la compatibilité des tensions
- Un module OLED rouge de BuyDisplay a été choisi afin de retrouver l’esthétique des véritables panneaux de quai BART
- Le PCB étant légèrement plus grand que l’écran, cela a eu un impact sur les dimensions finales, mais ce compromis a été accepté pour le rendu visuel
- Tous les composants ont été soudés sur une perfboard et reliés par des broches d’en-tête, permettant un montage direct sur l’afficheur sous forme de cartouche
Structure du firmware
- L’API officielle de BART utilise le format GTFS Realtime, développé en collaboration avec Google
- Comme le parsing direct sur l’ESP32 est difficile, un serveur intermédiaire (middleware) a été mis en place
- Le serveur récupère les données GTFS et n’en extrait que les informations nécessaires
- Il les convertit ensuite en une API simplifiée que l’ESP32 peut appeler
- Le code associé est publié sur GitHub dans le dépôt filbot/bart-proxy
Démo et assemblage
- Tous les composants ont été assemblés et une première version du boîtier imprimé en 3D a été testée
- La vidéo de démonstration montre le produit avant peinture, en fonctionnement avec réception des données en temps réel
- Le processus d’assemblage permettant de vérifier la taille réelle et les proportions est également inclus
Finition et apparence finale
- Les pièces imprimées en 3D ont été poncées, apprêtées puis peintes pour la finition
- Le logo du fabricant réel des panneaux BART et le numéro de quai ont été imprimés avec une étiqueteuse Brother, puis apposés
- Les fichiers du modèle 3D final sont téléchargeables sur Makerworld
Résultat final
- Le produit terminé est fixé avec du ruban adhésif double face sous l’étagère métallique au-dessus du moniteur
- L’afficheur montre les temps d’arrivée des trains, l’heure actuelle et les messages de sécurité BART
- Il est aussi possible de consulter ces informations en temps réel sur le Web, mais un afficheur miniature imitant un vrai panneau de quai procure une expérience d’usage plus plaisante
1 commentaires
Avis Hacker News
C’est vraiment un super projet. Avant, moi aussi, je quittais la maison en fonction des horaires de la station, mais j’ai vite réalisé que ça ne servait à rien
En partant simplement quand ça m’arrange, le stress de la planification disparaît, et même si le temps d’attente moyen augmente un peu, je suis beaucoup plus détendu
Quand il fait autour de -20 °C, attendre 1 minute ou 7 minutes fait vraiment une énorme différence
Voir à ce sujet cet article Medium
Je pouvais utiliser ce temps pour faire des flashcards SSR ou lire un livre et me recentrer
La station South San Francisco, en particulier, a un plafond très haut, et on y entend même les pigeons, ce qui lui donne presque une ambiance de cathédrale
J’ai fait quelque chose de similaire. C’est un projet d’écran couleur utilisant les données de transport suisses, que j’ai même transformé en produit
Voir le billet sur le projet et le site du produit
J’utilise sur un ESP32-S3 les données publiques fournies par le gouvernement
Le niveau de finition est vraiment excellent. Le choix de l’écran est aussi remarquable
Si tu veux réduire le middleware, une option serait d’utiliser un LLM récent pour convertir le langage du code
L’ESP est suffisamment puissant pour gérer directement les appels API, donc essayer une conversion avec un LLM peut aussi avoir un vrai intérêt pédagogique
Ce genre de projet est vraiment inspirant
Grâce au soin apporté aux moindres détails, on dirait un panneau miniature d’une vraie station. Très belle réalisation
Chaque fois que je regarde l’écran, j’ai l’impression d’entendre automatiquement dans ma tête la voix des annonces du BART
Article lié : article sur les annonces du BART
Très belle réalisation. Ça doit vraiment changer l’ambiance de la pièce
J’ai une suggestion de fonctionnalité — ce serait bien d’ajouter une voix robotique
Référence : article sur les annonces du BART
Mais d’autres trouvaient ça bruyant, donc il a fallu l’éteindre assez vite
Il fut un temps où, quand le quai changeait, il fallait aller vérifier soi-même
En voyant l’article lié, je me suis dit : « il faut absolument que je retrouve cette voix », et j’ai eu l’impression de tomber exactement dessus
J’ai été inspiré par la conception simple et propre de l’API temps réel
Ça me paraît beaucoup plus abordable que lorsque je manipulais des données GTFS auparavant
Dans l’ensemble, le niveau de finition et l’attention aux détails sont excellents. L’atmosphère et l’immersion sont vraiment réussies
Moi aussi, j’aimerais fabriquer quelque chose de similaire pour afficher les informations des trains près de chez moi
Mais je n’ai pas encore trouvé d’API vraiment fiable