星期五, 二月 17, 2012

Une extension pour le contrôleur domotique via l’Internet "Seconde partie et fin : L’extension et le logiciel"

L’appareil ET493 gère des entrées et des sorties, analogiques ou numériques, par l’Internet. Il est idéal pour des applications de contrôle à distance d’une maison, d’un bureau ou d’une petite société. Dans cette deuxième partie, nous décrivons le logiciel SW493 et nous verrons comment utiliser le port bus I2C pour une extension ET499 du système à de nouvelles entrées/sorties.

Dans la première partie de l’article nous avons construit le Contrôleur domotique via l’Internet ET493 : c’est un appareil qui, relié à un LAN, rend disponibles une série d’entrées/sorties numériques et analogiques (en particulier huit entrées numériques, huit sorties numériques, huit entrées analogiques, deux sorties analogiques, un sortie d’alarme plus un jack permettant, par la ligne bus I2C et en reliant divers périphériques d’extension, d’étendre le système à de nouvelles entrées/sorties).
En outre, grâce au fait que le système utilise un IP propre, les “inputs/outputs” peuvent être joints par n’importe quel PC relié à l’Internet. Les domaines d’applications possibles d’un tel système sont multiples : il peut en effet être utilisé dans tous les cas où il est nécessaire de surveiller ou contrôler à distance des entrées et des sorties.
Dans la première partie, nous avions envisagé, sans entrer dans le détail, de l’utiliser en Contrôle domotique : par exemple, un usager, se connectant par l’Internet à partir d’un PC situé à distance de notre appareil, peut utiliser une entrée analogique de manière à lire et afficher la température mesurée par un capteur situé à l’intérieur d’un environnement.
Une fois connue la valeur de la température, l’utilisateur, par le biais d’une sortie numérique, peut commander la mise en marche ou l’arrêt d’une chaudière. Enfin, en utilisant une entrée numérique l’usager peut vérifier que la commande a bien été exécutée.
Dans la première partie de l’article, nous avons décrit le matériel et avons construit l’appareil de base ET493.
Dans cette deuxième partie, nous nous occuperons du logiciel désigné par Projet Maison et réalisant un programme complet de gestion à distance du système.
Nous nous pencherons aussi sur l’extension bus I2C des sorties analogiques permettant d’étendre à huit sorties analogiques le Contrôle LAN. Le logiciel a été développé pour réaliser des applications de contrôle domotique mais, grâce à sa remarquable adaptabilité, il peut être utilisé pour des applications plus générales.


L’extension à huit sorties analogiques ET499
La fonction du périphérique est d’étendre le contrôle LAN à huit autres sorties analogiques. La liaison entre l’extension et le contrôle se fait par une ligne bus I2C : c’est pourquoi il est possible de relier à l’appareil un maximum de huit extensions de ce genre, ce qui fait un complexe de 64 sorties. Le standard bus I2C prévoit en effet pour chaque périphérique une adresse composée de trois bits (A0 à A2). A l’intérieur de notre circuit, l’adresse de chaque extension peut être sélectionnée en laissant ouverts ou en fermant les trois cavaliers J1 à J3. Il est par conséquent possible d’obtenir un maximum de huit combinaisons différentes ou bien, comme nous disions ci-dessus, huit circuits différents.
L’interface est munie de deux ports RJ45 tous deux en parallèle (toutes les données entrant par un port sont également présentes sur l’autre), ainsi, sur l’unique ligne on peut connecter plusieurs unités en série.
Les huit sorties de chaque extension sont disponibles à l’extérieur à travers autant de borniers à deux pôles. En outre, un trimmer permettant de régler la valeur de la tension maximale de sortie (spécifiable à l’intérieur de la fenêtre de 0 à 12 V) est présent dans le circuit.

Le schéma électrique d’une extension
Le schéma électrique de la figure 1 montre que l’alimentation (+12V) doit venir de l’extérieur par la broche 5 du connecteur RJ45 (elle vient directement du Contrôle I/O LAN ET493). Toute la logique de fonctionnement du circuit est basée sur le circuit intégré U1 Philips TDA8444 contenant huit convertisseurs N/A à six bits (broches DAC0 à DAC7, 9 à 16) pouvant être contrôlés par ligne bus I2C. Les broches 3 (SDA) et 4 (SCL) du circuit intégré (réalisant, justement, la ligne bus I2C) sont reliées, au moyen du connecteur RJ45, au PIC présent dans le contrôleur LAN ET493, lequel peut donc contrôler les huit sorties de chaque extension. Les broches 9 à 16 (représentant les “outputs” des DAC) sont en revanche disponibles à l’extérieur au moyen des borniers correspondants.
Les broches 5 à 7 de U1 représentent, elles, les trois bits A0 à A2 de l’adresse du circuit intégré : afin d’en permettre le paramétrage, nous avons prévu trois résistances de “pull-up” (R1 à R3) et trois cavaliers J1 à J3. Enfin, la broche 2 (Vmax) spécifie le niveau maximal de tension pouvant être produit par les sorties : afin d’en permettre le réglage, elle a été reliée au trimmer R9.

