Carte d'Acquisition Web

De wiki
Aller à : navigation, rechercher

Cet article décrit la réalisation d'une carte d'acquisition de mesures et de données. Les contraintes sont les suivantes :

  • enregistrement des données dans une base de données standard
  • acquisition de mesures analogiques et digitales
  • acquisition des informations de télé-information issues d'un compteur Erdf
  • consommation électrique inférieure ou égale à 1W
  • coût faible, inférieur à 100 €
  • charge de réalisation la plus faible possible

Architecture

Un PC associé à une carte d'acquisition du commerce permettrait de remplir tout ces fonctions mais avec une consommation d'énergie trop importante.

Je me suis donc tourné vers les cartes à micro contrôleur avec port Ethernet et stack IP intégrée. L'idée est de transférer les données vers une plateforme d'hébergement web et ensuite d'utiliser la base de données (typiquement mysql) de cette dernière pour les enregistrer (à l'aide de scripts en php). Teleinfo.png

La carte SBC68EC de Modtronixsemble répondre au cahier des charges. Elle est basée sur un PIC18F6680, propose des IO digitales, des entrées analogiques, un UART, etc... Elle s'alimente en 12V et consomme 500 mW. Elle est livrée avec une pile TCP/IP et un serveur web intégré. On peut lui ajouter une carte de prototypage (réf: PT24E-ASM ) et l'intégrer dans un boitier (réf: ENC2015S ) avec une face avant (réf: PT24E) et une face arrière (ENC2015S NET). Il suffit d'ajouter une alim 12V pour avoir un ensemble complet dans un boitier soigné pour moins de 100 €. A l'heure de l'écriture de cet article elle est disponible aux USA (il faudra payer la TVA lors de la livraison) ou en Allemagne. Enfin le soft se charge simplement à l'aide d'un PC et du logiciel Modtronix Network Bootloader Applicationpar le biais de la liaison Ethernet, sans outillage ni câble supplémentaire.

Réalisation

L'objectif est de réaliser une carte qui permette :

  • d' échantillonner les valeurs de deux signaux analogiques sur la plage 0-5V.
  • d'acquérir les informations de téléinformation fournies par deux compteurs ERDF (un pour la consommation d'une habitation, l'autre pour la production d'une installation photovoltaïque).

Prérequis

Avant de commencer il est indispensable de lire la documentation disponible de la carte SB68EC sur le site de Modtronix.

Après avoir lu la documentation, il est aussi conseillé de s'entrainer à utiliser le serveur web intégré et à recharger le logiciel fourni par modtronix à l'aide de l'application netloader.

Electronique

La réalisation de la partie électronique est assez simple. Pour cette version nous avons juste besoin de disposer d'une alimentation sur les point 1 (0V) et 2 (5V), de deux entrées analogiques sur les points 3 (AN0) et 4 (AN1) (il s'agit des points du connecteur 24 broches de la carte de prototypage): il suffit pour cela de souder 4 straps sur la carte de prototypage, ainsi que deux condensateurs de 100 nF pour le filtrage des entrées analogiques. Ces condensateurs peuvent êtres indispensables dans le cas ou le câblage est de grande longueur : les parasites, captés par le câblage et transmis directement au CPU par les ports analogiques peuvent en perturber le fonctionnement et en particulier le "reseter". Les condensateurs permettent de s'affranchir de ce problème et aussi de lisser les signaux mesurés.

Pour cette version nous avons aussi besoin des deux entrées destinées aux signaux de téléinformation ERDF sur les points 21,22 (Téléinfo 1) et 23, 24 (Téléinfo 2)du connecteur 24 broches de la carte PT24E-ASM. Il est nécessaire de réaliser une interface qui permet de démoduler les signaux issus du compteur EdF avant de les injecter dans l'UART du microcontroleur. Pour cela on utilise une version très légèrement modifié de l'interface décrite sur l'excellent site MacodaWiki.

