Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conecta tu ESP32 a Ubidots a través de HTTP usando MicroPython
Conecta tu ESP32 a Ubidots a través de HTTP usando MicroPython

Programa tu módulo Espressif ESP32 para comunicarse con Ubidots utilizando HTTP y código MicroPython.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 2 meses

El módulo ESP32, sucesor del ESP8266, es un microcontrolador de bajo costo (menos de $15) y bajo consumo de energía con Wi-Fi integrado y Bluetooth de doble modo. La serie ESP32 emplea un microprocesador Tensilica Xtensa LX6 en variaciones de doble núcleo y núcleo único. El ESP32 fue creado y desarrollado por Espressif Systems, una empresa con sede en Shanghái con un historial comprobado en la producción y distribución de microcontroladores de calidad.

Al leer y seguir de cerca esta guía de inicio rápido, podrás enviar datos desde el módulo ESP32 a Ubidots utilizando el método Publish a través de HTTP.

Requisitos

Configuración:

A. Configuración de la placa ESP32-DevkitC
B. Configuración del proyecto Plugin Pymakr
C. Hora de codificación

A. Configuración de la placa ESP32-DevkitC

1. Para comenzar, es necesario instalar una herramienta de cadena de herramientas preconstruida, consulta las siguientes guías completas paso a paso según tu sistema operativo para hacerlo correctamente. Windows, Linux o MacOS.

2. Con la instalación de la cadena de herramientas preconstruida completa, conecta, con el cable USB, la placa ESP32-DevKitC a tu PC y verifica el puerto serie donde está conectado el dispositivo. Usaremos el Identificador de Puerto repetidamente a continuación para comunicarnos con tu dispositivo.

Para Linux o MAC, ejecuta la(s) función(es) a continuación en la terminal de tu computadora para determinar el puerto con el que te estás comunicando.

Sistema operativo Linux

ls /dev/tty*

Sistema operativo Mac

macbook:user$ cd /devmacbook:user$ ls -ltr /dev/*usb*

Sistema operativo Windows

  • Presiona "windows" + "R"

  • Escribe “devmgmt.msc” en el campo de texto y haz clic en “OK”

  • Selecciona y abre “Puertos (COM&LPT)” para ver todos los puertos serie disponibles

3. A continuación, flashea cualquier firmware del ESP32 con los siguientes comandos.
NOTA: Es posible que el nombre del puerto cambie para ti.

Flashear el dispositivo

esptool.py --chip esp32 --port /dev/{PORT-IDENTIFIER} erase_flash

4. Descarga el firmware más reciente para el módulo ESP32 a tu PC y sube el firmware al ESP32 usando el siguiente comando.

Subir el firmware más reciente

esptool.py --chip esp32 --port /dev/{PORT-IDENTIFIER} write_flash -z 0x1000 <firmware>.bin

B. Configuración del proyecto Plugin Pymakr

Pymakr es un plugin desarrollado por Pycom, que funciona bien con los dos editores de texto populares, Atom y Visual Studio. El plugin Pymakr hace que todo sea mucho más simple al programar con micropython.

En esta guía, trabajaremos con Atom, pero siéntete libre de elegir el que más te convenga.

1- Abre el editor Atom y activa el plugin Pymakr.

2- Conecta la placa con el editor Atom. Una vez que la placa esté conectada, verás el mensaje "conectado" en el estado:

3- Para comenzar, crea un nuevo directorio llamado "ESP32" para gestionar los códigos y bibliotecas. Una vez que el directorio esté creado en el editor Atom, selecciona Abrir un Proyecto y busca el directorio "ESP32" (recién creado) y ábrelo.

4- En la carpeta "ESP32" vamos a gestionar las bibliotecas y los códigos principales/boot. Primero, vamos a agregar los archivos principales y de arranque. Haz clic en la carpeta "ESP32" y selecciona "Nuevo Archivo", asigna "boot.py" como el nombre del archivo.

5- Repite estos pasos para crear el archivo principal llamado "main.py".

6- Ahora sincroniza el proyecto. En la barra de herramientas superior, selecciona Paquetes > Pymakr > Sincronizar proyecto.

C. Hora de Codificación

Ahora que tenemos el proyecto construido y sincronizado, es hora de codificar el ESP32 para enviar datos a través del protocolo HTTP.

1- Para enviar datos a Ubidots, copia, pega y guarda el siguiente código en el archivo “boot.py”.

**Guarda el archivo una vez que hayas pegado el código en el archivo "boot.py".

import networkimport machine as mimport socketimport timesta_if = network.WLAN(network.STA_IF); sta_if.active(True)sta_if.scan() # Escanear puntos de acceso disponiblessta_if.connect("SSID", "PASSWORD") # Conectar a un APsta_if.isconnected()time.sleep(3)


2- A continuación, el código de muestra a continuación creará las funciones para verificar la conexión a Internet, publicar datos y cargar los datos a Ubidots. En este paso, es necesario obtener tu TOKEN privado de Ubidots y reemplazar tu token donde se indica en el código a continuación.

Copia, pega y guarda el siguiente código en el archivo "main.py". Donde se indica, reemplaza el texto con tu único TOKEN de Ubidots en el código (asegúrate de dejar las comillas).

def checkwifi():    while not sta_if.isconnected():        time.sleep_ms(500)        print("Esperando conexión")        sta_if.connect()def send_data(token, body):    s = socket.socket()    s.connect(("industrial.api.ubidots.com", 80))    request=bytes('POST /api/v1.6/devices/ESP32 HTTP/1.1\r\nHost: industrial.api.ubidots.com\r\nX-Auth-Token: %s\r\nContent-Type: application/json\r\nContent-Length: %s\r\n\r\n%s\r\n' % (token, len(body), body), 'utf8')    print("Enviando datos a Ubidots")    s.send(request)    dump_socket(s)def dump_socket(s):    try:        while True:            data = s.recv(100)            if data:                print(str(data, 'utf8'), end='')            else:                print('')  # terminar con nueva línea                s.close()                break    except:        s.close()        raiseimport machine as mpin13 = m.Pin(13, m.Pin.IN, m.Pin.PULL_UP)ubidotsToken = “TU-TOKEN-UBIDOTS”def Update():    checkwifi()    body='{"var2": ' + repr(pin13.value()) +'}'    send_data("ubidotsToken", body)while(True):    Update()

3- Confirma que todos los códigos se hayan guardado correctamente; luego, sincroniza el proyecto una vez más. Repite los pasos 6 y 4 anteriores respectivamente. Una vez que el proyecto se haya sincronizado con el dispositivo, el módulo se ejecutará automáticamente.

Resultados

Ve a tu cuenta de Ubidots para visualizar el dispositivo que acabas de crear.

En menos de 30 minutos, el módulo ESP32 está disponible para publicar datos en la nube de Ubidots a través del protocolo HTTP, utilizando WiFi. Ahora es el momento de crear un panel de control y crear widgets para gestionar las variables del módulo ESP32.

¿Ha quedado contestada tu pregunta?