F1ATB forum
[conseils] ajout de code au code du RMS - Version imprimable

+- F1ATB forum (https://f1atb.fr/forum_f1atb)
+-- Forum : Forum de F1ATB (https://f1atb.fr/forum_f1atb/forum-3.html)
+--- Forum : Routeur Photovoltaïque (https://f1atb.fr/forum_f1atb/forum-4.html)
+--- Sujet : [conseils] ajout de code au code du RMS (/thread-1539.html)

Pages : 1 2


RE: [conseils] ajout de code au code du RMS - Mike - 16-06-2025

(16-06-2025, 09:51 PM)Rakibou a écrit : mon problème, et ma question, c'est : où je mets ça ?
Je suppose qu'il faut emballer ça dans une fonction, et mettre sa déclaration, son setup et son exécution au(x) bon(s) endroit(s) dans le code existant...

Faire une fonction n'est pas obligatoirement nécessaire. Concernant le lieu, vu que la source de mesure est Enphase un endroit qui me semble adapté serait juste après l'appel à LectureEnphase() (ligne 985 de Solar_Router_V14_25.ino). En le faisant à cet endroit, pas besoin de rajouter un delay et à chaque mise à jour depuis Enphase les nouvelles valeurs seront envoyées.


RE: [conseils] ajout de code au code du RMS - Lolo69 - 17-06-2025

Comme tu as deja le code « tout » seul ca devrait etre simple, avec les conseils de Mike tu devrais t en sortir, si ce n ´est pas le cas , fais signe à la communauté, je regarderai de plus près les 2 codes sources.


RE: [conseils] ajout de code au code du RMS - Rakibou - 17-06-2025

Merci Mike et merci Lolo.
Pour la partie loop, l'emplacement indiqué par Mike me semble parfait.
Il faut que je regarde où mettre la partie setup (qui figure peut-être déjà quelque part).
Merci de votre coup de main, je vous tiens au courant.


RE: [conseils] ajout de code au code du RMS - PhDV61 - 17-06-2025

pas exactement comme ça.
il te faut, dans une fonction setup, définir et ouvrir un port série sur des GPIO que tu choisis pour discuter avec ton Arduino.
Ensuite, il faut créer une seconde fonction “envoi_data_vers_Arduino”.

Serial_begin et Serial_print sont des noms “réservés” pour le lien série via USB.

et inspire-toi de ce qui est fait pour l’interface série UxIx3. tant pour le setup que pour la communication.


RE: [conseils] ajout de code au code du RMS - Rakibou - 17-06-2025

Merci !
Si je suis tes recommandations, ça ressemblerait à ça :
(pas trop sûr du paramètre 8N1, on peut ne rien  mettre ?)

Code :
//deja présent dans solar_router_v14_25.ino
//les broches tx et rx sont celles choisies dans l'interface :

//Port Serie 2 - Remplace Serial2 qui bug
HardwareSerial MySerial(2);
byte pSerial = 0;             //Choix Pin port serie
int8_t RXD2 = -1, TXD2 = -1;  //Port serie
int8_t RX2_[] = { -1, 16, 26, 18, 5 };
int8_t TX2_[] = { -1, 17, 27, 19, 17 };

//déjà présent, ou ajouté par moi dans solar_router_v14_25.ino
// la broche  14 est affectée à un relais on-off dans les actions
// les 2 variables int existent et sont lisibles (testé)

int PactProd = 0;
int PactConso_M = 0;
enab = digitalRead(14);
bool enab = false;


//initialisation
void Setup_data_vers_ardu() {
  MySerial.begin(9600, SERIAL_8N1, RXD2, TXD2);  //PORT DE CONNEXION AVEC ARDUINO
}

//fonction envoi des données
void data_vers_ardu() {
  // Formater la chaîne : "0;0;1" ou "0;0;0"
  String data = String(PactProd) + ";" + String(PactConso_M) + ";" + String(enab ? 1 : 0);
  MySerial.println(data);  // Envoi des données par UART
}

En plaçant data_vers_ardu() à l'endoit indiqué par Mike ?


RE: [conseils] ajout de code au code du RMS - Lolo69 - 17-06-2025

8 bits
None pas de parité
1 bit de stop
Le tout c est de regler des deux cotés pareils
C est la valeur par defaut donc peu utile


RE: [conseils] ajout de code au code du RMS - 59jag - 17-06-2025

fait gaffe au niveau de tension , le TX du uno en 5V et entrée RX de l esp32 en 3v3 faut utiliser un pont diviseur pour etre sûr.


RE: [conseils] ajout de code au code du RMS - Rakibou - 18-06-2025

(Hier, 06:53 PM)59jag a écrit : fait gaffe au niveau de tension , le TX du uno en 5V et entrée RX de l esp32 en 3v3 faut utiliser un pont diviseur pour etre sûr.

En effet, pour l'instant ça ne fonctionne pas. C'est peut-être ça, je n'en suis pas sûr.
Je vais me procurer un convertisseur de niveaux, ça éliminera un des problèmes ;)