Galia System

Participantes:

Heitor Rapela Medeiros
Carlos Henrique Caloête Pena
Gabriel de França Medeiros

Resumo do projeto:

O projeto consiste em uma horta inteligente que pode ser monitorada remotamente via internet. O sistema é composto por sensores que fazem a leitura da temperatura, umidade, luminosidade e disponibiliza esses dados em uma aplicação web para o usuário.

Descrição do projeto:

O projeto consiste em uma horta inteligente que pode ser monitorada remotamente via internet. O sistema é composto por sensores que fazem a leitura da temperatura, umidade do solo, luminosidade e disponibiliza esses dados em uma aplicação web para o usuário poder saber em tempo real as condições da horta, também conta com um reservatório e um sensor de nível d’água que de maneira automática (seguindo os parâmetros de sua horta) ou manual (via aplicação) ativa a bomba para aguar sua plantação.

Vídeo final desenvolvido para a competição:

Instructables desenvolvido para a competição: Instructables Galia System

 

 

Diagrama dos sensores conectados a DragonBoard + Linker Mezzanine

Diagrama: DragonBoard e Aplicação Web

 

 

Documentos utilizados no making of do vídeo final

Códigos disponibilizados no GitHub:

  • https://github.com/GabrielFM/GaliaServer
  • https://github.com/GabrielFM/GaliaUserPage

Histórico do desenvolvimento:

Primeira Semana (07/05/2017 até 13/05/2017)

A primeira semana foi muito importante para idealização do projeto, além do debate sobre novas soluções. Durante a reunião da equipe, foi discutido quais sensores seriam utilizados e como a equipe deve-se organizar para desenvolvimento do projeto. Como avanço da parte tecnológica, realizamos diversos modelos 3D’s para ter a noção de um MVP (produto viável mínimo) para apresentar no final da competição.

As imagens acima mostram o primeiro protótipo do Galia System, no qual seria uma caixa para botar uma muda de um horta. Este protótipo inicial, teve como importância testar se era possível aferir dados interessantes para o cliente do projeto, e também se era possível passar um mecanismo para aguar horta. Basicamente, é uma caixa para colocar areia e a planta. A caixa foi modelada para que no meio ela fosse côncava, com isto o excesso de água vai para as bordas e com os furos que tem na caixa o excesso de água pode evadir para que as plantas não venham a morrer encharcadas. Os furos laterais são para passar a tubulação de água que virá de um reservatório.

Segunda Semana (14/05/2017 até 20/05/2017)

Na segunda semana, as placas (DragonBoard e Mezzanine Kit) chegaram. A equipe instalou do Linux/Linaro-Alip e realizaou testes exemplos de alguns sensores do Mezzanine Kit. Durante a semana, também foi desenvolvido um pixel-art que virou nosso logo.

Terceira Semana (21/05/2017 até 27/05/2017)

Na terceira semana, utilizamos uma bomba de aquário para levar a água para o sistema e realizamos testes de diversas maneiras. Primeiro testamos como iria ficar os furos para poder distribuir água ao sistema, depois analisamos como seria o posicionamento e fizemos testes em uma base de areia. Também foram feitos melhoramentos na modelagem 3D do sistema. Para a água fluir de maneira eficiente, adquirimos tubos maleáveis, em seguida foram feito furos em formatos de cruz e outros formatos para testarmos qual era o melhor formato para acontecer a dispersão eficiente da água.

As imagens acima mostram o modelo desenvolvido nesta semana, é uma versão 2 do modelo apresentado na semana 1, porém com dimensões maiores e adaptado para o tubo por onde passará água do reservatório para abastecer a horta.

Quarta Semana (28/05/2017 até 03/06/2017)

Foi realizado diversos testes na placa dragonboard 410c, e também tiramos dúvidas quanto ao swap da DragonBoard usando o forum (Resposta de Cezmen e Frederico). Com isto, a placa ficou mais eficiente. Na quarta semana, também instalamos as bibliotecas MRAA, UPM e 96BoardsGPIO e conseguimos contornar o erro que apareceu ao instalar uma das bibliotecas: LS_SHARED_ERROR

Dando continuidade ao desenvolvimento da horta, plantamos feijões, na versão Galia System v2. Devido ao fato de em 1 semana os feijões crescerem de maneira rápida, colocamos apoios verticais para ajudar no crescimento.

Quinta Semana (04/06/2017 até 10/06/2017)

