Bienvenue, Visiteur
Vous devez vous enregistrer avant de pouvoir poster.

Nom d’utilisateur
  

Mot de passe
  





Rechercher dans les forums

(Recherche avancée)

Statistiques du Forum
» Membres : 868
» Dernier membre : MathJea
» Sujets du forum : 612
» Messages du forum : 4,696

Statistiques complètes

Utilisateurs en ligne
Il y a actuellement 197 utilisateurs connectés.
» 5 Membre(s) | 190 Visiteur(s)
Bing, Google, bernard62, Gribouille, n1co44, Philmaz, varadero

Derniers sujets
Routeur avec JSY-MK-194T
Forum : Routeur Photovoltaïque
Dernier message : varadero
Il y a moins de 1 minute
» Réponses : 5
» Affichages : 63
Graphes indisponibles
Forum : Routeur Photovoltaïque
Dernier message : Lucio51
Il y a 1 heure
» Réponses : 37
» Affichages : 927
ATTENTION : alimentation+...
Forum : Routeur Photovoltaïque
Dernier message : n1co44
Il y a 1 heure
» Réponses : 5
» Affichages : 177
code V10 pour LILYGO T-Di...
Forum : Affichage Routeur Distant
Dernier message : MathJea
Il y a 2 heures
» Réponses : 24
» Affichages : 1,186
Sonde temperature CE
Forum : Routeur Photovoltaïque
Dernier message : Fred37
Il y a 4 heures
» Réponses : 4
» Affichages : 166
shelly 1
Forum : Routeur Photovoltaïque
Dernier message : Lolo69
Hier, 11:41 PM
» Réponses : 13
» Affichages : 749
Perte du triac à chaque m...
Forum : Routeur Photovoltaïque
Dernier message : Capnflam
Hier, 11:01 PM
» Réponses : 8
» Affichages : 165
Taille dissipateur pour c...
Forum : Routeur Photovoltaïque
Dernier message : Lolo69
Hier, 10:46 PM
» Réponses : 10
» Affichages : 497
Contact câbles Dupont alé...
Forum : Routeur Photovoltaïque
Dernier message : Julien
Hier, 08:59 PM
» Réponses : 4
» Affichages : 203
Alimentation 3 résistance...
Forum : Routeur Photovoltaïque
Dernier message : Daniel CARREAU
Hier, 08:21 PM
» Réponses : 0
» Affichages : 51

 
  Consommation au dessus de zero
Posté par : picsouman - 24-06-2024, 02:22 PM - Forum : Routeur Photovoltaïque - Réponses (11)

Bonjour,
J'ai l'impression que mon Triac reste enclenché un certain temps au dessus de "0" d'où une consommation de l'électricité d'EDF.
Ci-joint la capture d'écran.
Comment faire pour ne pas qu'il reste enclenché au dessus de "0" ?

   

   

Imprimer cet élément

  Pas d'accès Internet
Posté par : F1ATB - 24-06-2024, 02:21 PM - Forum : Evolutions faites, à faire, dont vous rêvez... - Réponses (6)

Serait il possible d’avoir la possibilité de mettre un parametrage pour changer l’adresse du serveur NTP afin de contacter une adresse NTP local sur le réseau ? Demande de Dragoncds

Imprimer cet élément

  Modifier la vitesse de transmission JSY-MK-XXX
Posté par : Blastmun - 24-06-2024, 01:28 PM - Forum : Routeur Photovoltaïque - Réponses (5)

Bonjour, je viens vers vous car je ne trouve pas comment modifier la vitesse de transmission du capteur JSY-MK-194T dans mon cas.
j'ai bien recuperé le JSY-MK194T.exe que je vous partage ici (j'ai un peu galéré à le trouver).
Par exemple je voudrais augmenter la vitesse de 4800 à  38400 bauds.

Merci D'avance



Pièces jointes
.zip   JSY-MK-194T.zip (Taille : 11.14 Ko / Téléchargements : 4)
Imprimer cet élément

  Réglages et graphiques
