Las placas de Pycom ofrecen una forma fácil de construir aplicaciones de Internet de las Cosas utilizando Wi-Fi, Bluetooth, Lte, LoRa y Sigfox. Si deseas saber un poco más sobre Pycom y sus placas de desarrollo, visita su sitio web en www.pycom.io
Con una placa en mano y un proyecto en mente, este artículo está diseñado para ayudar a conectar tu placa Pycom utilizando Wi-Fi a la nube de Ubidots.
Requisitos
1. Configuración del Hardware
Antes de comenzar, es importante verificar los puntos a continuación para asegurarte de que tu placa esté programada correctamente:
Si esta es tu primera vez trabajando con una placa Pycom, te recomendamos que consultes sus materiales de inicio y luego regreses a esta guía para más instrucciones una vez que te hayas familiarizado más.
2. Configuración del Firmware
Configuración del Proyecto
1. Abre el editor Atom y luego, ve a la pestaña de plugins y selecciona "Pymakr" para activar el plugin.
2. Conecta la placa a tu PC y el editor Atom detectará automáticamente la conexión. Una vez que la placa esté conectada, verás el mensaje "conectado" en el estado:
3. Para comenzar, crea un nuevo directorio llamado "ubidots" para gestionar los códigos y bibliotecas. Una vez creado el directorio, en el editor Atom selecciona Abrir un Proyecto, y busca el directorio "ubidots," que fue creado previamente y ábrelo.
4. En el archivo "ubidots" vamos a gestionar las bibliotecas y los códigos main/boot. Por favor, consulta y sigue la estructura a continuación para construir tu proyecto correctamente:
> ubidots - boot.py - main.py > lib -urequests.py
Primero, vamos a agregar la carpeta para las bibliotecas. Haz clic derecho en la carpeta "ubidots" y selecciona "Nueva carpeta", asigna "lib" como nombre.
Ahora, vamos a agregar los archivos main y boot :
Haz clic derecho en la carpeta "ubidots" y selecciona "Nuevo Archivo", asigna "boot.py" como nombre
Repite los pasos anteriores para crear el main llamado "main.py":
Una vez que ambos archivos estén creados, la estructura de tu proyecto se verá así:
Para finalizar, tenemos que agregar el archivo de biblioteca en la carpeta "lib":
Haz clic derecho en la carpeta "lib" y selecciona "Nuevo Archivo", asigna como nombre "urequests.py"
Una vez que se crea el archivo de biblioteca, la estructura final del proyecto debería ser así:
NOTA: Si estás importando una biblioteca y después de compilar recibes un mensaje como el siguiente, es porque estás utilizando una biblioteca externa y el archivo necesita estar presente junto a boot.py y main.py. Por esta razón, agregamos previamente el archivo de biblioteca.
5.- Ahora sincroniza el proyecto. Presiona el icono "Sync" desde la consola, o selecciona Paquetes –> Pymakr –> Sincronizar proyecto.
Hora de codificar
Ahora que tenemos el proyecto construido y sincronizado, ¡es hora de codificar!
1.- Copia y pega la biblioteca de este enlace en el archivo "urequests.py". Una vez que hayas pegado el código guárdalo.
2.- A continuación, copia y pega el código a continuación en el archivo "boot.py":
from machine import UARTimport machineimport osuart = UART(0, baudrate=115200)os.dupterm(uart)machine.main('main.py')
Guarda tu código una vez que lo hayas subido al archivo "boot.py" .
3.- A continuación, copia y pega el código a continuación en el archivo "main.py":
from network import WLANimport urequests as requestsimport machineimport timeTOKEN = "Assign_your_Ubidots_token_here" #Pon aquí tu TOKENDELAY = 1 # Retraso en segundoswlan = WLAN(mode=WLAN.STA)wlan.antenna(WLAN.INT_ANT)# Asigna tus credenciales de Wi-Fiwlan.connect("wifi-SSID-here", auth=(WLAN.WPA2, "wifi-password-here"), timeout=5000)while not wlan.isconnected (): machine.idle()print("Conectado a Wifi\n")# Construye el json para enviar la solicituddef build_json(variable1, value1, variable2, value2, variable3, value3): try: lat = 6.217 lng = -75.567 data = {variable1: {"value": value1}, variable2: {"value": value2, "context": {"lat": lat, "lng": lng}}, variable3: {"value": value3}} return data except: return None# Envía la solicitud. Por favor, consulta la referencia de la API REST https://ubidots.com/docs/api/def post_var(device, value1, value2, value3): try: url = "https://industrial.api.ubidots.com/" url = url + "api/v1.6/devices/" + device headers = {"X-Auth-Token": TOKEN, "Content-Type": "application/json"} data = build_json("fuel", value1, "position", value2, "speed", value3) if data is not None: print(data) req = requests.post(url=url, headers=headers, json=data) return req.json() else: pass except: passwhile True: fuel = 123 # Valores de datos speed = 234 # Valores de datos post_var("pycom", fuel, 1, speed) time.sleep(DELAY)
Una vez que hayas pegado, asigna tu Token de Ubidots y las credenciales de Wi-Fi donde se indica en el código, y guarda el código cuando termines. Si no sabes cómo encontrar tu TOKEN de Ubidots, consulta este artículo a continuación.
Guarda tu código una vez que lo hayas subido al "main.py" con tus credenciales de Wi-Fi, guarda tu trabajo.
4. Ahora el proyecto está listo para ejecutarse. Pero primero verifica si el proyecto está sincronizado y que todos los códigos están guardados correctamente.
Para ejecutar el proyecto, simplemente presiona el icono "Ejecutar" desde la consola:
Cuando se ejecute correctamente, recibirás algo como lo siguiente:
NOTA: Si recibiste un mensaje de error que hace referencia a ImportError: no module named 'urequests'
, sincroniza el proyecto nuevamente y luego vuelve a ejecutar el proyecto.
3. Visualización de datos
Ve a la sección de Dispositivos de tu Cuenta de Ubidots y verás un nuevo dispositivo llamado "pycom" que contiene las variables asignadas en el código de muestra proporcionado anteriormente:
4. Resumen
En un par de minutos estás publicando datos en la nube de Ubidots utilizando cualquier placa de Pycom a través de Wi-Fi.
Ahora es el momento de crear un panel de control para controlar y gestionar las variables de tus dispositivos Pycom. Para aprender más sobre los widgets y eventos de Ubidots, consulta estos tutoriales en video.
Otros lectores también han encontrado útil...