Eletrônica digital com … PIC ! Monitoramento de temperaturas de ambientes com o MTR.

Micro-controladoras PIC são muito utilizados em projetos de eletrônica digital. No caso desse projeto cujo sistema de interação criei em Qt (outrora em Python com client em PyGame) foi utilizado uma PIC 16bits, com 5 entradas para sensores analógicos e duas entradas AC, para monitoramento de linha, sendo uma delas para rede estabilizada e a outra, monitoramento da rede pública. A vantagem desse modelo é que a fórmula dos sensores não se aplicam dentro da controladora, que na verdade só faz leitura analógica das frequências geradas na porta e as reenvia – nesse caso especificamente, por ethernet.

Há alguns anos procurei por um dispositivo assim para implementar em um CPD onde trabalhei, mas não achava nada do tipo. Na minha opinião, isso deveria ser vendido até em casa de materiais elétricos!

Nesse projeto tive o prazer de criar o server e o client. Os dispositivos são previamente configurados para comunicação com um dado servidor. O dispositivo formata uma string com valores de timestamp, sensores, bateria interna, no-break, corrente da rede pública, frequência e sensores. A string é enviada para o server, que por sua vez valida o dispositivo, cria sua fila, descarrega seus dados para o banco e, baseado em valores pré-cadastrados, envia alarmes por email, SMS, voz (TTS) e qualquer outra ação que seja previamente programada.

No client (também em Qt), a primeira ação é consultar a lista de dispositivos, enviando uma chave de identificação ao server. Essa ação não é tomada automaticamente porque a conexão com o servidor só acontece após clicar nesse botão. Então o servidor devolve uma lista dos dispositivos (no teste, apenas 1 dispositivo real conectado). Ao duplo clique o client faz uma solicitação ao servidor, passa para uma fila de recepção onde dados pertinentes ao dispositivo solicitado são tratados e retransmitidos ao client com os valores da string devidamente tratados.

Ao inicio da recepção dos dados do dispositivo, o client faz um parse na mensagem, converte os valores e automaticamente troca para a segunda aba, exibindo então os dados vindos na string. Na terceira aba está disponível um gráfico linear online que exibe o valor de um dado sensor.

Um projeto desse nível leva um bom tempo de desenvolvimento e um certo custo. Apesar do dispositivo ser passivo, o sistema servidor é ativo e interage conforme as variáveis de ambiente pré-cadastradas. Como trata-se de um produto, o investimento financeiro e tempo são compensados e o resultado é o produto com um sistema interativo (com histórico web):

O sistema de histórico é web, porém está sendo remodelado para uma melhor experiência visual e informativa.
Enfim, um hardware relativamente simples que ganhou poder de ação através do sistema que o integra. Tem alguma boa idéia? Então coloque em prática!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta