Un accès à distance à un ordinateur par l’Internet

L’appareil, utilisant le module Ethernet EM100 de Tibbo Technology, permet de commander à distance par l’Internet le “reset”, la mise en route et l’extinction d’un PC. La liaison à l’ordinateur se fait par deux relais connectés aux bornes PWR et RST de la carte-mère. Il est même envisageable de gérer les deux relais à distance en fonction de votre propre application.


Si vos activités vous font travailler sur deux ou plusieurs PC situés dans des lieux éloignés les uns des autres, vous savez sans doute qu’un des problèmes majeurs rencontrés est celui de la synchronisation des données entre deux sites. L’exemple typique en est celui où la plus grande partie du travail est effectuée au bureau, mais avec tout de même un pourcentage non négligeable restant à faire à la maison, le soir ou en fin de semaine.
Le problème classique, dans ce cas, est que l’on passe le samedi et le dimanche à faire avancer un projet, mais qu’on oublie de copier son travail et que l’on se retrouve le lundi au bureau sans pouvoir mettre à jour le chantier qu’on y a laissé le vendredi soir !

Notre réalisation
Une solution consiste à accéder par l’Internet à l’ordinateur de la maison pour charger la nouvelle version : en effet, si le PC est relié à l’Internet par ADSL, cela ne prend que quelques instants. Mais si l’ordinateur distant est éteint et si personne ne peut l’allumer pour vous…
Dans ce cas, vous auriez fort besoin d’un dispositif vous permettant d’allumer votre ordinateur domestique à distance par l’Internet. Eh bien, c’est justement ce dispositif que nous vous proposons de construire dans le présent article.
En effet, utilisant un module Ethernet TIBBO EM100, notre appareil permet de gérer deux relais lesquels, nous le verrons ensuite, sont reliés de façon à allumer ou éteindre le PC à partir de n’importe quel ordinateur connecté à l’Internet. De plus, si, par malchance, le système d’exploitation de l’ordinateur distant devait “planter”, on pourrait utiliser la fonction de “reset” prévue.
Bref, pour accéder aux informations mémorisées, la mise en marche de l’ordinateur ne suffit pas : il faut avoir d’abord paramétré le PC de telle manière que sa mise sous tension lance un logiciel (Symantec PCAnywhere, par exemple) permettant le “download” (exportation) ou “l’upload” (importation) des données.
L’un des avantages de la solution que nous vous proposons est qu’elle maximise la sécurité de l’ordinateur.
Bien sûr le PC le mieux sécurisé est un PC éteint, cordon secteur et ligne Internet débranchés ! Mais l’utilisation de notre système réduit le temps de connexion au minimum, c’est-à-dire qu’elle réduit le risque d’intrusion au minimum : en effet, l’ordinateur n’est allumé que pendant le temps nécessaire au prélèvement des données, ensuite il peut être éteint et donc tout à fait opaque à tout piratage.
Enfin, précisons que notre appareil comme le PC doivent être accessibles par l’Internet : si vous avez une connexion ADSL par routeur (avec un coupe-feu matériel et/ou logiciel), vous devez donc les paramétrer pour qu’ils acceptent les tentatives de connexion provenant de l’extérieur.
Nous le verrons par la suite, notre dispositif, pour communiquer, se sert du protocole TCP/IP (“Transmission Control Protocol/Internet Protocol”) et d’un port correspondant. Il requiert en outre l’octroi d’une adresse IP valide à l’intérieur du réseau local.
C’est pourquoi il est nécessaire d’ouvrir sur le routeur et sur le coupe-feu le port de communication utilisé.
Vous devez aussi mettre à jour les tables de routage du routeur afin qu’il sache comment adresser le trafic.
Pour en finir avec cette introduction, ajoutons que notre montage est constitué de deux parties : la première, matérielle, est l’appareil apparaissant sur la photo de première page, la seconde, logicielle, est un programme écrit en Delphi, réalisant et gérant la liaison à l’appareil par l’Internet. Ce logiciel peut être chargé gratuitement sur le site de la revue (SFW494.zip rubrique Téléchargement) : il vous permettra d’accéder à notre appareil à partir de n’importe quel PC doté d’une connexion à l’Internet, sans être obligés de procéder à partir d’un ordinateur dans lequel vous auriez introduit une disquette, un CDROM ou qui contiendrait déjà un logiciel adéquat.

