Manual
do
Maker
.
com
O display Nextion é sem dúvida o melhor display que você encontrará para qualquer projeto, é incontestável. Mas sua vantagem sobre todos os demais é principalmente pelo fato de ele possuir um processador ARM para gerenciá-lo, além de uma IDE que lhe permite desenvolver uma interface em 5 minutos com botões, animações, sliders e tudo o mais. Nesse artigo veremos uma comunicação serial com Nextion sem biblioteca, utilizando um adaptador FTDI e mandando comandos diretamente do computador.
Talvez você se pergunte por qual razão alguém utilizaria comunicação serial com Nextion sem biblioteca (fornecida pela Itead), mas a resposta é simples; desse modo não ficamos presos a nenhuma plataforma. Quer utilizar com ESP32? Ok, feito. Com ESP8266? Sem problemas. Você pode utilizá-o em qualquer plataforma, como Onion Omega, VoCore, Arduino Industrial, Carambola, Raspberry, Orange, Banana, PIC, Digispark, Notebook/PC (com o auxílio de um adaptador FTDI) ou qualquer outra que ofereça a possibilidade de comunicação serial. Para esse singelo exemplo, vamos fazer um progress bar interagindo com o notebook pra facilitar e agilizar o tutorial, mas pode ser utilizado com qualquer Arduino, inclusive o UNO, bastando fazer os testes prévios e posteriormente utilizando alimentação externa e a serial nos pinos 0 e 1 para comunicação com o display.
Criei algumas imagens simples com o Gimp. Um background e 2 imagens para o progress bar. Uma das imagens será o background do widget Progressbar, enquanto o outro será a evolução do valor. As imagens não são exatamente uma obra de arte, mas pelo menos não gastei mais que 2 minutos para fazê-las.
Tem como fazer crop do background e eliminar a barra azul, caso você queira deixar transparente, mas eu preferi assim mesmo. As dimensões são 400x240 e as imagens da barra de progresso eu fiz no tamanho de 400x70. Depois, importei as imagens na IDE, coloquei o background, incluí um widget Progressbar e modifiquei os atributos para imagem de backgound e imagem de sobreposição. Interface pronta!
Fiz um código básico em python, que permite interação por shell. No video eu mostro o processo da criação da interface para o display e o funcionamento do progressbar.
import serial
import sys
from time import sleep
nx = serial.Serial("/dev/ttyUSB0",9600,timeout=2)
for i in range(0,3):
nx.write("\xFF")
sleep(0.1)
def writeTxt(value):
nx.write("j0.val=")
sleep(0.01)
nx.write(value)
sleep(0.01)
for i in range(0,3):
nx.write("\xFF")
sleep(0.01)
writeTxt(str(sys.argv[1]))
Desculpe, fiz o código para utilizar no Linux, que é meu sistema nativo. Mas repare que não tem nada de especial no código, podemos utilizar qualquer programa serial e mandar manualmente os mesmos comandos que estão em nx.write.
Após ter subido o firmware para o display, podemos testar facilmente o código através do shell, fazendo um loop:
for i in `seq 0 100`; do python nextion.py $i;sleep 0.1;done
No video (que deverá estar publicado algumas horas após esse artigo mostro a utilização do Gimp para produzir as imagens, a criação do projeto no Nextion Editor e a utilização do script, com o display à frente do monitor do notebook. Dê uma olhada lá no nosso canal DobitAoByteBrasil no Youtube e, não deixe de se inscrever e clicar no sininho pra motivar a criação de mais conteúdo.
Essa belezinha está disponível no parceiro MASUGUX, aproveite que estamos no começo dos tutoriais e vamos tocando juntos os projetos!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.