Interface Nextion/ESP8266

28 de abril de 2021 Off Por Marcelo Martins

Neste tópico, descreveremos o procedimento de comunicação entre o Nextion e o ESP8266.

Documentando suas saídas:

A interface Nextion, possui uma programação bem simples, que iremos documentar a seguir:

Ao criarmos cada botão na interface, criamos uma programação na IDE Nextion, onde o mesmo, envia dados pela serial, informando o comando que foi pressionado.

Desta forma criamos um protocolo mais simplificado, ignorando o protocolo do nextion.

Conforme vemos na figura acima, ao pressionar o botão INICIAR, temos o evento (Touch Press Event), com dois comandos:

prints “IROn”,4

printh 0A

fragmento do código do nextion

Estes comandos enviam pela serial, a informação do evento IROn, que será interpretado pela aplicação ESP8266.

Para cada botão, vinculamos o envio destes códigos. Permitindo assim, a fácil customização da aplicação por parte dos desenvolvedores.

Mensageria de Saída

São comandos de saída:

  • IROn – Liga Irrigação
  • IROff – Desliga Irrigação
  • S1On – Liga Iluminação Sala
  • S1Off – Desliga Iluminação Sala
  • P1On – Liga Bomba Piscina
  • P1Off – Desliga Bomba Piscina
  • P2On – Liga Iluminação
  • P2Off – Desliga iluminação
  • C1On – Liga Luz Corredor
  • C1Off – Desliga Luz Corredor
  • C2On – Liga o alarme
  • C2Off – Desliga o alarme
  • C3On – Liga o som ambiente
  • C3Off – Desliga o som ambiente

Eventualmente, a customização do ambiente do desenvolvedor será necessária, pois dificilmente uma casa é igual a outra.

Usando estas técnicas simples, é possível então com pouco esforço, customizar a interface, de forma mais dinâmica.

A aplicação ESP, apenas recebe a entrada do nextion, enviando para o servidor, ela não processa ou trata esta informação.

Desta forma, a criação de novos parâmetros no Nextion são automaticamente consolidados no ESP.

Parâmetros de entrada

O Nextion permite tambem, jogar informações dentro da tela.

Hoje a única informação povoada é a informação de hora.

A entrada de valores é feita através da associação de valores diretos.

Pois quando criamos um box, como o da hora, podemos dizer o valor que este possui, conforme exemplo abaixo:

hora.txt=”<hora atual>”

exemplo de entrada de dados

No código do Nextion, fazemos isso através da função Atualizahora.

void Atualizahora(){
char info[40];
char hora[20];
daysOfTheWeek[timeClient.getDay()],timeClient.getHours(),timeClient.getMinutes(),timeClient.getSeconds());
timeClient.getFormattedTime().toCharArray(hora, timeClient.getFormattedTime().length()+1);
sprintf(info,”hora.txt=%c%s%c%c%c%c”,0x22,hora,0x22,0xFF,0xFF,0xFF);
swSer.print(info);
}

fragmento de código do arduino

Também criamos uma interface genérica, para permitir que passemos informações texto, para qualquer box.

A função EntraTXT, permite atribuir valores para um box TXT.

O módulo ESP, será implementado com outras funções alem do TXT, porem em momento oportuno.