
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46

Ayant un ancien système de maquette de train à l'échelle TT, j'avais une idée de la façon de contrôler les locomotives individuellement.
Dans cet esprit, je suis allé plus loin et j'ai compris ce qui était nécessaire non seulement pour contrôler les trains, mais aussi pour avoir des informations supplémentaires sur l'ensemble du réseau et contrôler autre chose (lampes, aiguillages…)
C'est ainsi qu'est né le système de train miniature contrôlé par WiFi.
Étape 1: Principes de fonctionnement

Le principe de base est de contrôler chaque élément individuellement, soit à partir d'un seul contrôleur, soit à partir de plusieurs sources de contrôle. Cela nécessite intrinsèquement une couche physique commune - le plus évidemment WiFi - et un protocole de communication commun, MQTT.
L'élément central est le courtier MQTT. Chaque appareil connecté (train, capteur, sortie…) n'est autorisé à communiquer qu'à travers le Broker et ne peut recevoir que des données du Broker.
Le cœur des appareils est un contrôleur WiFi basé sur ESP8266, tandis que le courtier MQTT fonctionne sur un Raspberry pi.
Au début, la couverture Wifi est fournie par un routeur Wifi, et tout est connecté via le sans fil.
Il existe 4 types d'appareils:
- Contrôleur de train: dispose de 2 entrées numériques, 1 sortie numérique, 2 sorties PWM (pour contrôler 2 moteurs CC individuels), - Contrôleur de capteur: dispose de 7 entrées numériques (pour commutateurs d'entrée, optocapteurs…), - Contrôleur de sortie: dispose de 8 sorties numériques (pour les aiguillages de rail…), - Télécommande WiFi: possède 1 entrée codeur incrémental, 1 entrée numérique (pour contrôler les trains à distance).
Le système est également capable de fonctionner depuis Node-Red (depuis tablette, PC, ou smartphone…).
Étape 2: Échange de données MQTT et configuration

Basé sur le protocole MQTT, au début, chaque appareil s'abonne à un sujet donné et peut publier sur un autre sujet. C'est la base de la communication du réseau de contrôle des trains.
Ces récits de communication se déroulent à travers des messages au format JSON, pour être courts et lisibles par l'homme.
Dans une perspective plus éloignée: le réseau dispose d'un routeur WiFi avec son propre SSID (nom du réseau) et un mot de passe. Chaque appareil doit connaître ces 2 pour accéder au réseau WiFi. Le courtier MQTT fait également partie de ce réseau, donc pour utiliser le protocole MQTT, chaque appareil doit connaître l'adresse IP du courtier. Et enfin, chaque appareil a son propre sujet pour s'abonner et publier des messages.
Pratiquement, une télécommande donnée utilise le même sujet pour publier des messages auxquels un train donné est abonné.
Étape 3: Former le contrôleur

Afin de contrôler un train jouet, nous avons essentiellement besoin de 3 choses: une alimentation électrique, un contrôleur compatible WiFi et une électronique de commande de moteur.
L'alimentation dépend du plan d'utilisation réel: dans le cas de LEGO, il s'agit du boîtier de batterie Power Functions, dans le cas d'un train à l'échelle "oldschool" TT ou H0, il s'agit de l'alimentation 12V de la piste.
Le contrôleur compatible WiFi est un contrôleur Wemos D1 mini (basé sur ESP8266).
L'électronique du pilote de moteur est un module basé sur TB6612.
Le contrôleur de train dispose de 2 sorties PWM contrôlées individuellement. En fait, l'un est utilisé pour le contrôle moteur et l'autre pour la signalisation lumineuse. Possède 2 entrées pour la détection par contact Reed et une sortie numérique.
Le contrôleur accepte les messages JSON via le protocole WiFi et MQTT.
Le SPD1 contrôle le moteur, par exemple: le message {"SPD1": -204} permet de reculer le moteur à 80% de sa puissance (la valeur de vitesse maximale est de -255).
Le SPD2 contrôle l'intensité de la lumière LED « sensible à la direction »: le message {« SPD2 »: -255} fait briller la LED (vers l'arrière) à sa pleine puissance.
OUT1 contrôle l'état de la sortie numérique: {"OUT1": 1} active la sortie.
Si l'état d'une entrée change, le contrôleur envoie un message en fonction de celle-ci: {"IN1": 1}
Si le contrôleur reçoit un message valide, il l'exécute et fournit un retour au courtier. Le retour est la commande réellement exécutée. Par exemple: si le courtier envoie {"SPD1": 280} alors le moteur fonctionne à pleine puissance mais le message de retour sera: {"SPD1": 255}
Étape 4: Le contrôle du train LEGO

