Interfaces IoT simplificadas com Nextion, Raspberry Pi e Ubidots
Já ouviu falar do Nextion Display ? O Nextion permite criar interfaces incríveis, mesmo que seu nível de programação seja "Olá, mundo!". E as vantagens não param por aí. Ele funciona com Arduino e todas as versões do Raspberry Pi.
Este tutorial mostrará como adicionar um botão Ubidots à sua interface de exibição Nextion
Requisitos
Descrição
A lógica por trás da ativação de um Ubidots no seu Nextion Display é bastante simples. Quando o botão é pressionado, uma variável no Ubidots é alterada. Se o botão estiver ativado, a variável terá o valor 1; caso contrário, terá o valor 0.
Recomendamos seguir o guia Como configurar a conexão Wi-Fi do seu Raspberry Pi e também aprender como se conectar a ele através do terminal SSH.
Configurar
- Baixe o Ubidots Nextion .
- Copie o arquivo chamado Nextion.HMI para o cartão micro SD. (A memória não deve conter nenhum outro arquivo e deve estar formatada em FAT32).
- Ótimo. Insira o cartão micro SD na porta micro SD do Nextion.
- 4. Ligue o monitor Nextion e aguarde até que o arquivo seja atualizado. Em seguida, remova o cartão microSD
- Conecte o monitor Nextion ao Raspberry Pi.
- Agora, conecte seu Raspberry Pi de acordo com esta tabela:
| Display Nextion | Framboesa |
|---|---|
| 5V | 5V |
| TX | RX |
| RX | TX |
| GND | GND |
- Ligue o seu Raspberry Pi e aguarde alguns minutos até que ele inicialize.
Voilà! Agora você deve obter algo parecido com isto:
Como o Raspberry Pi usa TX e RX também para acessar o shell, precisamos desabilitar essa opção para que o Nextion possa usar esses pinos para se comunicar com o Raspberry Pi. Para isso, basta seguir estes passos:
-
Conecte-se ao Raspberry Pi via SSH.
-
Copie e cole isto no terminal do Raspberry Pi:
sudo systemctl stop serial-getty@ttyAMA0.service
Muito bem. Você não deverá ver nenhuma linha referente a ttyAMA0 ao inserir este comando:
ps aux | grep tty
Código
Agora concluímos a configuração necessária para conectar o display à nuvem Ubidots .
- Crie um arquivo Python chamado “ display.py ”.
nano display.py
- Copie e cole o código (já estamos quase terminando, não se preocupe =D).
import requests import binascii import serial with serial.Serial('/dev/ttyAMA0', 9600, timeout=10) as ser: while True: ser.flush() respuesta = binascii.hexlify(ser.read(4)) if respuesta == "01000000": r = requests.post('ubidots', data = {'value':1}) if respuesta == "00000000": r = requests.post('ubidots', data = {'value':0})
- Altere o TOKEN, o rótulo da variável e o rótulo do dispositivo para corresponder ao seu dispositivo e à variável que deseja controlar usando o botão.
- Salvar e sair.
- Execute o script Python e pronto.
sudo python display.py
Excelente! Agora você deve conseguir controlar uma variável Ubidots remotamente a partir do seu display Nextion:
Sinta-se à vontade para compartilhar seus resultados em nossa comunidade de desenvolvedores IoT para obter mais informações ou ajuda!