Upload
victor-r-ruiz
View
775
Download
20
Embed Size (px)
Citation preview
MicroPython y ESP32Programación simple
de Internet de las cosas
Víctor R. Ruiz <[email protected]>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
[email protected]://github.com/vrruiz
Creative Commons - Atribución 4.0