domingo, 8 de janeiro de 2017

Meu Aquário Conectado


Estou finalizando a terceira versão do meu aquário conectado, pois uma coisa chata de ter uma aquário é ficar ligando e desligando as luzes, bem como monitorar a a temperatura da água e colocar ração.

Primeira versão


Dessa forma a minha primeira experiência foi utilizar um Arduíno para automatizar, porém foi muito trabalhoso, pois eu queria que as luzes ligassem e desligassem em horas exatas, foi uma experiência legal. 

Essa montagem foi feita apenas em uma protoboard com os seguintes recursos: 

  • leitura de temperatura da água;
  • acionamento da bomba de ar;
  • acionamento da luz;
  • acionamento do aquecedor;
  • acionamento de um motor servo para liberar ração;
  • um sensor de ultrassom para detectar quando alguém chegava perto do aquário;
  • um visor de 16x2;
  • um receptor e um transmissor de radio frequência de 433Mhz; e
  • dois botões.




Encontrei algumas dificuldades desse projeto,  a primeira foi uma montagem na protoboard é ruim e fica muito feio para utilizar definitivamente, isso deve ser feito apenas para sua finalizada: protótipo, a segunda foi problemas na programação, o código começou a ficar muito grande, tive que começar a me preocupar em otimizar o código, porém essa lógica de controlar os sensores e atuadores começou a ficar complexa, por último tinha problemas com o relógio, pois as vezes não sincronizava direito ou o relógio atrasava devido a não tem um shield específico para isso, além disso o visor também dava alguns erros.

Desenvolvimento da versão atual


Na versão atual eu preferi simplificar esse projeto, para isso irei utilizar um ESP8266 ESP-12 que já vem com WIFI, dessa forma não irei mais utilizar um Arduino nem será mais necessário o par de receptor/transmissor de rádio frequência de 433Mhz. 

Logo, resolvi também remover,  para que seja mais fácil de manter, o visor, os botões e o servo, que no lugar desse último será utilizado um aparelho de ração automática  que será adaptado. Quanto ao sensor ultrassom, foi trocado por um Mine Sensor de Movimento PIR.

A luz foi substituída por um fita LED, dessa forma será possível controlar a cor da luz bem como seu brilho.

O módulo do aquário terá o mínimo de inteligência necessário, pois todo o controle será feito por um framework de automação Home Assistant rodando em um Raspberry Pi (RPI).

Hardware


O hardware do módulo terá os seguintes atuadores/sensores:
  • 2 relés para acionar a bomba de ar e aquecedor);
  • 3 Transistores para fita LED;
  • 1 Transistor para acionar a ração;
  • Mine Sensor de Movimento PIR; e
  • 1 Sensor de temperatura ds18b20.
Resolvi fazer o hardware em um placa em versão final, chega de protoboard para versão final, dessa forma segue abaixo o código fonte e o esquema de montagem da placa, bem como alguma imagens, no próximo post eu comento mais sobre seu funcionamento.




Software


O código ainda ainda está sendo finalizando, porém até o momento já está implementado o acionamento da luz em fita LED sendo possível controlar a cor e o brilho. Também já está implementado a leitura do sensor de temperatura.


Interface (Central de Controle)


Toda a comunicação entre o módulo do aquário e Home Assistant no Raspberry PI está sendo realizado por WIFI utilizando o protocolo MQTT, em outros posts irei falar como esse protocolo e sua instalação.

Dessa forma o framework de automação Home Assistant, que é implementado em Python, está rodando no RPI com a distribuição Raspbian, que é um otimização do Debian. Juntamente no RPI está rodando um broaker MQTT - Mosquitto.

3 comentários:

  1. Boa noite Gostei do seu Projeto, Como posso esta adquirindo a interface do App para o celular... quero montar um com essa Interface...

    ResponderExcluir
    Respostas
    1. meu e-mail e dariomenesesmg@gmail.com

      me manda uma resposta vlw..

      Excluir
  2. legal o seu projeto, mas não consigo compilar o fonte.
    A mensdagem de erro é:


    Arduino: 1.8.7 (Linux), Placa:"Generic ESP8266 Module, 80 MHz, Flash, ck, 26 MHz, 40MHz, QIO, 512K (no SPIFFS), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

    /home/administrador/Área de Trabalho/Meu Aquário Conectado/aquario_conectado-master/aquario_conectado/sensor_pir.ino: In function 'void pir_loop()':
    sensor_pir:6:46: error: 'TRUE' was not declared in this scope
    client.publish(pir_state_topic, on_cmd,TRUE);
    ^
    /home/administrador/Área de Trabalho/Meu Aquário Conectado/aquario_conectado-master/aquario_conectado/sensor_temperatura.ino: In function 'void temperatura_loop()':
    sensor_temperatura:11:68: error: 'TRUE' was not declared in this scope
    client.publish(temperatura_state_topic, String(temp).c_str(),TRUE);
    ^
    exit status 1
    'TRUE' was not declared in this scope

    Este relatório teria mais informações com
    "Mostrar a saida detalhada durante a compilação"
    opção pode ser ativada em "Arquivo -> Preferências"


    o que é que deu errado?

    wilson souza
    wilson-sn@bol.com.br

    ResponderExcluir