Posté par : OGM - 24-06-2024, 09:15 AM - Forum : Routeur Photovoltaïque - Réponses (2)

Bonjour
que pensez-vous svp de ces valeurs de réglages et les graphiques ?
J'avoue ne pas réussir à complétement les interpréter...
Il y en a "au calme" le matin vers 9h et l'autre dans l'apres-midi, avec toute la petite famille à la maison.

Merci



Pièces jointes Miniature(s)
           
Imprimer cet élément

  pb de maj V10 : Fail to download manifest
Posté par : Sgb31 - 24-06-2024, 09:08 AM - Forum : Routeur Photovoltaïque - Réponses (9)

Bonjour, 
Après avoir mis à jour sans soucis mon premier ESP en V10.0 via la procédure rapide, je viens de tenter de mettre à jour d emanière idem mùes deux autres esp sans succés
j'ai une erreur à la connexion usb "Fail to download manifest" sans pouvoir aller plus loin
test effectué sur mon ordi de bureau, ordi portable et même sur le premier ESP que j'avais pourtant bien maj de cette manière ...
Une idée ?

Gilles



Pièces jointes Miniature(s)
   
Imprimer cet élément

  Message d'erreur
Posté par : stephdam - 23-06-2024, 05:24 PM - Forum : Routeur Photovoltaïque - Réponses (6)

Bonjour André et tout d'abord un grand merci pour cet excellent travail que vous mettez à notre disposition !
J'étais en v7 et je viens de passer en v10. Bonne surprise de voir le graph de visualisation de l'état des relais, je voulais justement vous le demander  Smile

Alors rien de dramatique mais je voudrais savoir si c'est normal que j'aie toutes les 30 secondes le message d'erreur ci dessous dans la page "Données brutes" sachant que j'ai sélectionné "inactif" le "routage via triac" dans la page Actions puisque je n'utilise que des relais via gpio :

"23/06/2024 17:04:14 : Erreur : pas de signal Zc du gradateur/Triac"

Merci de votre support et bonne fin de journée


oups, désolé, j'ai trouvé, je n'avais pas vu qu'on pouvait paramétrer la présence de port série ou du triac dans les paramètres.

Imprimer cet élément

  Code OLED 128*64
Posté par : Raphael591 - 23-06-2024, 04:19 PM - Forum : Routeur Photovoltaïque - Réponses (104)

MESSAGE MAJ SI NOUVELLE VERSION.
  - 11/07/24 : Ecran 1, affichage T° au lieu et place de la version si sonde de température présente.
  - 15/07/24 : Gestion bouton poussoir(on/off ou on avec extinction auto) ou capteur de présence (on avec extinction auto).
  - 12/10/24 : Adaptation version 12

Défilement de 4 écrans. Pour écran SSD1306 et SH1106.
[Image: ECR1-2-2.png]

[Image: ECR2.png]

[Image: ECR3.png]

[Image: Logo.png]

Si manque d'espace sur l'esp32 ne pas oublier :
Dans l'IDE, configuration carte, partition : Minimal SPIFFS 1,9MB with OTA

L'ecran 3 nécessite au moins une version 11 du routeur F1ATB.

Bibliothèque à ajouter à l'IDE :
  - Adafruit_GFX.h
  - Selon l'écran Adafruit_SSD1306.h ou Adafruit_SH110X.h


Les lignes à ajouter dans solar_router_V...ino :
  -  "InitSSD();" après la ligne "Serial.println("Booting");"
 - "OledAffiche();" après l'appel "EnergieQuotidienne();"



Créer un nouveau fichier (OLED.ino) dans le projet avec le code suivant :

