Micropython¶
La información oficial de Micropython está en su web -> Documentación Oficial
Preparar placa ESP8266 con Micropython¶
Enlaces de ayuda:
- El tutorial oficial (en inglés) está -> aquí.
- Se recomienda el tutorial en español de Python Canarias -> aquí.
Para instalar micropython en nuestra placa hay que seguir los siguientes pasos:
- Instalar
esptool
en Python (se recomienda usar un virtualenv).
Con el comando esptool.py --help
podemos ver todas las opciones.
NOTA: Si estas en Windows o Mac, tienes que instalar los drivers del chip CH340 / CH341 (son los que permiten la comunicación por el USB).
- Windows -> aquí
-
Mac -> aquí
-
Descargar el firmware (se recomienda el último estable) -> aquí.
- Conectar la placa por el USB y descubrir en que puerto está conectada.
- Borrar la flash de la placa con el comando
Por ejemplo
- Flashear la placa con el firmware
Por ejemplo
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect 0 esp8266-20190125-v1.10.bin
En algunas placas es probable que dé error y haya que añadir la opción -fm dio
, ejemplo
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect -fm dio 0 esp8266-20190125-v1.10.bin
Preparar placa ESP32 con Micropython¶
Enlaces de ayuda:
Para instalar micropython en nuestra placa hay que seguir los siguientes pasos:
- Instalar
esptool
en Python (se recomienda usar un virtualenv).
Con el comando esptool.py --help
podemos ver todas las opciones.
- Descargar el firmware (se recomienda el último estable) -> aquí.
- Conectar la placa por el USB y descubrir en que puerto está conectada.
- Borrar la flash de la placa con el comando
Por ejemplo
- Flashear la placa con el firmware
Por ejemplo
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 write_flash -z 0x1000 esp32-20190125-v1.10.bin
En algunas placas es probable que dé error y haya que añadir la opción -fm dio
, ejemplo
esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash --baud 115200 -z 0x1000 -fm dio esp32-20190125-v1.10.bin
Acceso a la placa + REPL¶
A la placa se puede acceder por dos medios:
- Serial
- Web
Una vez se accede a la placa, estamos en el REPL (Read-Eval-Print-Loop) de esta. A efectos prácticos es un interprete de Python y además cuenta con autocompletado. Para ver todas las opciones con las que cuenta escribimos
Veremos todos los comandos y una pequeña ayuda. Los comandos más importantes son:
Barra espaciadora
-> Sirve para el autocompletado.Ctrl+C
-> Para cerrar algún script que hayamos abierto dentro de la placa.Ctrl+D
-> Para hacer un reset por software (soft reset).Ctrl+E
-> Modo pegar (de copia-pega).
También podremos usar esta función para ver con que variables/constantes + funciones cuenta cada módulo. Por ejemplo importamos el módulo esp
y vemos todo lo que tiene
Para ver todos los módulos disponibles en la placa se hace
Comunicación con la placa por serial -> SerialREPL¶
Para poder entrar dentro de la placa, estas normalmente traen una UART (interfaz serie, como un USB dentro) accesible por los pines TX y RX. Así que con el cable usb y un programa que permita conexión serial podemos acceder a la placa. Programas con serial hay muchos, tanto con interfaz gráfica (GUI) como por terminal:
- Windows
- MobaXterm
- PuTTY
- CoolTerm
- Mac
- CoolTerm
- Screen
- Linux
- PuTTY
- GTKTerm
- GNU screen
- Picocom
- CoolTerm
Comunicación con la placa por WiFi -> WebREPL¶
También se puede acceder al REPL de la placa a través de una utilidad web, WebREPL, pero para ello debemos seguir los siguientes pasos:
- Abrir la utilidad WebREPL en un navegador web.
- Acceder a la placa por serial.
- Configurar la WiFi en modo AP (Punto de Acceso). Se adjunta pequeño script de ayuda
import network
# Primero activamos el interfaz AP de la placa
my_wifi = 'nombre-para-la-wifi'
my_password = 'contraseña-para-la-wifi' # Debe tener al menos 8 caracteres
ap_lan = network.WLAN(network.AP_IF)
ap_lan.active(True) # Devuelte True si la interfaz AP está activa
ap_lan.config(essid=my_wifi, password=my_password)
# Despues activamos el webrepl
import webrepl_setup
- Después debemos configurar el WebREPL con
Nos saldran las instrucciones para activar el WebREPL (activarlo), hay que ponerle una contraseña de entre 4-9 caracteres y por último reiniciarlo.
- Conectarse a la WiFi de la placa.
- Ir a la web de WebREPL que está abierta en el navegador y darle al botón Connect (pedirá el password puesto en el paso 4.).
Primeros pasos¶
Filesystem y sistema de ejecución¶
Cuando la placa arranca, se ejecuta un fichero interno, _boot.py
, que monta todo el sistema de ficheros (filesystem). Una vez el sistema está montado, se ejecutan dos ficheros secuencialmente (si existen):
boot.py
-> Equivale alsetup()
de Arduino.main.py
-> Equivale alloop()
de Arduino.
Configurar WiFi¶
Las placas ESPx cuentan con dos interfaces de red:
- Station Interface -> Es para conectarse a una red WiFi.
- Access Point Interface -> Es para crear una red WiFi propia.
Las dos interfaces pueden funcionar a la vez, es decir, que estar conectada la placa a una red WiFi y a la vez generar su propia red WiFi. Para poder configurarlos necesitamos trabajar con el módulo network
.
- Conectarse a una red WiFi:
import network
red = 'nombre-de-la-red-wifi'
contrasena = 'pass-de-la-wifi'
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect(red, contrasena)
- Crear una red WiFi: