Le Net du Kermeur
Interface pour station solaire

 

Cette interface permet de contrôler à distance une station solaire photovoltaïque alimentant un relais hertzien. Elle permet différentes mesures et commandes (délestages, ventilation, etc ...) et dialogue avec un des routeurs du relais hertzien.

Cette page complète l'article paru sur le site du Net du Kermeur .

Cette réalisation est depuis début 2013 remplacée par une interface sur une base Arduino.


Base matérielle

Circuit ATMEGA8535 et carte interface 4 relais, disponibles chez Futurlec.
Consommation sous 5V : 100mA environ + 30mA par relais activé; soit un maximum de 220mA.

Fonctionnalités

8 points de mesure de tension, 4 sont réservés pour des usages internes : tension d'entrée, tension d'utilisation, 5V alimentant les circuits logiques, relevé de température.
La consommation peut être calculée par tension entrée - tension d'utilisation divisé par la valeur du shunt.
8 Input/Output dont 4 réservés pour la carte relais.
4 relais dont deux pour les délestages de consommation, un pour la commande de ventilation (en cas de température trop élevée) et un libre.

L'horloge interne permet de gérer des durées pour les commandes ou les attentes; elle devrait permettre, sur une prochaine version du programme, les commandes à heure programmée. La précision n'est pas très élevée et il vaut mieux prévoir une mise à l'heure régulière (cf. infra commande DATE).

L'interface d'accès à la carte est le port série, configuré en 19200 bauds 8N1.
Diagramme

Programme LNDK_AVR

Les sources du programme pour l'Atmega8535 (GCC/AVR).

Jeu de commandes

L'invite s'affiche ainsi : --> et indique que l'interface est prête à recevoir une nouvelle commande; si elle ne s'affiche pas au lancement du terminal, taper simplement [RETOUR_CHARIOT] pour forcer un affichage de la bannière.
Les commandes sont insensibles à la casse et peuvent donc être saisies aussi bien en majuscules qu'en minuscules.
Une commande correctement exécutée donne OK, sinon ERR.

HELP

Pour des raisons d'encombrement mémoire, l'aide n'est plus intégrée mais renvoie à cette page.

VERSION

Renvoie la version du programme de l'ATMEGA8535, actuellement AVR004 version 0.01.

DEBUG

Rend les sorties un peu plus verbeuses.

DATE [OFFSET]

Permet de lire l'heure.
L'interface doit préalablement avoir été mise à l'heure; sinon rend l'uptime.
La mise à l'heure se fait par la commande DATE nnnnnnnnnn est la date actuelle exprimée en secondes depuis 01/01/1970.

UPTIME

Rend l'uptime du système.

TESTLED

Utilise le point 1 du port B pour faire clignoter la LED au rythme de la seconde, en cas de trafic sur le port série, la cadence s'accélère.
Le cavalier LED/PB0 doit être sur la position LED.
Permet de vérifier que le programme fonctionne bien et de visualiser le trafic du port comm, mais on perd une I/O.
Relancer une commande TESTLED pour arrêter le mode test.

PORTB 1..8 [ON-OFF [DUREE]]

Modifie l'état du port 1 à 8 du PORTB.
Attention : l'état OFF correspond à une sortie 0V qui est l'état actif, ON à 5V.

PORTBS

Liste l'état des ports 1 à 8 du PORTB.

MODEB [nn]

Affiche ou modifie le mode des ports 1 à 4; ils sont par défaut en mode input, mettre à 1 pour les forcer en mode output.

RELAIS 1..4 [ON-OFF [DUREE]]

Correspond aux commandes PORTB 5..8 ON-OFF [DUREE]]; ces ports sont utilisés en interne par la carte 4 relais.
Toutefois le sens ON correspond au relais actif contrairement à la commande PORT.

ADCA 1..8

Mesure de la tension d'un port analogique_digital.

ADCAS

Relevé des mesures de tension de tous les ports analogique/digital.

WATCH [ nnn Commande | OFF ]

Permet de lancer une commande RELAIS ... ou PORTB .. si aucune commande valide n'a été reçue pendant nnn secondes; exemple :
WATCH 600 RELAIS 1 ON 10
Activera le relais 1 pendant 10 secondes si pendant 10 minutes aucune commande valide n'a été reçue.
WATCH OFF
Désactive le watchdog.

Exemple de communication

  ----------------------------------------
LNDK_AVR006v0.01 11/2007
----------------------------------------
-> date
Date 2008-05-21 20h 27m 33s
OK
-> uptime
Uptime 118j 6h 53m 02s
OK
-> adcas
ADC 1 : 1
ADC 2 : 0
ADC 3 : 0
ADC 4 : 1
ADC 5 : 533
ADC 6 : 520
ADC 7 : 508
ADC 8 : 291
OK
-> dummy
ERR
 


Emulation de terminal

Il vous faut bien évidemment soit une console série, soit un programme d'émulation de terminal pour pouvoir dialoguer avec l'interface RS232. Ci-dessous quelques uns, il en existe bien d'autres.
OSProgrammeRemarques
Linux, *BSD minicom Automatisation avec option --script, exemple
MacOsX ZTerm + adapteur série sur le Mac !!!
Openwrt microcom (script possible) + package setserial (et interface MAX232 sur le WRT54GL)
RouterOS /system serial-terminal serial0 (pas de script) A partir d'une console RouterOS(winbox, ssh, etc ...)
Automatisation possible : module Perl Expect
Telnet sur serveur RFC2217 (cf /port remote...) A partir d'une machine distante, script Perl Net::Telnet
Windows Hyperterminal  


Intégration matérielle


La carte ATMEGA8535 et la carte interface quatre relais sont placées sur le circuit imprimé d'un Linksys WRT54G HS, débarassé de ses composants, sauf la régulation 5V qui alimente le montage.

Le port WAN est transformé en port série, cablage Cisco

Les ports ethernet 1, 2 :
Quatre interfaces ADC de 1 à 4;
Les entrées 5 à 8 sont utilisées par le boitier lui-même : tension de batterie, tension d'utilisation, mesure du 5V et température
Les ports ethernet 3, 4 :
Quatre ports I/O de 1 à 4
Les ports 5 a 8 sont cablés sur une carte 4 relais interne, permettant de commuter 5A sous 250V (ou 10A sous 24V)


Vue du relais Wifi



On distingue les deux panneaux solaires, le coffre à batterie (en blanc), le coffret (contenant le régulateur solaire,
l'interface décrite dans cet article et le routeur Mikrotik) et les deux antennes patch 15dB et directionnelle SD19
.

Intégration dans Cacti


Auteur : Marc Dilasser, Septembre 2007, mail : md AT lekermeur.net