Skip to content

Menu de aplicaciones de uso sencillo basado en micropython y placa Node MCU ESP8266

License

Notifications You must be signed in to change notification settings

mexclub/simple_menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Menu de aplicaciones basado en micropython y placa NodeMCU ESP8266

Para este ejemplo se esta usando una placa NodeMCU ESP8266 con firmware de micropython versión de firmware esp8266-20190529-v1.11.bin el cual hs sido cargado siguiendo las instrucciones del sitio de micropython. Se esta usando los drivers para chipset CP2102.

También es necesario contar con la aplicación de consola ampy de Adafruit para poder cargar los scripts de python a la placa NodeMCU

A continuación la tabla de conexiones:

NodeMCU Rotary Encoder
D0 Push Button (PB)
D3 PinA
D4 PinB
3.3 PullUp PinA/PinB/PB
GND Middle Pin/PB

Versión SPI

NodeMCU Display SPI 128x64
D1 RES
D2 DC
3.3 VDD
GND GND
D5 SCK
D7 SDA
D8 CS

Versión I2C

NodeMCU Display I2C 128x64
3.3 VDD
GND GND
D5 SCK
D7 SDA

En la figura 1 se muestra de forma de conectar los componentes, para el caso de I2C se deben conectar solo los pines del 1 al 4, el resto se omite.


Figura 1

Se deben de copiar todos los archivos que se encuentren en la carpeta simple_menu hacia la raíz de la placa de la siguiente forma:

ampy -p com3 put main.py
ampy -p com3 put ssd1306.py
ampy -p com3 put simple_encoder.py
ampy -p com3 put simple_menu.py
ampy -p com3 put clock.py
ampy -p com3 put reset.py
ampy -p com3 put settings.json

com3 es el puerto Windows donde ha quedado instalado el controlador del chip usb-serial CH340G o CP2102 dependiendo del modelo de la placa. Si se tiene Linux el puerto generalmente es /dev/ttyUSB0

El archivo main.py es el primer programa que se carga al inicializar o reiniciar la placa. Aquí se muestra cu contenido en donde se puede ver como se inicializa el objeto display que se reutiliza en los módulos cargados, también se muestra la creación del menú y sus acciones de cada elemento del menú, dentro de cada aplicación puede contener un menú (submenu) o un programa final, dicho programa final debe tener una forma de finalizar para regresar el control al menú de donde se ejecutó. Se recomienda que la terminación del programa sea pulsando el push button del rotary encoder. Como ejemplo existe el archivo clock.py

import time
import ssd1306
import simple_menu
from machine import SPI, Pin
# from machine import I2C, Pin

pb = Pin(16, Pin.IN)

# i2c = I2C(-1, Pin(14), Pin(13))
# display = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C, external_vcc=False)
display = ssd1306.SSD1306_SPI(128,64,SPI(1), Pin(4), Pin(5), Pin(15), False)

menu_list = ['back', 'clock', 'alarm', 'wifi connect', 'settings', 'reset']
menu_actions = ['<BACK>', 'clock', 'alarm', 'wificonnect', 'settings', 'reset']
menu = simple_menu.simple_menu(display, pb, menu_list, menu_actions)

while True:
    display.fill_rect(0,0,128,64,0)
    display.text("{: ^16s}".format("WELCOME"),0,0,1)
    display.text("{: ^16s}".format("PRESS START"),0,30,1)
    display.show()

    if not pb.value():
        menu.show()
    time.sleep_ms(10)

Algunos videos de Youtube para complementar información:

Canal de Youtube

About

Menu de aplicaciones de uso sencillo basado en micropython y placa Node MCU ESP8266

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages