Micropython en la nodemcu

En bitson se nos ocurrió que podíamos empezar a jugar un poco con micropython, así que decidimos empezar usando la nodemcu.

Les voy a contar cómo instalar micropython en la placa, cómo conectarse y jugar con el led integrado. Manos a la obra!

Qué necesitamos

Para seguir el artículo vamos a necesitar:

  • nodemcu
  • picocom
  • esptool
  • firmware

Instalando picocom

Para Fedora:

sudo dnf install picocom

Para Debian y derivados:

sudo apt install picocom

Instalando esptool

Es conveniente instalarlo con el flag --user para que no quede instalado entre los paquetes del sistema. Pero tenés que asegurarte que tu usuario tenga permisos para acceder a los dispositivos serie (/dev/ttyUSB).
pip install esptool

Descargar el firmware

La última versión estable del firmware la podés encontrar en http://micropython.org/download en la sección Firmware for ESP8266 boards te descargás el binario para flashear la placa.

Al momento de escribir este artículo: http://micropython.org/resources/firmware/esp8266-20171101-v1.9.3.bin

Flasehando la nodemcu

Ahora que tenemos todo listo vamos a borrar la flash de la placa y depsués a cargar el nuevo firmware con esptool.

  1. Conectar la placa con un cable microUSB.
  2. esptool.py --port /dev/ttyUSB0 erase_flash
  3. esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20171101-v1.9.3.bin
Flasheando la nodemcu

Conectándose a la nodemcu con picocom

Ahora con picocom (o minicom o el que más te guste) con la placa conectada al USB ejecutás:

sudo picocom /dev/ttyUSB0 -b115200

Si tenés permisos sobre el dispositivo USB el picocom se va a conectar a la placa sin ningún tipo de problemas. Luego del mensaje Terminal ready presionamos la tecla enter y tendremos que ver el prompt del REPL de Python >>> y voilà!, micropython está instalado y funcionando en la nodemcu.

Fácil! Verdad?

conexión usando picocom

Un paso más

Probemos que nuestra instalación de micropython funciona correctamente. Escribamos el famoso Hola Mundo!.

>>> print("Hola nodemcu")
Hola nodemcu
>>> 34 + 5
39
>>>

Que se haga la luz!

Genial! Todo funciona de maravillas. Hagamos algo un poco más interesante. Prendamos el led que tiene la placa.

>>> import machine
>>> led = machine.Pin(2, machine.Pin.OUT)
>>> led.off()
>>> led.on()
>>> led.off()
>>>

Impecable! Todo funciona de maravillas. Ahora hagamos parpadear al led...

>>> import time
>>> for i in range(5):
...     led.off()
...     time.sleep(0.5)
...     led.on()
...     time.sleep(0.5)
...
...
...
>>>
usando el intérprete de micropython

Conectate!

Hagamos esto un poco más interesante. Conectémonos a la red WiFi de casa.

>>> import network
>>> iface = network.WLAN(network.STA_IF)
>>> iface.active()
False
>>> iface.active(True)
#5 ets_task(4020ed88, 28, 3fff9f90, 10)
>>> iface.active()
True
>>> iface.connect('ThiagoBenjamin', '<escribí-tu-clave>')
>>> iface.isconnected()
True
>>> iface.ifconfig()
('192.168.1.13', '255.255.255.0', '192.168.1.1', '192.168.1.1')
>>>

done!

La Biblia de Debian

Es común caer en la tentación de cuando queremos saber algo, entrar en el primer link que nos muestra Google. Muchas veces esos links resultan populares porque simplemente la gente hace click en ellos y tal vez la información que contiene no es 100% precisa. Por eso es FUNDAMENTAL que SIEMPRE se pueda consultar la fuente oficial de documentación.

Leer más…

Ver mensajes en el booteo

En este breve post, la idea es mostrar los pasos a seguir para sacar la imagen de inicio del sistema. En lo personal me gusta ver qué es lo que está cargando el sistema al momento del inicio. Por eso le suelo sacar la imagen que oculta esos mensajes. Comencemos...

Leer más…