Ir al contenido principal
Todas las coleccionesTutoriales de proyectos IoT
Interfaces de IoT Simplificadas con Nextion, Raspberry Pi y Ubidots
Interfaces de IoT Simplificadas con Nextion, Raspberry Pi y Ubidots

Aprende en 5 minutos o menos cómo agregar botones de Ubidots en tu Interfaz de Pantalla Nextion. Es muy simple y, sin embargo, muy poderoso.

David Sepúlveda avatar
Escrito por David Sepúlveda
Actualizado hace más de una semana

¿Has oído hablar de Nextion Display? Nextion te permite crear interfaces increíbles, incluso si tu nivel de codificación es "¡hola mundo!". Y, Nextion funciona con Arduino y todas las versiones de Raspberry Pi.

En este tutorial aprenderás cómo agregar botones de Ubidots a tu interfaz de Nextion Display.

Componentes que necesitas

Descripción

La lógica detrás de activar un botón de Ubidots en tu Nextion Display es bastante simple. Cuando se presiona el botón, una variable en Ubidots cambia. Si el botón está encendido, la variable tendrá el valor de 1, de lo contrario 0.

Recomendamos seguir la guía Cómo configurar la conexión WiFi de tu Raspberry Pi, y también aprender cómo conectarte a ella a través del terminal SSH.

Configuración

  1. Copia el archivo llamado Nextion.HMI a la tarjeta micro SD. (La memoria no debe contener ningún otro archivo y debe estar formateada en FAT32).

  2. Bien. Coloca la tarjeta micro SD dentro del puerto micro SD de Nextion.

  3. 4. Enciende el display Nextion y espera hasta que el archivo se actualice, luego extrae la micro SD.

  4. Conecta el display Nextion a la Raspberry Pi.

  5. Ahora, conecta tu Raspberry Pi de acuerdo a esta tabla:

7. Enciende tu Raspberry Pi y espera unos minutos hasta que inicie.

¡Voila! Ahora deberías obtener algo como esto:

Debido a que la Raspberry utiliza TX y RX también como una forma de acceder a la shell, necesitamos desactivar esta opción para que el Nextion pueda usar estos pines para comunicarse con la Raspberry. Para hacerlo, solo sigue estos pasos:

1. Conéctate a la Raspberry a través de SSH.

2. Copia y pega esto en el terminal de Raspberry:

  sudo systemctl stop serial-getty@ttyAMA0.service

Bien hecho. No deberías ver ninguna línea sobre ttyAMA0 al ingresar este comando:

  ps aux | grep tty

Codificación

Ahora hemos terminado con la configuración necesaria para conectar el display a la nube de Ubidots.

  • Crea un archivo python llamado "display.py".

  nano display.py
  • Copia y pega el código (ya casi terminamos, no te preocupes =D).

import requestsimport binasciiimport serialTOKEN = ""DEVICE_LABEL = ""VARIABLE_LABEL = ""with serial.Serial('/dev/ttyAMA0', 9600, timeout=10) as ser:    while True:        ser.flush()        respuesta = binascii.hexlify(ser.read(4))         if respuesta == "01000000":            url = f"http://industrial.api.ubidots.com/api/v1.6/devices/{DEVICE_LABEL}/{VARIABLE_LABEL}/values?token={TOKEN}"            r = requests.post(url, data = {'value': 1})
  • Cambia el TOKEN, la etiqueta de la variable y la etiqueta del dispositivo para que coincidan con tu dispositivo y la variable que deseas controlar usando el botón. Consulta aquí para encontrar tu variable y token.

  • Guarda y sal.

  • Ejecuta el script de python y habrás terminado.

  sudo python display.py

¡Gran trabajo! Ahora deberías poder controlar una variable de Ubidots de forma remota desde tu display Nextion:

Comparte tus resultados con nosotros en nuestra comunidad de desarrolladores de IoT. Aquí también puedes encontrar consejos útiles y otros grandes proyectos de IoT para implementar hoy.

Este contenido fue publicado originalmente en el Blog de Ubidots el 11 de noviembre de 2014.

¿Ha quedado contestada tu pregunta?