Un localiseur GPS/GSM à mémoire pour Siemens série 35 "Deuxième partie et fin :L’interface à 8 entrées et le logiciel"

Ce localiseur GPS/GSM est doté d’une mémoire capable de mémoriser jusqu’à 8 000 points ! La localisation peut se faire en temps réel ou, dans un second temps, par déchargement des données mémorisées. Il dispose d’une entrée “Enable” habilitant l’enregistrement et de deux lignes de I/O au format bus I2C. Après l’avoir analysé et réalisé au cours de la première partie, nous nous occupons aujourd’hui de construire l’inter face à 8 entrées à relier à l’unité distante et d’utiliser le logiciel.


Rappelons simplement que l’unité de base du localiseur est fixe et qu’elle reçoit les données de position, tandis que la ou les unités distantes sont montées à bord des véhicules et envoient par GSM leurs données GPS. Chacune de ces dernières est dotée d’un récepteur GPS, d’un téléphone portable Siemens 35 et d’une interface gérant la liaison : celle-ci contient des blocs de mémoire EEPROM utilisés pour enregistrer les coordonnées spatiales. En effet, le localisation peut avoir lieu soit en temps réel, soit en différé par mémorisation des informations. Toujours à l’intérieur de l’interface distante se trouve une entrée “Enable” laquelle, connectée à la masse, habilite la mémorisation des coordonnées.
Cette entrée pourrait très bien être reliée à un capteur de mouvement activant l’enregistrement de la localisation seulement quand le véhicule roule. Enfin, un connecteur RJ45 fournit en sortie deux lignes bus-I2C, dont une sert à la liaison avec une interface à 8 entrées, présentée dans cette seconde partie de l’article.
Quant à l’unité de base, en revanche, elle reçoit les données de localisation de la ou des unités distantes qu’elle envoie à un PC sur lequel tourne le logiciel cartographique.
L’unité de base est également dotée d’un téléphone portable Siemens 35 et d’une interface de celui-ci avec l’ordinateur : cette dernière est en outre constituée d’un logiciel gérant par ordinateur la liaison avec la ou les unités distantes, le chargement des données mémorisées, leur sauvegarde dans des fichiers, etc. Ce logiciel aussi va être analysé dans cette seconde partie de l’article.
Nous allons donc voir dans les pages qui suivent, d’abord comment est conçue l’interface à 8 entrées et comment la construire et ensuite comment utiliser le logiciel de gestion de l’unité de base.

Figure 1 : Fonctionnement du localiseur.

L’unité distante montée sur le véhicule reçoit sa propre position du localiseur GPS. Ces données peuvent être envoyées en temps réel à l’unité de base, ou bien mémorisées et transmises en différé. En outre, l’interface à 8 entrées, envoyant un SMS, si une entrée change d’état, est reliée à l’unité distante. La liaison entre les deux unités se fait par le canal des données GSM. L’unité de base est reliée à un PC sur lequel tourne le logiciel de gestion et le programme cartographique Fugawi 3, permettant la localisation du véhicule.

Figure 2 : Liaison de l’interface à 8 entrées à l’unité distante.

La liaison entre l’interface à 8 entrées et l’unité distante se fait par port de type RJ45. De l’autre côté de l’interface à 8 entrées se trouve un second port RJ45 pouvant être utilisé pour relier un second dispositif capable de se servir d’une seconde ligne bus-I2C. Les deux ports sont reliés en parallèle.
L’adressage, de la part de l’unité distante, des divers dispositifs reliés se fait par paramétrage correct des trois cavaliers.