A faire avant compilation du fichier :

   - Commenter/dé-commenter les lignes suivantes en fonction de votre écran.
   #define USE_SSD1306 1 //Pour les écrans SSD1306
   //#define USE_SH110X 1 //Pour les écrans SH1106


   - Définir les pin SDA,SCL pour l'écran : SDA_PIN et SCL_PIN ligne 34/35
   - Si vous voulez gérer un bouton poussoir/capteur de présence pour affichage ou non, définir le pin du bouton/capteur : pinBtnOled ligne 45
     Dans ce cas bouton ou capteur :
            - Définir le statut de l'écran à off au démarrage "OledState=false;" ligne 43
            - Définir le mode ligne 46, "ModeBtnOled" : 0 = bouton pour allumer/éteindre, 1 = Bouton/capteur pour allumer l'écran (Extinction auto après 40s)

Code :
/***********************************
AFFICHAGE SUR SSD1306/SH110X
*************************************/

//Choisir son écran ICI ************************
#define USE_SSD1306 1 //Pour les écrans SSD1306
//#define USE_SH110X 1 //Pour les écrans SH1106
//Le reste du code ne devrait s'adapter à la compilation
//Voir pour modifier les pin (gpio) écran et bouton
//Choix ecran *************************************

#include <Adafruit_GFX.h>

#define OLED_BLACK 0
#define OLED_WHITE 1
#define OLED_INVERSE 2

//Pour SSD1306
#if(USE_SSD1306)
  #include <Adafruit_SSD1306.h>
#endif

//Pour écran SH110X
#if(USE_SH110X)
  #include <Adafruit_SH110X.h>
#endif


#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
// Définir les broches SDA et SCL personalisées pour écran
#define SDA_PIN 26 //26
#define SCL_PIN 25 //25
bool OLED_on = false; //Si problème avec l'écran, les procédures sont ignorées

//*******BOUTON OLED***********/
//Changement état gérer dans boucle affichage, déconseillé dans l'interruption.
//gestion de la latence du bouton
volatile unsigned long button_time = 0;
int btn_latence = 250; // Latence en ms
volatile bool OledState=true; //Statut oled On/Off (Mettre à la valeur désiré au démarrage)
volatile bool OledChange=true; //Changement sur bouton, true = applique le statut OledState (affichage oui/non)
int pinBtnOled = 0; //Indiquer ici le pin du bouton pour gérer l'écran/capteur de présence
int ModeBtnOled = 0; // 0 = bouton poussoir (on/off sur écran), 1 = capteur présence ou bouton poussoir pour allumage on (off automatique)
unsigned long DureeAffichage = 40000; //Durée affichage 40 secondes
//******BOUTON OLED ***********/

int MATERIEL_ROUTAGE=-1; //Pour la recherche TRIAC OU RELAIS

#if USE_SSD1306
  Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#endif

//Pour écran SH110X
#if USE_SH110X
  Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#endif

const unsigned char bitmap_Sun[] PROGMEM = {
  0x10,0x84, // ...#....#....#..
  0x08,0x08, // ....#.......#...
  0x01,0xC0, // .......###......
  0x07,0xF0, // .....#######....
  0x0F,0xF8, // ....#########...
  0x6F,0xFB, // .##.#########.##
  0x0F,0xF8, // ....#########...
  0x07,0xF0, // .....#######....
  0x11,0xC4, // ...#...###...#..
  0x20,0x02, // ..#...........#.
};

const unsigned char bitmap_Off[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x1F,0xF8, // ...##########...
  0x1F,0xF8, // ...##########...
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
};

const unsigned char bitmap_Signal1[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x40,0x00, // .#..............
  0xDD,0xDC  // ##.###.###.###..
};

const unsigned char bitmap_Signal2[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x04,0x00, // .....#..........
  0x0C,0x00, // ....##..........
  0x1C,0x00, // ...###..........
  0x5C,0x00, // .#.###..........
  0xDD,0xDC  // ##.###.###.###..
};

const unsigned char bitmap_Signal3[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x40, // .........#......
  0x00,0xC0, // ........##......
  0x01,0xC0, // .......###......
  0x05,0xC0, // .....#.###......
  0x0D,0xC0, // ....##.###......
  0x1D,0xC0, // ...###.###......
  0x5D,0xC0, // .#.###.###......
  0xDD,0xDC  // ##.###.###.###..
};