Figure 1 : Interface vers l’extérieur.

Le schéma électrique
Passons à l’analyse du schéma électrique de la figure 2. La partie la plus importante est, à coup sûr, le module Ethernet EM100, que vous connaissez sans doute déjà puisqu’il a été utilisé une première fois dans l'article : "Un serveur sériel pour périphériques PC". Ce module est en mesure d’interfacer un réseau de type Ethernet à un périphérique sériel. Il reçoit les données provenant du LAN (“Local Area Network”, réseau local) et les rend disponibles au format sériel (et vice versa, c’est-à-dire qu’il reçoit les informations au format RS232 et les transmet au format RJ45 10BaseT sur le réseau Ethernet), mais en plus cette puce est capable de gérer correctement les protocoles TCP/IP, UDP/IP, ICMP et ARP. L’EM100 sera donc programmé de façon à spécifier une adresse IP valide l’identifiant de manière univoque : il est en mesure d’accepter, d’établir et de communiquer au moyen d’une connexion UDP (“connection less”) ou TCP (“connection oriented”), dans ce dernier cas il peut gérer les erreurs éventuelles se produisant durant la transmission, remettre de l’ordre dans les paquets qui arriveraient éventuellement en une succession aberrante et s’occuper du mécanisme des fenêtres de transmission des données, caractéristique, justement, du TCP.
Le support au protocole ICMP (“Internet Control Message Protocol”) permet en revanche l’émission et la réception correctes des informations de contrôle. Enfin, le support à ARP (“Address Resolution Protocol”) permet au module EM100 de gérer de manière autonome la résolution des adresses IP en adresses physiques MAC.
Comme le montre la figure 2, le module s’interface directement au réseau Ethernet par les broches 1 et 2 (ligne d’Input négative et positive).
De l’autre côté les données sont disponibles sur les broches 15 et 16 (respectivement Input et Output de la ligne sérielle). Les informations peuvent ainsi être transmises directement aux broches constituant les ports sériels de beaucoup de microcontrôleurs (dans notre montage nous avons pris pour U2 un PIC16F628).
Les tensions de sortie sont au format TTL : il n’est donc pas nécessaire d’utiliser un convertisseur MAX232.
En outre ici le microcontrôleur choisi est déjà doté d’un port UART interne, ce qui nous permet de gérer l’envoi et la réception des données entre le PIC et l’EM100 sans devoir recourir à d’autres dispositifs externes.
Le module EM100 et le microcontrôleur sont de plus reliés par deux autres broches, marquées RST et MD sur U1. La première broche indique le “reset” du module, la seconde la sélection du mode de fonctionnement.
En effet, dans l’article sus cité, nous soulignions que le module est en mesure de fonctionner selon trois modes : Normal (mode dans lequel il réalise la conversion Ethernet/sérielle), “Serial Programming” (mode utilisé pour le programmer) et “Firmware download” (mode utilisé pour la remise à jour du programme résidant en ROM du module). La sélection du mode de fonctionnement se fait par les deux broches indiquées ci-dessus.
Notre montage met en oeuvre le premier mode, dont la sélection a lieu automatiquement à partir du logiciel du microcontrôleur.
Le module Ethernet est en outre pourvu de 4 broches (prévues pour piloter 4 LED) indiquant l’état du module comme de la connexion LAN : les lignes SG et SR indiquent le mode de fonctionnement (configuration) de l’EM100 et d’éventuelles erreurs, les lignes EG et ER en revanche fournissent des informations sur les opérations accomplies par le port Ethernet. En particulier la LED LD4 est normalement allumée, elle s’éteint momentanément justement quand l’EM100 reçoit des paquets par le port Ethernet. LD3 en revanche est normalement éteinte et elle s’allume momentanément quand une collision est détectée, toujours sur le réseau Ethernet. A l’intérieur du circuit sont présents encore deux LED, LD1 et LD2, gérées par le microcontrôleur et utilisées pour visualiser des informations sur l’état de ce dernier.
Le contrôle des deux relais RL1 et RL2, utilisés pour allumer, éteindre ou redémarrer le PC, il est géré par les broches RA1 et RA2 par l’intermédiaire des deux transistors T1 et T2. Mais ici une petite précision doit être apportée : toutes les alimentations modernes respectant le format ATX offrent la possibilité d’être allumées ou éteintes par voie logicielle et par utilisation d’un poussoir de mise en marche. En outre, dans beaucoup de cas la carte-mère du PC (elle aussi au format ATX) comporte deux connecteurs PWR et RST.
Le premier est relié au poussoir de mise en marche et sert justement à allumer ou éteindre le PC, le second est en revanche utilisé pour le “reset” de l’ordinateur et il est relié au poussoir correspondant.
En particulier il est prévu qu’en court-circuitant le premier connecteur pendant un bref instant (dans notre cas environ 2 secondes), si l’ordinateur est relié à l’alimentation et s’il est éteint, l’ordinateur s’allume. Si en revanche l’ordinateur est allumé, la fermeture de ce même connecteur pendant une période plus longue (dans notre cas environ 10 secondes) commande le “reset” de l’ordinateur.
Notre dispositif utilise justement ces fonctions des cartes-mères modernes, pour allumer/éteindre ou redémarrer le PC en fermant pendant des temps différents les deux relais RL1 et RL2 lesquels, nous le verrons au cours de la réalisation, seront connectés aux deux connecteurs de la carte-mère.
A l’intérieur de l’ordinateur, la mise en marche ou le “reset” est géré directement par le BIOS (et non par le système d’exploitation) : cela permet le redémarrage ou l’extinction du PC même lorsque Windows “plante”.
Pour un fonctionnement correct, il est nécessaire de paramétrer le BIOS de la carte-mère afin qu’il puisse gérer le tout. Généralement il faut sélectionner, après être entré dans le BIOS, l’indication “Soft-Off by PWRBTN” et indiquer la valeur “Delay 5 sec”. Il existe toutefois quelques variantes, selon le constructeur de la carte-mère et du BIOS. Pour plus de détails, nous vous suggérons de vous référer au manuel de votre carte-mère.
La dernière partie du circuit à analyser est l’alimentation : elle est constituée de U3, un LM7805 convertissant le 12 V en +5 V utilisé pour les dispositifs TTL.
Une dernière particularité, non visible sur le schéma électrique mais fort importante, est que le circuit comporte deux ports Ethernet en parallèle : toutes les données entrant par un port sont en même temps sur l’autre, ce qui signifie qu’un port du dispositif peut être relié à un câble provenant du “hub” (multiprise parallèle) du réseau LAN (ou du routeur ADSL, etc.), alors que l’autre peut être relié au port Ethernet du PC.
Ainsi les deux dispositifs sont adressables individuellement.

