Interface Nextion/ESP8266
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(){
fragmento de código do arduino
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);
}
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.