Dans le cas du train LEGO, les schémas sont un peu différents.
L'alimentation provient directement du boîtier de la batterie.
Un mini convertisseur abaisseur est nécessaire pour fournir 3,5 V à la carte Lolin basée sur ESP8266.
Les connexions sont réalisées avec un fil d'extension LEGO 8886, coupé en deux.
Étape 5: Télécommande

Le contrôleur publie uniquement des messages au train (définis par le commutateur BCD).
En tournant l'encodeur, la télécommande envoie des messages {"SPD1": "+"} ou {"SPD1": "-"}.
Lorsque le train reçoit ce message de "type incrémental", il modifie sa valeur de sortie PWM de 51 ou -51.
De cette façon, la télécommande peut changer la vitesse du train en 5 étapes (chaque direction).
Appuyer sur l'encodeur incrémental enverra {"SPD1": 0}.
Étape 6: Contrôleur de capteur

Le contrôleur de capteur mesure les états de ses entrées et, si l'une d'entre elles change, publie cette valeur.
Par exemple: {"IN1": 0, "IN6": 1} dans cet exemple 2 entrées ont changé d'état en même temps.
Étape 7: Contrôleur de sortie

Le contrôleur de sortie dispose de 8 sorties numériques, qui sont connectées à un module basé sur ULN2803.
Il reçoit des messages via son sujet abonné.
Par exemple, le message {"OUT4": 1, "OUT7": 1} active la 4. et la 7. sortie numérique.
Étape 8: Raspberry Pi et routeur WiFi
J'avais un routeur WiFI TP-Link d'occasion, je l'ai donc utilisé comme point d'accès.
Le courtier MQTT est un Raspberry Pi avec Mosquitto installé.
J'utilise le système d'exploitation Raspbian standard avec MQTT installé avec:
sudo apt-get install mosquitto mosquitto-clients python-mosquitto
Le routeur TP-Link doit être configuré pour avoir une réservation d'adresse pour le Raspberry, donc après chaque redémarrage, le Pi a la même adresse IP et chaque appareil peut s'y connecter.
Et c'est tout!
Étape 9: Contrôleurs finis


Voici les contrôleurs terminés.
Le loko à l'échelle TT a une taille si petite qu'une planche Lolin a dû être rétrécie (coupée) pour être suffisamment petite pour tenir dans le train.
Les binaires compilés peuvent être téléchargés. Pour des raisons de sécurité, l'extension bin a été remplacée par txt.
Conseillé:
Piraté ! Servomoteur en tant que conducteur de train miniature ! : 17 étapes

Piraté ! Servomoteur en tant que conducteur de train miniature ! : Vous vous lancez dans les chemins de fer miniatures ? Vous n'avez pas assez de budget pour acheter tous ces contrôleurs de train coûteux ? Ne t'inquiète pas! Dans ce instructable, je vais vous montrer comment vous pouvez créer votre propre contrôleur de train à petit budget en piratant un servomoteur. Alors, allons-y
Mise en page de train miniature automatisé (version 1.0): 12 étapes

Disposition automatisée de train miniature (version 1.0) : Les trains miniatures sont toujours amusants à avoir et à faire fonctionner. Mais les contrôler manuellement semble parfois un peu ennuyeux. Donc, dans cette instructable, je vais vous montrer comment vous pouvez automatiser votre mise en page de chemin de fer modèle afin que vous puissiez vous asseoir et vous détendre tout en regardant votre
Contrôlez la disposition de votre train miniature avec votre CLAVIER ! : 12 étapes

Contrôlez la disposition de votre train miniature avec votre clavier ! : Dans l'un de mes précédents Instructable, je vous ai montré comment vous pouvez contrôler votre train miniature avec la télécommande de votre téléviseur. Vous pouvez également consulter une version améliorée ici. Dans ce Instructable, je vais vous montrer comment contrôler une disposition de train miniature avec un clavier thr
Contrôlez la disposition de votre train miniature avec votre téléphone portable ! : 11 étapes (avec photos)

Contrôlez votre configuration de train miniature avec votre téléphone portable ! : Contrôler une configuration de train miniature avec une manette des gaz et des contrôleurs d'aiguillage filaires peut être un bon début pour les débutants, mais ils posent un problème de non-portabilité. De plus, les contrôleurs sans fil disponibles sur le marché ne peuvent contrôler que certains locom
Train miniature contrôlé par clavier V2.0 - Interface PS/2 : 13 étapes (avec photos)

Train miniature contrôlé par clavier V2.0 | Interface PS/2 : Dans l'un de mes précédents Instructable, je vous ai montré comment contrôler une mise en page de chemin de fer modèle à l'aide d'un clavier. Il fonctionnait très bien, mais présentait l'inconvénient de nécessiter un ordinateur pour fonctionner. Dans ce Instructable, voyons comment contrôler un train miniature à l'aide d'un clavier