Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Routeur connecté ethernet
#31
(09-01-2025, 08:42 PM)Chris a écrit : Bonsoir,

Voici le bin que j'utilise avec un SSR : http://pv86.free.fr/f1atb/Solar_Router_V...no.bin.zip
Le diagramme est dispo ici: https://f1atb.fr/forum_f1atb/thread-887.html

Si ça ne répond pas à ton besoin, indique le matériel que tu as connecté et sur quelles broches.

merci
je viens d'essayer de compiler mais le fichier de sortie est trop volumineux pour l'esp32, je pense comprendre qu'il faut réduire le code.
Le routeur est destiné à accueillir le jsy-mk-194T, un ssr, mqtt pour home assistant et envoyer les données de consommation aux autres routeurs. Un ou deux autres routeurs ensuite sur les CE avec ssr et/ou triac (sans pour l'instant w5500)
Je ne maîtrise pas suffisamment le code et arduino ide, est-ce qu'il faut supprimer les fichiers sources inutiles avant de compiler pour alléger ?
Répondre
#32
Non il faut sélectionner NoFS pour la partition mémoire.

Vu que tu n’utilises pas de triac, tu peux utiliser le bin que j’ai mis en telechargement
Répondre
#33
Je viens de voir que l'Uxi2 pouvait être connecté sur les broches 26 et 27, broches sur lesquelles j'ai connecté écran et détecteur IR => j'ai recompilé une version basique.

Code :
#define AnalogIn0 35  //Pour Routeur Uxi
#define AnalogIn1 32
#define AnalogIn2 33  //Note: si GPIO 33 non disponible sur la carte ESP32, utilisez la 34. If GPIO 33 not available on the board replace by GPIO 34
#define RXD2_1 16     //Pour Routeur Linky ou UxIx2 (sur carte ESP32 simple): Couple RXD2=26 et TXD2=27 . Pour carte ESP32 4 relais : Couple RXD2=17 et TXD2=27
#define TXD2_1 17
#define RXD2_2 26  //Pour Routeur Linky ou UxIx2 (sur carte ESP32 simple): Couple RXD2=26 et TXD2=27 . Pour carte ESP32 4 relais : Couple RXD2=17 et TXD2=27
#define TXD2_2 27
#define SER_BUF_SIZE 4096
#define LedYellow 28  // modif Rj45 - était 18
#define LedGreen 33   // modif Rj45 - était 19
#define pulseTriac_1 4
#define zeroCross_1 16 // modif Rj45 - était 5
#define pulseTriac_2 22
#define zeroCross_2 21 // modif Rj45 - était 23
#define pinTemp 13  //Capteur température
#define TEMPERATURE_PRECISION 12
// pins 18 19 23 utilisés par Rj45 non modifiables + 5 modifiable
#define RJ45_CS 5

Même lien que tout à l'heure http://pv86.free.fr/f1atb/Solar_Router_V...no.bin.zip
Je suppose que tu as pu compiler en sélectionnant "Partition scheme: No Fs 4Mb" mais ça peut toujours servir à d'autres.
Répondre
#34
Merci beaucoup, je teste demain
Répondre
#35
V13_03_ethernet disponible
Répondre
#36
Thumbs Up 
Bonjour Chris,

  bravo pour cette adaptation, j'ai reçu un W5500 Lite, ça me permet de faire quelques tests, c'est excellent  Shy

  pour garder une certaine compatibilité entre votre version ethernet et la version de base d'André (sinon, il faut revoir les câblages et les mise a jour OTA avec les .bin vont créer des problèmes)
  je vous propose de garder les gpio assignés par André et de faire une assignation des pins pour le port SPI comme suit :

dans les #define :
Code :
#define RJ45_CS   2  // SPI gpio pin number or (Default is SS    5 for ESP32)   2 : c'est la LED bleu qui sera allumée / pas utilisé par André
#define SCK_PIN  15  // SPI gpio pin number or (Default is SCK  18 for ESP32), 15 : Ok avec BootStrap / pas utilisé par André 
#define MOSI_PIN 12  // SPI gpio pin number or (Default is MOSI 23 for ESP32), 12 : Ok avec BootStrap / pas utilisé par André
#define MISO_PIN 39  // SPI gpio pin number or (Default is MISO 19 for ESP32), 39 : gpio en 'Input only' / pas utilisé par André

une ligne à ajouter avant d'initialiser
Code :
  SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN, RJ45_CS);  // affect gpio used by SPI3 device
  Ethernet.init(driver);