Les trois modifications sont :

  • la suppression de la résistance d'alimentation de l'optocoupleur (inutile selon moi et la datasheet).
  • l'ajout d'une capacité de découplage sur la porte nand (a permis dans mon cas d'avoir un signal beaucoup plus propre en sortie).
  • la duplication de l'étage d'entrée (optocoupleur) qui permet de choisir le compteur utilisé. Pour acquérir les trames du compteur 1, le port B1 du microcontroleur est positionné à 1 (5V), B2 est positionné à 0. L'optocoupleur 1 est alimenté par le port B1 ce qui permet d'arriver au résultat attendu. Pour acquérir les trames du compteur 2 on positionne B1 à 0 et B2 à 1. Note : on pourrait augmenter le nombre ce compteurs connectables en rajoutant d'autres optocoupleurs.

SchemaTeleinfo.png

Le signal de sortie est noté SIG0 car c'est sous ce nom que l'on trouve l'entrée de l'UART du microcontroleur sur la carte de prototypage PT24E-ASM. On obtient alors l'ensemble ci-dessous. CarteTeleInfo1.jpg

La réalisation de la partie électronique est terminée.

Chargement du Logiciel

Le logiciel est une version modifiée (nommée WebSampling) du logiciel SBC68EC Web Server. L'archive du logiciel, contenant les sources, le fichier de description de projet permettant la compilation avec l'IDE microchip MPLAB est disponible en suivant ce lien.

Pour le charger dans la carte SB68EC, le mieux est de s'être entrainé auparavant avec la version v3.06 du logiciel Modtronix (Rappel, lors du chargement du logiciel, le DHCP n'est pas utilisable. Il faut donc au préalable avoir rentrer en dur l'IP, le masque et la gateway dans la page Configuration/Network Setting). Il suffit ensuite, toujours avec le logiciel Modtronix Netloader de charger le fichier WebSampling_68_mc_h221.hex, en ayant pris soin de cocher la case "Update EEPROM Configuration Data". Cela a pour effet collatéral de réinitialiser les paramètres réseau aux valeurs par défaut. Il faudra donc les personnaliser de nouveau. Vous devrez ensuite (toujours avec Netloader) charger les PagesWeb dans la carte à partir du répertoire default de l'archive de WebSampling.

Netloader.png

Votre carte est maintenant fonctionnelle. Si elle est correctement connectée à votre compteur EDF, vous pouvez visualiser la dernière trame TeleInfo échantillonnée en cliquant sur le lien Last Teleinfo Frame du menu de la page web principale. Cette trame est mise à jour toute les minutes.

LastTeleinfoFrame.png

Envoi des Données sur le Web

A des fin de démonstration les données sont envoyées vers le site web www.dom-ip.com. Seule la dernière trame de données reçue est conservée. Vous pouvez consulter ces informations en cliquant ici (vous ne voyez que vos données car ces dernières sont filtrées par adresse IP).

Vous pouvez surtout transférer les données sur votre site web personnel et les enregistrer comme vous le souhaitez. Un exemple de script php de réception se trouve dans le fichier WebServer/upload.php de l'archive WebSampling. Vous pouvez ensuite diriger l'envoi des données à l'aide de la page Configuration/WebSampling Settings. L'IP n'a pas besoin d'être définie si votre serveur DHCP fourni un serveur DNS correct.

WebSamplingSettings.png

En cliquant sur le lien d'accès à la requête http envoyée, on obtient le résultat suivant :

WebSamplingHttpRequest.png

Le champ R00 contient le nombre de secondes depuis le dernier reset de la carte, et R03 le temps UNIX.

Client SNTP

Cette page permet de paramétrer le serveur SNTP et de vérifier que le client SNTP fonctionne correctement.

Sntp.png

Exploitation des Données

Vous pouvez ensuite exploiter les données comme bon vous semble. On trouve d'excellents scripts de présentation des données sur le web, et en particulier sur vesta.homelinux.free.fr.

Pactive.png