Acionamento de relés e leitura de entradas com IHM Nextion
- Cristiano Zanini Nazário
- 22 de fev. de 2021
- 3 min de leitura
Atualizado: 6 de mar. de 2024
Na publicação anterior vimos um hack para programar a IHM Nextion sem a necessidade de usar um conversor USB TTL. Com isso, minimizamos recursos e aceleramos a etapa de gravação.
Agora, avançaremos um pouco mais trazendo uma aplicação prática com a placa Arduino Profissional CPB 0u um Arduino Uno.
O aplicação escolhida foi "Acionamento de relés e leitura de entradas com a IHM Nextion".
PASSO 1: GRAVAÇÃO NA TELA NEXTION
Para colocar logos e outras figuras, usa-se o ambiente abaixo:

Inserimos 3 botões do tipo Dual State para bater os 3 relés primeiramente:

Obs: Adicionamos os logos, possível de colocar o de suas empresas/soluções.
PASSO 2: GRAVAÇÃO NA CPB (OU ARDUINO)
E vamos começar a programar a IDE do Arduino, baixe a library no link e importe para a IDE https://github.com/itead/ITEADLIB_Arduino_Nextion
Para aprender a instalar a biblioteca assim o vídeo abaixo, se você já sabe, execute e siga adiante!
Sugerimos sempre dar uma olhada daí nos exemplos mais simples, caso queira dominar o conhecimento.
Neste momento da pesquisa verificamos que o material pesquisado até o momento, ou estava usando uma placa Arduino Mega, ou estava usando os pinos 0 e 1 do Arduino Uno, que são os pinos onde a CPB (Arduino) debugam os códigos, sempre que possível, nós da Crescer evitamos deixar estes pinos dedicados a um projeto, pois preferimos sempre deixa-los livres para desenvolver o projeto tentando o mesmo durante o avanço.
Então pesquisamos se alguém no mundo já usou o Arduino Uno com a tela Nextion e o SoftwareSerial.h.
O SoftwareSerial.h é uma biblioteca do arquino que transforma qualquer pino do atmega328 (exceto A6 e A7) em pino RX TX de comunicação serial.
O primeiro link encontrado foi https://www.hackster.io/tsavascii/nextion-lcd-communicate-with-arduino-uno-188a44
Já tendo uma imagem animadora que condiz com o que pesquisamos:

Pois mostra a tela Nextion nos pinos 10 e 11 do Arduino, e parece que este link já resolverá nossa demanda...
Primeiro pede para abrirmos o arquivo "Nexconfig.h" que está dentro da biblioteca baixada recentemente.
Dentro do arquivo precisamos encontrar a linha “#define nexSerial Serial2” que está logo no início.
E então vamos trocar esta linha por:
Resultando em:

Aí no software que criaremos para comunicar com a tela, colocaremos no início:
SoftwareSerial HMISerial(10, 11);
Criando assim a porta HMISerial. Criando a seguinte topologia de Hardware:
PASSO 3: CONEXÃO IHM NEXTION - CPB (OU ARDUINO)
1 - Alimentar com a Fonte a CPB e a tela Nextion
2 - TX NEXTION - 10 CPB
3 - RX NEXTION - 11 CPB

Assim temos uma estrutura onde podemos fazer todos os testes e
desenvolvimento que precisamos.
PASSO 4: CONTINUAÇÃO DA GRAVAÇÃO NA CPB (OU ARDUINO)
Na Crescer Professional Board para bater os relés e ler o pino 4, terá o seguinte
código:
#include "Adafruit_MCP23017.h" // biblioteca para bater relés da cpb
Adafruit_MCP23017 mcp; // cria objeto do componente que bate os relés
#include "Nextion.h"
SoftwareSerial HMISerial(10, 11); // porta de comunicação com a nextion
// Objetos da Nextion
NexDSButton RL1 = NexDSButton(0, 4, "bt0");
NexDSButton RL2 = NexDSButton(0, 5, "bt1");
NexDSButton RL3 = NexDSButton(0, 6, "bt2");
NexPicture Led1 = NexPicture(0, 7, "p0");
//Variáveis de Trabalho
uint32_t statusRL1 = 0;
uint32_t statusRL2 = 0;
uint32_t statusRL3 = 0;
uint32_t entrada = 0;
void setup() {
nexInit();
mcp.begin();
mcp.pinMode(0, OUTPUT);
mcp.pinMode(1, OUTPUT);
mcp.pinMode(2, OUTPUT);
pinMode(4, INPUT_PULLUP);
Serial.end(); // por default, a tela usa a serial como debub, então, uma vez funcionando, pode desligar
}
void loop() {
RL1.getValue(&statusRL1); // função para ler os botões
mcp.digitalWrite(0, statusRL1);
RL2.getValue(&statusRL2);
mcp.digitalWrite(1, statusRL2);
RL3.getValue(&statusRL3);
mcp.digitalWrite(2, statusRL3);
entrada = digitalRead(4);
Led1.setPic(entrada + 2); // funcao para mudar a imagem de uma figura
}
RESULTADO:
Tela final da IHM Nextion com a Crescer Professional Board.

Vídeo demonstrativo das funcionalidades:
Fim! Compartilhem conosco seus projetos, suas aplicações, conheçam mais sobre a Crescer Professional Board. Vamos dividir conhecimento para multiplicar resultado.
Comments