Nesta semana, deu início ao desenvolvimento do backend para a placa, onde inicialmente utilizamos python com flask para realizar get/post (pegar e enviar os dados para o banco) junto com Heroku para parte de cloud e o frontend usando Ruby com HTML para que se possa fazer a comunicação dos sensores e a aplicação web.

Sexta Semana (11/06/2017 até 17/06/2017)

Na sexta semana, fizemos a ligação dos sensores, como tinhamos vários analógicos e não tinhamos o ADC habilitado, então fizemos uma versão inicial para o MVP com Arduino usando alguns sensores (DHT11 – temperatura e umidade do ar, umidade do solo, sensor de água), sendo intermediário, e a Dragonboard se comunicando com ele através da UART (comunicação serial).

Porém a equipe tentou procurar maneiras de evitar o uso do Arduino, pois queríamos utilizar ao máximo a Dragonboard e o kit de sensores disponibilizado. Então, atualizamos a versão do Linaro e seguimos o tutorial disponibilizado para dar enable no SPI, através do fastboot. Após esta etapa, tentamos fazer a comunicação com as portas analógicas através de python.

Sétima Semana (18/06/2017 até 24/06/2017)

Na semana final da competição, resolvemos trocar a linguagem de desenvolvimento do backend para C/C++, porque conseguimos fazer a leitura analógica das portas pelo SPI na Dragonboard. Ao invés de utilizar python com flash, trocamos para C/C++ com Curl, e toda a leitura de sensores ficou na Dragonboard/Linker Mezzanine, além do atuador. Como pela Linker Mezzanine temos acesso a 4 analógicos pelo SPI, utilizamos os seguintes sensores: Sensor de Temperatura (presente no kit da Mezzanine), sensor de umidade do solo, sensor de nível de água, sensor de luminosidade. E também o uso do atuador (bomba d’água) que era acionado pelo módulo relay (presente no kit da Mezzanine), fechando assim, a parte de sensores e atuadores do MVP. Após está etapa, seguimos para a parte de planejar a versão v3 do projeto Galia System, e assim acoplar todos os sensores que tinham sido testados.

Do lado da aplicação, foi desenvolvido uma tela de login, e também a tela da aplicação, onde o usuário do sistema pode de maneira fácil e agradável ver em tempo real como está sua horta. Além disto, o usuário pode mudar os parâmetros do sistema para sua horta (se for de alguma espécie em específico), para que tenha maior proveito do sistema. A parte da aplicação é bem intuitiva e as imagens da qualidade do ambiente para a horta, mudam se os parâmetros estão bons ou ruins. O sistema de atuação, que vai regar a horta, pode ser ativado dado certos parâmetros de umidade do solo e temperatura predefinidos pelo sistema e também através do click em Acionar Regador na nossa aplicação.

E para finalizar a etapa de desenvolvimento do MVP, gostaríamos de deixar uma imagem da equipe Galia System. Independente dos resultados da competição, ficamos felizes por ter finalizado o projeto.

Galia System Team – Carlos Pena | Gabriel Medeiros | Heitor Rapela

Materiais Extras:

Hardware:

Em formato de lista:

  • 1 placa DragonBoard 410C
  • 1 Linker Mezzanine Card Starter Kit
  • 1 Cartão de memória (4GB)
  • 1 Sensor de temperatura (kit Mezzanine)
  • 1 Sensor de luminosidade
  • 1 Sensor de umidade do solo
  • 1 Sensor de chuva *(era o sensor que a equipe tinha para o nível d’água)
  • 1 Relay (kit Mezzanine)
  • 1 Bomba de aquário
  • Quantidade grande de tubo de plástico maleável
  • Materiais extras (alicate, chave de fenda, ferro de solda, fita isolante, parafusos, PLA, etc)
  • Jumpers (Sempre tenha uma quantidade boa de jumpers ou fios, de tipos variados Macho-Macho, Macho-Fêmea ou Fêmea-Fêmea)

Software/Firmware:

Em formato de lista:

  • Fusion 360 – Modelagens 3d
  • Versão do Linux Debian – Linaro 17.04
  • 96BoardsGPIO – Biblioteca para DragonBoard*
  • C/C++ – Leitura de sensores – Dados: Sensores – Para: Nuvem
  • Heroku – Sistema de Nuvem (Cloud)
  • Ruby – Desenvolvimento da Aplicação com filtros de dados – Dados: Nuvem – Para: Aplicação
  • HTML – Desenvolvimento da Aplicação – Aplicação
  • GitHub – Repositório Git – Versionamento do código
* Deve-se instalar outras libs que tem dependência como: Libsoc