Manejar Pantalla OLED SPI Con ESP8266
by sabas1080 in Circuits > Arduino
9127 Views, 15 Favorites, 0 Comments
Manejar Pantalla OLED SPI Con ESP8266
Hace poco me llegaron unas pantallas OLED de 128x64 de 0.96" SPI muy geniales y fáciles de manejar con Arduino, en esta ocasión les voy a mostrar como se pueden integrar a nuestros proyectos con un ESP8266-03 y el lenguaje de programación LUA
Se deduce que usted ya tiene conocimientos de manejo del modulo wifi ESP8266
Conexión ESP a OLED
La conexión del ESP8266 a la pantalla OLED es la siguiente
-- Hardware SPI CLK = GPIO14-->SCL OLED -- Hardware SPI MOSI = GPIO13-->SDA OLED -- Hardware SPI MISO = GPIO12 (not used) -- CS, D/C, and RES can be assigned freely to available GPIOs cs = 8 -- GPIO15, pull-down 10k to GND dc = 4 -- GPIO2 --> D/C OLED res = 0 -- GPIO16 --> RST OLED
La pantalla OLED soporta 3.3v y 5v
NodeMcu Flasher
Lo primero que debemos hacer es cargar el firmware Node MCU que nos permitirá programar el ESP8266 con el lenguaje LUA, para eso debemos entrar a repositorio
https://github.com/nodemcu/nodemcu-firmware
Si usamos windows pueden descargar el NodeMcu Flasher que es la manera mas facil de cargar el firmware, solo al que ponerlo en "modo boot"
Descargar la versión x64 NodeMCUFlasher
Descargar la versión x32 NodeMCUFlasher
Una vez cargado nuestro firmware quitamos el modo boot del ESP y descargamos ESPlorer el "IDE" que nos ayudara a cargar nuestros programas de una manera muy sencilla,
ESPlorer
ESPlorer esta en java por lo que puede ejecutarse en cualquier sistema operativo siempre y cuando tengamos instalado la maquina virtual de java, pueden descargarlo de la siguiente pagina
https://github.com/nodemcu/nodemcu-firmware
Lo primero que debemos hacer al abrir ESPlorer es seleccionar el puerto en el que esta el ESP8266 y abrirlo, podremos ver un texto que nos indica la versión del firmware o que fue detectado
Copiamos y pegamos el siguiente ejemplo en el IDE y cargamos al ESP8266 con el boton "save to ESP" con eso ya estará cargado en nuestro ESP8266
Repositorio: https://github.com/sabas1080/ESP8266/tree/master/simple-oled-spi-example_lua
-- setup SPI and connect display<br>function init_spi_display() -- Hardware SPI CLK = GPIO14-->SCL OLED -- Hardware SPI MOSI = GPIO13-->SDA OLED -- Hardware SPI MISO = GPIO12 (not used) -- CS, D/C, and RES can be assigned freely to available GPIOs cs = 8 -- GPIO15, pull-down 10k to GND dc = 4 -- GPIO2 --> D/C OLED res = 0 -- GPIO16 --> RST OLED
spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, spi.DATABITS_8, 0) disp = u8g.ssd1306_128x64_spi(cs, dc, res) end
function xbm_picture() disp:setFont(u8g.font_6x10) disp:drawStr( 62, 10, "The") disp:drawStr( 62, 30, "Inventor's") disp:drawStr( 62, 60, "House") disp:drawXBM( 0, -5, 60, 60, xbm_data ) end --Converter Image to *.Mono with --http://www.online-utility.org/image_converter.jsp?outputType=MONO function bitmap_test(delay) file.open("prueba.MONO", "r") xbm_data = file.read() file.close()
disp:firstPage() repeat xbm_picture() until disp:nextPage() == false
tmr.wdclr() end
init_spi_display() bitmap_test()
Con este ejemplo ustedes podrán mostrar cualquier imagen en su pantalla OLED pero no podemos subir la imagen al modulo wifi en formato PNG o JPG, el formato en el que deben estar las imágenes es .MONO para esto lo haremos con la siguiente herramienta online
http://www.online-utility.org/image_converter.jsp...
Primero elegimos el formato, luego presionamos el botón "Select Format", con eso debemos seleccionar la imagen que queremos convertir y presionar el botón "convertir y descargar" Una vez hecho eso en nuestro ESPlorer presionamos el botón "upload" y seleccionamos el la imagen .MONO que deseamos subir, reiniciamos el modulo y deberá aparecer algo así como esto
Listo
En este momento deben tener trabajando el ejemplo, pueden modificar cualquier linea para hacer pruebas y cargar sus propias imágenes
Cualquier duda pueden dejarla en los comentarios