Figure 2 : Schéma électrique de l’accès à distance à un ordinateur.

Liste des composants
R1 = 4,7 kΩ
R2 = 4,7 kΩ
R3 = 470 Ω
R4 = 470 Ω
R5 = 470 Ω
R6 = 470 Ω
R7 = 470 Ω
R8 = 470 Ω
R9 = 4,7 kΩ
R10 = 1 kΩ
R11 = 1 kΩ
C2 = 220 μF 25 V électrolytique
C3 = 100 nF multicouche
C4 = 220 μF 25 V électrolytique
C5 = 100 nF multicouche
C6 = 15 pF céramique
C7 = 15 pF céramique
LD1 = LED rouge 3 mm
LD2 = LED verte 3 mm
LD3 = LED rouge 3 mm
LD4 = LED verte 3 mm
LD5 = LED verte 3 mm
LD6 = LED rouge 3 mm
LD7 = LED rouge 3 mm
LD8 = LED rouge 3 mm
D1 = 1N4007
D2 = 1N4007
D3 = 1N4007
U1 = EM100
U2 = PIC16F628-EF494 programmé
U3 = Régulateur 7805
Q1 = Quartz 8 MHz
T1 = NPN BC547
T2 = NPN BC547
RL1 = Relais min. 12 V
RL2 = Relais min. 12 V