et si on n'a pas détecté le module Ethernet
on éteint la LED bleu
Code :
    else {
      Rj45 = false;
      Serial.println("Récupération IP RJ45 KO");
      Ethernet.end();
    }
  }
  if (Rj45) {
    RMS_IP[0] = String2IP(Ethernet.localIP().toString());
    Serial.println("Connected IP address (RJ45): " + Ethernet.localIP().toString() + " or <a href='http://" + hostname + "' >" + hostname + "</a>");
  }
  else {
    pinMode(RJ45_CS, OUTPUT);
    digitalWrite( RJ45_CS, LOW);
    pinMode(RJ45_CS, INPUT);
    //WIFI

=> voir pour traiter le cas ou l'on à pas réussit a obtenir d'IP avec un module Ethernet détecté, (câble débranché ...), [ça démarre en wifi AP après un gros délai]

+ un potentiel bug ? : (un & à remplacer par &&)

Code :
    if ((!Rj45 && WiFi.getMode() == WIFI_STA) || (Rj45 && Ethernet.linkStatus() == LinkON)) {
      if (!Rj45 && WiFi.waitForConnectResult(10000) != WL_CONNECTED) {
        StockMessage("WIFI Connection Failed! #" + String(WIFIbug));


Pour continuer les affectations avec un écran OLED (code de Raphael591) :

Pour l'écran OLED, on prend ce qui reste pour SDA et SCL, mais il serait bien d'utiliser une paire prévue pour TX2 soit (16 et 17), soit (26 et 27)

le bouton ou le détecteur présence peut être placé sur un GPIO input only (le 34 ou le 36 qui n'ont pas d'affectation pour le moment)

Salutations,
Merci André Smile ,
Routeur V13.02 (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre
#37
Bonjour Michy,

Je ne savais pas qu'on pouvait redéfinir les autres broches que CS, super nouvelle ! Je vais tester ça.
Bien vu pour la coquille dans le bloc WIFIbug, merci :-)

En utilisant la broche 2, je ne peux pas uploader le programme
Citation :A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0xb)! The chip needs to be in download mode.
For troubleshooting steps visit: https://docs.espressif.com/projects/espt...oting.html
Failed uploading: uploading error: exit status 2
https://docs.espressif.com/projects/espt...#boot-mode
____

Je ne vois pas de led bleue ? (je teste avec un W5500)
____

Citation :Pour l'écran OLED, on prend ce qui reste pour SDA et SCL, mais il serait bien d'utiliser une paire prévue pour TX2 soit (16 et 17), soit (26 et 27)

ces broches sont déjà (potentiellement) utilisées
Citation :#define RXD2_1 16     //Pour Routeur Linky ou UxIx2 (sur carte ESP32 simple): Couple RXD2=26 et TXD2=27 . Pour carte ESP32 4 relais : Couple RXD2=17 et TXD2=27
#define TXD2_1 17
#define RXD2_2 26  //Pour Routeur Linky ou UxIx2 (sur carte ESP32 simple): Couple RXD2=26 et TXD2=27 . Pour carte ESP32 4 relais : Couple RXD2=17 et TXD2=27
#define TXD2_2 27
____

Sinon ça marche impec, c'est top !

J'attends les différents retour sur les préférences des broches à utiliser et je mettrai ensuite à jour sources et diagramme.
Répondre
#38
Synthèse des broches : des réactions / propositions ?

[Image: 25011108001326774418519659.png]
Répondre
#39
C'est sûr que la broche 2 est sensible au Boot, j'ai choisit de mettre CS car c'est un signal OUTPUT de l'ESP vers le périphérique SPI
Une LED sur cette broche ça marche, (c'est la LED bleu, quand elle est présente, elle est sur la carte ESP)
Je ne peux pas dire s'il y a une différence de niveau du signal électrique sur la broche CS d'un W5500 et d'un WS5500 lite, chez moi, ça marche avec le Lite
Vaut mieux éviter d'utiliser GPIO2 si ça réagit différemment selon le matériel

En faisant abstraction des cas particuliers (carte relais ESP32), qui , je présume doivent être rarement en usage dans la communauté 

pour TX2, c'est 
soit on en a pas besoin de port série 2 et les 4 pins (16,17,26,27) sont dispo 
soit on en a besoin pour Linky, dans ce cas uniquement une pin RX de l'ESP est utilisée (soit 16 soit 26)
soit c'est de l'UxIx2 ou UxIx3 et un des couples de pin est utilisé (16 et 17) ou (26 et 27)
donc a éviter pour un module Ethernet
pour le OLED, il suffit de faire le choix autre que ceux qui est utilisé par le port série (configurable depuis la page html)

même principe pour gâchette triac et Zéro Cross
pas de triac, les 4 pins (4,5,22,23) sont dispo
un triac, il faut un couple (4 et 5) ou (22 et 23), ceux qui ne sont pas en utilisation reste utilisable pour autre chose
On verra si un jour André nous sort une version multi triac ... (dans ce cas, 1 seul ZC est suffisant)

Quand il y a plusieurs option sur un même GPIO, le jeu c'est de régler la configuration selon le matériel déployé en ne gardant qu'une seul fonction par GPIO
dans l'idéal, pour libérer des pins utilisable : (ça reste du ressort d'André)
* une des LED jaune/verte pourrait passer sur le GPIO2 
* Analog1 + Analog 2 devrait être déplacé sur les gpio en input only (34, 36, 39)

   
Merci André Smile ,
Routeur V13.02 (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre
#40
Bonjour

Si André passe par ici, j'aimerais bien avoir son avis sur l'attribution des broches.

En ce qui concerne l'OLED, l'intégration "OTA" me semble plus compliquée puisque les bibliothèques à inclure sont différentes selon les modèles d'écrans utilisés.
Répondre


Atteindre :


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