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.
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.
|