Divers :
1 Support 2 x 9
1 Prise d’alimentation
2 Connecteurs RJ45
2 Borniers 3 pôles enfich.
2 Barrettes tulipes femelles 10 pôles au pas de 2 mm
1 Boulon 3MA 8 mm
4 Vis auto-taraudeuses 8 mm

Sauf spécification contraire, toutes les résistances sont des 1/4 W à 5 %.


Le protocole de communication
Voyons maintenant le format du protocole utilisé pour la communication entre l’appareil et le programme de gestion à distance. Les opérations que le logiciel peut demander au circuit sont l’activation des deux relais, la requête de l’état logique et le paramétrage de la durée d’activation de ceux-ci. Comme nous venons de le voir, la mise en marche de l’ordinateur a lieu par activation pendant 2 secondes environ de RL1 : cela est obtenu en envoyant au circuit la commande “*/S”. L’arrêt de l’ordinateur est obtenu, lui, en activant pendant environ 10 secondes ce même RL1, ce qu’obtient la commande “*/E”.
Enfin le “reset” du PC s’obtient en activant pour 2 secondes environ RL2 avec la commande “*/R”.
Pour chaque commande envoyée, le dispositif répond par un flux de confirmation d’exécution de l’opération.
Pour demander l’état actuel du relais, on utilise la commande “*/I”. Le circuit répond par le flux “RELAIS i ON” ou “RELAIS i OFF”, où i indique le relais (1 ou 2) et “ON” et “OFF” respectivement que les relais sont activés ou non.
Jusqu’ici nous avons vu la partie du protocole de communication concernant l’utilisation du dispositif pour allumer et éteindre l’ordinateur. Le circuit peut aussi être utilisé pour tout autre application de commande à distance de deux relais par l’Internet. C’est pourquoi on a prévu la possibilité de modifier les durées d’activation des deux relais : en envoyant “*/1” on indique que l’on souhaite paramétrer la durée d’activation de RL1 (“*/2” indique en revanche RL2).
Le circuit répond alors “-> INSERER TEMPS RELAIS 1 <-”. En envoyant, par exemple, “*/25” on paramètre une durée d’environ 25 secondes.
Les temps paramétrables vont de 1 à 60 secondes, si l’on envoie la commande “*/00” on indique le mode bistable.
Avant de passer à l’analyse du logiciel utilisé pour la liaison, notons qu’il est tout d’abord nécessaire de programmer le module EM100 présent dans le circuit. La programmation peut être faite par l’intermédiaire du logiciel “Connection Wizard”, page 46. En particulier, il faut paramétrer l’adresse IP à associer au dispositif, choisir le protocole TCP et le port de communication correspondant à utiliser. En outre, il faut choisir, comme mode de routage, le mode Esclave. Enfin, dans la fenêtre des propriétés de la communication sérielle, on doit déshabiliter les contrôles de flux. Il faut aussi sélectionner une vitesse de transmission de 38 400 bauds, 8 bits de données et aucune parité.

