Mar 2013
20

Le montage permet, par de simples requêtes Http, les mesures à distance de la station solaire et le contrôle de l’utilisation pour d’éventuels délestages.

Il est basé sur un EPSOLAR Tracer 2210RN , et devrait être applicable aux autres modèles de la série Tracer ( Tracer-1206RN / Tracer-1210RN, Tracer-3215RN, etc …) du même constructeur (non testé).

 

Tracer_2210RN Code_Lndk_Avra08

Ce régulateur solaire, de type MPPT, comporte une interface série au niveau TTL dialoguant avec un module Arduino OLIMEX (micro-contrôleur Atmega 328), et son extension éthernet. La gestion de l’alimentation de la carte Ethernet réduit la consommation moyenne à ~25mA sous 12V, ce qui en fait un montage plus économe que celui utilisé auparavant depuis 2007.

 

OLIMEXINO-328-01 MOD-ENC28J60-01

Emission de la commande de lecture des mesures :

Serial.write(0xEB); Serial.write(0x90);  // Synchro, répété 3 fois
Serial.write(0x00);     // Device
Serial.write(0xAA);     // Commande
Serial.write(0x01);     // Longueur de donnees
Serial.write(0x00);     // Donnee
Serial.write(0x5D);     // Checksum
Serial.write(0xDB);     // Checksum
Serial.write(0x7F);     // Fin de commande

 

Séquence reçu sur le port série (en hexadécimal)

Synchro EB 90 EB 90 EB 90
Adresse 00
Commande A0
Longueur 18
Données E4 04 14 06 00 00 00 00 4C 04 B3 05 00 00 00 29 00 00 00 01 2B 03 00 00
CRC 16 7F 91
Fin de paquet 7F

Détail des données reçues (tension en dizaine de mV, courant en dizaine de mA)

Tension batterie E4 04
Tension panneaux 14 06
Réserve ? 00 00
Consommation 00 00
Batterie faible 4C 04
Batterie pleine B3 05
Indicateur utilisation connecté 00
Indicateur surcharge 00
Indicateur de court-circuit 00
Etat de charge (SOC) 29
Indicateur Battery Over Load 00
Indicateur Battery Over Discharge 00
Indicateur Battery Full 00
Indicateur de charge 01
Température (degré + 30) 2B
Courant de charge 03 00
Réserve ? 00

Le programme Arduino LndkAvra

A cette page le document PDF de référence de ce programme.

La syntaxe générale des commandes est :

http://adresse_ip[:port]/commande[?p1=valeur1[&p2=valeur2]]

La configuration réseau peut être sauvegardée en Eeprom (adresse MAC, adresse IP, Netmask, Gateway, port HTTP); la carte doit être redémarrée (ou RESETée) pour la prise en compte de nouvelles valeurs; le maintien du bouton BUT de la carte lors du démarrage, ou d’un RESET, permet de retrouver les valeurs par défaut (Adresse IP 192.168.1.25 et port 80).

/MACA?P1=aabbccddeeff (en hexa)
/ADDR?P1=aabbccdd (en hexa, ex :C0A8011A pour 192.168.1.26, 00000000 pour client DHCP)
/MASK?P1=aabbccdd (en hexa)
/GATE?P1=aabbccdd (en hexa)
/PORT?P1=aabb (en hexa)

/MODEECO?P1=n

La consommation de la carte OLIMEX et de son interface réseau est d’environ 100mA sous 12V, mais tombe à 15mA lorsque l’interface réseau est désactivée; par défaut le programme recherche s’il y a une périodicité dans les accès (ce qui est en général le cas si l’accès vient d’un cron,  de Cacti, etc …) et s’il la détecte, la carte réseau n’est activée qu’aux moments où une requête est attendue; cette fonctionnalité permet de ramener la consommation moyenne du montage à ~25mA.

En mode délestage, la carte réseau est désactivée, la consommation est de 15mA durant tout le délestage.

