F1ATB forum
Code OLED 128*64 - 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 : Code OLED 128*64 (/thread-140.html)

Pages : 1 2 3 4 5 6 7 8 9 10 11


RE: Code OLED 128*64 - m_fasilleau@yahoo.fr - 09-07-2024

(08-07-2024, 11:39 PM)Raphael591 a écrit : Il faut être en version 11.
Bonjour le groupe

Merci Raphael591 Raphael591  pour le bon boulot ça fonctionne a merveille

cdt


RE: Code OLED 128*64 - Fabio63 - 10-07-2024

Bonjour,
Serait il possible d'un résumé de ce post car il y a des infos un peu partout et vous m'avez un peu perdu
pour info j'ai acheté Hailege 0.96" I2C IIC OLED LCD Display 128X64 4Pin OLED Display Module (White)
merci par avance


RE: Code OLED 128*64 - Raphael591 - 10-07-2024

(10-07-2024, 10:24 AM)Fabio63 a écrit : Bonjour,
Serait il possible d'un résumé de ce post car il y a des infos un peu partout et vous m'avez un peu perdu
pour info j'ai acheté Hailege 0.96" I2C IIC OLED LCD Display 128X64 4Pin OLED Display Module (White)
merci par avance

J'ai édité le premier POST.
Dans ton cas l'écran utilise le driver SSD1306.
Tu n'as plus qu'à suivre le premier post.


RE: Code OLED 128*64 - Fabio63 - 10-07-2024

(10-07-2024, 11:37 AM)Raphael591 a écrit :
(10-07-2024, 10:24 AM)Fabio63 a écrit : Bonjour,
Serait il possible d'un résumé de ce post car il y a des infos un peu partout et vous m'avez un peu perdu
pour info j'ai acheté Hailege 0.96" I2C IIC OLED LCD Display 128X64 4Pin OLED Display Module (White)
merci par avance

J'ai édité le premier POST.
Dans ton cas l'écran utilise le driver SSD1306.
Tu n'as plus qu'à suivre le premier post.

ok merci c'est bcp plus clair comme ca.
merci de ton partage


RE: Code OLED 128*64 - Fabio63 - 10-07-2024