L’interface à 8 entrées
Le but de cette interface est d’étendre l’unité distante par l’ajout de 8 signaux d’entrée. Le microcontrôleur de l’unité distante est en mesure de détecter le changement d’état de l’une de ces entrées, auquel cas l’envoi d’un SMS, mémorisé dans la carte SIM du portable, est prévu. Précisément, si l’entrée 1 change d’état, le SMS mémorisé en position 1 est envoyé, si c’est l’entrée 2 qui change d’état, c’est le SMS mémorisé en position 2 qui est envoyé et ainsi de suite. Pendant la mémorisation du SMS dans la carte SIM, outre le texte, il faut mémoriser le numéro du portable à qui envoyer le message. A partir de l’unité de base, il est possible d’aller lire l’état logique des 8 entrées, de spécifier quelles entrées habiliter et, pour chaque entrée habilitée, d’indiquer quel est l’état devant activer l’envoi des SMS. Les utilisations possibles des 8 entrées sont variées : par exemple, il est possible de relier une entrée à un système antivol de véhicule, afin d’être averti en cas de tentative de vol. Ou bien une seconde entrée peut être reliée à un système de détection d’ouverture de coffre du véhicule, toujours afin de détecter une tentative de vol, mais de matériel cette fois. Etc.
La liaison entre l’interface à 8 entrées et l’unité distante se fait par bus-I2C, grâce à deux broches : SCL transporte le signal d’horloge et SDA les données émises au format sériel. Le protocole bus-I2C offre la possibilité de connecter à chaque ligne (couplée à SCL et SDA) un certain nombre de dispositifs, chacun étant caractérisé par son propre code. L’envoi des commandes au bon dispositif se fait en indiquant, à chaque émission, l’adresse de destination.
Les données émises arrivent donc à tous les dispositifs connectés à la ligne, mais c’est seulement celui qui a l’adresse spécifiée qui se reconnaît comme destinataire et qui donc l’élabore. Chaque système utilisant une ligne bus-I2C est muni d’un certain nombre de cavaliers utilisés pour spécifier l’adresse : chacun d’eux peut prendre l’état logique 0 ou l’état logique 1 (selon qu’il est fermé ou ouvert).
L’émission des données se fait de manière sérielle par la broche SDA. Le protocole prévoit l’envoi d’un caractère de “start” (S) suivi de l’adresse (A2, A1 et A0) du dispositif de destination.
Ensuite sont transmises les données subdivisées en blocs de 8 bits : avant de transmettre un nouveau bloc, il est cependant nécessaire que le précédent soit “confirmé” par un caractère de “Acknowledge”, reconnaissance (A).
Enfin, la communication est fermée par l’envoi d’un caractère de “stop” (P).
Pour une extension possible, l’interface à 8 entrées que nous proposons dispose de deux ports RJ45 en parallèle (soit : toutes les données entrant par un port sont reportées sur le second). Un port est utilisé pour la liaison à l’unité distante, le second peut en revanche être connecté à un autre dispositif. Par exemple, il pourra être connecté à l'extension bus I2C à 8 relais : cette dernière permettrait d’ajouter à l’unité distante 8 sorties pouvant être commandées directement par le logiciel de gestion de l’unité de base. A ce sujet, remarquons une particularité : l’inter face à 8 entrées comme l’inter face à 8 sorties sont caractérisées par la même adresse (on le verra plus loin : sur le schéma électrique se trouvent 3 cavaliers pour régler l’adresse et sur les deux interfaces tous seront fermés afin de sélectionner l’adresse 000). La communication est en effet réalisée en mettant à profit deux lignes bus-I2C distinctes (l’une gère l’interface à 8 entrées, l’autre l’inter face à 8 sorties).
En effet, si nous regardons le schéma électrique de l’unité distante (première partie de l’article), nous voyons que la liaison RJ45 vers l’extérieur est constituée de 4 lignes (plus la masse et l’alimentation) réalisant justement les deux lignes utilisées (couplées à SCL et SDA).

Le schéma électrique de l’interface à 8 entrées
Il se trouve figure 3. L’alimentation en 12 V en est fournie directement par l’unité distante, par la broche 5 du connecteur RJ45. Le régulateur U2 7805 fournit le +5 V, utilisé par les circuits intégrés TTL, à partir du 12 V. Toute la logique de fonctionnement de l’interface est basée sur l’extenseur d’I/O U1 Philips PCF8574A : celui-ci est en mesure de se connecter d’un côté à la ligne bus-I2C par les broches 14 et 15 (respectivement SCL et SDA) et de l’autre de s’interfacer (par les broches P0 à P7) aux 8 entrées. Comme le montre le schéma électrique de la figure 3, chaque entrée est maintenue au niveau logique haut par le réseau de résistances R6. Lorsque, en revanche, un bornier est court-circuité, l’entrée correspondante est mise à la masse à travers la diode de protection. Le PCF8574A est capable de reconnaître le changement d’état et de transmettre au microcontrôleur de l’unité distante les commandes convenables. Le PIC du dispositif distant reçoit donc ces commandes et exécute l’envoi des SMS mémorisés dans le portable.
Considérons enfin les 3 cavaliers J1, J2 et J3 : ils sont reliés aux broches A0, A1 et A2 et, on l’a vu, ils sont utilisés pour paramétrer l’adresse du dispositif. Pour que l’interface puisse être correctement utilisée avec l’unité distante, il est nécessaire de spécifier l’adresse 000, correspondant à la fermeture des 3 cavaliers.

Figure 3 : Schéma électrique de l’interface à 8 entrées.

Liste des composants
R1 = 4,7 kΩ
R2 = 4,7 kΩ
R3 = 10 kΩ
R4 = 10 kΩ
R5 = 10 kΩ
R6 = réseau résistif 10 kΩ
C1 = 100 nF multicouche
C2 = 220 μF 25 V électrolytique
C3 = 100 nF multicouche
C4 = 220 μF 25 V électrolytique
D1 = 1N4007
D2 = 1N4007
D3 = 1N4007
D4 = 1N4007
D5 = 1N4007
D6 = 1N4007
D7 = 1N4007
D8 = 1N4007
D9 = 1N4007
U1 = PCF8574A
U2 = 7805

Les résistances sont des 1/4 de W, 5 %.

Divers :
8 borniers 2 pôles enfichables
1 support 2 x 8
2 connecteurs RJ45
1 circuit imprimé cod. S0488.

La réalisation pratique de l’interface à 8 entrées
Rien de plus facile ni de plus rapide si on a l’oeil sur les figures 4 (avec la liste des composants) et 5. On réalisera d’abord le circuit imprimé à l’aide du dessin à l’échelle 1 donné par la figure 4b, ou on se le procurera. Lorsque le circuit imprimé, gravé et percé, est en votre possession, montez les quelques composants, par exemple dans l’ordre conseillé ci-dessous.
Montez en premier le support du circuit intégré U1 et vérifiez bien vos soudures (ni court-circuit entre pistes ou pastilles ni soudure froide collée), puis les 5 résistances et le réseau R6. Montez ensuite les 9 diodes, sans avoir à les distinguer, bagues blanches repère-détrompeurs orientées comme le montre la figure 4a.
Montez les condensateurs multicouches et les électrolytiques, en respectant bien la polarité +/– de ces derniers (la patte la plus longue est le + et le – est inscrit sur le côté du boîtier cylindrique). Montez le régulateur U2 debout sans dissipateur, semelle métallique vers C4. Montez les 3 cavaliers.
Montez enfin les 2 prises femelles RJ45 et les 8 borniers enfichables et c’est presque terminé : il ne vous reste qu’à enfoncer délicatement le circuit intégré U1 dans son support, en orientant bien le repère-détrompeur en U vers la gauche, soit vers les cavaliers.

Figure 4a : Schéma d’implantation des composants de l’interface à 8 entrées.

Figure 4b : Dessin, à l’échelle 1, du circuit imprimé de la platine interface à 8 entrées.

Figure 5 : Photo d’un des prototypes de la platine interface à 8 entrées.

Figure 6 : Paramétrage de l’adresse.

L’adresse de l’interface à 8 entrées (et aussi celle à 8 sorties "Une extension bus I2C à 8 relais") est paramétrée par les 3 cavaliers J1, J2 et J3. Un cavalier fermé correspond à état logique 0. Si en revanche on le laisse ouvert, il correspond à l’état logique 1. Pour un fonctionnement correct des deux interfaces avec l’unité distante, il est nécessaire de paramétrer l’adresse 000 (fermer tous les cavaliers).

