¿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
Descarga el archivo Nextion de Ubidots.
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).
Bien. Coloca la tarjeta micro SD dentro del puerto micro SD de Nextion.
4. Enciende el display Nextion y espera hasta que el archivo se actualice, luego extrae la micro SD.
Conecta el display Nextion a la Raspberry Pi.
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})
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.