Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[conseils] ajout de code au code du RMS
#11
(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.
Répondre
#12
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.
Répondre
#13
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.
Répondre
#14
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.
V14.21 modifiée. 1 serveur UxIx3, 1 Linky de référence, 1 client Triac CE tampon + 1 client SSR CE tampon + 1 client SSR sur CE tri + 3 clients SSR sur 3 radiateurs bain d'huile d'appoint. Variateurs de fréquence Piscine.
8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars.
Répondre
#15
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 ?
Répondre
#16
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
Répondre
#17
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.
Répondre
#18
(17-06-2025, 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 ;)
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)