Commande d'un réseau en DCC avec un module ARDUINO
Centrale DCC pilotée en WiFi par smartphone ou tablette
Cette centrale permet de commander un train en DCC avec un smartphone ou une tablette en WiFi sans passer par un ordinateur.
Le schéma du système réalisé est représenté sur la figure ci-dessous.
La centrale DCC est constituée de trois sous-ensembles:
- une unité centrale qui génère le signal DCC (avec un ARDUINO UNO et un booster)
- un serveur web connecté à un routeur Wi-FI qui reçoit les ordres de commande en provenance d'un smartphone ou d'une tablette.
- une alimentation qui délivre une tension de 15 Volts 2 ampères pour le booster DCC et une tension de 12 volts pour alimenter les modules ARDUINO
La page web qui s'affiche sur l'écran du smartphone ou de la tablette est la suivante.
Les commandes possibles sont les suivantes:
- adresse loco entre 1 et 99
- cran de vitesse entre 1 et 9
- sens de marche
- vitesse entre 0 et 28. Une pression sur plus augmente la vitesse d'un cran.
- fonctions F0, F1, F2, F3 et F4
Vous pouvez voir ci-dessous une photo des composants utilisés pour créer la centrale DCC et le serveur web.
1. Unité centrale
L'unité centrale génère le signal DCC. Elle est constituée d'un module ARDUINO UNO et d'un module de pilotage de moteur L298 utilisé comme booster DCC.
L'affectation des ports de l'ARDUINO est la suivante.
entrée RX: réception des commandes du serveur web
sortie numérique 5: vers entrée ENA du module L298
sortie numérique 2: vers entrée IN1 du module L298
sortie numérique 3: vers entrée IN2 du module L298
Le booster DCC est un module de pilotage de moteur L298 pour Arduino que l'on peut trouver chez TipTopBoards pour moins de 10 Euros.
Ce module possède deux sorties qui peuvent délivrer chacune un courant de 2 ampères, ce qui est suffisant pour un petit réseau.
La photo du module est donnée ci-dessous.
Voici le cablage à réaliser pour obtenir une ou deux sorties DCC
Le bornier à vis bleu (3 pins) :
VMS --> Tension VMS de l'alim de puissance (15 Volts )
GND, --> Relié à la masse de l'alimentation de puissance et à la masse de l'ARDUINO
+V --> non connecté
Les 2 borniers à vis verts (2 x 2 pins)
Le signal DCC est disponible sur la sortie MotorA
Signaux de commande sur les 6 pins (logique TTL : 5V = high, 0V = low).
Pour avoir une sortie DCC sur Motor A:
L' entrée EnA est à relier au +5V de l'ARDUINO
Les entrées In1 et In2 sont à relier aux sorties numériques 2 et 3 de l'ARDUINO qui délivrent le signal DCC
Vous pouvez télécharger le programma ARDUINO qui génère le DCC en cliquant ici.
2. Serveur web WiFi
Le serveur web connecté à un routeur Wi-FI reçoit les ordres de commande en provenance d'un smartphone ou d'une tablette et les transmet à l'unité centrale.
2.1 Matériel utilisé pour le serveur web
Le serveur web comprend:
- un module ARDUINO UNO
- un module SainSmart Ethernet Shield avec lecteur de carte micro-SD acheté chez SainSmart
- une carte microSD sur laquelle on stocke la page web
- un routeur D-LINK DIR-615 qui vaut 39 Euros chez Matériel.net
- un cable Ethernet
Voici une photo du routeur D-LINK
2.2 Connexions
Le shield ethernet est enfiché sur un module ARDUINO UNO. La sortie Ethernet du shield est connectée à l'entrée LAN 1 du routeur D-LINK. Le module ARDUINO transmet les commandes DCC sur la sortie TX.
2.3 Description du programme installé sur l'ARDUINO
Le site PHM ARDUINO en français décrit les principes de base pour la réalisation d'un serveur web. A lire absolument pour comprendre les protocoles HTTTP, IP, etc... utilisés par un serveur web.
Dans le cas d'un serveur WEB, les données sont échangées suivant le protocole HTTP.
J'ai utilisé la méthode GET. Avec le GET, les informations sont envoyées au serveur directement dans l'URL de la ressource demandée après le nom de la ressource (nom site par exemple) et un ?. Les différentes données transmises doivent être séparées par des &.
Par exemple, si un smartphone veut transmettre au serveur l'adresse 3, l'URL aura la forme suivante:
http://192.168.0.102/index.htm?adresse=03
Dans cet exemple, l'adresse IP du serveur est IP = 192.168.0.102.
La commande est transmise après le point d'interrogation sous la forme "nom=adresse" et la valeur de l'adresse, ici 03, est transmise après le signe =.
Pour créer le programme du serveur web, j'ai utilisé l'excellent "tutorial" en Anglais du site STARTING ELECTRONICS
intitulé "Arduino Ethernet Shield Web Server Tutorial" .
J'ai simplement adapté les exemples de ce site à la commande d'un train en DCC.
Vous pouvez télécharger mon programme en cliquant ici.
Vous trouverez aussi la page web intitulée index.htm à charger sur la carte micro-SD avant de l'insérer dans le lecteur de carte du shield Ethernet
2.4 Réglage du routeur D-LINK
Avec un PC connecté en Wi-Fi au routeur, il faut se connecter à la page web de gestion du routeur à l'adresse: http://192.168.0.1
Cliquer sur réglage puis sur Paramètres du réseau, puis sur Ajouter/éditer une réservation DHCP
Vous devez obtenir la page ci-dessous
Cliquer sur activer puis remplir les champs demandés
Nom de l'eordinateur: laisser vide
Adresse IP: 192.168.0.102
Adresse MAC: cliquer sur copier l'adresse MAC de votre PC
Puis cliquer sur save.
2.5 Réglage du smartphone ou de la tablette sous ANDROID
Il faut aller dans paramètres WiFi et se connecter au réseau intitulé D-LINK
Puis il faut ouvrir le navigateur web et taper l'adresse du serveur:
http://192.168.0.102
Voici une photo de la page web qui s'affiche sur l'écran
- avec un smartphone Andoid Alcatel One Touch
- avec une une tablette Nexus 7 de Google
- avec une tablette chinoise AINOL à très bas coût mais qui peut suffire pour piloter le réseau