BlogCyber Weapons Lab

Use Upip para cargar bibliotecas MicroPython en un microcontrolador a través de Wi-Fi

MicroPython es un lenguaje interesante para usar en placas ESP8266 y microcontroladores basados ​​en ESP32, pero no siempre incluye todas las bibliotecas que necesitará para un proyecto específico. Este problema es un problema menor, gracias al administrador de paquetes upip.

Upip le permite descargar cualquier paquete en la biblioteca estándar de MicroPython a través de una conexión Wi-Fi. Eso es realmente útil si estás en un proyecto que necesita otra biblioteca y no quieres pasar por el tedioso proceso de intentar cargarlo tú mismo.

Para seguir adelante, deberá tener una placa ESP8266, ESP8285 o ESP32, como NodeMCU o D1 Mini. Diseñado para dispositivos portátiles, el ESP8285 es una versión más pequeña del ESP8266 con menos memoria flash. El ESP32 es el sucesor de los otros modelos y tiene Wi-Fi más rápido, un núcleo de CPU adicional, pines sensibles al tacto, más GPIO y más.

Una vez que tenga una placa, tendrá que conectarla a una computadora, por lo que necesitará un cable Micro-USB si aún no tiene uno. Querrá asegurarse de que sea uno que sea tanto para la carga como para la transferencia de datos. Puede ser difícil saberlo, pero es posible que muchos de sus cables antiguos solo se estén cargando, y sabrá si no puede conectar la placa a su computadora.

Paso 1: Acceda a MicroPython en su tablero

Asumiremos que ya tiene MicroPython instalado en su placa, por lo que no repasaremos ese proceso nuevamente, ya que lo cubrimos en profundidad en nuestra guía para comenzar con MicroPython en microcontroladores. Ese artículo contiene mucha buena información, como borrar su tablero, instalar MicroPython y acceder al tablero después. Compruébelo si no sabe cómo encontrar el puerto serie de su placa para conectarse.

Paso 2: conéctese a su tablero

Si acaba de configurar su tablero a través del Paso 1, ya está conectado a su computadora. Si no es así, asegúrese de conectar su microcontrolador a su computadora a través del cable Micro-USB. Entonces, usa pantalla para conectarse a él.

~$ screen /dev/ttyUSB3 115200

MicroPython v1.13.bin-g48dcbbe60 on 2020-09-11; ESP module with ESP8266
Type "help()" for more information.
>>>

Como se indica, corramos ayuda() para ver qué está pasando aquí.

>>> help()
Welcome to MicroPython!

For online docs please visit http://docs.micropython.org/en/latest/esp8266/ .
For diagnostic information to include in bug reports execute 'import port_diag'.

Basic WiFi configuration:

import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan()                             # Scan for available access points
sta_if.connect("<AP_name>", "<password>") # Connect to an AP
sta_if.isconnected()                      # Check for successful connection
# Change name/password of ESP8266's AP:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="<AP_NAME>", authmode=network.AUTH_WPA_WPA2_PSK, password="<password>")

Control commands:
  CTRL-A        -- on a blank line, enter raw REPL mode
  CTRL-B        -- on a blank line, enter normal REPL mode
  CTRL-C        -- interrupt a running program
  CTRL-D        -- on a blank line, do a soft reset of the board
  CTRL-E        -- on a blank line, enter paste mode

For further help on a specific object, type help(obj)
>>>

Paso 3: configurar la red

Ahora, configuremos la interfaz de red. De acuerdo con las instrucciones de configuración de la red en el sitio de MicroPython, usaremos el la red módulo. Y hay dos interfaces Wi-Fi para crear. Primero, uno para la estación, es decir, cuando su microcontrolador se conecta a su enrutador. En segundo lugar, el punto de acceso de su microcontrolador para que otros dispositivos puedan conectarse a él. Solo nos preocupa el primero, ya que solo queremos incluir bibliotecas en el tablero.

>>> import network
>>> sta_if = network.WLAN(network.STA_IF)

Ahora, puede verificar si están activos:

>>> sta_if.active()
True

Si ves “Falso” en tu enrutador Wi-Fi, configúralo como verdadero manualmente con:

>>> sta_if.active(True)
#5 ets_task(4020f4d8, 28, 3fff9df0, 10)

Si no está seguro de cuál es su red Wi-Fi, puede escanear para recordárselo.

>>> sta_if.scan()
[(b'SO YOUNG BEAUTY', b'x0cxeaxc9wx83x00', 1, -63, 3, 0), (b'WIFIEA18FD', b'xa8xa7x95xeax19x01', 1, -79, 3, 0), (b'CableWiFi', b'xc4x01|x13x1cxc8', 4, -76, 0, 0), (b'SpectrumWiFi Plus', b'xc4x01|Sx1cxc8', 4, -76, 5, 0), (b'SpectrumWiFi', b'xc4x01|x93x1cxc8', 4, -75, 0, 0), (b'piccadilly', b'x90x1axcalxd7x00', 6, -70, 3, 0), (b'spot 2.4 ghz', b'@ptzdx90', 11, -52, 3, 0)]

Con la red conocida, ahora podemos conectar la placa a ella con:

>>> sta_if.connect('<your ESSID>', '<your password>')

En mi caso, eso es:

>>> sta_if.connect("spot 2.4 ghz", "CafeSpot000")

Ahora, puede verificar si está conectado con:

>>> sta_if.isconnected()
True

Paso 4: Instale una biblioteca MicroPython

Ahora estamos listos para comenzar a usar upip. Vamos a descargar una biblioteca MicroPython desde el / micropython / micropython-lib Página de GitHub. Para nuestro ejemplo, vamos con pystone_lowmen para realizar una prueba de evaluación comparativa.

>>> import upip

Ahora estamos listos para comenzar a descargar un paquete a través de Internet. Si desea ver el uso, use upip.help () para obtener más información.

>>> upip.help()
upip - Simple PyPI package manager for MicroPython
Usage: micropython -m upip install [-p <path>] <package>... | -r <requirements.txt>
import upip; upip.install(package_or_list, [<path>])

If <path> is not given, packages will be installed into sys.path[1]
(can be set from MICROPYPATH environment variable, if current system
supports that).
Current value of sys.path[1]: /lib

Note: only MicroPython packages (usually, named micropython-*) are supported
for installation, upip does not support arbitrary code in setup.py.

Para instalar un paquete en upip, usaría el siguiente formato.

>>> upip.install("micropython-pystone_lowmem")
Installing to: /lib/
Warning: micropython.org SSL certificate is not validated
Installing micropython-pystone_lowmem 3.4.2.post4 from https://micropython.org/pi/pystone_lowmem/pystone_lowmem-3.4.2.post4.tar.gz

Para usar el nuevo paquete, puede importarlo como lo haría con cualquier biblioteca estándar usando importar. Luego, puede ejecutar el módulo como una función como se formatea a continuación.

>>> import pystone_lowmem
>>> pystone_lowmem.main()
Pystone(1.2) time for 500 passes = 1137ms
This machine benchmarks at 439 pystones/second

Si desea ver todas las bibliotecas que están instaladas, puede importar uos y utilícelo para enumerar todas las bibliotecas en el directorio actual.

>>> import uos
>>> uos.listdir()
['boot.py', 'lib']

Básicamente, así es como se pondría en marcha con bibliotecas que aún no están instaladas en su sistema MicroPython. Para ver todos los paquetes que puede usar, asegúrese de revisar / micropython / micropython-lib en GitHub.

Foto de portada de Retia / Null Byte

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar