Commande d'un réseau en DCC avec un module ARDUINO

Centrale DCC pilotée par smartphone ou tablette


Cette centrale permet de commander un train en DCC avec un smartphone ou une tablette ANDROID sans passer par un ordinateur.

Deux versions ont été réalisées: une version avec commande en Bluetooth. et une version avec commande en WiFi .

1.Commande en Bluetooth

La commande en Bluetooth est très simple à mettre en oeuvre. On peut facilement réaliser une petite centrale DCC qui marche très bien pour moins de 50 Euros.
Le seul inconvénient du Bluetooth est la portée entre le smartpphone et la centrale qui ne dépasse pas une vingtaine de mètres, mais c'est généralement suffisant pour un petit réseau.

La centrale DCC est commandée par une application ANDROID appelée BlueDCC chargée sur la tablette.
Afin de simplifier la conception de cette application, il n'y a qu'un seul octet transmis par la tablette à l'ARDUINO, ce qui limite les performances du système qui sont les suivantes:
- adresse comprise entre 3 et 99
- vitesse comprise entre 0 et 20
- sens de marche AV ou AR
- fonctions F0 à F8
- commande de 7 accessoires

1.1 Centrale DCC

Le schéma du montage réalisé est représenté sur la figure ci-dessous.



La centrale DCC est constituée de quatre sous-ensembles:
- un module BLUETOOTH HC-05 qui reçoit les ordres de commande en provenance d'un smartphone ou d'une tablette et les transmet à l'ARDUINO
- un module ARDUINO UNO qui génère le signal DCC
- un module LMD 18200 qui amplifie le signal DCC et délivre une tension de 16 Volts
- une alimentation qui délivre une tension de 16 Volts 2 ampères pour le booster DCC et une tension de 12 volts pour alimenter l'ARDUINO

Les connexions entre les modules sont indiquées sur le shéma.

Il faut noter que cette centrale n'a pas de protection contre les court-circuits. Il est prudent d'en ajouter une en sortie du booster, comme par exemple celle décrite dans le chapitre consacré aux boosters.

1.2 Application ANDROID

Cette application appelée BlueDCC est un petit régulateur DCC qui se connecte à l'ARDUINO en Bluetooth par l'intermédiaire du module HC-05.
Vous pouvez voir ci-dessous une copie d'écran de la tablette.



Avant de lancer l'application, il faut aller dans les paramètres de la tablette activer le bluetooth et se connecter au module HC-05 qui doit être sous tension. Le code à entrer est: 1234.

Ensuite, on peut lancer l'application Bluedcc. Pour l'utiliser, il suffit de cliquer sur le bouton intitulé "Connexion ARDUINO" et de choisir dans la liste des éléments qui s'affichent le module HC-05.

J'ai réalisé cette application à l'aide du logiciel en ligne intitulé MIT App Inventor 2 que l'on peut trouver à l'adresse suivante:
http://ai2.appinventor.mit.edu/

Ce logiciel est très facile à utiliser et permet de créer une application ANDROID très rapidement sans connaître le language Java.

Mon projet utilise les modules suivants:
Screen1
ListPicker1
Label4
TableArrangement1
Button2 à Button 7
Button12 à Button 22
TableArrangement2
Button8
Button9
TableArrangement3
Label1
Slider1
Label3
TableArrangement4
Label2
TextBox1
Button10
Button11
BluetoothClient1
Clock1

La connexion bluetooth utilise les instructions suivantes.


Au lancement de l'application, et avant de sélectionner le périphérique (ListPicker.beforepicking), le programme charge la liste des appareils associés au smartphone ou à la tablette (BluetoothClient.adressesandNames)
Lorsque l'on appuie sur le bouton "connexion arduino", une liste remplie des périphériques apparaît. On vous demande de choisir le périphérique. celui-ci est récupéré par la fonction qui récupère le nom de l'appareil (listpicker1.selection) et connecte le smartphone (BluetoothClient1.Connect) sur celui-ci.

L'envoi de données en bluetooth utilise les instructions suivantes pour les fonctions (F0 à F7)


Chaque bouton tel que "F0 ON" (Button 2) va envoyer via bluetooth (BluetoothClient1.Send1ByteNumber) un octet à l'appareil connecté lorsqu'il sera cliqué (button2.Click). Ici c'est Arduino qui va recevoir l'octet.

Pour la commande de vitesse et pour choisir l'adresse, on utilise le slider et une textbox avec les instructions ci-dessous.


Les commandes envoyées à l'ARDUINO sont les suivantes:



Lorsque l'écriture du programme est terminée , il ne reste juste qu'à compiler et envoyer sur le smartphone ou la tablette..

1.3 Téléchargement des programmes

Vous pouvez télécharger le programme pour l'ARDUINO ainsi que l'application bluedcc.apk pour le smartphone ou la tablette en cliquant ici.

2.Commande en Wi-Fi

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:
- 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 unité centrale qui génère le signal DCC (avec un ARDUINO UNO et un booster)
- 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 commande de l'ARDUINO par le smartphone ou la tablette peut s'effectuer de deux manières possibles:
- avec le navigateur par exemple Google Chrome, ce qui est compatile avec tous les OS (ANDROID, IOS, Windows Phone).
- avec une application appelée WiFi DCC chargée sur le smartphone ou la tablette pour les appareils sous ANDROID.

Vous pouvez voir ci-dessous une photo des composants utilisés pour créer la centrale DCC et le serveur web.



2.1. 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.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.1.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.sous la forme d'une suite de 9 octets suivie d'un caractère retour chariot.
Les octets transmis (de valeur comprise entre 0 et 9) sont les suivants: adressed+adresseu+ma+vitessed+vitesseu+fg1d+fg1u+0+0
adressed et adresseu définissent l'adresse de la loco: adresse=adresseu+10xadressed
ma donne le sens de marche (ma=1 ==> direct, ma=0 ==>inverse)
vitessed et vitesseu définissent la vitesse de la loco: vitesse=vitesseu+10xvitessed
fg1d et fg1u définissent les fonctions du groupe 1: fg1=fg1u+10xfg1d avec fg1 = 16xF0 + F1 +2xF2 + 4xF3 + 8xF4
Le signal de commande est normalement connecté à l'entrée RX de l'ARDUINO MEGA de la centrale DCC.
Pour faire les tests, une petite unité centrale a été réalisée pour générer le signal DCC avrc un ARDUINO UNO.

2.1.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.

2.1.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.2 Commande de la centrale par le navigateur du smartphone ou de la tablette

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

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

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




2.3 Commande de la centrale par l'application ANDROID WiFi DCC

J'ai réalisé cette application à l'aide du logiciel en ligne intitulé MIT App Inventor 2 que l'on peut trouver à l'adresse suivante:
http://ai2.appinventor.mit.edu/

Voici la photo de l'application qui s'affiche sur l'écran de la tablette.




L'application permet les commandes suivantes:
- adresse loco entre 1 et 99
- sens de marche
- vitesse entre 0 et 28. .
- fonctions F0 à F8

2.4 Téléchargement des programmes

Vous pouvez télécharger le dossier intitulé serveur_web_arduino en cliquant ici.

Ce dossier comprend:
- le programme pour l'ARDUINO à télécharger sur l'ARDUINO
- 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
- l'application ANDROID intitulée wifidcc.ask à télécharger sur le smartphone ou la tablette
- le code source de l'application ANDROID intitulé wifidcc.aia à ouvrir avec le logiciel MIT App Inventor 2 pour l'adapter à vos besoins.

2.5. Unité centrale

L'unité centrale génère le signal DCC. Elle est constituée d'un module ARDUINO UNO et d'un module LMD 18200 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 13: vers entrée DIR du module LMD 18200
sortie +5V: vers entrée PWM du module LMD 18200
sortie GND: vers entrée BRAKE du module LMD 18200

La photo du module LMD 18200 est donnée ci-dessous.


Vous pouvez télécharger le programma ARDUINO qui génère le DCC en cliquant ici.

Page suivante


Page précédente


Retour page d'accueil