ESP32 Servidor Web basado en MicroPython

ESP32 Servidor Web basado en MicroPython

septiembre 18, 2020

ESP32-MicroPython-Web-Server
En este tutorial de servidor web basado en MicroPython ESP32, usamos MakePython ESP32 para interactuar con el sensor de temperatura impermeable DS18B20 y leer la temperatura.

1. Descripción general: ESP32 MicroPython Web Server

En este artículo, vamos a aprender sobreESP32 Servidor Web basado en MicroPython. Vamos a interconectar elDS18B20sensor de temperatura impermeable con ESP32 y leer la temperatura. Luego crearemos un servidor web y enviaremos los datos de temperatura DS18B20 al servidor web. Usando la dirección IP, monitorearemos los datos del sensor en la página web. Puede acceder a los datos del sensor en su red local.
Pero antes de comenzar, le recomiendo encarecidamente que siga el siguiente tutorial para aumentar suMicroPythonhabilidad. He explicado cómo puede instalar MicroPython y usar uPyCraft IDE. Del mismo modo, también he explicado cómo puede interconectar el sensor de temperatura DS18B20 con ESP32 utilizando código MicroPython.
(1)Tutorial de MicroPython ESP32 - Primeros pasos
(2)Tutorial de MicroPython ESP32 - Interfaz DS18B20

2. MakePython ESP32

En este caso, estoy usando unPlaca MakePython ESP32ya que esta placa es más barata con una pantalla OLED adicional de 1.3 "y está especialmente diseñada para el soporte de Python. Con 2 versiones para elegir, WROOM(No PSRAM) y WROVER((8MB PSRAM).
MakePython-ESP32-WROVER
Para obtener más información sobre este tablero y comprarlo en línea, puede visitar este enlace en Makerfabs:Placa MakePython ESP32.

3. ¿Qué es un servidor web?

UnServidor webes un software de servidor dedicado a ejecutar el software, que puede satisfacer las solicitudes de los clientes en la Web mundial. Un servidor web puede contener uno o más sitios web. Un servidor web procesa las solicitudes de red entrantes a través de HTTP y varios otros protocolos relacionados.
La función principal de un servidor web es almacenar, procesar y entregar páginas web a los clientes. La comunicación entre el cliente y el servidor se realiza mediante el Protocolo de transferencia de hipertexto (HTTP). Las páginas entregadas son con mayor frecuencia documentos HTML, que pueden incluir imágenes, hojas de estilo y scripts, además del contenido del texto.
Un agente de usuario, comúnmente un navegador web o rastreador web, inicia la comunicación realizando una solicitud para un recurso específico mediante HTTP y el servidor responde con el contenido de ese recurso o un mensaje de error si no puede hacerlo.
Puede consultar el siguiente tutorial para obtener más información sobre el servidor web ESP32:Estación meteorológica ESP32 en el servidor web.

4. Diagrama de circuito y conexiones

Aquí hay un diagrama de circuito para el sensor de temperatura DS18B20 de interfaz con ESP32 utilizando código MicroPython. El pin de salida digital está conectado al pin ESP32 GPIO22. Una resistencia de 4.7K se utiliza como resistencia pull-up y está conectada entre el pin de salida digital y el pin VCC. Si quieres saber más sobre el sensor de temperatura DS18B20 puedes seguir este post:Interfaz DS18B20 Sensor de temperatura con ESP32.
DS18B20-ESP32-MicroPython-Diagrama
En caso de que esté utilizandoPlaca MakePython ESP32, puede realizar la siguiente conexión como se muestra en el diagrama de conexión siguiente.
Makepython-ESP32-DS18B20-Diagrama

5. Código/programa MicroPython

Ahora vamos a comprobar el código ESP32 MicroPython para crear un servidor web. El código contiene dos partes.
(1) boot.py
(2) main.py
El boot.py se ejecuta después de que se inicia el dispositivo e inmediatamente configura múltiples opciones de configuración, como sus credenciales de red, importación de bibliotecas. Del mismo modo, main.py ejecuta inmediatamente después de boot.py. Es el script principal donde manejaremos el servidor web.

5.1 Código boot.py

Crear un nuevo archivo en el IDE uPyCraft y guardarlo comoboot.py. A continuación, copie el código siguiente y cárguelo en la placa ESP32.
probar:
  Importar usocket como socket
exceptuar:
  Socket de importación

Desde el momento de la importación de la suspensión
desde el Pin de importación de la máquina
Importar OneWire, DS18x20

Importar red

Importar ESP
esp.osdebug(Ninguno)

Importar GC
gc.collect()

ds_pin = Pin(22)
ds_sensor = DS18x20. DS18X20(un cable. OneWire(ds_pin))

ssid = 'Alexahome'
contraseña = 'loranthus'

estación = red. WLAN(red. STA_IF)

station.active(Verdadero)
station.connect(ssid, contraseña)

while station.isconnected() == False:
  pasar

print('Conexión correcta')
print(station.ifconfig())

5.2 Código main.py

Crear otro archivo en el IDE uPyCraft y guardarlo comomain.py. A continuación, copie el código siguiente y cárguelo en la placa ESP32.
def read_ds_sensor():
  roms = ds_sensor.scan()
  print('Dispositivos DS encontrados: ', roms)
  print('Temperaturas: ')
  ds_sensor.convert_temp()
  Para ROM en ROMS:
    temp = ds_sensor.read_temp(rom)
    if isinstance(temp, float):
      msg = redondeo(temp, 2)
      print(temp, end=' ')
      print('Temperatura válida')
      Devolver mensaje
  Devolver B'0.0'
  
def web_page():
  temp = read_ds_sensor()
  html = '''
  

Servidor web ESP32 DS18B20

Temperatura''' + str(temp) + '''°C

Temperatura''' + str(round(temp * (9/5) + 32.0, 2)) + '''°F

''' Devolver HTML s = socket.socket(socket.AF_INET, socket. SOCK_STREAM) s.bind(('', 80)) s.listen(5) mientras que Verdadero: probar: si gc.mem_free()

6. Monitoree los datos del sensor en el servidor web ESP32 MicroPython

Después de cargar ambos códigos, presione el botón"Botón de reinicio"en la placa ESP32. El ESP32 ahora intentará conectarse a la red utilizando las credenciales de red. Una vez conectado, mostrará elDirección IPen la ventana del shell.
Dirección IP del servidor web

Puede copiar la dirección IP e ir a cualquier navegador web y pegarla allí. Verá los datos del sensor DS18B20 mostrados en la página web.
ESP32-MicroPython-Web-Server-Data
Si tiene más preguntas o necesita algunas personalizaciones de PCBA basadas en esas placas MakePython IoT, no dude en ponerse en contacto conservice@makerfabs.com.
Este artículo está publicado originalmente enHow2electronics.

También puedes aprender de este video tutorial hecho porHow2electronics:

Contáctenos