Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C

Ch4ist0 30 May 2019 18:15 2493 34
Tespol
  • #1
    Ch4ist0
    Level 5  
    Witam, mam problem z wyświetlaczem OLED 0.66" I2C dedykowany do Wemos D1 mini, podłączony jest pod Pin D1 - SCL, Pin D2 - SDA. Sam wyświetlacz działa lecz soft którego używam jest pod 0,96" i nie wyświetla wszystkiego poprawnie....

    Układ to:[url=]https://nettigo.pl/products/modul-wifi-wemos-d1-mini-pro[/url]
    Ekran:[url=]https://nettigo.pl/products/wyswietlacz-oled-0-66-i2c-dedykowany-do-wemos-d1-mini[/url]
    Uzywam softu esp8266_deauther 2.1.0 (deauther_2.1.0_4mb.bin)
    [url=]https://github.com/spacehuhn/esp8266_deauther/releases[/url]

    Doczytałem, że potrzebna jest włączona obsługa U8G z parametrem "ssd1306_64x48_i2c"
    Nie wiem czy w tym sofcie jest U8G i jak to dodac ew. edytować konfiguracje żeby ekran wyświetlał poprawnie...

    Proszę o pomoc.

    Wiem, że plik konfiguracyjny to "esp8266_deauther/A_config.h"
    [url=]https://github.com/spacehuhn/esp8266_deauther/blob/master/configs/Default/A_config.h[/url]
    Jego treść to:
    Code: c
    Log in, to see the code
  • Tespol
  • #3
    Ch4ist0
    Level 5  
    kaczakat wrote:
    Na początku dodajesz biblioteki do 4 różnych oled, powinieneś ustalić jaki masz faktycznie sterownik i tylko to dołączyć do projektu.
    Tu jest biblioteka obsługująca 64x48: https://github.com/mcauser/Adafruit_SSD1306/, zgodnie z przykładem parametry ekranu podajesz w pliku Adafruit_SSD1306.h.


    Sterownik mam SSD1306, ma byc U8G z parametrem "ssd1306_64x48_i2c" tak podaje producent na stronce [url=]https://nettigo.pl/products/wyswietlacz-oled-0-66-i2c-dedykowany-do-wemos-d1-mini[/url]

    Jak dodać te biblioteki ? i jak potem skompilować to do pliku .bin
    Sorce Code Softu:[url=]https://github.com/spacehuhn/esp8266_deauther/archive/v2.1.0.zip[/url]

    Typ wyświetlacza: OLED
    Kolor pixeli: biały
    Rozdzielczość: 64 × 48
    Rozmiar: 0.66"
    Napięcie zasilania: 3.3 V
    Sterownik: SSD1306
    Interfejs: I2C
    Adres I2C: 0x3C lub 0x3D

    Dodano po 35 [minuty]:

    kaczakat wrote:
    Tu jest biblioteka obsługująca 64x48: https://github.com/mcauser/Adafruit_SSD1306/, zgodnie z przykładem parametry ekranu podajesz w pliku Adafruit_SSD1306.h.


    A to jest akurat 128x32 ale spoko, dzięki za trop...

    BTW. jak skompilować projekt do pluku *.bin ? tak aby był gotowy do flashowania...
  • Helpful post
    #4
    khoam
    Level 41  
    Ch4ist0 wrote:
    jak skompilować projekt do pluku *.bin ? tak aby był gotowy do flashowania...

    Sketch > Export compiled Binary

    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C

    Dodano po 4 [minuty]:

    Ch4ist0 wrote:
    Doczytałem, że potrzebna jest włączona obsługa U8G z parametrem "ssd1306_64x48_i2c"

    U8G to jest biblioteka, która może obsłużyć Twój wyświetlacz:
    https://github.com/olikraus/u8g2/wiki
  • #5
    Ch4ist0
    Level 5  
    ok ok. A mógł byś mi opisać co i jak krok po kroku ? Jakie pliki mam skopiowac do projektu jakie edytowac i co dopisac ... bo już sie gubię...
  • #6
    khoam
    Level 41  
    Ch4ist0 wrote:
    A mógł byś mi opisać co i jak krok po kroku ? Jakie pliki mam skopiowac do projektu jakie edytowac i co dopisac

    Najpierw zainstaluj w Arduino IDE bibliotekę U8G, zgodnie z instrukcją, która jest na stronie z postu #4.
  • Tespol
  • #8
    Ch4ist0
    Level 5  
    Quote:
    Arduino:1.8.9 (Windows Store 1.8.21.0) (Windows 10), Płytka:"WEMOS D1 mini, 160 MHz, 80MHz, DIO, 115200, 4M (1M SPIFFS)"


    Code: c
    Log in, to see the code
  • #10
    Ch4ist0
    Level 5  
    a teraz
    Quote:
    exit status 1
    Arduino:1.8.9 (Windows Store 1.8.21.0) (Windows 10), Płytka:"WEMOS D1 mini, 160 MHz, 80MHz, DIO, 115200, 1M (256K SPIFFS)"

    C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\ssd1306_64x48_i2c.ino: In function 'void setup()':

    ssd1306_64x48_i2c:59:6: error: redefinition of 'void setup()'

    void setup() {

    ^

    esp8266_deauther:78:6: error: 'void setup()' previously defined here

    void setup() {

    ^

    C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\ssd1306_64x48_i2c.ino: In function 'void loop()':

    ssd1306_64x48_i2c:172:6: error: redefinition of 'void loop()'

    void loop() {

    ^

    esp8266_deauther:172:6: error: 'void loop()' previously defined here

    void loop() {

    ^

    C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\ssd1306_64x48_i2c.ino: In function 'void testdrawtriangle()':

    ssd1306_64x48_i2c:253:59: error: 'min' was not declared in this scope

    for (int16_t i=0; i<min(display.width(),display.height())/2; i+=5) {

    ^

    C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\ssd1306_64x48_i2c.ino:253:59: note: suggested alternative:

    In file included from c:\users\ch4ist0\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\memory:62:0,

    from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\cores\esp8266/FS.h:25,

    from sketch\functions.h:5,

    from C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\esp8266_deauther.ino:46:

    c:\users\ch4ist0\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: 'std::min'

    min(const _Tp& __a, const _Tp& __b, _Compare __comp)

    ^

    C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\ssd1306_64x48_i2c.ino: In function 'void testfilltriangle()':

    ssd1306_64x48_i2c:264:54: error: 'min' was not declared in this scope

    for (int16_t i=min(display.width(),display.height())/2; i>0; i-=5) {

    ^

    C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\ssd1306_64x48_i2c.ino:264:54: note: suggested alternative:

    In file included from c:\users\ch4ist0\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\memory:62:0,

    from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\cores\esp8266/FS.h:25,

    from sketch\functions.h:5,

    from C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther\esp8266_deauther.ino:46:

    c:\users\ch4ist0\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:239:5: note: 'std::min'

    min(const _Tp& __a, const _Tp& __b, _Compare __comp)

    ^

    exit status 1
    redefinition of 'void setup()'

    Ten raport powinien zawierać więcej informacji jeśli w
    File -> Preferencje zostanie włączona opcja "Pokaż
    szczegółowe informacje podczas kompilacji"
  • #12
    khoam
    Level 41  
    Ch4ist0 wrote:
    a teraz exit status 1

    A teraz musisz pokazać, jak wygląda Twój plik .ino
    Nie wiem co kompilujesz, ale wygląda na to, że próbujesz jednocześnie skompilować dwa otwarte pliki .ino, w każdym z nich jest setup() oraz loop(). To się raczej nie uda.
  • #13
    Ch4ist0
    Level 5  
    khoam wrote:
    Ch4ist0 wrote:
    a teraz exit status 1

    A teraz musisz pokazać, jak wygląda Twój plik .ino
    Nie wiem co kompilujesz, ale wygląda na to, że próbujesz jednocześnie skompilować dwa otwarte pliki .ino, w każdym z nich jest setup() oraz loop(). To się raczej nie uda.


    No tak faktycznie sa dwa bo pobralem jakies biblioteki Adafruit_SSD1306_esp8266_64x48 Modified i probowalem to dodac...

    Jak mam to zrobic poprawnie na tym sofcie ? co dodac i jak, bibliteki u8g mam pobrane...

    moj plik .ino to:
    Code: c
    Log in, to see the code
  • #14
    khoam
    Level 41  
    A jak usunąłeś ten zbędny plik ino to czy się teraz kompiluje? "Usunąć" znaczy zamknąć w Arduino IDE.

    Powinien zostać tylko esp8266_deauther.ino
  • #15
    kaczakat
    Level 33  
    Jak wejdziesz głębiej do linka z #postu 2 to widać przykład dla tego ekranu: https://github.com/mcauser/Adafruit_SSD1306/tree/esp8266-64x48/examples. Wystarczy cofnąć się do góry, ściągnąć bibliotekę, rozpakować i wgrać do katalogu lub dodać jako bibliotekę zip, uruchomić ponownie Arduino, otworzyć przykład i wgrać. W pliku nagłówkowym (h) jest zdefiniowany adres 0x3C i ekran 64x48. By zadziałało musi być jeszcze wgrana biblioteka Adafruit_GFX.
  • #16
    Ch4ist0
    Level 5  
    kaczakat wrote:
    Jak wejdziesz głębiej do linka z #postu 2 to widać przykład dla tego ekranu: https://github.com/mcauser/Adafruit_SSD1306/tree/esp8266-64x48/examples. Wystarczy cofnąć się do góry, ściągnąć bibliotekę, rozpakować i wgrać do katalogu lub dodać jako bibliotekę zip, uruchomić ponownie Arduino, otworzyć przykład i wgrać. W pliku nagłówkowym (h) jest zdefiniowany adres 0x3C i ekran 64x48. By zadziałało musi być jeszcze wgrana biblioteka Adafruit_GFX.


    OK. czyli otwieram plik "esp8266_deauther.ino" w arduino, dodaje biblioteke Adafruit, zapisuje, otwieram jeszcze raz, kompiluję i to wystarczy ? anie trzeba po dodaniu biblioteki zmienic cos w pliku A_Config.h ??
  • Helpful post
    #17
    Maciej_1985
    Level 2  
    Hej,
    tez sie ostanio z tym bawilem jedyne co dzialalo to bilbioteka esp8266-OLED - w zlaczniku zip - wypakuj i umiesc w
    Code:
    c:\Users\uzytkwnik\Documents\Arduino\libraries\

    potem poprostu odpal przyklad
    Powodzenia :)
  • #18
    khoam
    Level 41  
    Maciej_1985 wrote:
    tez sie ostanio z tym bawilem jedyne co dzialalo to bilbioteka esp8266-OLED

    Co ma wspólnego ta biblioteka z aplikacją ESP8266 Deauther, którą próbuje skompilować Autor? Proszę nie udzielać takich "kosmicznych" porad.

    Z pliku A_config.h aplikacji ESP8266 Deauther wynika, że:
    Code: c
    Log in, to see the code

    Są to pliki nagłówkowe z biblioteki ThingPulse ESP8266 OLED SSD1306:
    https://github.com/ThingPulse/esp8266-oled-ssd1306
    I niestety ta właśnie biblioteka powinna być zainstalowana.

    Dalej w pliku A_config.h jest napisane:
    Code: c
    Log in, to see the code

    więc trzeba wybrać właściwy typ wyświetlacza i zweryfikować do jakich pinów SDA/SCL jest podłączony.

    Na koniec wypadałoby do końca przeczytać, co jest na głównej stronie projektu ESP8266 Deauther:
    Code: html
    Log in, to see the code

    Trzeba mieć zainstalowane powyższe trzy biblioteki, aby poprawnie zbudować aplikację ESP8266 Deauther. Nic ponadto.
  • #19
    kaczakat
    Level 33  
    Ch4ist0 wrote:
    OK. czyli otwieram plik "esp8266_deauther.ino" w arduino
    nie wiem skąd to wziąłeś. Na githubie widać, że w środku są takie przykłady:
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C
    No to po ściągnięciu tej biblioteki (inne od Adafruit do tego ekranu musisz na razie schować/przenieść lub tymi nadpisać) masz widzieć w przykładach to samo:
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C
  • #20
    Ch4ist0
    Level 5  
    Napiszcie mi jak dokladnie dodac te biblioteke do ktorej zakladki w Arduino, do A_Config.h czy do glownej ? Bo nie kumam...
  • #21
    khoam
    Level 41  
    kaczakat wrote:
    No to po ściągnięciu tej biblioteki (inne od Adafruit do tego ekranu musisz na razie schować/przenieść lub tymi nadpisać) masz widzieć w przykładach to samo:

    Niepotrzebna jest żadna biblioteka Adafruit dla aplikacji ESP8266 Deauther - patrz post #18.
  • #22
    Ch4ist0
    Level 5  
    Quote:
    Arduino:1.8.9 (Windows Store 1.8.21.0) (Windows 10), Płytka:"WEMOS D1 mini, 160 MHz, 80MHz, DIO, 115200, 1M (256K SPIFFS)"

    In file included from sketch\A_config.h:1:0,

    from sketch\LED.h:9,

    from sketch\LED.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\LED.h:9,

    from sketch\LED.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    In file included from sketch\A_config.h:1:0,

    from sketch\DisplayUI.h:5,

    from sketch\DisplayUI.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\DisplayUI.h:5,

    from sketch\DisplayUI.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    Znaleziono wiele bibliotek w "SH1106Wire.h"
    Wykorzystane: C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0
    Niewykorzystane: C:\Users\Ch4ist0\Documents\Arduino\libraries\ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display
    exit status 1
    In file included from sketch\A_config.h:1:0,

    from sketch\CLI.h:11,

    from sketch\CLI.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\CLI.h:11,

    from sketch\CLI.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    In file included from sketch\A_config.h:1:0,

    from sketch\Settings.h:11,

    from sketch\SSIDs.h:13,

    from sketch\Scan.h:8,

    from sketch\Scan.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\Settings.h:11,

    from sketch\SSIDs.h:13,

    from sketch\Scan.h:8,

    from sketch\Scan.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    In file included from sketch\A_config.h:1:0,

    from sketch\Settings.h:11,

    from sketch\Settings.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\Settings.h:11,

    from sketch\Settings.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    In file included from sketch\A_config.h:1:0,

    from sketch\Settings.h:11,

    from sketch\SSIDs.h:13,

    from sketch\SSIDs.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\Settings.h:11,

    from sketch\SSIDs.h:13,

    from sketch\SSIDs.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    In file included from sketch\A_config.h:1:0,

    from sketch\Settings.h:11,

    from sketch\SSIDs.h:13,

    from sketch\Attack.h:12,

    from sketch\Attack.cpp:1:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\Settings.h:11,

    from sketch\SSIDs.h:13,

    from sketch\Attack.h:12,

    from sketch\Attack.cpp:1:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    In file included from C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther-2.1.0\esp8266_deauther\esp8266_deauther.ino:1:0:

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected identifier before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected '}' before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    C:\Users\Ch4ist0\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED/Adafruit_SSD1306.h:51:15: error: expected unqualified-id before numeric constant

    #define BLACK 0

    ^

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:95:3: note: in expansion of macro 'BLACK'

    BLACK = 0,

    ^

    In file included from C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/SH1106Wire.h:34:0,

    from sketch\A_config.h:9,

    from sketch\Settings.h:11,

    from C:\Users\Ch4ist0\Desktop\esp8266_deauther-2.1.0\esp8266_deauther-2.1.0\esp8266_deauther\esp8266_deauther.ino:29:

    C:\Users\Ch4ist0\Documents\ArduinoData\packages\deauther\hardware\esp8266\2.0.0-deauther\libraries\esp8266-oled-ssd1306-4.0.0\src/OLEDDisplay.h:98:1: error: expected declaration before '}' token

    };

    ^

    Błąd kompilacji dla płytki WEMOS D1 mini.
    Błędna biblioteka znaleziona w C:\Users\Ch4ist0\Documents\Arduino\libraries\mcauser-64x48-OLED-SSD1306-library-master: brak plików nagłówkowych (.h) w C:\Users\Ch4ist0\Documents\Arduino\libraries\mcauser-64x48-OLED-SSD1306-library-master
    Błędna biblioteka znaleziona w C:\Users\Ch4ist0\Documents\Arduino\libraries\mcauser-64x48-OLED-SSD1306-library-master: brak plików nagłówkowych (.h) w C:\Users\Ch4ist0\Documents\Arduino\libraries\mcauser-64x48-OLED-SSD1306-library-master
    Błędna biblioteka znaleziona w C:\Users\Ch4ist0\Documents\Arduino\libraries\mcauser-64x48-OLED-SSD1306-library-master: brak plików nagłówkowych (.h) w C:\Users\Ch4ist0\Documents\Arduino\libraries\mcauser-64x48-OLED-SSD1306-library-master

    Ten raport powinien zawierać więcej informacji jeśli w
    File -> Preferencje zostanie włączona opcja "Pokaż
    szczegółowe informacje podczas kompilacji"
  • Helpful post
    #23
    kaczakat
    Level 33  
    Dobrą bibliotekę podał Ci faktycznie @khoam za trzecim razem, czyli w poście #18. Dobrą o tyle, że jest polecana przez autora projektu esp8266_deauther.
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C

    Zresztą musiałeś ją mieć zainstalowaną, bo inaczej byś nic nie zobaczył na ekranie, nawet tych nieprawidłowo wyświetlanych rzeczy. Po prostu program by się nie skompilował.
    Niestety ta biblioteka nie obsługuje oled 64x48. Co jest dziwne, bo w opisie biblioteki ten ekran jest wymieniony, niestety w pliku OLEDDisplay.h jest tylko:
    Code: c
    Log in, to see the code

    Po to wrzuciłem Ci przykład z działającą biblioteką, odpalasz przykład, sprawdzasz czy działa prawidłowo i edytując swoją możesz dodać obsługę swojego ekranu. Można w sumie dodać każdy ekran z każdą biblioteką, tylko jest sporo reedycji w źródłach, tłumaczenia komend biblioteki oled na funkcje z projektu "deauther".
    Wracając do tematu, tam gdzie inicjalizujesz ekran do pracy na I2C podajesz również geometrię ekranu, np. :
    Code: c
    Log in, to see the code

    ale to oczywiście nie działa, bo jak wyżej widać nie ma takiej geometrii zdefiniowanej.
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C
    Gdy podasz zdefiniowaną w bibliotece, wszystko kompiluje się prawidłowo:
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C
    Możesz sobie dodać obsługę tej geometrii, ale nie ma żadnej gwarancji, że to będzie działać prawidłowo, teksty mogą być za długie, ilość linii też może śmiesznie wyglądać.
    Jeśli coś będziesz edytował ręcznie w bibliotekach używaj programu Notepad2 lub Notepad++.
    Na początek dodaj geometrię:
    Code: c
    Log in, to see the code


    A potem w pliku OLEDDisplay.cpp wszędzie tam, gdzie jest ona użyta musisz dodać opcje jej wyboru:
    Code: c
    Log in, to see the code

    Gdzie jeszcze coś trzeba pomieszać i czy to działa nie sprawdzę, bo nie mam takiego ekranu. Ale życzę powodzenia.
  • #24
    Ch4ist0
    Level 5  
    Gdzie widzisz ten plik "LEDDisplay.h/.cap" ja go w projekcie "esp8266_deauther" nie widzę, jest tylko "DisplayUI" a jego treść to:
    Code: c
    Log in, to see the code



    Ten projekt Deauthera u mnie w Arduino wygląda tak:
    esp8266_de...-2.1.0.zip Download (1.28 MB)
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2CBez tyt...png Download (67.26 kB)

    Czy dobrze rozumiem biblioteki mam dodawać do zakładki/pliku A_Config.h ???
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2CBez tytu..2.png Download (92.36 kB)


    Gdzie mam zmienić geometrie ekranu jeśli nie mam pliku "LEDDisplay.h" ?
  • #26
    Ch4ist0
    Level 5  
    OK. Poddaje się. Proszę jeśli ktoś zrobi za mnie to co trzeba z tym softem:

    "deauther_2.1.0_4mb.bin" ---->[url=]https://github.com/spacehuhn/esp8266_deauther/releases/download/v2.1.0/deauther_2.1.0_4mb.bin[/url]

    Mam układ WeMos D1 Mini Pro ze stronki --->[url=]https://nettigo.pl/products/modul-wifi-wemos-d1-mini-pro[/url]

    Oraz Ekran OLED 0.66" I2C --->[url=]https://nettigo.pl/products/wyswietlacz-oled-0-66-i2c-dedykowany-do-wemos-d1-mini[/url]

    Problem w tym, że soft działa normalnie lecz na ekranie nie widać całości, ucina większość i nie da się z poziomu ekranu nic zrobić...

    Jak byście mi podesłali przerobiony soft Deauthera 2.1.0.bin ew projekt do arduino to będę flashował i dam znać czy działa, sam już nie mam sił... ;/
  • #27
    kaczakat
    Level 33  
    Trochę musisz się wysilić by zostać hakerem z softem deauther. Bibliotekę do OLED'a miałeś dodaną prawidłową, skoro skompilowałeś, wgrałeś i Ci coś tam wyświetla.
    Masz ją pewnie w katalogu Arduino/libraries/ - znajdź użyty plik SSD1306Wire.h w A_config.h, obok niego są pliki, które wymagają edycji LEDDisplay.h i OLEDDisplay.cpp.
    To że dodasz obsługę mniejszego ekranu nie znaczy, że nie będzie ucinać coś na ekranie.
  • #28
    Ch4ist0
    Level 5  
    Z Arduino mam doczynienia pierwszy raz, na początku używałem układu WeMos D1 mini (ESP8266) z wgranym softem deauthera z pliku .bin za pomocą innego programu do flashowania, wszystko spoko deauther działa jak powinien ale chciał bym dołączyć ekran, po podłączeniu i włączeniu funkcji w sofcie ekranik wyświetla ale nie od tak jak trzeba, nic nie edytowalem w sofcie, trzeba tylko dołączyć biblioteki i skonfigurować ale nie mam a takiej wiedzy i doświadczenia. Będę próbował dalej i czekam na jaśniejsze wskazówki ewentualnie jeśli komuś się chce pobawić to na gotowca :)
  • Helpful post
    #29
    kaczakat
    Level 33  
    Znajdujesz na dysku plik LEDDisplay.h, klikasz prawym klawiszem, wybierasz edit with Notepad++ (musisz mieć zainstalowany), wprowadzasz wyżej opisane poprawki, analogicznie drugi plik, uruchamiasz Arduino, w zakładce pliku A_config.h zmieniasz około 69 wiersza na taki zapis:
    #define DEAUTHER_DISPLAY SSD1306Wire display = SSD1306Wire(0x3c, 5, 4,GEOMETRY_64_48); // for 0.96" OLED
    kompilujesz, wgrywasz i zastanawiasz się co jeszcze jest nie tak.
    Może bycie hakerem nie jest Twoim powołaniem?
  • Helpful post
    #30
    rb401
    Level 38  
    Ch4ist0 wrote:
    Problem w tym, że soft działa normalnie lecz na ekranie nie widać całości, ucina większość i nie da się z poziomu ekranu nic zrobić...


    Zaglądałem do źródeł i widzę wyraźnie że w tym programie wyświetlanie jest na sztywno napisane pod rozdzielczość 128x64. Głównie chodzi o plik DisplayUI.h.
    Dlatego będzie Ci obcinać i bez gruntownej przeróbki tego (i ewentualnie DisplayUI.cpp) nie zrobisz tego jednym magicznym ruchem. Bo po prostu nie było to przewidziane przez autora.
    Pisał pod 128x64 a Ty chcesz wyświetlić to na 64x48.
    Tak pobieżnie patrząc na źródła, nie mówię że się nie da zrobić (szczególnie jeśli chodzi o menu). Ale trzeba trochę też poeksperymentować i ewentualnie przyjąć kompromisy.
    Podstawowa trudność leży w zmieszczeniu treści.
    Autor dobrał font by weszło mu na ekran około 5 linii po 18 znaków czcionką o stałej szerokości:
    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C

    i teraz o ile osiągnięcie pięciu linii na wyświetlaczu z D1 uważam za realne np. wysokość znaku 8 plus 1 na odstęp oraz używając znaków nie "wystających w dół" jak np. j, q, p, y itd. . Co zresztą autor wziął pod uwagę bo używa jak widzę do menu na OLED tylko wielkich liter.

    Za to zmieszczenie 18 znaków w linii 64pix, to już raczej nie jest wykonalne, z tego względu że na znak wypadło by poniżej 4 piksele czyli zupełnie nieczytelne. Chyba by użyć fontu proporcjonalnego, ale wtedy ilość możliwych znaków w linii zależała by od treści konkretnego napisu. Czyli czy jest więcej wąskich liter typu I, J czy szerokich np. W, M. Ale to dużo nie ratuje.

    Jeśli chodzi np. o same menu to zmniejszenie ilości znaków w linii to nie problem. Przykładowo, nie jest potrzebna pozycja "PACKET MONITOR" bo tą nazwę można spokojnie skrócić.
    Gorzej z jakąś listą gdzie mogły by wystąpić dłuższe napisy np. lista SSIDów czy coś w tym stylu, ale nie wiem, nie przyglądałem się w źródłach a na żywo nie widziałem tej konstrukcji. Może ucięcie takich treści nie było by tragedią a może dało by się łamać dłuższe linie (ta biblioteka od OLEDa ma taką funkcjonalność). Ale to już trzeba ocenić w kontekście działającego urządzenia.


    Czyli tak w skrócie. By zrobić obsługę tego urządzenia na wyświetlaczu od D1 potrzeba co najmniej:

    - ustawić poprawnie bibliotekę esp8266-oled-ssd1306 na pracę z rozdzielczością 64x48.
    Możliwe że to masz akurat już zrobione, jak tu wyżej patrzę.

    - urealnić stałe w pliku DisplayUI.h do nowej rozdzielczości. Co najmniej te wyróżnione, np. lineHeight powinno być 9 by pięć linii zachować:

    WeMos D1 mini pro. ESP8266 - OLED 0.66" I2C

    - wygenerować inny font metodą podaną w bibliotece do OLED, zamiast użytego DejaVu_Sans_Mono_12. Mniejszy na wysokość i szerokość a zarazem jeszcze czytelny (ale to kwestia eksperymentów) np. Roboto_Mono_Thin_10 i zmienić wywołania w DisplayUI.cpp (przy okazji zmienić odwołanie do wbudowanego fontu ArialMT_Plain_24 na np. ArialMT_Plain_10, bo może też się nie mieści).

    - poskracać długie nazwy mogące pojawić się na wyświetlaczu typu "PACKET MONITOR" itp. . Te nazwy znajdują się w pliku language.h. Z tym że tylko pewna cześć tam definiowanych napisów dotyczy wyświetlacza OLED (na pewno te zaczynające się na "D_" i trochę innych mogących pojawić się na OLED pośrednio np. określające jakieś parametry np. "WPA2" ) i wymaga skrócenia (tak że przykładowo, kurczaka akurat nie ruszasz).