Tuesday, June 16, 2015

Teste - integração dos dispositivos

Após testar cada módulo ou sensor separadamente, o desafio para finalização do projeto consistiu na conexão de todos os dispositivos ao microcontrolador sugerido no projeto (ATmega2560 da placa Arduino) ao mesmo tempo e seu funcionamento no que se refere ao envio dos dados medidos.
Em outras palavras, os testes apresentados até aqui foram enfim feitos de uma só vez, acoplando todos os dispositivos testados até o momento, resultando no primeiro protótipo de nossa AWS (automatic weather station), como pode ser visto na figura a seguir.
Sistema completo: placa Arduino com Shield de terminais laterais e LCD&Keypad Shield (A); protoboard com sensores do sistema (B); placa de comunicação bluetooth (C); bateria de alimentação do sistema (D) 

Nota-se a ausência de um dos sensores testados ao longo do semestre, o DHT11 (sensor de umidade); infelizmente, o sensor foi danificado e não foi possível repô-lo durante o teste descrito. Nota-se, por outro lado, a adição de um LCD&Keypad Shield - por meio dele, é possível verificar os valores de sensoriamento captados no próprio dispositivo.

Com as conexões seguindo o que foi feito nos testes individuais, restou a implementação de um código capaz de registrar todos os dados recebidos, além de enviá-los via comunicação bluetooth para um receptor.  Quando é necessário integrar vários componentes e realizar múltiplas operações usando o Arduino, é muito provável que o sketch fique longo, o que dificulta a leitura do código. Então, propôs-se a divisão do sketch principal em vários arquivos como mostrado aqui.

Após a criação de um sketch (_2015_ProdMK), basta clicar na seta embaixo do ícone de Lupa (Serial Monitor) no canto superior direito e escolher New Tab para criar novos arquivos.

Sistemas de arquivos múltiplos sendo implementado no Arduino
As abas são concatenadas na hora de compilação. Portanto, o código final comeca com o sketch principal e continua em ordem ASCII (A,B,...,Z,a,b...,z)
1. #include de biblioteca apenas no sketch principal
2. Sugestão de colocar os protótipos das funções no sketch principal
3. Sugestão de colocar os #define e variáveis globais em uma aba DefGlob(em maiúscula)
4. Também é possível colocar o void setup() e void loop() em abas separadas. Como sugestão, nomeá-las como Z_loop e Z_setup. Portanto, elas são as primeiras abas após DefGlob
5. Resto das abas em letra minúscula

Após alguns ajustes no código, o resultado final foi o envio dos dados do sistema via Bluetooth para um receptor (no caso, um notebook), como mostra a imagem abaixo:

Teste de comunicação bluetooth utilizando o TeraTerm (valores lidos pelos sensores podem ser visualizados na tela do monitor).


A próxima etapa do projeto consiste em realizar testes para recebimento dos dados por um dispositivo móvel (celular), por meio de um aplicativo.

No comments:

Post a Comment