const unsigned char bitmap_Signal4[] PROGMEM = {
  0x00,0x04, // .............#..
  0x00,0x0C, // ............##..
  0x00,0x1C, // ...........###..
  0x00,0x1C, // ...........###..
  0x00,0x5C, // .........#.###..
  0x00,0xDC, // ........##.###..
  0x01,0xDC, // .......###.###..
  0x05,0xDC, // .....#.###.###..
  0x0D,0xDC, // ....##.###.###..
  0x1D,0xDC, // ...###.###.###..
  0x5D,0xDC, // .#.###.###.###..
  0xDD,0xDC  // ##.###.###.###..
};

const unsigned char bitmap_Signal0[] PROGMEM = {
  0x03,0xE0, // ......#####.....
  0x1F,0xFC, // ...###########..
  0x3E,0x3E, // ..#####...#####.
  0x38,0x7E, // ..###....######.
  0x71,0xF7, // .###...#####.###
  0x73,0xC7, // .###..####...###
  0x77,0x87, // .###.####....###
  0x3F,0x0E, // ..######....###.
  0x3E,0x1E, // ..#####....####.
  0x1F,0xFC, // ...###########..
  0x03,0xE0, // ......#####.....
};

const unsigned char bitmap_Logo[] PROGMEM = {
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x01,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x1F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x07,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x03,0xC1,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x3F,0xC0,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0xFF,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x01,0xFE,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x07,0xF8,0x00,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x0F,0xF0,0x60,0x61,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x3F,0xC0,0xE0,0x60,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x7F,0x80,0xE0,0x60,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0xFE,0x00,0xE0,0x60,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xFC,0x00,0xE0,0x60,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xF8,0x00,0xE0,0x60,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xF0,0x00,0xE0,0x60,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0xE0,0x60,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0xE0,0x60,0x00,0x7C,0x03,0xFE,0x0E,0x07,0xF1,0xFF,0x8F,0xF0,0x00,
  0x01,0xE0,0x00,0x60,0x60,0x00,0x7C,0x03,0xFF,0x1E,0x0F,0xF9,0xFF,0x8F,0xF8,0x00,
  0x01,0xE0,0x00,0x00,0x00,0x00,0x7C,0x03,0xFE,0x3E,0x0F,0xFC,0xFF,0x8F,0xF8,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x3E,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x03,0xFF,0xFC,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0xF8,0x06,0x0F,0xFC,0x18,0x0F,0xF8,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0xF8,0x06,0x0F,0xFC,0x18,0x0F,0xF8,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0E,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x01,0xFF,0xF8,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x00,0xFF,0xF0,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x00,0xFF,0xF0,0x00,0x7C,0x03,0x00,0x06,0x0C,0x1C,0x18,0x0C,0x18,0x00,
  0x01,0xE0,0x00,0x7F,0xE0,0x00,0x7C,0x03,0x00,0x0F,0x0C,0x1C,0x18,0x0E,0x38,0x00,
  0x01,0xE0,0x00,0x3F,0xC0,0x00,0x7C,0x03,0x00,0x3F,0x8C,0x1C,0x18,0x0F,0xF8,0x00,
  0x01,0xE0,0x00,0x0F,0x00,0x00,0x7C,0x03,0x00,0x3F,0x8C,0x0C,0x18,0x0F,0xF0,0x00,
  0x01,0xE0,0x00,0x0F,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x06,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x06,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x06,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x7F,0xC0,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0xFF,0xF0,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x01,0xFF,0xFC,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x0F,0xFE,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x00,0x03,0xFF,0x80,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xE0,0x0F,0xE0,0xFF,0xC0,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xF0,0x7F,0x80,0x3F,0xF1,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x01,0xF9,0xFF,0x00,0x1F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0xFF,0xFC,0x00,0x07,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0xFF,0xF8,0x00,0x03,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x7F,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x1F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 
};