Le logiciel de liaison
Analysons à présent le logiciel utilisé pour se connecter au dispositif. Rappelons d’abord que le programme, écrit en Delphi et compatible avec Windows 98/ME/XP, ainsi vous n’avez même pas besoin d’avoir toujours à disposition un PC ou une disquette contenant ce logiciel, au moment où il vous le faut vous le téléchargez et vous l’exécutez où que vous vous trouviez.
Une fois le programme lancé, il faut tout d’abord spécifier l’adresse IP utilisée pour accéder de l’extérieur au circuit (si un routeur est présent, ce sera la même IP que celle de son interface externe) et le port de communication utilisé. Le logiciel ouvre alors un “socket” vers le dispositif.
Un “socket” n’est rien d’autre qu’une connexion réalisée au moyen d’un réseau Internet : en général chaque “socket” est caractérisé par le type de protocole utilisé (ici, le TCP), par les adresses IP source et destination et par les ports de communication utilisés par la source et par la destination.
Ici, en ce qui concerne le couple IP/port de destination, ils sont les mêmes que ceux spécifiés.
L’IP de la source est en revanche la même que celle du PC dont nous exécutons l’opération (elle est spécifiée automatiquement par le système d’exploitation). Le port de communication de la source aussi est spécifié par le système d’exploitation.
Quand la liaison est instaurée, le protocole de communication vu ci-dessus est utilisé pour envoyer les commandes d’activation des relais, pour recevoir les états de ceux-ci ou pour envoyer le paramétrage de la durée d’activation.
L’utilisation du programme est assez simple et intuitive : trois poussoirs sont présents pour allumer, éteindre ou redémarrer l’ordinateur. Un autre poussoir requiert l’état des relais, lequel est visualisé à l’aide de deux “LED” colorées. Le dispositif peut être utilisé, outre pour allumer et éteindre l’ordinateur, pour des applications plus générales où il s’agit de gérer à distance les deux relais : on trouve donc deux poussoirs commandant l’activation de ces relais. De plus, il est possible de spécifier leurs durées d’activation. Enfin, on trouve une fenêtre de texte visualisant les données arrivant de l’appareil.

Figure 3 : Ecrans du logiciel.
A gauche, la fenêtre de paramétrage des propriétés du port sériel du programme Connection Wizard. Il est nécessaire de régler une vitesse de transmission de 38 400 bauds, aucune parité, 8 bits de données et aucun contrôle de flux.
A droite, l’écran du logiciel de gestion CONTROLE PC. Pour se connecter il faut spécifier l’IP de l’EM100 (ou de l’éventuel routeur) et le port TCP à utiliser.


La réalisation pratique
Nous pouvons maintenant passer à la construction de cet appareil.
Quand vous vous êtes procuré le circuit imprimé double face à trous métallisés ou que vous l’avez vous-même réalisé à partir des dessins à l’échelle 1 proposés par la figure 4b-1 et 2 (dans ce cas n’oubliez pas de réaliser les nombreuses connexions entre les deux faces, ce que les trous métallisés font), montez tous les composants dans un certain ordre (en ayant constamment sous les yeux la figure 4a, la liste des composants et la figure 5).
Commencez par le support du circuit intégré PIC et les deux barrettes tulipes femelles à 10 broches au pas de 2 mm (destinées à recevoir le module EM100) puis vérifiez vos soudures (pas de court-circuit entre pistes et pastilles ni soudure froide collée).
Montez ensuite toutes les résistances sans les intervertir (triez-les d’abord par valeurs), les 3 diodes (en orientant soigneusement leurs bagues dans le bon sens montré par les figures) et tous les condensateurs (en ayant soin de respecter la polarité des électrolytiques, leur patte la plus longue est le +).
Montez les 2 transistors T1 et T2, méplats repère-détrompeurs tournés dans le bon sens (vers la gauche), ainsi que le régulateur U3 7805, couché, pattes repliées à 90° et fixé à l’aide du boulon 3MA.
Montez le quartz de 8 MHz debout, broches bien enfoncées. Montez les 2 relais miniatures 12 V. Montez la prise d’alimentation PWR (elle doit être adaptée à la fiche de l’alimentation externe que vous choisirez), juste à côté les 2 connecteurs RJ45 en parallèle et à côté vers la droite les 2 borniers enfichables à 3 pôles, destinés aux sorties des relais.
Il ne vous reste qu’à monter les LED.
Montez d’abord les LD7 et LD8 rouges (en respectant bien leur polarité : l’anode + est la patte la plus longue).
Ensuite les 6 LED (3 rouges et 3 vertes), en vous reportant à la figure 6 cette fois : ces 6 LED ont leurs pattes coudées à 90° et les LED du haut, les rouges, doivent bien sûr avoir des pattes maintenues plus longues que celles des LED du bas, les vertes.
Evidemment, il est plus facile de monter ces 6 dernières LED conjointement avec l’installation dans le boîtier : pour cela, percez 6 trous (2 x 3) de 3 mm de diamètre et, après insertion des LED et soudure de leurs pattes (là encore respectez la polarité), fixez-les par une goutte de colle au cyanoacrylate.
Insérez le circuit intégré PIC dans son support, repère-détrompeur en U orienté dans le bon sens, vers R1/R2.
Insérez enfin le module EM100, point repère-détrompeur du côté des relais (figure 4a et 5).

