100% encontró este documento útil (1 voto)
122 vistas12 páginas

Tutorial de ESP32 con MicroPython

El documento presenta una guía sobre el uso del ESP32 con MicroPython, destacando su bajo costo y capacidades para proyectos IoT. Se abordan temas como la configuración del entorno de desarrollo, el uso de sensores como el DHT22, y la implementación de protocolos de comunicación como MQTT. Además, se incluyen ejemplos de código y enlaces a recursos adicionales para facilitar el aprendizaje.

Cargado por

Gaston Valenti
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
122 vistas12 páginas

Tutorial de ESP32 con MicroPython

El documento presenta una guía sobre el uso del ESP32 con MicroPython, destacando su bajo costo y capacidades para proyectos IoT. Se abordan temas como la configuración del entorno de desarrollo, el uso de sensores como el DHT22, y la implementación de protocolos de comunicación como MQTT. Además, se incluyen ejemplos de código y enlaces a recursos adicionales para facilitar el aprendizaje.

Cargado por

Gaston Valenti
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ESP32 + micropython

Sitio: Facultad de Ingeniería [Link].M. Imprimido por: Invitado


Curso: IC511 - Internet de las Cosas, Sensores y Redes Día: lunes, 4 de noviembre de 2024, 17:44
Libro: ESP32 + micropython
Tabla de contenidos

1. Introducción

2. IDE

3. Archivos

4. LED + Pulsador

5. WLAN

6. DHT22

7. MQTT
1. Introducción

ESP32 es la denominación de una familia de chips SoC de bajo coste y consumo de energía, con tecnología Wi-Fi y Bluetooth de modo dual
integrada.
El esp32 es el dispositivo por excelencia para proyectos IoT. Su amplio abanico de características y su costo accesible lo convierten en una
elección muy tentadora para emprendimientos de este tipo. Se destaca sobre todo por contar con la pila TCP/IP que permite conectarse a
internet. Siguiendo con las elecciones populares en el ámbito IoT, micropython es el lenguaje favorito de los desarrolladores debido a su
simplicidad, gran cantidad de librerías y demás beneficios del hermano mayor Python.
[Link]

¡IMPORTANTE! los ESP32 trabajan con una tensión de 3,3 V y las entradas/salidas NO tienen protección de
sobre tensión.

Existen muchos fabricantes de estos módulos y la distribución de pines no es estándar. La cátedra dispone de módulos esp32 del fabricante
DIYMALL cuya distribución de pines es la siguiente

Los códigos presentados en este libro también están disponible en github listos para clonar.

$ git clone [Link]

En cada ejemplo se especifica la rama (branch) correspondiente y es posible acceder a las mismas con el comando checkout.
Por ejemplo:

$ git checkout basico


2. IDE

Para programar en python usuaremos VSCodium que es la versión libre de VSCode

Este programa tiene una muy buena integración con git. Para trabajar con los esp32 además le agregaremos la extensión PyMakr.

Existen otros IDEs que también pueden usarse par programar esp32 con micropython tales como Thonny y Atom (con pymakr).
3. Archivos

En el esp32 con micropython encontraremos dos archivos principales: [Link] y [Link]. El primero se ejecuta solo una vez cuando se
inicia el dispositivo y se utiliza para la configuración del mismo. El segundo se ejecuta a continuación del [Link] y es en este archivo que se
encuentra nuestro programa principal.

Los archivos correspondientes a librerías adicionales que se quieran utilizar se suelen guardar en el directorio lib.
4. LED + Pulsador

En este primer programa vamos a implementar un pulsador que al ser activado alterna el estado del led (onboard) Pin2.

[Link]

# branch basico

[Link]

# Germán Andrés Xander 2023 from machine import Pinimport time print("esperando pulsador") sw = Pin(23, [Link])led =
Pin(2, [Link])contador=0bandera=True while True: if [Link]() and bandera: bandera=False
[Link](not [Link]()) contador += 1 print(contador) elif not [Link](): bandera=True
time.sleep_ms(5)

[Link] delivered by emgithub view raw


5. WLAN

Un dispositivo sin conexión a internet no puede calificar para IoT, por eso el próximo paso es conectar el esp32 a una red inalámbrica.

Esta vez implementamos la conexión en el archivo [Link]

# [Link]
# branch wlan

import networkfrom settings import SSID, password wlan = [Link](network.STA_IF)[Link](True)if not


[Link](): print('conectando a la red...') [Link](SSID, password) while not [Link]():
pass

[Link] delivered by emgithub view raw

# [Link]
# branch wlan

print('Datos de la red: ', [Link]())

[Link] delivered by emgithub view raw

Recién cuando el método isconnected() devuelve True termina de ejecutarse el script [Link] y pasa a [Link].

Nótese que estamos usando el objeto wlan en [Link] a pesar de que fue creado en [Link]. Esto es posible porque en el firmware ambos
archivos pertenecen al mismo ámbito.
6. DHT22

Sensor de humedad y temperatura

este sensor usa una comunicación similar a I2C por lo que requiere una resistencia pull-up en la línea de datos. Micropython ya incluye la
librería para los sensores dht, basta con importarla

#branch dht22

[Link]

1 1 # Germán Andrés Xander 2023


2
3 from machine import Pin
4 import dht
5
6 d = dht.DHT22(Pin(25))
7 [Link]()
8 temperatura=[Link]()
9 print(f"la temperatura actual es de {temperatura} *C")
10 humedad=[Link]()
11 print(f"la humedad actual es de {humedad} %")

[Link] delivered by emgithub view raw


7. MQTT

MQTT es considerado el estándar para mensajes en IoT

MQTT es un protocolo estándar OASIS para mensajería en internet de las cosas. Está diseñado para permitir publicar/suscribir mensajes
utilizando extremadamente pocos recursos, ideal para dispositivos remotos con códigos simples y un uso mínimo del canal de
comunicaciones. MQTT es apto para industria y se utiliza en automotriz, fábricas, telecomunicaciones, petróleo y gas, etc.

Vamos a utilizar el programa mqttx para recibir/transmitir mqtt


servidor: [Link]
puerto: 8883

También existen muchos programas para android


[Link]
Se publica/suscribe a tópicos. Los tópicos tienen niveles separados por "/" y son jerárquicos.
existen 2 comodines para los niveles: el símbolo + para un solo nivel y el símbolo # para todos los subniveles.

micasa/plantabaja/+/temperatura
micasa/plantabaja/sala/temperatura
micasa/plantabaja/cocina/temperatura
micasa/plantabaja/habitacion/humedad
micasa/1erpiso/cocina/temperatura

micasa/plantabaja/#
micasa/plantabaja/sala/temperatura
micasa/plantabaja/cocina/temperatura
micasa/plantabaja/habitacion/humedad
micasa/1erpiso/cocina/temperatura
[Link]

# branch mqtta

[Link]

También podría gustarte