int cligSun = 0;
int BoucleOled = 0;

//Initialisation
void InitSSD(){
   //OLED init
  Wire.begin(SDA_PIN, SCL_PIN);

  //FORCE RESET DE L'ECRAN SI PIN PARTICULIER POUR RESET
  if(OLED_RESET != -1) {
    pinMode (OLED_RESET, OUTPUT);
    digitalWrite(OLED_RESET, HIGH);
    digitalWrite(OLED_RESET, LOW);
    delay(100);
  }
  #if USE_SSD1306
    delay(250);
    if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
      Serial.println("OLED SSD1306 init failed");
    }
    else {
        //Allumer l'écran.
       
        display.ssd1306_command(SSD1306_DISPLAYON);
        //oled_command(SH110X_DISPLAYON); //SH110X
        OledLogo();
        display.setCursor(70,50);
        display.print(F("Init..."));
        display.display();
        OLED_on=true;
    }
  #endif
 
  #if USE_SH110X
    delay(250); // wait for the OLED to power up
    if (!display.begin(SCREEN_ADDRESS, true)) { //Pour SH110X
      Serial.println("OLED SH110X init failed");
    }
    else {
      //Allumer l'écran.
      // ?
      OledLogo();
      display.setCursor(70,50);
      display.print(F("Init..."));
      display.display();
      OLED_on=true;
    }
  #endif

  //Partie gestion bouton
  if(pinBtnOled > 0) {
    pinMode(pinBtnOled, INPUT_PULLUP);
    attachInterrupt(digitalPinToInterrupt(pinBtnOled), OledBouton, RISING) ;
  }
}

//Procédure boucle des écrans
void OledAffiche(){
  if(OLED_on==false) {
    return;
  }
  if(ModeBtnOled==1 && OledState==true) {
    //Contrôle durée d'affichage
    if(button_time-btn_latence+DureeAffichage < millis()) {
      //Durée affichage dépassé, on éteint
      OledState=false;
      OledChange=true;
    }
  }
  if (OledChange) {
    OledChange=false; //Changement traité
    if(OledState) {
      //Allumer écran
      #if USE_SSD1306
        display.ssd1306_command(SSD1306_DISPLAYON);
      #endif
      #if USE_SH110X
        // ?
      #endif
      BoucleOled=0; //reprise début boucle écran
    }
    else {
      //Eteindre écran
      #if USE_SSD1306
        display.ssd1306_command(SSD1306_DISPLAYOFF);
      #endif
      #if USE_SH110X
        // ?, pas trouvé la commande pour off
        display.clearDisplay();
        display.display();
      #endif
      return;
    }
  }
  if(MATERIEL_ROUTAGE == -1) {
    //Recherche matériel
     for (int i = 0; i < NbActions; i++) {
        if(LesActions[i].Actif != 0 && MATERIEL_ROUTAGE == -1 ) MATERIEL_ROUTAGE=i;
     }
  }
  if (BoucleOled <= 10 ) {
      //Ecran 1
      display.clearDisplay();
      BarreEtatDroite();
      Ecran1();
      display.display();
      BoucleOled++;
  }
  else if (BoucleOled <= 14 ) {
      //Ecran 2
      display.clearDisplay();
      Ecran2();
      display.display();
      BoucleOled++;
  }
   else if (BoucleOled <= 18 ) {
      //Ecran 3
      display.clearDisplay();
      Ecran3();
      display.display();
      BoucleOled++;
  }
  else if (BoucleOled <= 20 ) {
      OledLogo();
      BoucleOled++;
  }
  else {
    BoucleOled=0;
  }
}