(23-06-2024, 04:19 PM)Raphael591 a écrit : MESSAGE MAJ SI NOUVELLE VERSION.

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 33/34
   - Si vous voulez gérer un bouton poussoir pour affichage ou non, définir le pin du bouton : pinBtnOled ligne 44


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 au démarrage
int pinBtnOled = 0; //Indiquer ici le pin du bouton pour gérer l'écran
//******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 = {
  0x00,0x00, // ................
  0x20,0x82, // ..#.....#.....#.
  0x10,0x84, // ...#....#....#..
  0x08,0x08, // ....#.......#...
  0x01,0xC0, // .......###......
  0x07,0xF0, // .....#######....
  0x07,0xF0, // .....#######....
  0x0F,0xF8, // ....#########...
  0x6F,0xFB, // .##.#########.##
  0x0F,0xF8, // ....#########...
  0x07,0xF0, // .....#######....
  0x07,0xF0, // .....#######....
  0x11,0xC4, // ...#...###...#..
  0x20,0x02, // ..#...........#.
  0x40,0x81, // .#......#......#
  0x00,0x80  // ........#.......
};
const unsigned char bitmap_Off[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x1F,0xF8, // ...##########...
  0x1F,0xF8, // ...##########...
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  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, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x40,0x00, // .#..............
  0xC0,0x00, // ##..............
  0xC0,0x00  // ##..............
};
const unsigned char bitmap_Signal2[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x04,0x00, // .....#..........
  0x0C,0x00, // ....##..........
  0x1C,0x00, // ...###..........
  0x1C,0x00, // ...###..........
  0x5C,0x00, // .#.###..........
  0xDC,0x00, // ##.###..........
  0xDC,0x00  // ##.###..........
};
const unsigned char bitmap_Signal3[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x00, // ................
  0x00,0x40, // .........#......
  0x00,0xC0, // ........##......
  0x01,0xC0, // .......###......
  0x01,0xC0, // .......###......
  0x05,0xC0, // .....#.###......
  0x0D,0xC0, // ....##.###......
  0x1D,0xC0, // ...###.###......
  0x1D,0xC0, // ...###.###......
  0x5D,0xC0, // .#.###.###......
  0xDD,0xC0, // ##.###.###......
  0xDD,0xC0  // ##.###.###......
};
const unsigned char bitmap_Signal4[] PROGMEM = {
  0x00,0x00, // ................
  0x00,0x04, // .............#..
  0x00,0x0C, // ............##..
  0x00,0x1C, // ...........###..
  0x00,0x1C, // ...........###..
  0x00,0x5C, // .........#.###..
  0x00,0xDC, // ........##.###..
  0x01,0xDC, // .......###.###..
  0x01,0xDC, // .......###.###..
  0x05,0xDC, // .....#.###.###..
  0x0D,0xDC, // ....##.###.###..
  0x1D,0xDC, // ...###.###.###..
  0x1D,0xDC, // ...###.###.###..
  0x5D,0xDC, // .#.###.###.###..
  0xDD,0xDC, // ##.###.###.###..
  0xDD,0xDC  // ##.###.###.###..
};
const unsigned char bitmap_Signal0[] PROGMEM = {
  0x00,0x00, // ................
  0x03,0xE0, // ......#####.....
  0x0F,0xF8, // ....#########...
  0x1F,0xFC, // ...###########..
  0x3E,0x3E, // ..#####...#####.
  0x38,0x7E, // ..###....######.
  0x70,0xFF, // .###....########
  0x71,0xF7, // .###...#####.###
  0x73,0xC7, // .###..####...###
  0x77,0x87, // .###.####....###
  0x3F,0x0E, // ..######....###.
  0x3E,0x1E, // ..#####....####.
  0x1F,0xFC, // ...###########..
  0x0F,0xF8, // ....#########...
  0x03,0xE0, // ......#####.....
  0x00,0x00  // ................
};
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 (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,5);
  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,18,128,18,OLED_WHITE);
  //Puissance sonde maison
  display.setCursor(0,24);
  display.println(F("Puissance"));
  display.setCursor(0,37);
  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, 1, bitmap_Sun , 16, 16, OLED_WHITE);
      cligSun=1;
    }
    else {
      cligSun=0;
      display.drawBitmap(92, 1, bitmap_Off , 16, 16, OLED_WHITE);
    }
  }
  else {
    //Pas de triac/relais...
  }
  display.setCursor(0,38);
  if(Ouv == -1) {
    display.setCursor(82,24);
    display.print(F("Ouv")); //Triac erreur
    display.drawRect(70, 24, 10, 30, OLED_WHITE);
    display.setCursor(82,38);
    display.print(F(" !"));
  }
  else {
    //Affiche jauge Triac/Relais
    display.setCursor(82,24);
    display.print(F("Ouv"));
    display.drawRect(70, 24, 10, 30, OLED_WHITE);
    float t = (float(30)/100)*Ouv;
    display.fillRect(70+2, 24+(30-int(t)), 10-4 , int(t), OLED_WHITE);
    display.setTextSize(1);
    display.setCursor(83,38);
    display.print(Ouv);
    display.print(F("%"));
  }
 
  //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(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,18,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, 16, OLED_WHITE); }
    else if(NivSignal<-60) {display.drawBitmap(112, 0, bitmap_Signal2 , 16, 16, OLED_WHITE); }
    else if(NivSignal<-45) {display.drawBitmap(112, 0, bitmap_Signal3 , 16, 16, OLED_WHITE); }
    else if(NivSignal<-30) {display.drawBitmap(112, 0, bitmap_Signal4 , 16, 16, OLED_WHITE); }
  }
  else {
    (WiFi.getMode() == WIFI_STA)==false ? display.drawBitmap(112, 0,
bitmap_Signal0 , 16, 16, OLED_WHITE) : display.drawBitmap(112, 0,
bitmap_Signal0 , 16, 16, OLED_WHITE);
  }
  //Mode en cours du Triac/ssr...
  int Mode = 0;
  if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);
  display.setCursor(115,21);
  display.setTextColor(OLED_WHITE);
  if(Mode!=1){
    display.print(F("OF"));
  }
  else {
    display.fillRect(114,20,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("OF"));
  }
  display.setCursor(115,33);
  display.setTextColor(OLED_WHITE);
  if(Mode!=2){
    display.print(F("ON"));
  }
  else {
    display.fillRect(114,32,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("ON"));
  }
  display.setCursor(115,45);
  display.setTextColor(OLED_WHITE);
  if(Mode!=3){
    display.print(F("PW"));
  }
  else {
    display.fillRect(114,44,13,10,OLED_WHITE);
    display.setTextColor(OLED_BLACK);
    display.print(F("PW"));
  }
  display.setCursor(115,57);
  display.setTextColor(OLED_WHITE);
  if(Mode!=4){
    display.print(F("TR"));
  }
  else {
    display.fillRect(114,56,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 = H_Ouvre[MATERIEL_ROUTAGE];
  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() {
  //Gestion bouton exctinction
  if (button_time > millis()) return;
  OledState = !OledState; // inverse l’état de la variable
  button_time = millis() + btn_latence;
  OledChange=true;
}

:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:18: error: stray '#' in program
  405 | ...........#######.......................#########..............................................................................
      |                  ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:42: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                          ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:44: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                            ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:46: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                              ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:48: error: stray '##' in program
  405 | ...........#######.......................#########..............................................................................
      |                                                ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:405:50: error: stray '#' in program
  405 | ...........#######.......................#########..............................................................................
      |                                                  ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:409:45: error: stray '##' in program
  409 | ............................................###.................................................................................
      |                                            ^~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:409:47: error: stray '#' in program
  409 | ............................................###.................................................................................
      |                                              ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:177:1: error: expected primary-expression before '...' token
  177 | ................................................................................................................................
      | ^~~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:177:4: error: expected '}' before '...' token
  177 | ................................................................................................................................
      |    ^~~
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:173:45: note: to match this '{'
  173 | const unsigned char bitmap_Logo[] PROGMEM = {
      |                                            ^
C:\Users\fpres\OneDrive\Bureau\routeur avec afficheur\Solar_Router_V11_12\OLED.ino:430:1: error: expected declaration before '}' token
  430 | };
      | ^

exit status 1

Compilation error: stray '##' in program

jai ca quand je compile


RE: Code OLED 128*64 - Raphael591 - 10-07-2024

(10-07-2024, 03:42 PM)Fabio63 a écrit : exit status 1

Compilation error: stray '##' in program

jai ca quand je compile

Peut être une erreur dans le copier coller !
ça doit être les commentaires du Logo, tu ne devrait pas avoir de passage à la ligne.
Les lignes en erreur devraient être en forme de commentaires. Soit tu enlève les passages à la ligne, soit tu force en commentaire, soit tu les vire !
Au pire voici mon fichier : 
https://uploadnow.io/f/Ch3DCkh

J'ai viré les commentaires du logo dans le premier post, ça évitera que d'autres aient le même problème


RE: Code OLED 128*64 - Fabio63 - 10-07-2024

(10-07-2024, 04:12 PM)Raphael591 a écrit :
(10-07-2024, 03:42 PM)Fabio63 a écrit : exit status 1

Compilation error: stray '##' in program

jai ca quand je compile

Peut être une erreur dans le copier coller !
ça doit être les commentaires du Logo, tu ne devrait pas avoir de passage à la ligne.
Les lignes en erreur devraient être en forme de commentaires. Soit tu enlève les passages à la ligne, soit tu force en commentaire, soit tu les vire !
Au pire voici mon fichier : 
https://uploadnow.io/f/Ch3DCkh

J'ai viré les commentaires du logo dans le premier post, ça évitera que d'autres aient le même problème
ok merci je test ca et merci pour ta reactivité


RE: Code OLED 128*64 - Fabio63 - 10-07-2024

(10-07-2024, 05:02 PM)Fabio63 a écrit :
(10-07-2024, 04:12 PM)Raphael591 a écrit :
(10-07-2024, 03:42 PM)Fabio63 a écrit : exit status 1

Compilation error: stray '##' in program

jai ca quand je compile

Peut être une erreur dans le copier coller !
ça doit être les commentaires du Logo, tu ne devrait pas avoir de passage à la ligne.
Les lignes en erreur devraient être en forme de commentaires. Soit tu enlève les passages à la ligne, soit tu force en commentaire, soit tu les vire !
Au pire voici mon fichier : 
https://uploadnow.io/f/Ch3DCkh

J'ai viré les commentaires du logo dans le premier post, ça évitera que d'autres aient le même problème
ok merci je test ca et merci pour ta reactivité

super ca marche merci bcp.
j'ai une autre question (je sais je suis chiant lol).
en faite j'ai dédié un esp32 juste pour l'ecran oled je recupére que la conso ladresse ip et la version et aucune info sur le triac comment faire pour recupérer les infos si c possible ?


RE: Code OLED 128*64 - Raphael591 - 10-07-2024

Aucune idée.
Il faudrait que je fouille dans le code, je ne sais pas comment André fait communiquer ses Esp entre eux.
Pourquoi ne pas avoir pris la fonction "maisonnette" d'André, pour un affichage déporté ?


RE: Code OLED 128*64 - Fabio63 - 10-07-2024

(10-07-2024, 07:09 PM)Raphael591 a écrit : Aucune idée.
Il faudrait que je fouille dans le code, je ne sais pas comment André fait communiquer ses Esp entre eux.
Pourquoi ne pas avoir pris la fonction "maisonnette" d'André, pour un affichage déporté ?

Effectivement bonne remarque.
Je fouillerais dans le code je c faire un de programmation je devrais bien trouver comment faire.
Après c que j'avais des esp32 qui traînais c pour ça que je suis partie comme ca.