Figure 4a : Schéma d’implantation des composants de l’accès à distance à un ordinateur.

Figure 4b-1 : Dessin, à l’échelle 1, du circuit imprimé double face à trous métallisés de l’accès à distance à un ordinateur, côté composants.

Figure 4b-2 : Dessin, à l’échelle 1, du circuit imprimé double face à trous métallisés de l’accès à distance à un ordinateur, côté soudures.

Figure 5 : Photo d’un des prototypes de la platine de l’accès à distance à un ordinateur.

Figure 6 : Comment souder à la platine les 6 LED de signalisation.

Photo d’un détail de montage. Percez 6 trous de diamètre 3 mm dans la partie métallique du boîtier. Conservez les pattes des LED rouges plus longues que celles des LED vertes. Fixez les LED dans leur position définitive avec une goutte de colle au cyanoacrylate.

Les essais
Vous pouvez alors faire un premier test en reliant votre appareil au réseau LAN. Utilisez le logiciel “Connection Wizard” de façon à paramétrer le module EM100 (adresse IP, protocole TCP, port, etc.). Ce programme dispose d’une fonction de reconnaissance automatique de tous les dispositifs utilisant le EM100 reliés au réseau. Quand les paramètres corrects sont rentrés, exécutez le logiciel de gestion “ControlloPC”, indiquez l’adresse IP et le port sélectionné, puis vérifiez que la liaison soit correctement activée. Essayez en outre de requérir l’activation des deux relais et que le tout fonctionne.
Ensuite, vous pouvez vous occuper des connexions du circuit à la carte-mère du PC : elles seront réalisées à l’aide de deux câbles de deux fils chacun. A une extrémité, on montera un cavalier femelle à deux pôles allant se connecter aux broches de la carte-mère : cette connexion pourra être faite en parallèle avec le câble provenant de la touche de mise en marche du PC, ainsi il sera possible d’allumer ou d’éteindre l’ordinateur par ladite touche aussi bien que par le dispositif externe que nous venons de construire. L’autre extrémité est à connecter aux bornes de sortie des relais : les deux câbles seront connectés aux bornes communes C et normalement ouvertes NO des relais.
Ainsi, en activant les relais, les deux broches sont court-circuitées, ce qui “simule” la pression sur la touche de mise en marche ou de “reset”. Rappelons encore que le relais 1 (le plus à l’intérieur de la platine) est à connecter aux broches PWR de la carte-mère et le relais 2 (le plus à l’extérieur de la platine) aux broches RST de la carte-mère.
Rappelons pour terminer que si le LAN est connecté à l’Internet par un routeur ou un coupe-feu, vous devez les paramétrer de manière qu’ils acceptent et aiguillent les demandes de connexions provenant de l’extérieur et dirigées vers le port TCP sélectionné.

0 commentaires:

Enregistrer un commentaire

Related Posts Plugin for WordPress, Blogger...