Le logiciel de gestion de l’unité de base
La principale fonction de ce logiciel est de décharger les données mémorisées à l’intérieur des différentes unités distantes, ce qui permet de les sauvegarder dans un fichier texte et ensuite une exportation dans le logiciel cartographique Fugawi.
Le programme offre néanmoins d’autres opportunités majeures : par exemple, il permet de constituer une base de données de tous les numéros de portables des diverses unités distantes, de contrôler ou modifier l’état des 8 sorties ou 8 entrées des éventuelles interfaces connectées, etc.
Première action pour rendre le logiciel opérationnel et l’installer sur le PC dédié : insérez le CDROM dans le lecteur. Lancez le programme d’installation setup.exe et suivez les indications à l’écran (on vous proposera en particulier un onglet d’installation).
Quand la procédure est terminée, lancez le fichier REM_Siemens.exe : l’écran de gestion générale apparaît.
Elle se compose principalement de deux parties : côté droit se trouve une fenêtre de texte où sont visualisées des informations générales, en haut se trouvent 18 poussoirs activant toutes les fonctions du logiciel.
Avant de voir, une à une, en partant de la gauche, quelles sont les procédures activées par chaque touche, apportons deux précisions concernant le mot de passe et la sécurité. Une caractéristique importante du logiciel est en effet de disposer d’un mot de passe (de 6 lettres/chiffres) ne permettant l’accès à des fonctions particulières du programme qu’à certaines personnes connaissant ce mot de passe. On évite ainsi que quelqu’un d’indélicat n’accède au dispositif, n’en modifie le mot de passe, etc. En outre, l’accès à chaque unité distante est aussi gardé par un autre mot de passe : pour accéder aux données mémorisées dans l’unité distante et à celles émises en temps réel, ou pour paramétrer/lire les états des éventuelles interfaces reliées, il est nécessaire de connaître ces mots de passe.