//contenue écran 1
void Ecran1(){
  if(OLED_on==false || !OledState) {
    return;
  }
  display.setTextSize(1);
  display.setTextColor(OLED_WHITE);
  //WIFI
  display.setCursor(0,1);
  if (WiFi.status() == WL_CONNECTED) {
    display.print(WiFi.localIP().toString());
  }
  else {
    (WiFi.getMode() == WIFI_STA)==false ? display.print(WiFi.softAPIP().toString()) :  display.print(F("Pas de wifi !"));
  }

  //Ligne de séparation
  display.drawLine(0,13,128,13,OLED_WHITE);

  //Puissance sonde maison
  display.setCursor(0,16);
  display.println(F("Puissance"));
  display.setCursor(0,29);
  display.setTextSize(2);
  display.print(int(PuissanceS_M - PuissanceI_M));
 
  display.setTextSize(1);
  //Ouverture du triac/ssr
  int Ouv = -1;
  if(MATERIEL_ROUTAGE != -1) {
    Ouv = 100 - Retard[MATERIEL_ROUTAGE];
  }
  if(Ouv>0) {
    //Icone clignote, signale le routage
    if(cligSun==0) {
      display.drawBitmap(92, 0, bitmap_Sun , 16, 10, OLED_WHITE);
      cligSun=1;
    }
    else {
      cligSun=0;
      display.drawBitmap(92, 0, bitmap_Off , 16, 10, OLED_WHITE);
    }
  }
  else {
    //Pas de triac/relais...
  }
  display.setCursor(0,38);
  if(Ouv == -1) {
    display.setCursor(72,16);
    display.print(F("Ouv")); //Triac erreur
    display.drawRect(60, 16, 10, 33, OLED_WHITE);
    display.setCursor(82,30);
    display.print(F(" !"));
  }
  else {
    //Affiche jauge Triac/Relais
    display.setCursor(72,16);
    display.print(F("Ouv"));
    display.drawRect(60, 16, 10, 33, OLED_WHITE);
    float t = (float(33)/100)*Ouv;
    display.fillRect(60+2, 16+(33-int(t)), 10-4 , int(t), OLED_WHITE);
    display.setTextSize(2);
    display.setCursor(73,29);
    display.print(Ouv);
    display.setTextSize(1);
  }

  // Affichage de la température canal 0
  if (TemperatureValide[0] > 0){
    display.setCursor(0, 57);
    display.print(F("T "));
    display.print(int(temperature[0]));
  }
  else
  {
    display.setCursor(0, 57);
    display.print(F("V"));
    display.print(Version);
  }

  //Affichage durée de fonctionnement ESP32
  int T = int(millis() / 1000);
  float DureeOn = float(T) / 3600;
  String durOn=String(DureeOn)+"h";
  display.setCursor(108-(durOn.length()*6),57);
  display.print(durOn);
}

//barre d'action affiché en ecran 1
void BarreEtatDroite() { /*Affiche une barre d'état WIFI et mode action*/
   if(OLED_on==false || !OledState) {
    return;
  }
  display.setTextSize(1);
  display.setTextColor(OLED_WHITE);
  display.drawLine(110,13,110,64,OLED_WHITE); //Ligne séparatrice à droite
  //Niveau Wifi
  if (WiFi.status() == WL_CONNECTED) {
    //Icone niveau connection
    int NivSignal = int(WiFi.RSSI()) ;
    if (NivSignal<-80) {display.drawBitmap(112, 0, bitmap_Signal1 , 16, 12, OLED_WHITE); }
    else if(NivSignal<-60) {display.drawBitmap(112, 0, bitmap_Signal2 , 16, 12, OLED_WHITE); }
    else if(NivSignal<-45) {display.drawBitmap(112, 0, bitmap_Signal3 , 16, 12, OLED_WHITE); }
    else if(NivSignal<-30) {display.drawBitmap(112, 0, bitmap_Signal4 , 16, 12, OLED_WHITE); }
  }
  else {
    (WiFi.getMode() == WIFI_STA)==false ? display.drawBitmap(112, 0, bitmap_Signal0 , 16, 11, OLED_WHITE) : display.drawBitmap(112, 0, bitmap_Signal0 , 16, 11, OLED_WHITE);
  }
  //Mode en cours du Triac/ssr...
  int Mode = 0;
  float laTemperature = -120;
  if (TemperatureValide[0] > 0) {  //La température de ce canal est valide
    laTemperature = temperature[0];
  }
  if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, laTemperature, LTARFbin, Retard[MATERIEL_ROUTAGE]);
  display.setCursor(115,17);
  display.setTextColor(OLED_WHITE);
  if(Mode!=1){
    display.print(F("OF"));
  }
  else {
    display.fillRect(114,16,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("OF"));
  }

  display.setCursor(115,29);
  display.setTextColor(OLED_WHITE);
  if(Mode!=2){
    display.print(F("ON"));
  }
  else {
    display.fillRect(114,28,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("ON"));
  }

  display.setCursor(115,41);
  display.setTextColor(OLED_WHITE);
  if(Mode!=3){
    display.print(F("PW"));
  }
  else {
    display.fillRect(114,40,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("PW"));
  }

  display.setCursor(115,53);
  display.setTextColor(OLED_WHITE);
  if(Mode!=4){
    display.print(F("TR"));
  }
  else {
    display.fillRect(114,52,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("TR"));
  }
  display.setTextColor(OLED_WHITE);
}

