MicroPython y ESP32

Preview:

Citation preview

MicroPython y ESP32Programación simple

de Internet de las cosas

Víctor R. Ruiz <rvr@linotipo.es>25 de noviembre de 2017

Índice

● Internet de las cosas.● Introducción al ESP8266/ESP32.● MicroPython en el ESP32.● Ejemplos de programación.

● Hola mundo.● Conectividad.● Control de LEDs.● Matriz de LEDs WS2812B.● Sensor de temperatura DTH22.● Servidor web con picoweb.

¿Qué es Internetde las cosas?

Internet

Cómo accedemos

¿Quién produce el contenido?

¿Quién consume el contenido?

Internet de las casas cosas

Cacharros “inteligentes”

Cacharros “inteligentes”

“Inteligencia” = Procesador + Internet

Internet de las cosas

https://www.flickr.com/photos/wilgengebroed/8249565455/

Ordenadoresvs

microcontroladores

¿Dónde usas Python?

Ordenador

PC vs Microcontrolador

● Muy bajo consumo.

● Monotarea.

● Acceso a dispositivos eléc[tricos|trónicos].

● Barato.

● Potente.

● Sistema operativo multitarea.

● Orientado al usuario.

● Costoso.

ESP32El microcontrolador de moda

ESP8266 ESP32→

● Microcontrolador.● Derivado del ESP8266.

● Hasta 240 MHz.● Hasta 520 KB RAM.● Hasta 16 MB flash.● Barato: 4€-10€.

Conectividad ESP32

● Wifi– Punto de acceso.

– Cliente.

● Bluetooth.● Ethernet [!]● Conexiones TCP/IP.● Cliente web.● Servidor web.● Serie, I2C, SPI...

Pines del ESP32

https://playelek.com/doit-esp32-devkit-v1/

ESP8266 ESP32

Microcontrolador Xtensa · 1 núcleo · 32 bits Xtensa · 2 núcleos · 32 bits

Frecuencia 80 MHz 160 MHz

RAM 160 KB 520 KB

Memoria flash 4 MB 16 MB

WiFi 802.11 WEP, WPA

b/g/n b/g/n/e/i

Bluetooth No V4.2 BR/EDR, BLE

GPIO 17 36

A/D 10 bit 12 bit

Voltaje 3.3V 3.3V

Consumo en hibernación

20 μA 2.5 μA

MicroPython

MicroPython, la placa

● ARM Cortex M4.● 168 MHz.● 1M ROM/192 KB RAM.● Reloj tiempo real.● 24 pines GPIO.

MicroPython, el sistema

● Python 3 para microcontroladores.– Firmware.

– Intérprete.

– Librerías.

● Interpretado.● Fácil aprendizaje.● Orientado a objetos.● Multiplataforma.● Libre.● Gran comunidad.● Muy popular.● De serie: Linux/Mac.

● Basado en Python 3.● Microcontroladores.● Optimizado: poca memoria.

● Diferencias con CPython.

● Subconjunto librerías.

MicroPython en el ESP32

MicroPython en el ESP32

● Descargar la imagen para el ESP32.– http://micropython.org/

● Instalar esptool.py en el ordenador.● Instalar la imagen en la placa ESP32.● Acceso a MicroPython por el puerto serie.

Descarga de MicroPython

Instalar la imagen en el ESP32

Terminal serie PC MicroPython→

MicroPython por terminal serie

MicroPython por web (ESP8266)

uPyCraftEntorno de desarrollo para MicroPython

https://github.com/DFRobot/uPyCraft

Programación en MicroPython

“Hola mundo”

Sistema de ficheros

Ficheros especiales

● boot.py– Se ejecuta al iniciar o reiniciar el ESP32.

● main.py– Se ejecuta después de boot.py.

Red: Interfaces

>>> import network>>> sta = network.WLAN(network.STA_IF)>>> ap = network.WLAN(network.AP_IF)>>> sta.active()False>>> ap.active()True

Red: Interfaz de estación (STA)

>>> import network

>>> sta = network.WLAN(network.STA_IF)>>> sta.active(True) # Activar interfaz>>> sta.isconnected() # ¿Estoy conectado?True

>>> sta.connect('essid', 'clave') # Conectar

Red: Interfaz punto de acceso (AP)

>>> import network

>>> ap = network.WLAN(network.AP_IF)>>> ap.active(True) # Activar interfaz>>> ap.config(essid='esp-molon') # Cambiar ESSID>>> ap.config(password='molar') # Cambiar clave

Otras librerías

Máquina: Encender/apagar

Máquina: Intermitente

DHT22: Temperatura y humedad

Neopíxeles

upip: Librerías externas

Servidor web

Web: Encender/apagar LED

Conclusiones

ESP32 + MicroPython es...

● Barato.● Es interactivo.● Es accesible.● Es simple.● Es divertido.

https://docs.micropython.org/en/latest/esp8266/esp8266/quickref.html

rvr@linotipo.eshttp://github.com/vrruiz

Creative Commons - Atribución 4.0

Recommended