Analysons maintenant les fonctions liées aux 18 poussoirs :
– Le premier poussoir à gauche indique l’ouverture ou la fermeture du port COM gérant la communication unité de base/PC : une fois la connexion physique entre l’unité de base et l’ordinateur exécutée, vous devez ouvrir un port COM afin de permettre la communication (on vous demandera de spécifier la vitesse de transmission, paramétrez-la à 19 200 bits/s). Bien sûr, si en revanche le port COM est fermé, la communication ne peut avoir lieu.
– Le deuxième poussoir permet d’entrer dans la gestion de la base de données (mémorisées) dans l’unité distante. A l’intérieur de cette fonction, il est possible d’ajouter, d’éliminer ou de modifier les enregistrements (dits “anagraphiques”) de l’unité distante, ou bien de sélectionner une unité avec laquelle activer une communication. Notez bien que, pour modifier la base de données, il est nécessaire d’avoir inséré le mot de passe correct du programme. Ce dernier peut être inséré par pression sur la touche 16 : si le mot de passe correspond à celui mémorisé, en revenant à la gestion de la base de données, des informations supplémentaires, permettant justement de modifier les données mémorisées dans la base de données, sont visualisées. Chaque anagraphique est identifié par le numéro du portable composant l’unité distante, par le mot de passe de cette unité (devant être composé de 6 chiffres et qui est par défaut 123456) et par un nom permettant d’identifier plus facilement les diverses unités. Une fois qu’à l’intérieur de la liste des bases de données on a sélectionné l’unité à appeler, la liaison GSM a lieu en pressant la touche 3. Si en revanche on presse la 4, la liaison s’interrompt.
– Le cinquième poussoir indique la fonction Temps Réel : sous ce mode les données de localisation de l’unité distante sont transmises en temps réel à l’unité de base et donc elles sont visualisées à l’intérieur de la fenêtre de texte, à droite. Quand on est entré dans ce mode, il est possible de fermer le programme (la clôture du programme n’interrompt cependant pas la communication base/distante) et d’ouvrir le logiciel cartographique : il est ainsi possible de visualiser sur la carte la position du véhicule. Notez que les deux logiciels (cartographique et de gestion) utilisent le même port COM pour communiquer avec l’unité de base. Il n’est donc pas possible de les ouvrir tous les deux en même temps, au risque d’un conflit d’accès.
– Le sixième poussoir permet d’indiquer à l’unité distante, avec laquelle on est en liaison, d’effacer les données mémorisées dans son EEPROM.
– Le septième poussoir permet en revanche d’interroger l’unité distante pour lui demander combien de points de localisation ont été effectivement mémorisés. Grâce à ce mode on peut éviter d’exécuter le transfert d’informations mémorisées alors qu’elles ne sont pas en nombre suffisant pour être significatives.
– Les huitième et neuvième poussoirs permettent respectivement d’interroger l’unité distante sur le temps de “polling” paramétré et de spécifier une nouvelle valeur. Rappelez-vous en effet que, lorsque les données sont mémorisées à l’intérieur de l’EEPROM, il est possible de spécifier un temps d’échantillonnage de la localisation.
Par exemple, si l’on spécifie une valeur de 10, la mémoire d’une coordonnée sera faite sur un temps d’échantillonnage d’environ 10 secondes.
– Le dixième poussoir permet d’activer le chargement des données. Quand il a été pressé, l’unité de base demande à l’unité distante d’envoyer toutes les données mémorisées. Ces informations sont sauvegardées dans un fichier de texte dont il est possible de spécifier le nom et l’onglet, ce fichier pouvant être ensuite exporté vers le logiciel cartographique Fugawi. L’écriture dans le fichier n’est cependant pas immédiate : le programme écrit initialement les données dans un “buffer RAM” et c’est seulement à la fin d’un transfert qu’elles sont inscrites dans le fichier spécifié. Ce qui signifie que si durant un transfert la communication GSM devait être coupée, les données entre-temps déchargées ne seraient pas encore disponibles : il faudrait alors ré--exécuter la procédure depuis le début. Souvenez-vous que la logique de l’unité distante prévoit qu’une fois la mémoire EEPROM remplie à ras bord, l’écriture des nouvelles informations efface les anciennes depuis le début. L’envoi des informations a lieu cependant séquentiellement, en partant de la première cellule de mémoire. C’est pourquoi, après le transfert, il peut arriver que les données n’arrivent pas dans l’ordre temporel.
Cet ordre peut toutefois être déterminé simplement en analysant les informations horaires et de date de chaque enregistrement. Dernière remarque concernant la possibilité de coupure de communication GSM pendant un transfert : si cela arrive, il faut attendre quelques minutes avant de rappeler l’unité distante et d’effectuer un nouveau téléchargement, parce que l’unité distante serait occupée à terminer la procédure interrompue.
– Le onzième poussoir permet d’aller contrôler l’état des 8 lignes “out” présentes dans l’interface à 8 sorties éventuellement reliée. Dans la fenêtre, 8 touches sont disponibles pour modifier l’état des relais commandant les sorties : pour chaque sortie une “LED” indique l’état logique. Une touche de “reset” permet en outre de remettre à zéro toutes les sorties et une touche Demande de réclamer la mise à jour des états des 8 sorties.
– Le douzième poussoir permet en revanche de contrôler l’état logique des entrées de l’éventuelle interface à 8 entrées. A l’intérieur de cette fenêtre il est possible de spécifier s’il faut activer ou non l’envoi du SMS d’alarme relatif à chaque entrée et, pour chaque entrée active, de spécifier quel est l’état logique devant donner l’alarme.
A propos de l’envoi des SMS, donnons une petite précision : le SMS doit avoir été mémorisé dans la carte SIM et il est envoyé quand une entrée prend la valeur logique spécifiée. Par exemple, si nous spécifions que l’entrée 1 est active au niveau logique 0, le SMS mémorisé en position 1 est envoyé quand l’état logique de l’entrée 1 passe du niveau logique 1 au niveau logique 0. Ainsi, même si le niveau logique 0 est maintenu pendant un certain temps, les SMS ne sont pas envoyés l’un après l’autre en continu (ce qui serait inutile, un suffit !) : un nouvel envoi n’aura lieu que si l’entrée redevient haute et ensuite redevient à nouveau basse. Dans la même fenêtre, pour chaque entrée (habilitée ou non à l’alarme), l’état logique aussi est visualisé, avec le même procédé à “LED” utilisé pour la propriété des sorties.
Sont enfin présentes deux touches exécutant la mise à jour des états des entrées et l’envoi des paramètres spécifiés. Une ultime note concerne le cas où, pour une raison quelconque, la liaison physique entre l’interface à 8 entrées et l’unité distante serait coupée (par exemple, si le câble RJ45 était détaché accidentellement). Dans ce cas, le PIC de l’unité distante lit l’état des entrées comme étant tous au niveau logique 0. Par conséquent, pour toutes les entrées pour lesquelles avait été paramétré comme état d’alarme l’état logique 0, les SMS d’alarme sont envoyés.
– Le treizième poussoir permet en revanche le transfert automatique des données. Ainsi, quand certaines conditions sont vérifiées, c’est la dernière unité distante qui se connecte automatiquement à l’unité de base et commence le transfert des données.
Par la fenêtre de configuration, il est possible de spécifier, en partant d’un horaire de “start”, la cadence temporelle avec laquelle exécuter le transfert, ou bien de spécifier 8 horaires différents auxquels, chaque jour, on veut exécuter le transfert des données.
Il est en outre possible d’indiquer s’il faut effacer la mémoire après le transfert et le nombre de tentatives de liaison à effectuer pour chaque téléchargement.
– Les quatorzième et quinzième poussoirs sont en revanche utilisés pour gérer le mot de passe des dispositifs distants. Le quatorzième permet à l’usager de demander le mot de passe correspondant à l’unité distante reliée, le quinzième permet en revanche de modifier ce mot de passe.
– Les fonctions des seizième et dixseptième poussoirs, nous les avons déjà données en substance en présentant le logiciel : elles permettent d’insérer ou de modifier le mot de passe du programme, utilisé pour gérer l’accès à certaines fonctions du logiciel.
– Le dernier poussoir à droite est en revanche utilisé pour régler les paramètres du port COM : il est possible de spécifier quel port sériel et quelle vitesse sont utilisés pour établir la liaison. A propos de la vitesse, rappelons que pour un fonctionnement correct, il est nécessaire de spécifier une vitesse de transmission de 19 200 bits/s.