//Ecran 2
void Ecran2() {
  if(OLED_on==false || !OledState){
    return;
  }
  display.setCursor(0,0);
  display.setTextSize(2);
  display.setTextColor(OLED_WHITE);
  display.println(F("Injectee"));
  display.println(F("jour"));
  display.print(EnergieJour_M_Injectee);
  display.print(F(" Wh"));
  display.setTextSize(1);
  //Affichage de la version installée
  display.setCursor(0,55);
  display.print(F("V "));
  display.print(Version);
  //Affichage durée de fonctionnement ESP32
  int T = int(millis() / 1000);
  float DureeOn = float(T) / 3600;
  String durOn=String(DureeOn)+" h";
  display.setCursor(128-(durOn.length()*6),55);
  display.print(durOn);
}

//Ecran 3
void Ecran3() {
  if(OLED_on==false || !OledState){
    return;
  }
  display.setCursor(0,0);
  display.setTextSize(2);
  display.setTextColor(OLED_WHITE);
  float H = 0;
  if(MATERIEL_ROUTAGE != -1 ) H = LesActions[MATERIEL_ROUTAGE].H_Ouvre;
  display.println(F("Heure"));
  display.println(F("router"));
  display.print(H);
  display.println(F("h"));


  display.setTextSize(1);
  //Affichage de la version installée
  display.setCursor(0,57);
  display.print(F("V"));
  display.print(Version);
  //Affichage durée de fonctionnement ESP32
  int T = int(millis() / 1000);
  float DureeOn = float(T) / 3600;
  String durOn=String(DureeOn)+"h";
  display.setCursor(128-(durOn.length()*6),57);
  display.print(durOn);
}

//Affichage du logo
void OledLogo() {
  display.clearDisplay();
  display.setCursor(0,0);
  display.drawBitmap(0, 0, bitmap_Logo , 128, 68, OLED_WHITE);
  display.setCursor(70,50);
  display.print(F("V "));
  display.print(Version);
  display.display();
}

//Gestion du bouton
void OledBouton() {
 
   switch (ModeBtnOled)
   {
   case 0 :
      //Gestion bouton poussoir (allume/éteint)
      if (button_time > millis()) break;
      OledState = !OledState; // inverse l’état de la variable
      button_time = millis() + btn_latence;
      OledChange=true;
    break;
  
   case 1 :
      //Capteur ou bouton avec extinction auto (allume)
      if (button_time > millis()) break; //on garde la notion de latence
      if (OledState == false) {
        OledState = true; // inverse l’état de la variable
        button_time = millis() + btn_latence;
        OledChange=true;
      }
    break;

   default:
    break;
    }
 
}

Imprimer cet élément

  commande externe