Figure 1 : Schéma électrique général du circuit d’extension à huit sorties analogiques.

Le coeur du circuit et le circuit intégré U1 TDA8444 Philips constitué de huit convertisseurs N/A à six bits (broches 9 à 16) pouvant être programmés par voie logicielle en utilisant la ligne bus I2C (broches 3 et 4). La broche 2 (Vmax) est utilisée pour spécifier le niveau de tension maximale de sortie.

Liste des composants
R1 = 10 kΩ
R2 = 10 kΩ
R3 = 10 kΩ
R4 = 1,2 kΩ
R5 = 4,7 kΩ
R6 = 4,7 kΩ
R7 = 1,2 kΩ
R8 = 1,2 kΩ
R9 = trimmer 10 kΩ
C1 = 100 nF multicouche
C2 = 470 μF 16 V électrolytique
D1 = 1N4007
DZ1 = zener 5,1V
U1 = TDA8444

Les résistances sont des 1/4 W avec tolérance de 5 %.

Divers :
3 cavaliers mâles à 2 pôles
3 “straps” femelles pour cavaliers
8 borniers 2 pôles enfichables
1 support 2 x 8
2 connecteurs RJ45


La réalisation pratique
Nous pouvons maintenant passer à la construction de l’appareil. Le circuit tient sur le circuit imprimé dont la figure 2b donne le dessin à l’échelle 1. Vous pouvez le réaliser vous-même par la méthode indiquée dans l'article : "Comment fabriquer vos circuits imprimés facilement ?".
Quand vous avez devant vous le circuit imprimé gravé et percé, montez-y les composants dans un certain ordre (en ayant constamment sous les yeux les figures 2a et 3 et la liste des composants).
Commencez par monter le support du circuit intégré : soudez-le et 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) et le trimmer R9. Montez la diode D1 1N4007 en orientant soigneusement sa bague repère-détrompeur vers R9 et la zener DZ1 bague vers le cavalier J1. Montez les deux condensateurs (en ayant soin de respecter la polarité de l’électrolytique, la patte la plus longue est le +).
Montez les deux RJ45 et les huit borniers enfichables.
Vérifiez que vous n’avez rien oublié et contrôlez encore une fois toutes vos soudures.
Insérez le circuit intégré U1 dans son support, repère-détrompeur en U orienté vers le bas de la platine, soit le bornier numéro 6.

Figure 2a : Schéma d’implantation des composants de la platine d’extension.

Figure 2b : Dessin du circuit imprimé de la platine d’extension à l’échelle 1.

Figure 3 : Photo d’un des prototypes de la platine d’extension.

