Récepteur de télécommandes pour le signal Tempo EDF

Introduction

Tempo est un type d'abonnement de fourniture d'électricité que EDF met à la disposition de ses clients. Cet abonnement est caractérisé par un prix variable du kw/h en fonction des tranches horaires (jour/nuit) et de 3 catégories de jours : les bleus au tarif bon marché, les jours blancs au tarif moyen et les jours rouges au tarif très cher. Pour savoir plus sur tempo voir son fournisseur [1].

Compte tenu des différences dans les tarifs, il est indispensable de disposer, au tableau électrique, d'une télécommande jour/nuit pour commander un appareil comme par exemple un chauffe-eau et de signaler, à l'utlisateur, le tarif du jour en vigueur. Bien que toujours disponible au compteur électrique, cette télécommande ne l'est pas forcément au tableau électrique et dans certains cas il n'est pas très simple de l'y faire parvenir. Ce projet est destiné à pallier ce défaut. En effet les informations sont transmises régulièrement sur les fils d'énergie sous le nom de signal de télécommande. Il suffit de les intercepter, de les décoder et de commander un relais. Ceci étant fait, les informations sur le tarif du jour sont aussi disponibles et peuvent être affichées.

Avec la signalisation Tempo, il est aussi possible d'établir une certaine notion de l'heure. En effet, les signaux arrivant à une heure précise on peut en profiter pour recaler une horloge interne du micro. Ceci donne la possibilité d'exécuter des actions à des heures autre que celle des télécommandes.

Le signal de télécommande

Le signal de télécommande EDF est une trame de 40 bits d'informations + 1 bit de start, émise, avec un séquencement particulier, à des heures régulières. Ce tableau résume les bits de la trame, qui nous concernent. et les informations qu'ils portent. Le signal est une sinusoide de fréquence 175 Hz émise uniquement, lorsque l'état logique du bit est 1, en superposition au signal d'énergie à 50 Hz. Une description plus détaillée peut être trouvée dans l'article [2].

Implémentation

Le montage est constitué d'un microproceseur Atmega8 de Atmel. Le signal est prélevé sur un enroulement de transfo et appliqué sur l'entrée ADC0 du micro qui correspond à une des entrées du convertisseur analogique numérique CAN. Un potentiomètre permet d'ajuster le niveau crête à crête entre 0 et 5V. Le reste du traitement se fait par logiciel.

La partie logicielle du récepteur est constitué de 2 fonctions : le détecteur et le séquenceur.