La commande /MODEECO?P1=0 permet de désactiver ce mode, P1=1 réactive le mode recherche de périodicité.

/MESURES

Les données sont remontées en hexadécimal dans les réponses HTTP, ci-dessous un extrait de la réponse à une commande /MESURES  :

0A10 000005C3 04D8 057C 001A 044B 05C8 000B 0A 00 00 24 00 00 00 0A 2B
Etat du programme 0A10 0 : Time not set, A : 10 mesures, etc …
Date (secondes depuis 1/1/1970) 000005C3
Tension batterie (en 10mV) 04D8  1240 * 10 = 12400mV
Tension panneaux 057C  1404 * 10 = 14040mV
Consommation 001A  26 * 10 = 260mA
Tension batterie déchargée 044B  1099 * 10 = 10990mV
Tension batterie pleine 05C8  1480 * 10 = 14800mV
Courant de charge 000B  11 x 10 = 110mA
Utilisation activée 0A  Somme des états
Surcharge 00    « 
Court-circuit 00    « 
Etat de la charge (SOC) 24 Moyenne : 36%
Batterie trop chargée 00  Somme des états
Batterie trop déchargée 00    « 
Batterie pleine 00    « 
Charge en cours 0A    « 
Température 2B Moyenne : 13°C (43 – 30)

Une suite de relevé successifs permet de suivre l’évolution du programme : synchronisation du mode économie de consommation à la deuxième ligne (0A20), mise à l’heure à la quatrième (2A20 et 515406CD), etc …

0A10 000005C3 04D8 057C 001A 044B 05C8 000B 0A 00 00 24 00 00 00 0A 2B 
0A20 000006EE 04D9 057F 001A 044B 05C8 000C 0A 00 00 25 00 00 00 0A 2B 
0A20 0000081A 04DA 0584 0019 044B 05C8 000C 0A 00 00 25 00 00 00 0A 2B 
2A20 515406CD 04DB 0577 0019 044B 05C8 000E 0A 00 00 25 00 00 00 0A 2B 
2A20 515407F9 04DB 05A1 0019 044B 05C8 0017 0A 00 00 25 00 00 00 0A 2B

/LOAD?P1=0 permet de couper l’utilisation sur le régulateur (P1=1 pour réactiver); attention cette commande peut couper un élément réseau permettant d’accéder à la carte Arduino !!!

/DELESTAGE[?P1=nnnn] (nnn en décimal) coupe l’utilisation et la carte réseau pour une durée de nnn secondes; la valeur maximale admise est 86400 (24 heures); appelée sans paramètre la coupure est de 20 secondes. La consommation résiduelle est de 15mA.

/TIME[?P1=nnnn[&P2=mm]] permet la mise à l’heure du montage, nnn (en décimal) est le time_t, secondes depuis 1/1/1970, mm la durée de validité de cette mise à l’heure en secondes; appelée sans paramètre la commande se comporte comme la commande /UPTIME. Exemple d’usage :

curl -s -m 5 -o- « http://adresse_ip/time?p1=$(date ‘+%s’)&p2=3600 »

/UPTIME renvoie la date et durée d’uptime.

 

Montage

 

Solaire_Kermeur_3

Montage sur rails DIN dans un coffret Schneider Thalassa : le régulateur, la carte de contrôle, les protections et l’injection POE (la batterie en bas de coffret n’est pas visible sur la photo)

Le régulateur solaire est configuré en mode manuel, timer1 et timer2 désactivés (mode 17 sur l’afficheur); la charge est donc commandée via le bouton On/Off du régulateur ou par une commande reçu sur la prise série.

Modification du strapp D7/D10 sur la carte Arduino

Ci-dessous un extrait du README de l’example fourni par Olimex sur la page du module MOD-ENC28J60.

