>Portuguese Version< – English Version – Spanish Version – French Version – Deutsch Version
API de Integração
O Painel é uma aplicação que roda em android, e permite chamar os usuários.
Ela utiliza uma smart tv, ou tv box conectada a uma tv.
Porem usando o protocolo correto, qualquer aplicação pode simular as respostas, realizando a mesma função da TV BOX.
O objetivo deste documento, é detalhar o protocolo permitindo customizações.
Protocolo PAINEL
Ilustração de comunicação com API
O Painel permite ser integrado através de uma API simples.
Neste tutorial, descreveremos como realizar a integração no PAINEL.
O PAINEL sempre procura uma conexão no servidor pela porta 8096.
O PAINEL, solicita atualização a cada 300ms, repetindo a solicitação constantemente.
O Painel é uma conexão cliente, que sempre envia um comando ao servidor.
O Servidor é sempre a maquina localizada no IP 192.168.0.114 da rede local, em versões maiores que 1.2, é possível mudar o ip do servidor, dando um click no relógio.
Por isso, o servidor precisa ser fixado através de IP FIXO, em sua rede DHCP.
Este servidor, por sua vez pode responder, com comandos que serão interpretados por ele.
COMANDOS RESPONDIDOS PELO SERVIDOR
GUICHE
Este comando realiza a chamada de um dado numero de um grupo especifico.
Disponível a partir da versão 1.0
Sintaxe:
GUICHE>[nro guiche]:[senha];
Sintaxe do Comando
O NRO GUICHE – É o numero do atendente ou guiche.
SENHA – É a senha que será chamada.
GRUPO
Este comando realiza a modificação do label do grupo indicado.
Planejada a partir da versão 1.3
Sintaxe:
GRUPO>[nro grupo]:[texto];
Sintaxe do Comando
O NRO GRUPO- É o numero do Grupo que aparecerá no terminal
Texto- É o rótulo que será apresentado no terminal.
MSG
Este comando realiza a modificação do rotulo da mensagem.
Disponível a partir da versão 1.2
Sintaxe:
MSG>[texto];
sintaxe da mensagem
Texto- É a mensagem que será apresentado no terminal, no rodapé
NOW
Este comando realiza a verificação da proxima senha, onde verifica se houve mudança no servidor.
Sintaxe:
NOW;
sintaxe da mensagem
Syntax:
MSG>[text];
message syntax
Text- It is the message that will be displayed in the terminal, in the footer
NOW
This command performs the next password check, where it checks if there has been a change on the server.
O windows defender, não reconhece o aplicativo, pois o mesmo não é assinado. Pois se trata de um projeto gratuito. Desta forma é necessário aceitar a execução, ignorando o aviso.
A primeira etapa é a instalação do pacote de instalação. No caso do instalador do fila existem 3 tipos:
Instalador FILA com instalação do Elgin (Drivers)
Instalador FILA com instalação do POS58 (Drivers)
Instalador FILA apenas a aplicação.
Ao instalar, seguirá o menu, conforme figura abaixo:
Seleção do processo de instalação que será realizado
Selecione Avançar, conforme figura acima.
Próximo passo do instalador
Conforme figura abaixo, o instalador apresentará o que será realizado. Confirme as opções de instalação.
Agora click em Instalar, e aguarde o termino da instalação.
Nesta etapa o instalador começará a ser realizado.
Copiando os arquivos.
Agora será rodado o arquivo de configuração.
Instalação do Elgin e Pos58
Nesta etapa o instalador, chamará o arquivo de instalação do POS58 ou Elgini9, conforme sua solicitação.
Siga os passos indicados, ou em caso de dúvidas, chame um suporte especializado do fabricante.
Ao gerar um aplicativo no lazarus, o mesmo nao assina digitalmente, porem existe este script que resolve o caso.
Para gerar uma assinatura no apk gerado pelo Lazarus é necessário rodar um script, irei passar este a seguir.
set jdkbindir=C:\Program Files\Java\jdk-11.0.9\bin set APP_NAME=Painel set Yourpassword=suasenha set YourApp=Painel set YourHavefunsoft=Maurinsoft set Yourcompany=maurinsoft set YourSigla=BR
del Painel.keystore REM “%jdkbindir%”\keytool -genkey -v -keystore Painel.keystore -alias Painel -keyalg RSA -keysize 2048 -validity 10000
REM Generating on the fly a debug key “%jdkbindir%\keytool” -genkeypair -v -keystore Painel.keystore -alias %YourApp% -keyalg RSA -validity 10000 -dname “cn=%YourHavefunsoft%, o=%Yourcompany%, c=%YourSigla%” -storepass “%Yourpassword%” -keypass “%Yourpassword%” -keysize 2048 REM Assinando APK REM #del %APP_NAME%-armeabi-v7a-release-14.apk “%jdkbindir%\jarsigner” -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Painel.keystore -keypass %Yourpassword% -storepass %Yourpassword% -signedjar %APP_NAME%-desalinhado.apk %APP_NAME%-armeabi-v7a-release-14.apk Painel
REM Verificando assinatura set jdkbindir=C:\Program Files\Java\jdk-11.0.9\bin rem set APP_NAME=%APP_NAME%-desalinhado.apk
REM Signing the APK with a debug key “%jdkbindir%\jarsigner” -verify -verbose -certs .\%APP_NAME%-desalinhado.apk
REM Alinhando APKset APP_NAME=testapp set buildtoolsdir=C:\android\build-tools\28.0.2 REM Align the final APK package %buildtoolsdir%\zipalign -p -f -v 4 .\%APP_NAME%-desalinhado.apk .\%APP_NAME%.apk
Vou continuar trabalhando para deixar os ricos mais ricos, porem como um médico trabalha em um hospital pago, e também faz trabalho voluntário para ajudar o próximo. O programador, faz o mesmo, criando soluções de boa qualidade Open Source, de forma gratuita.
Quem compra software proprietário, é um publico diferente que adquire o livre.
O Software voluntário tem duas funções: 1) Apresentar competência, em um mundo de patentes. 2) Apresentar soluções práticas e simples para pessoas que normalmente estão fora da curva de consumo dos produtos pagos.
Software livre é uma forma de distribuir conhecimento e oportunidade de crescimento. Não retirar receita, empresas que pensam assim estão fadadas ao fracasso.
Não irei me calar, apesar de toda a injustiça.
Continuarei produzindo sempre com ferramentas open source, pois assim contribuo também, não só para deixar os ricos mais ricos, mas os pobres menos pobres. Aos que me apoiaram nesse momento difícil, agradeço mais uma vez. Empresas, acordem! Nunca se usou tanto software gratuito como se usa hoje, e as empresas nunca ganharam tanto. Vamos divulgar essa ideia.
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.
Agora iremos configurar a porta serial, selecione Ferramentas > Porta > Selecionando a porta que foi indicada no seu Gerenciador de dispositivos, dito no procedimento anterior.
Configuração de Porta Serial
No meu caso, selecionei a COM9, conforme figura acima.
Passo 5
Agora iremos programar a placa, para tanto duas ações são necessárias.
O Lolin, precisa estar preparado para receber a carga. Diferente do arduino, o lolin possui um modo de gravação.
Para ativar o modo de gravação, é necessário pressionar o botão RESET e o Flash.
Fazendo na seguinte sequencia:
Mantenha pressionado o RST
Mantenha pressionado o Flash
Solte o RST
Solte o Flash
Desta forma, você garante que o procedimento de carga de firmware será esperado pela placa.
Posição dos botões Flash e RST
Passo 6
Agora, por fim, iremos enviar a carga para o Lolin, clicando com nossa aplicação aberta no botão Carregar.
Botão Carregar
Caso, sua aplicação tenha qualquer problema de compilação, o procedimento não será completado, e o firmware não será enviado.
Em caso de necessidade de repetir o procedimento, deve-se repetir também o passo 5.
Bom pessoal, estes são os procedimentos necessários para programar o Lolin.