Le détecteur lit les informations, dont la valeur est comprise entre 0 et 255, sur le CAN à un rythme de 700 Hz ( 4 * 175) et les applique à un filtre numérique équivalent à un filtre passe bande à 175 Hz ( Fréquence d'échantillonnage / 4). On évalue alors l'énergie du signal en sortie du filtre, ce qui a pour effet de produire des nouveaux échantillons à la fréquence de 5 Hz. Ceux ci sont comparés à un seuil de valeur 128, pui normalisés à la valeur de sortie 1 si la valeur se trouve au dessus du seuil et sinon 0. C'est cette dernière valeur qui est récupérée par le séquenceur.

Le séquenceur cadence la réception de la trame complète. Pour cela il se met en attente du signal start. En pratique on suppose qu'il s'agit du signal start dès le détecteur a fourni le niveau 1, mais il faut le vérifier. En effet, un parasite produisant un niveau 1 isolé ne doit pas déclencher la réception. On mesure la durée du start par comptage du nombre d'échantillons à 1. En théorie, il doit y en avoir 5, parce que les échantillons arrivent à la cadence de 5 Hz et que la durée du start est de 1 seconde, mais en pratique il peut y en avoir que 4, du au calage du détecteur par rapport au start. La décision est finalement prise si le nombre est supérieur à 2. On établit alors une fenêtre définissant l'emplacement dans le temps du prochain bit qui est le bit 1 de la trame ( notez qu'il est numéroté 0 en interne !).

Ensuite pour chacun des 40 bits de la trame, on compte le nombre d'échantillons à 1 arrivant dans la fenêtre. Si le nombre est supérieur à 2 la valeur du bit est positionnée à 1 et sinon à 0. La valeur du bit est stockée en mémoire, puis on recalcule la fenêtre pour le prochain bit. En fin de trame, les bits sont analysés et les actions suivantes sont prise en conséquence :

  1. envoi d'un message à l'afficheur [3].
  2. positionnement de la commande jour/nuit si nécessaire

Maintenir une certaine notion de l'heure avec tempo

Tous les microproceseurs savent très bien maintenir une horloge interne à partir du moment où elle a été initialisée. Mais pour initialiser une horloge, il faut bien souvent une intervention manuelle au démarrage et après chaque coupure ou microcoupure de courant, encore faut-il qu'il y ait quelqu'un pour le faire. Par contre, avec Tempo, on peut mettre à profit le fait que les télécommandes arrivent à des heures bien précises pour remettre à l'heure l'horloge interne. En effet, pour 12 sur 13 , on peut directement en déduire l'heure d'après l'état de certains bits. Pour la 13 ième, il faut aussi connaitre les états de la télécommnde précédente. Ce n'est pas parfait, mais c'est mieux que rien !.

Le matériel

Le matériel se compose de 2 cartes:

la carte microprocesseur

Le microprocesseur est un AVR Atmel Atmega8. Ce micro possède 8 Koctets de mémoire programme flash, ce qui est largemnt suffisant pour cette application et permet l'écriture du programme en C, 512 octets de la mémoire non volatile Eeprom pour stocker nos heures d'alarme, un usart pour la mise au point du programme et la communication avec un afficheur déporté, un convertisseur analogique numérique nécessaire pour le traitement du signal de télécommande. Les leds permettent la visualisation en local des couleurs du jour et les switches permettent d'activer ou non les alarmes.

la carte alimentation et les commandes triac

L'alimentation 5 Volts est obtenue à partir d'un transfo 20V de récupération (sinon, il n'aurait sans doute pas fait 20V) alimantant un conrtisseur continu continu qui a l'avantage d'éviter les dissipations inutiles d'énergie.

A défaut d'un deuxième enroulement sur le transfo, on utilise un deuxième petit transfo pour la fourniture du signal de télécommande. Un niveau de 2 Volts efficace est suffisant pour ce signal.

Les triacs sont commnadés par des photocoupleurs fournissnt ainsi un isolement galvanique nécessaire. Un triac commande directement le relais jour/nuit 20A du tableau électrique. L'autre commande directement la charge.

Le logiciel

Le logiciel est écrit en C et est contenu dans le fichier tempo.c. Outre les fonctions classiques d'initialisation, il contient les fonctions évoquées a paragraphe implémentation et Maintenir une certaine notion de l'heure.

Les fichiers rs232.c, boot.c, avrutil.c sont des fichiers communs (à mes projets). En effet certains modules se retrouvent systématiquement dans des projets qui, à priori, n'ont rien de commun entre eux.

Le logiciel sur PC ... Linux

Le projet a initialement été développée sur un PC avec le logiciel Simul [4]. Il était nécessaire d'abord de simuler le signal de télécommande afin de mettre au point le récepteur, puis de passer, avec des conditions moins idéalistes, sur le signal réel. Mais on sait que le signal n'est émis que 13 fois par 24 heures, ce qui est insuffisant pour des essais intensifs. L'enregistrement, dans un fichier, du signal échantillonné a permis de le rejouer autant de fois que nécessaire.

D'autre part la solution sur PC n'engageait pas un investissement matériel énorme puisque seul le petit montage suivant raccordé à une carte son (que tout PC possède) était nécessaire.

transfo 6v

Outils de développements

Le logiciel est développé sur un systeme Linux Fedora FC7. Pour ce faire, il est nécessaire de disposer d'un compilateur spécifique pour les AVR et installer les paquets gratuits suivants, qui ne sont pas installés par défaut :

Les schémas sont crées avec gschem qui fait partie de la suite gEDA.

Références Documentaires

  1. Site EDF
  2. Matthieu Benoit concernant la détection des impulsions EJP
  3. carillon et afficheur.
  4. un simulateur pour la mise au point du récepteur tempo

Download