|----------------------------------------------------------------------|
|        README for the MODENC28J60 project for the ArduinoIDE                     |
|----------------------------------------------------------------------|
        Arduino IDE version 1.0.3
        This library was tested with an Olimexino-328 + MODENC28J60
                * MODENC28J60 - MOD-ENC28J60 is the easiest way to add 10
                                                Mbit ethernet connectivity to any of our
                                                boards with UEXT connector
        (!!!) The spi communication uses pin D10 as
        the 10th UEXT pin(ENC28J60_CONTROL_CS, refer to the enc28j60.c file.)
        By default, on the Olimexno-328 it is pin D7 that goes to UEXT(10).
        You can either:
        1) Modfy the D7/D10 jumper near the UEXT connector on the Olimexino-328
                so that it connects D10 to the UEXT
        2) Use custom wires between the board and the mod
          (you'd need to connect UEXT 1,2,7,8 and 9 1<->1, and D10 from the board to UEXT(10))

Brochage du connecteur RJ45 du régulateur Epsolar Tracer

Cablage RJ45 Epsolar Tracer

Câblage de la nappe 10 fils sur les connecteurs UEXT

Les fils 2, 3 et 4 (masse, TX et RX) sont renvoyés respectivement sur les points 7, 6 et 5 de la RJ45 du régulateur solaire; les fils 3, 4, 5 et 6 sont interrompus coté module ENC28J60.

Intégration dans Cacti


Mesures_20130512r
Relevé journalier
sol025_2013w49
Relevé hebdomadaire avec délestage systématique tous les jours de semaine de 1H à 7H du matin

Exemple de fonctionnement en mode délestage


sol025_20140125_500

Après plusieurs jours de temps gris, où la charge a été faible, la mesure de batterie à 1H du matin donne une tension moyenne de 12420mV et un SOC moyen de 37% sur la dernière heure. Par précaution, au cas où le temps ne s’améliorerait pas, le serveur Cacti envoie une commande de délestage de 6H, de 1H du matin à 7H le matin; seule la carte Arduino est encore alimentée, la consommation se réduit à 15mA et l’on ne dispose évidemment plus de mesures puisque le réseau est coupé.

A la remise sous tension, la tension batterie est à 12410mV et le SOC à 36%. Au bout de 20 minutes le module Arduino synchronise son mode économie d’énergie (tracé Mode ECO sur le graphique).

Au lever du jour à 8H30, la journée s’annonce ensoleillée. La tension panneau monte à environ 14V sans toutefois provoquer de charge avant 9H30, charge qui reste de l’ordre de 400mA jusqu’à un peu avant midi où elle monte à 6A pendant une demi-heure; le module Arduino désactive son mode ECO à 11H45 dès que la charge batterie a atteint un niveau assez élevé.

Le courant de charge décroît ensuite et se stabilise aux environs de 2A jusqu’à 17H où la charge cesse, le module Arduino repasse en mode ECO et le soleil se couche vers 18H.

Le cumul de charge pour la journée est d’environ 18Ah, avec des panneaux totalisant 160Wc et une batterie de 130Ah; sur la même période de 24H la consommation est d’environ 6.5Ah, donc un excédent de 11.5 Ah.

La nuit suivante à 1H du matin, les moyennes seront de 12730mV pour la tension et de 44% pour le SOC, il n’y aura pas de délestage

Emission de la commande de coupure de l’utilisation :

Serial.write(0xEB); Serial.write(0x90); // Synchro, répété 3 fois
Serial.write(0x00);     // Device
Serial.write(0xAA);     // Commande
Serial.write(0x01);     // Longueur de donnees
Serial.write(0x00);     // Donnee
Serial.write(0x5D);     // Checksum
Serial.write(0xDB);     // Checksum
Serial.write(0x7F);     // Fin de commande

Autre article :

Complément d’information de Janvier 2015

Références :

Manuel d’utilisation du chargeur Tracer 2210RN
Description des échanges avec la commande EPSOLAR MT-5
Spécifications du protocole Modbus
Librairie C de calcul de checksum
L’environnement Arduino
Gestion de l’alimentation du ENC28J60
Sources des versions 0.5 et 0.8 du programme
Sur le Wiki Mikrotik, Solar Power HOWTO

Les data-sheets de quelques composants du régulateur :

Micro-contrôleur ARM 32bit en U1 STM32F103T6
Ampli op en U9 LMV9 32MA
ISOLATION RECOVERY RECTIFIER en D10 ER2002CT
Low Power Low Offset V. Dual Comparators en U10 LM2903 24A
Driver en U7 IR2110S 224P

39 commentaires pour “Contrôle de chargeur solaire”

  1. Gerhard a dit :

    thank you for your investigation on the MT-5 protocol and you great work!
    Is it possible to receive the arduio sketch?

    best wishes
    Gerhard

  2. Marc Dilasser a dit :

    Arduino sketch is available at http://www.lekermeur.net/lndkavr/sources/

  3. daune a dit :

    Bonjour,
    Félicitation pour vos réalisations et merci pour ces infos.
    Je dispose d’un epsolar trace ridentique au votre dont j’aimerai pouvoir suivre production et consommation, mais je ne maitrise pas les systèmes PHP et autres apaches.
    Auriez-vous le nom d’une application Windows qui pourrait effectuer ce genre de travail sans ce serveur ??

    Merci d’avance

  4. Marc Dilasser a dit :

    Il est tout à fait possible d’installer Cacti sous Windows, voir ce tutoriel :
    http://wiki.monitoring-fr.org/cacti/windows-install

  5. Thomas a dit :

    Hello,
    im looking for a charging Controller with Ethernet to see the SOC in % of the Battery. (for a Mikrotik WLAN Repeater on a mountain)

    Can i buy a complete solution from you ?

    BR, Tomas

  6. Marc Dilasser a dit :

    A few charging controller have ethernet :
    – Morningstar TSMPPT, documentation :
    http://www.morningstarcorp.com/en/support/library/TSMPPTdsEng.pdf

    – EpSolar MPPT Solar Regulator 12/24/36/48 V, eTracer series :
    Model ET4415N,
    http://www.i4wifi.cz/img.asp?attid=267431
    http://www.belismart.com/et3415n-etracer-mppt-solar-controller.html

    – probably others …

    but self-consumption is about 2.5w, so you need more panel and more battery and they don’t control the load.

    Sorry, we are not vendors, using an Arduino is a DIY solution, you have to buy the parts :
    https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-328/
    https://www.olimex.com/Products/Modules/Ethernet/MOD-ENC28J60/
    http://www.ev-power.eu/Solar-GridFree/MPPT-Solar-Regulator-12-24-V-Tracer-20A.html?cur=1

    to assemble them, to load the sketch to the Arduino board and to test.

    If the goal is only to monitor the battery, some Mikrotik cards (RB433GL, RB411AR, …) can do that with /system health print or via SNMP, oid .1.3.6.1.4.1.14988.1.1.3.8.0

    Marc

  7. yohann a dit :

    Salut et bravo pour le boulot!

    Je me demandais sans avoir encore lu le code, si c’etais facilement transposable a un shield ethernet wiznet plutot que enc28j60 ?

    Et peut on imaginer surveiller 2 regulateurs avec le meme arduino?

    En tout cas merci!

  8. Marc Dilasser a dit :

    Les shield ethernet autres que le enc18j60 n’ont pas à ma connaissance de mode économie d’énergie. Si on n’utilise pas ce mode, un autre shield ethernet doit faire l’affaire.

    Utiliser un Arduino pour deux (voire quatre) régulateurs, ça doit être possible, voir l’article sur arduino.cc traitant de l’utilisation des séries; le sketch disponible sous http://www.lekermeur.net/lndkavr/sources/ est évidemment à retoucher dans ce cas.

  9. Roberto a dit :

    Hi, have you connect directly the rj45 of the regulator with the serial of Arduino board?

  10. Marc Dilasser a dit :

    Yes, the pinouts GROUND, TX and RX of the UEXT connector are connected to points 2, 6 and 5 of the RJ45 of the regulator.

  11. Roberto a dit :

    The TX pin of the Arduino with RX pin of che epsolar or TX with TX AMD RX with RX?

  12. Marc Dilasser a dit :

    Point 2 of the UEXT (Ground) < ---> Point 7 of the RJ45 (Ground)
    Point 3 of the UEXT (TX ) < ---> Point 6 of the RJ45 (RX)
    Point 4 of the UEXT (RX ) < ---> Point 5 of the RJ45 (TX)
    Connecteur UEXT

  13. yohann a dit :

    Salut marc, une petite question, aurais tu un code fonctionnel qui ne ferait que interroger le regulateur?

    Je cherche a integrer une partie de ton code dans un projet deja bien avancé de domotique. Je ne m’en sort pas meme si ton code est pas mal commenté je n’arrive pas a construire ton schema dans ma tete…

    J’ai extrait mesure_tracer, write_preambule et une partie de la boucle et des variable mais c’est visiblement au travers de plusieurs autre fonctions que tu traite les données et je me perd dans les eth hexa machins 🙂

    J’ai juste besoin d’interroger le tracer, de faire une moyenne comme tu fait et de retourner une ligne comme toi avec la commande /mesure.

    Ce serais chouette si tu avais ca sous la main. ou un peu de temps a offrir.

    Merci! Bon dimanche!

  14. Marc Dilasser a dit :

    Pour intégrer dans du code Arduino :
    Dans le setup :
    – Initialiser le port série.

    Dans la boucle loop
    – Lancer une interrogation toutes les 30 secondes :
    if ((unsigned long)(millis() – t0Mesure) > 30000L) {

    }
    – Traiter les caractères reçus du port série :
    while (Serial.available() > 0) {

    }

    Au bout de 300 secondes (5mn), les 10 dernières mesures sont disponibles dans les tableaux
    static uint16_t mbat[10], msol[10], mcon[10], modv[10], mbfv[10], mcur[10];
    static uint8_t mlod[10], movl[10], mlsc[10], msoc[10], mbol[10], mbod[10], mful[10], mchg[10], mtmp[10];
    Le fait de stocker dix mesures permet de s’affranchir de relevés atypiques assez courants.

    Il suffit donc dans le reste du code Arduino d’utiliser les valeurs contenues dans ces tableaux.

    Les eth hexa machins ne servent qu’à avoir une représentation hexadécimale dans la réponse à une requête HTTP
    Exemple : wget -qO- http://adresse_ip/mesures va rendre :

    <html><head><title>Lndk Tracer </title></head>
    <body><h1>Lndk Tracer version v0.8a </h1>
    2A30 530102F4 0507 0011 001C 0447 05CF 0000 0A 00 00 30 00 00 00 00 27
    </body>
    </html>

    Les réponses ont du coup toujours le même format assez facilement exploitable, exemple la tension panneau à partir de la réponse ci-dessus :

    V=$((0x0507 * 10)); date -r $((0x530102F4)) "+%Y/%m/%d %H:%M ${V}mV"

  15. yohann a dit :

    Merci beaucoup, ca marche super bien. Serial pour la com avec le raspberry, serial1 et serial2 pour les 2 regulateurs, une petite moyenne et une addition des 2 courant de charge et conso.

    J’obtiens des indications bien plus precise que l’ecran d’origine!

    Par contre j’ai l’impression que le courant de charge (mcur) indique ce qui va dans la batterie et non la production.
    C’est a dire que mcur diminue en meme temps que mcon augmente.

    Peux tu me confirmer si tu a la meme observation?
    je pourrais alors ajouter une derniere valeur, mcur+mcon pour avoir un graphique de ma production, de ma charge de batterie et de ma conso.

    Ce sera plus precis et je pourrais me servir de ses infos pour delester (dans de leau chaude et des compresseur d’air) quand la batterie est pleine.

    Aussi, on ne le dit jamais mais de temps a autre (1 ou 2 fois par an) ca fait du bien au batterie de prendre une bonne decharge rapide et une bonne charge derriere. Je pense rajouter cette option aussi avec un peu d’intelligence du type, il fait beau tout les jours depuis Xjour, les batteries sont pleine des le matin alors avant midi, j’allume des consommateurs a fond je descend a presque la limite basse et je remonte a fond dans l’aprem.

    En tout cas merci encore pour ton taf! maintenant que j’ai lu ton code 100fois je me sent capable d’en faire autant mais sans ca j’aurais mis beaucoup de temps. Merci pour tes connaissances 😉

  16. Marc Dilasser a dit :

    Il me semble aussi que mcur est le courant qui va à la batterie, mais je n’ai guère pu le vérifier, dans notre utilisation la consommation est faible au regard du courant de charge (~300mA, en vert sur les graphiques) et il n’est guère possible de la faire varier en production, sauf à interrompre le service d’accès à internet aux abonnés, et à la téléphonie pour certains d’entre eux.

    Une version plus récente du code a été mise en ligne, elle corrige certains bugs découverts cet hiver en production.

    Pour ce qui est du Raspberry PI, je m’en sers en lecteur audio sous RuneAudio, associé à un bon DAC le résultat est plus qu’intéressant.

  17. Rene a dit :

    Hello Mr. Marc Dilasser

    my name is Rene and I am 12 years old and come from Germany. I have a small solar system with a tracer TR1210 and was looking for a display of the data. And I came across your website and wanted to ask if you could help me complete the Arduino code because I do not quite understand your code.

    I want to download only a few data from the tracer, and display on an OLED display.I would be very happy if you would help me a little.

    My Code:

    #include
    #include
    #include

    #define OLED_CS 2 // CS
    #define OLED_DC 3 // DC
    #define OLED_RESET 4 // RST
    #define OLED_MOSI 5 // D1
    #define OLED_CLK 6 // D0
    Adafruit_TFT display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

    static PROGMEM prog_uchar logo16_glcd_bmp [] =
    {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x30, 0x98, 0xCC,
    0xE6, 0xF2, 0xFA, 0x7A, 0x3A, 0x9A, 0xCA, 0xE2, 0xF2, 0xFA, 0x7A, 0x3A, 0x9A, 0xCA, 0xE2, 0xF2,
    0xFA, 0x7A, 0x3A, 0x9A, 0xCA, 0x62, 0x32, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x38,
    0x8C, 0xA6, 0xB3, 0xB9, 0xBC, 0x3E, 0x1E, 0x8E, 0xA6, 0xB2, 0xB8, 0xBC, 0x3E, 0x1E, 0x8E, 0xA6,
    0xB2, 0xB8, 0xBC, 0x3E, 0x9E, 0xCE, 0x66, 0x32, 0x18, 0x0C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x38, 0x2E, 0x23, 0x29, 0x2C, 0x2E, 0x2F, 0x2F, 0x27, 0x23, 0x29, 0x2C, 0x2E, 0x2F, 0x2F,
    0x27, 0x23, 0x29, 0x2C, 0x2E, 0x2F, 0x2F, 0x27, 0x33, 0x19, 0x0E, 0x03, 0x01, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    void setup()
    {
    Serial.begin(9600);
    display.begin(TFT_SWITCHCAPVCC);
    display.clearDisplay();
    }

    void loop()
    {
    display.clearDisplay();

    // Display charge Watt
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(2,30);
    display.print( );
    display.print(« W »);

    // Display charge Amp
    display.setTextSize(1);
    display.setCursor(30,1);
    display.print(« Charge « );
    display.print( );
    display.print(« A »);

    // Display Batt SOC
    display.setTextSize(1);
    display.setCursor(30,30);
    display.print(« SOC « );
    display.print( );
    display.print(« % »);

    // Display Batt VC
    display.setTextSize(1);
    display.setCursor(40,30);
    display.print(« Batt « );
    display.print( );
    display.print(« V »);

    // Display Logo
    display.drawBitmap(0, 0, logo16_glcd_bmp, 40, 24, 1);
    display.display();
    delay(500);

    // Read Data from Tracer TR1210

  18. Marc Dilasser a dit :

    Hello Rene,

    First you have to send the command to the Tracer to request the values :

    Write_Preambule();
    Serial.write(0x01); // Adresse
    Serial.write(0xA0); // Commande
    Serial.write(0x00); // Longueur de donnees
    Serial.write(0x6F); // Check sum
    Serial.write(0x52); // Check sum
    Serial.write(0x7F);

    next collect the datas coming back from the Tracer :

    // ---------------------------------------------------------------
    // Processing the characters received on the serial port
    // ---------------------------------------------------------------
    while (Serial.available() > 0) {
    // get the new byte:
    char *ptr;
    ...
    if (serind >= SER_SIZE) serind = 0;
    }
    }

    You can then display the values stored in these arrays :

    static uint16_t mbat[10], msol[10], mcon[10], modv[10], mbfv[10], mcur[10];
    static uint8_t mlod[10], movl[10], mlsc[10], msoc[10], mbol[10], mbod[10], mful[10], mchg[10], mtmp[10];

    Good luck.
    Marc

  19. Roberto a dit :

    Hi, where you get the power forma Arduino? From rj45 connector, from direct connection on the battery or from the lo ad of che regulator?

  20. Marc Dilasser a dit :

    From direct connection on the battery (red mark on image).

    You can also add a rechargeable Li-Po battery (blue mark), and connect to the load of regulator.

  21. GERARD a dit :

    recherche documentation en français de l’afficheur MT-5 e EPSOLAR

  22. Normand Tremblay a dit :

    Recherche documentation en français du régulateur EPSOLAR TRACER 2210RN

  23. Pascal a dit :

    Bonjour,
    Pouvez-vous me donner l’affectation des contacts de la RJ45 de l’afficheur MT-5 ?

    Merci

  24. Marc Dilasser a dit :

    Brochage de la RJ45 rajouté dans l’article.

  25. Stefan a dit :

    Hi,
    Thanks for sharing your experiance .
    Based on your informations I build an similar system for my dads tracer 4210rn.

    After putting it into operation yesterday everything seemed to work fine.
    In the evening I compared battery voltage and battery loading current with values measured with a multimeter.
    Now I am confused about the values:
    – battery voltage shows 23,95v vs 25,5v measured with multimeter
    – battery loading current permanently sways between 0,1A and 3,5A while the multimeter stable shows 1,5A.
    – PV voltage shows 44V vs real 46V.

    I implemented a CRC check and twice checked the data decoding, so i asume the controller itself provides wrong values.

    Has anyone noticed such a behavior on this unit ?

    I’m not sure at which battery voltage level the led on the controller switch to orange. At the moment I asumes this happens below 24V battery voltage.
    In my case the led switched to orange with the values mentioned above – which let me assume that the controller itself measure the wrong values.

  26. Marc Dilasser a dit :

    Have you compared with the values on the MT5 display ?

  27. Stefan a dit :

    He doesn’t own an Mt 5 Display.
    Further investigations revealed that the Inverter is the cause.
    It seems that the sine wave oft the Inverter influence the current.
    I plan to take the aritmetic average out oft many probes.
    The sampling rate of the tracer will not be high enough to take sufficent probes on one wave so I’ll try to take probes out of contiguos waves.
    At the Moment I stew how to handle the timing…

  28. Marc Dilasser a dit :

    To handle the timing, you can see in the source of the sketch (http://www.lekermeur.net/lndkavr/sources/lndk_avra08/Lndk_Avra08.ino) :


    // Every 30 secondes, probe the values
    if ((unsigned long)(millis() – t0Mesure) > 30000L) {

  29. Fabrice a dit :

    Salut Marc
    C’est faisable d’envoyer juste une commande de délestage de quelques heures avec un echo (ssh ou cron) sur le port série d’un wrt54gl1.1 greffé avec un MAX3233. Donc sans monitoring, sans l’Arduino?
    Merci

  30. Marc Dilasser a dit :

    Oui, c’est tout à fait possible de couper la charge, voir le paragraphe ‘Emission de la commande de coupure de l’utilisation’ ci-dessus.
    Il n’y pas à utiliser un MAX3233, les niveaux sont TTL.
    Le régulateur ne gère pas de durée de coupure et il faut donc pouvoir émettre une commande de rétablissement au bout de la durée souhaitée (sinon c’est le rétablissement manuel sur site); dans notre cas c’est l’Arduino, resté alimenté durant tout le délestage, qui le fait.

  31. Fabrice a dit :

    Merci Marc
    Je vais devoir vérifier les niveaux I/O pour le wrt54gl (il me semble que c’est du 0-3V3, pas du 0-5V, il faudra peut-être que j’adapte).
    Je n’aurais donc plus qu’à envoyer un echo -e \\xHH\\xHH… > /dev/ttyS1 après avoir calculé le checksum en externe, c’est bien ça? Pour avoir un système manuel minimaliste de délestage. Sinon, c’est vrai l’automatisme avec l’Arduino a l’air bien sympa.
    Dernière petite question: j’ai vu que tu as choisi un Tracer2210RN (20A 260Wp @ 12V): c’est par sécurité ou efficacité par rapport au 1210RN (10A 130Wp @ 12V)? Tes 2 panneaux donnent en théorie 132Wp, moi j’ai un seul 130Wp (Voc ~24V Ics ~6.8A), donc comme le seul critère à ne pas dépasser pour le panneau est de 100V dans la série x210RN, je me demande si le 1210 (ou même un 1206 60Voc ) ne serait pas meilleur en rendement en travaillant quasiment à sa pleine échelle plutôt que le 2210 à mi-échelle.
    Bien à toi
    Fabrice

  32. Jb a dit :

    Bravo et merci Marc pour ta réalisation et ta coopération.
    Question : la solution fonctionne t-elle avec un arduino Uno ?
    Merci par avance,

  33. Marc Dilasser a dit :

    La solution fonctionne probablement avec un Arduino Uno, je n’ai pas testé.
    Toutefois il ne semble pas que l’alimentation du Uno soit optimisée pour du 12~15V (voire du 24~30V) que l’on peut trouver sur une station solaire.

  34. UNO a dit :

    How do I connect the harware and modify the program for use with Arduino UNO with ENC28J60 Ethernet LAN Network Module? UNO does not have the UEXT interface. Would use Pin GND, 13 & 12 for RS232 and but how about connecting to ENC28J60?

  35. Mike a dit :

    Hi,
    I was wondering if what you did with the Arduino was directly doable with a PC, or if really the Arduino was the easiest/cheapest solution?

  36. Marc Dilasser a dit :

    Yes it’s doable with a PC.
    But a PC draw 30W or more, an Arduino less than 500mW.
    Arduino boards are cheap (~30$).
    More information at this page : http://blog.lekermeur.net/?p=2509

  37. Jordan a dit :

    Bonjour,
    J’utilise ce régulateur pour un projet pour une entreprise, je dois afficher la production instantané des panneaux solaires, mais tout ça avec une raspberry pi.
    Je voulais juste savoir si quelqu’un la fais ? Car j’ai fais des tests sans succès. Et est-ce qu’on a bien le courant au borne des panneaux solaires ?

  38. bruno.m a dit :

    bonjour
    pour un projet d’étude je suis a la recherche de la façon de discuter avec un epsolar tr2215, c’est a dire le même que vous et un raspberry. afin de re-exploiter les valeurs. pouvez-vous me venir en aide ?
    15. Yohann dans le blog avait l’impression de l’avoir fait

    merci d’avance

  39. Marc Dilasser a dit :

    La connexion d’un Raspberry Pi est décrite à cette page du site.

    Le montage de Yohann (post 15) semble un peu différent : l’Arduino reste en interface de deux régulateurs Epsolar et dialogue avec un Raspberry sur un troisième port série.