Manual

do

Maker

.

com

Comunicação serial com Nextion sem biblioteca

Comunicação serial com Nextion sem biblioteca

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.

Comunicação serial com Nextion

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.

Projetando a interface para 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.

bg.webp

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!

Código para comunicação com display

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.

Executando

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.

Onde adquirir

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.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.