Figure 7a : Ecran principal du programme. Dans la partie supérieure se trouvent 18 poussoirs permettant d’activer les diverses fonctions du logiciel. Dans la partie inférieure, certaines informations de localisation sont visualisées (date, horaire, latitude, longitude, vitesse du véhicule et nombre de satellites reçus).

Figure 7b : Ecran correspondant à la liste des unités distantes mémorisées. Pour chaque anagraphique les données qu’il est possible d’insérer sont le numéro du portable et le mot de passe d’accès à l’unité distante. Chaque enregistrement est en outre caractérisé par un nom permettant une identification plus simple de la part de l’usager.

Figure 7c : Cet écran, correspondant au mode temps réel. Les données de localisation sont transmises par l’unité distante et donc sont visualisées dans la fenêtre principale. Dans cette situation, il est en outre possible d’ouvrir le logiciel cartographique Fugawi, ce qui permet une visualisation, en temps réel, de la position du véhicule sur la carte.

Figure 7d : Ecran correspondant aux paramètres de transfert des données. Il est possible de spécifier le fichier où seront sauvegardées les informations mémorisées. Notez que, pour accélérer l’opération, les données ne sont pas écrites immédiatement dans le fichier, mais temporairement emmagasinées dans un “buffer” en mémoire RAM et, seulement à la fin du processus, inscrites sur le disque dur.

Figure 7e : Ecran correspondant au contrôle des lignes de “out” présentes dans "l'extension bus I2C à 8 relais" (optionnelle). Il est possible, en cliquant sur les 8 touches, d’agir sur les relais de l’interface. L’état des relais est visualisé par l’allumage/extinction des “LED” rouges de la fenêtre. Il est possible de remettre à zéro les 8 entrées et de réclamer la mise à jour de l’état actuel.

Figure 7f : Ecran correspondant au contrôle des lignes de “in” de l’interface à 8 entrées (optionnelle). Il est possible de sélectionner quelle entrée habiliter pour l’envoi du SMS d’alarme et de spécifier quel état logique doit donner l’alarme.

L’état des 8 entrées est visualisé par l’allumage/extinction des “LED” rouges de la fenêtre.

Figure 7g : Ecran de paramétrage du téléchargement automatique des données. Il est possible, en partant d’un horaire de “start”, de spécifier 8 horaires auxquels, chaque jour, on veut exécuter le chargement des données. Il est en outre possible d’indiquer si l’on veut effacer la mémoire après le transfert et le nombre maximum de tentatives de connexions.

Figure 7h : Ecran correspondant aux paramètres du port sériel utilisé pour la communication unité de base/PC.

Il est possible de spécifier le numéro du port COM et la vitesse de transmission à utiliser (19 200 bits/s, c’est la vitesse à laquelle le PIC de l’unité de base communique).

1er partie : Le matériel.
Commentaires



Font Size
+
16
-
lines height
+
2
-