Le logiciel Projet Maison
Ce logiciel représente l’inter face à distance de notre Contrôleur I/O LAN ET493. On l’a dit, il s’agit d’un programme conçu pour réaliser un système complet de gestion domotique d’une habitation, d’un bureau ou d’une petite société. Le logiciel est constitué d’un exécutable PCasa.exe compatible avec les systèmes d’exploitation Windows. Lors de sa première exécution, le logiciel produit deux fichiers (paramètres.INI et ports.INI) utilisés pour mémoriser certaines informations de configuration de caractère général.
Vous vous souvenez sans doute que le Contrôleur I/O LAN ET493 est en mesure de fonctionner au moyen de la liaison sérielle RS232 (dans ce cas, il est nécessaire d’utiliser un convertisseur de format TTL/RS232) et de la liaison TCP/IP : une fois le programme lancé, la première opération à exécuter est justement la sélection du type de liaison. A partir du menu Liaison, sélectionnez TCP/IP ou SERIELLE, selon le type de liaison souhaité. Dans le premier cas, il est nécessaire de spécifier au programme l’adresse IP et le port TCP à utiliser pour se connecter au dispositif, dans le second cas, il faut en revanche indiquer quel port COM utiliser (les autres paramètres concernant le port sériel sont déterminés automatiquement par le programme). A partir de là, au moyen de l’icône correspondante, il est possible de sauvegarder la configuration courante.
Une caractéristique importante du programme est que, dans la partie inférieure des écrans, une fenêtre de log est utilisable pour visualiser toutes les données envoyées ou reçues par le dispositif : la fenêtre peut être activée en accédant au mot “log” dans le menu. Grâce à cette fenêtre, il est donc possible de savoir si le programme fonctionne correctement et si le dispositif a effectivement réagi. Le logiciel se divise en quatre sections principales (dénommées Sorties numériques, Entrées numériques, Sorties analogiques et Entrées analogiques) : à partir de la première fenêtre, il est possible, par un seul clic, de les atteindre toutes. Voir figure 4.
La section Sorties numériques, comme le montre la figure 5, se compose de huit touches représentant les huit sorties. Grâce à des couleurs différentes, l’état logique qu’elles prennent est représenté (vert pour relais non excité : borne C reliée à la borne NC, rouge pour relais excité : bornes C et NO reliées).
En cliquant sur une de ces touches il est possible d’inverser l’état logique du relais correspondant. Quatre boutons sont en outre présents : Demande permet la mise à jour de la visualisation de l’état logique des huit sorties, “Reset” de réinitialiser les huit sorties, Page initiale de revenir à l’écran principal du programme et enfin Périphériques permet de passer à la section Périphériques sorties numériques.
Avec cette section, comme le montre la figure 6, sont gérés les périphériques d’extension des sorties numériques : par le menu situé à gauche, il est possible de sélectionner le périphérique que l’on veut adresser (rappelons qu’il est possible d’en relier huit au maximum, l’adresse de chaque périphérique est sélectionnée au moyen du paramétrage des trois cavaliers). Dans ce cas aussi sont présentes, pour chaque unité, huit touches représentant, avec la même méthode que précédemment, l’état des relais correspondants.
Dans ce même écran, il est possible de réinitialiser les sorties du périphérique sélectionné (bouton “Reset”), de réinitialiser les sorties de tous les périphériques de sorties numériques (bouton “Reset” de tous les périphériques), de demander la mise à jour de l’état des sorties (bouton Demande) et enfin de revenir à l’écran précédent (bouton Sorties numériques).
Passons maintenant à la section des Entrées numériques (voir figure 7) : elle se compose aussi principalement de huit indicateurs montrant l’état pris par les diverses entrées (la couleur verte indique que l’état logique de l’entrée est bas, rouge qu’il est haut). A côté de chaque indicateur se trouve une touche permettant de spécifier si l’entrée doit être habilitée ou non pour donner l’alarme.
Il est en outre possible de choisir si l’alarme doit se déclencher quand l’entrée devient haute ou basse. Dans la partie inférieure de l’écran se trouvent une touche (Envoi paramètres) commandant l’envoi des paramètres spécifiés au dispositif, une touche (Demande) réclamant la mise à jour des indicateurs graphiques et une autre touche réclamant automatiquement et continuellement la mise à jour des indicateurs.
Le poussoir Périphériques permet en revanche de passer à l’écran Périphériques entrées numériques (voir figure 8), à l’intérieur duquel sont gérées les entrées numériques présentes sur les extensions reliées. Par le menu situé à gauche, il est possible de sélectionner l’adresse du périphérique relié (dans ce cas également, il est possible d’en relier un maximum de huit au dispositif).
La touche Demande réclame la mise à jour des indicateurs graphiques, enfin, la touche Entrées numériques permet de revenir à l’écran précédent.
Passons alors à l’analyse de la section Sorties analogiques (voir figure 9) : pour chacun des deux “outputs” disponibles se trouve un indicateur de type afficheur LCD visualisant, en pourcentage, le niveau de la tension de sortie. La valeur peut être spécifiée directement au moyen d’un champ de texte (en pressant Envoi, les paramètres sont transmis au dispositif) et par augmentation/diminution en agissant sur deux fl èches (dans ce cas, pour envoyer les paramètres, il est nécessaire de cliquer sur un bouton spécial). Apportons une précision indispensable : le niveau de tension de sortie est spécifié à travers une valeur en pourcent (comprise entre 0 et 100%). Si vous observez le schéma électrique du circuit (dans la première partie de l’article), vous voyez que la tension de sortie est obtenue au moyen d’un convertisseur de tension d’ondes PWM : en “output” une tension de valeur proportionnelle au rapport cyclique de l’onde PWM est produite.
La valeur en pourcent indiquée dans le logiciel correspond justement au rapport cyclique de l’onde. Il existe une relation suffisamment linéaire entre le pourcentage spécifié et la tension de sortie. Par exemple, si l’on spécifie une valeur de 50%, en sortie la tension produite sera égale à la moitié de la Vcc. Dans la partie inférieure de l’écran se trouve en outre la touche Demande permettant la mise à jour des valeurs visualisées.
La touche Page initiale fait revenir à l’écran principal et la touche Périphériques conduit à la section Périphériques sorties analogiques.
Dans cette dernière section du logiciel sont gérés les périphériques d’extension des sorties analogiques (voir figure 10) : dans ce cas aussi, à gauche se trouve un menu dans lequel on peut sélectionner le numéro de l’unité à adresser (comme pour les autres extensions, il est possible d’en relier huit au maximum). Pour chaque unité d’extension sont présentes huit sections où sont visualisées, sur de pseudos afficheurs LCD, les valeurs prises par chaque sortie. Pour cette section également, le niveau de la tension de sortie est spécifié par un pourcentage : dans ce cas cependant, la valeur ne se réfère pas au rapport cyclique d’une onde PWM, mais à la valeur correspondante du convertisseur N/A à six bits lequel, on l’a vu, dispose de huit sorties analogiques.
Par exemple, si l’on spécifie un niveau de 44 %, la valeur 28 est envoyée à l’unité (en effet le nombre entier le plus proche de 44 % de 26 est justement 28). Dans ce cas, il y a donc une relation linéaire entre pourcentage et tension de sortie (en indiquant 44 %, on sélectionne en sortie une tension égale à 44 % du niveau maximum de tension). Dans cette section aussi se trouve la touche Demande utilisée pour réclamer la mise à jour des valeurs visualisées, la touche “Reset” utilisée pour remettre à zéro les sorties du périphérique sélectionné et la touche “reset” de tous les périphériques utilisée pour réinitialiser les sorties de tous les périphériques d’extension des sorties analogiques. Passons à la section Entrées analogiques (voir figure 11) : pour chaque entrée se trouve un afficheur pseudo LCD permettant de visualiser directement le niveau de tension présent à l’entrée. Le programme dispose en effet d’une fonction particulière (dont nous verrons plus loin le réglage en analysant la section des “Sets”) permettant d’exécuter une conversion de niveau de tension en une unité de mesure différente (sélectionnable entre °C, km/h, pourcentage, volt ou pression atmosphérique). Comme pour les entrées numériques, on trouve pour les entrées analogiques, à côté de chaque indicateur, une touche permettant d’habiliter une entrée et de donner l’alarme : dans ce cas, on doit spécifier une valeur minimale et une maximale déterminant la gamme des valeurs autorisées pour le signal d’entrée.
Dans le cas où le signal “d’input” dépasserait les limites minimale ou maximale, le dispositif déclencherait l’alarme. Dans la partie inférieure de l’écran se trouvent enfin des touches permettant d’envoyer les paramètres spécifiés au dispositif (Envoi paramètres), de réclamer la mise à jour des valeurs visualisées (Demande) et d’exécuter la mise à jour automatique et en temps réel des entrées.
Avant de passer à la dernière partie, celle concernant la configuration du programme, notons une particularité touchant toutes les sections gérant les périphériques d’extension : si, à l’intérieur de ces derniers, est adressée une unité qui n’est pas effectivement reliée au contrôleur, le logiciel n’informe pas l’usager de l’anomalie. En outre, les états correspondants des entrées ou des sorties sont visualisés avec des valeurs constantes.
Passons à la section de configuration du programme (accessible par le menu “Sets”) : dans cette partie du logiciel, il est possible de paramétrer une étiquette pour les diverses touches ou les différents afficheurs des Sorties numériques, des Entrées numériques, des Sorties analogiques et des Entrées analogiques (les photos des figures 8 à 11 montrent les valeurs par défaut se référant à un exemple de contrôle domotique). La possibilité de changer les étiquettes vous permettra d’adapter le logiciel à votre cahier des charges. En outre, on l’a dit, dans les Paramètres des entrées analogiques, pour chaque “input”, en plus de l’étiquette, il est possible d’indiquer une unité de mesure et les valeurs minimale et maximale (référées toutes deux à l’unité de mesure) que l’entrée peut prendre. Le programme imposera la valeur minimale spécifiée à la valeur minimale de la tension d’entrée et la valeur maximale à la valeur maximale de la tension d’entrée. En outre, pendant la visualisation, il exécutera automatiquement la conversion du niveau de tension lu en la valeur de sortie.
La dernière fenêtre de paramétrage concerne la durée d’activation du relais d’alarme, lequel peut prendre des valeurs comprises entre 1 et 9 secondes.

Figure 4 : Ecran principal du programme.

Dans la partie inférieure gauche se trouve le menu permettant d’atteindre la section d’entrées/sorties analogiques ou numériques désirée. Dans la partie supérieure se trouvent les champs permettant de spécifier l’IP et le port du dispositif distant (si liaison TCP/IP) ou bien le port sériel à utiliser (si liaison sérielle). La fenêtre de log est en outre mise en évidence.

Figure 5 : Ecran de la section “Sorties numériques”.

Huit touches représentant la valeur prise par les “outputs” (la couleur verte représente un relais non excité, rouge un relais excité) sont présentes. En cliquant sur la touche, il est possible de modifier l’état du relais correspondant. En bas se trouvent des poussoirs permettant de demander l’état courant des sorties, leur “reset”, de passer à la section “Périphériques sorties numériques” ou de revenir à la page initiale.

Figure 6 : Ecran de la section “Périphériques sorties numériques”.

A gauche, il est possible de sélectionner le périphérique à gérer. Dans ce cas aussi, huit touches représentant les états logiques pris par les sorties du périphérique sélectionné sont présentes. En outre, on trouve des touches permettant de demander l’état courant du périphérique sélectionné, son “reset” et le “reset” de tous les périphériques de sortie numériques.

Figure 7 : Ecran de la section “Entrées numériques”.