Posté par : lucky - 23-06-2024, 02:52 PM - Forum : Routeur Photovoltaïque - Réponses (2)

Bonjour,
J aimerai savoir si il est possible de commander les sorties relais "gpio etc " depuis une commande externe.
exemple domoticz ou autre domotique.
pas des centaines biensur y a pas la place Big Grin

les routeurs sont placé generalement pas tres loin des tableaux elec, ca eviterait d autre montage espeasy par exemple ..........

donc si oui avec quelle style de commande ?

dans l attente

tres bonne journée

Imprimer cet élément

  Reboot intempestif et aléatoire
Posté par : Jesus De Rezoneth - 23-06-2024, 12:25 PM - Forum : Routeur Photovoltaïque - Réponses (5)

Bonjour à tous et un grand merci à André pour le partage de ses travaux bien utiles à tous.

Je suis en train de finaliser mon routeur et je suis confronté à un souci de reboot intempestif. Je précise que tout fonctionne bien, le triac s'ouvre ...etc
J'ai déjà exposé mon problème sur un groupe Facebook et André a évoqué le fait que l'esp reboute s'il ne reçoit pas de mesure ou si celle-ci n'est pas au bon format.
J'ai donc poursuivi mes tests pour vérifier ce point et il s'avère que le reboot se fait à peine 30 secondes après la réception d'une mesure, parfois moins.
Les mesures sont transmises par MQTT, je n'ai pour l'instant pas d'autre possibilité.

Voici les logs juste avant reboot:
11:35:02.549 -> PuissanceMaison{"Pw":-76}
11:35:28.787 -> Niveau Signal WIFI:-59
11:35:28.787 -> IP address_: 192.168.1.80
11:35:28.787 -> WIFIbug : #0
11:35:28.787 -> ComBug : #0
11:35:28.787 -> Charge Lecture RMS (coeur 0) en ms - Min : 1 Moy : 1  Max : 1
11:35:28.787 -> Charge Boucle générale (coeur 1) en ms - Min : 0 Moy : 0  Max : 1
11:35:28.787 -> ESP32 ON depuis : 0.29 heures
11:35:36.963 -> E (1077466) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:
11:35:36.963 -> E (1077466) task_wdt:  - Task_LectureRMS (CPU 0)
11:35:36.963 -> E (1077466) task_wdt: Tasks currently running:
11:35:37.016 -> E (1077466) task_wdt: CPU 0: IDLE0
11:35:37.016 -> E (1077466) task_wdt: CPU 1: IDLE1
11:35:37.016 -> E (1077466) task_wdt: Aborting.
11:35:37.016 -> E (1077466) task_wdt: Print CPU 0 (current core) backtrace
11:35:37.016 ->
11:35:37.016 ->
11:35:37.016 ->
11:35:37.016 ->
11:35:37.016 -> Backtrace: 0x4008c8c3:0x3ffbd6d0 0x400faea1:0x3ffbd6f0 0x4008f0bf:0x3ffbd710
11:35:37.016 ->
11:35:37.016 ->
11:35:37.016 ->
11:35:37.016 ->
11:35:37.016 -> ELF file SHA256: 56faff2703ee20e1
11:35:37.016 ->
11:35:37.016 -> Rebooting...

Imprimer cet élément

  TRIAC ROBODYN 40A
Posté par : guillaume87 - 22-06-2024, 02:01 PM - Forum : Routeur Photovoltaïque - Réponses (11)

Bonjour, 

je viens de faire l'installation d'un routeur solaire avec un TRIAC ROBODYN 40A.

Après tous les réglages effectuer et les raccordements, dans mes "données brutes", mon TRIAC n'à pas l'air reconnue " Nombres d'interruptions en 15 ms du Gradateur ( signal ZC ) : Filtrés/Brutes : Pas de Triac ".

Est ce que mon TRIAC est HS ? ou ai-je fais un erreur ?

Merci de votre aide.

Cordialement.

Imprimer cet élément