Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
project:esp8266_oledx32 [2019/03/05 21:03]
cyberian úvodní pokec
project:esp8266_oledx32 [2019/03/07 07:59]
cyberian
Line 7: Line 7:
  
 ===== Úvod ===== ===== Úvod =====
-Cílem je připojit výše zmíněný displej. Popsat první zkušenosti pro lidi, kteří teprve začínají,​ zkusit si vyrobit bitmapu a úspěšně ji zobrazit. Předpokladem je základní znalost jazyka ​C++ a elementární znalost elektroniky. Nemusíte umět vyloženě základy číslicových obvodů, ale měli by jste vědět, základní info o součástkách a neodpálit si ESP8266 hned při prvním zapojení.+Cílem je připojit výše zmíněný displej. Popsat první zkušenosti pro lidi, kteří teprve začínají,​ zkusit si vyrobit bitmapu a úspěšně ji zobrazit. Předpokladem je základní znalost jazyka ​Cpp a elementární znalost elektroniky. Nemusíte umět vyloženě základy číslicových obvodů, ale měli by jste vědět, základní info o součástkách a neodpálit si ESP8266 hned při prvním zapojení. ​Arduino IDE, by jse měli mít již nastaveno na správnou desku. 
 + 
 +Co bude potřeba: 
 +  * ESP8266 (Nodemcu nebo např. Wemos mini D1) 
 +  * 2x 2K7 rezistor 
 +  * OLED-091 diymore 128x32 I2C dispej 
 +  * nepájivé kontaktní pole, případně pájitelné 
 + 
 +Prakticky všechny zapojení, která jsem našel, byli bez pull up rezistorů. Pokud o nich nic nevíte doporučuji si něco načíst. 
 +Pull up rezistory (4K7) jsou v našem případě již na spodku desky OLED displeje. Bohužel však nestačili, což jsme zjistili v Labce na osciloskopu,​ kde místo obdélníkového signálu byla pila. 
 +V našem případě vedou pull up rezisotry napětí 3,3 V na D1 a D2, kde D1 vede na hodiny displeje(SCL) a D2 na data(SDA). V počtu pochých dvou linek je výhoda v I2C sběrnici narozdíl od SPI sběrnice, kde potřebujete na samotnou komunikaci více pinů. 
 + 
 +===== Zapojení obvodu ===== 
 +Kapacitor, který vidíte u napájecí větve není potřeba. Mívám ho standardně ze zvyku u všeho u čeho mám podezření,​ že by mohlo spičkově odebírat proud, což není tento případ, ale zvyk je zvyk :) 
 +{{ :​project:​esp8266_nodemcu_v0.9_oled_web.jpg?​400 |}} 
 + 
 +===== Vytvoření bitmapy ===== 
 +Některé konvertory mají problém s určitými rozměry obrázků. 
 +Obrázek je nutno zmenšit ještě před koverzí a ideální je převést ho na stupně šedi nebo monochromatický taktéž před vlastní konverzí. Jako na potvoru pro konverzi malého obrázku 32x29 px fungoval jen Image2Code, který je trochu obtížnější získat 
 + 
 +Seznam konvertorů:​ 
 +  * GIMP [[https://​www.gimp.org/​downloads/​]] 
 +  * LCD Assisant [[http://​en.radzio.dxp.pl/​bitmap_converter/​]] 
 +  * Image2Code https://​github.com/​adafruit/​Adafruit-GFX-Library#​useful-resources 
 + 
 +Konvertory krom gimpu jsem prověřil na virustotal.com,​ nicméně i tak doporučuji překontrolovat je znovu. 
 +Image2Code je nástroj poskytnutý v sekci použitelných zdrojů ke knihovně Adafruit GFX napsaný v javě. Je nutno ho zkompilovat přes příkaz "​gradle build"​. Pokud vám to nepůjde, mohu vám v případě windows poslat již sestavenou verzi 
 + 
 + Pokud se nepovede konverze z nějakého důvodu ani tak, pak vložte do pole tento obsah: 
 +<​code>​ 
 +
 +0x20,​0x0,​0x0,​0x20,​ 
 +0x70,​0x0,​0x0,​0x70,​ 
 +0x50,​0x0,​0x0,​0x50,​ 
 +0xd8,​0x0,​0x0,​0xd8,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x1,​0xc0,​0x0,​0x0,​ 
 +0x3,​0x60,​0x0,​0x0,​ 
 +0x2,​0x20,​0x78,​0x0,​ 
 +0x2,​0x20,​0x48,​0x0,​ 
 +0x2,​0x20,​0x48,​0x0,​ 
 +0x3,​0x60,​0x48,​0x0,​ 
 +0x1,​0xc0,​0x38,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x0,​0x0,​0x0,​0x0,​ 
 +0x1,​0x0,​0x8,​0x0,​ 
 +0x1,​0x80,​0x8,​0x0,​ 
 +0x0,​0x88,​0x98,​0x0,​ 
 +0x0,​0xc5,​0x10,​0x0,​ 
 +0x0,​0x42,​0x10,​0x0,​ 
 +0x0,​0x65,​0x30,​0x0,​ 
 +0x0,​0x28,​0xa0,​0x0,​ 
 +0x0,​0x20,​0x20,​0x0 
 +}; 
 +</​code>​ 
 + 
 + 
 +===== Kód programu ===== 
 +Na začátku je nutno nainstalovat si v Arduino IDE v menu: Nástroje/​Spravovat knihovny následující knihovny: 
 +  * SSD1306 by adafruit(v mé době ver. 1.28) 
 +  * Adafruit GFX by adafruit (v mé době ver. 1.36)
  
  
  • project/esp8266_oledx32.txt
  • Last modified: 2019/03/07 10:20
  • by cyberian