Huit blocs représentant la valeur prise par les “inputs” (la couleur verte représente l’état logique bas, le rouge l’état logique haut) sont présents. A côté de chaque bloc se trouve un poussoir permettant d’habiliter l’alarme sur la sortie et de spécifier si cette dernière doit être active au niveau logique haut ou au niveau logique bas. Deux touches permettant d’envoyer les paramètres et d’activer la mise à jour automatique sont en outre présentes.

Figure 8 : Ecran de la section “Périphériques entrées numériques”.

A gauche, il est possible de sélectionner l’adresse du périphérique que l’on veut gérer. Pour chaque périphérique huit blocs représentant, selon la même technique que pour les “Entrées numériques”, l’état logique pris par les “inputs” sont présents. Deux touches, permettant de demander l’état pris par les huit entrées et de revenir à l’écran précédent, sont en outre présentes.

Figure 9 : Ecran de la section “Sorties analogiques”.

Pour chacune de deux sorties, un indicateur de type afficheur LCD, permettant de visualiser le pourcentage du niveau de tension, est présent. La valeur peut être paramétrée directement, au moyen d’un champ de texte, ou par augmentation/diminution en agissant sur deux fl èches.
Au moyen de la touche située en bas à gauche, il est possible de demander la mise à jour des valeurs visualisées.

Figure 10 : Ecran de la section “Périphériques sorties analogiques”.

Ici aussi, à gauche, on peut sélectionner l’adresse du périphérique : pour chaque sortie un bloc permettant de modifier (en pourcentage) le niveau de la tension de “output” est présent. Au moyen de deux touches, il est en outre possible de réinitialiser les sorties du périphérique sélectionné ou les sorties de tous les périphériques de sortie analogiques.

Figure 11 : Ecran de la section “Entrées analogiques”.

Pour chaque entrée, un indicateur de type afficheur LCD, qui en visualise la valeur, est présent. A travers la section “Sets” (réglages), il est possible de paramétrer l’unité de mesure, la valeur minimale et maximale de chaque entrée. C’est le logiciel qui, ensuite, exécute les proportions et visualise la valeur correcte. Pour chaque entrée, il est aussi possible de spécifier si l’on veut habiliter l’alarme et paramétrer la gamme des valeurs autorisées.

Figure 12 : Photo d’un des prototypes de l’appareil monté dans son boîtier.

La photo montre comment placer les sept LED en face avant et comment superposer les deux platines (la liaison entre les deux se fait par barrettes à dix et douze pôles dont les sections mâles et femelles sont montées respectivement sur la plus supérieure B et la platine inférieure A).

1er partie : Le matériel.

没有评论:

发表评论