Termostato inteligente e Smart Homebrew

Família Marin se preparando pra primeira brassagemNo início de 2015 fiz a minha primeira brassagem, em Fernandópolis com o meu pai e mais dois primos. Naquela época, meu pai tinha comprado o kit de produção há pouco tempo e eu só tinha visto alguns vídeos no YouTube e lido alguns blogs / livros. Mas mesmo assim, aquela experiência mudou a minha percepção e, provavelmente, a minha vida.
Logo que voltei pra casa, montei o meu kit e logo brassei a minha primeira receita. Quem estiver curioso, pode encontrar as postagens sobre isso aqui no blog mesmo: Montando o primeiro “kit” de equipamentosPrimeira brassagem: American IPA – IPA[0].

A idéia do Smart Homebrew e do termostato inteligente

Bom, mas o projeto Smart Homebrew nasceu porque antes de cervejeiro caseiro, sou um nerd “por natureza”. E desde a primeira brassagem eu ficava imaginando como melhorar aquele processo, pois se fizesse uma boa cerveja (e fiz!!!) seria importante ter tudo anotado e controlado para que fosse possível repetir.

IMG_20150723_215551Além disso, nas férias de julho de 2015 eu tinha feito dois lotes de cerveja (uma IPA e uma Red Ale) e deixei maturando enquanto viajava, inclusive pensando que seria ótimo aquele período maior maturando.

Mas, ao sair de casa configurei o TIC17 (um termostato externo) errado, e ao invés de colocar 7ºC, coloquei 7ºC. E como você pode ver ao lado, eu quase perdi todo os 20 litros que estava produzindo. Ps.: Se um dia você congelar sua cerveja na maturação, calma! Descongele, siga com o processo que tudo (provavelmente) vai ficar bem! 🙂

Então, resolvi começar a projetar e criar o meu próprio termostato que fosse mais inteligente, que eu pudesse monitorar e controlar remotamente. E acima de tudo, queria algo que fosse de baixo custo, fácil de montar e de replicar. Por isso optei por utilizar Arduino e componentes simples.

Como queria compartilhar e manter isso aberto, todo o projeto vai ser Open Source e para melhorar a organização e contribuição de quem se interessar, criei uma organização específica para isso no GitHub, Smart Homebrew.

Resumindo um pouco a história acima, fiz esse vídeo pra apresentar e explicar a idéia:

O termostato

O termostato em si é bem simples, utilizei os seguintes componentes:

  • Arduino Uno
  • Sensor de temperatura DS18B20 da Texas Instruments
  • LCD de 4 linhas e 20 colunas
  • Módulo de relé pra Arduino (2 relés de 10A)
  • 3 push buttons, para configurações manuais
  • 2 leds para indicação de status

Ele basicamente vai lendo a temperatura e caso seja necessário resfriar, o relé 1 é acionado para ligar a geladeira. Quando é atingido a temperatura desejada menos a variação (geralmente 0.5 ºC), a geladeira é desligada e o relé 2 é acionado, caso alguém queira usar um sistema de aquecimento (necessário em regiões mais frias).

No vídeo abaixo é possível ver uma rápida demonstração do funcionamento:

Atualmente os dados são salvos na memória do Arduino (EEPROM), assim quando ele é ligado pela primeira vez, valores padrão são carregados para a memória (controle a 19 ºC e delta de 0,5 ºC). Depois, o usuário pode alterar essas configurações pelos controles manuais e esses valores são salvos na memória também. Assim, se cair energia ou resetar o Arduino, esses valores vão ser carregados da EEPROM e ele vai operar normalmente.

Nesse vídeo eu mostro como fazer a configuração do termostato:

Próximos passos

Atualmente esse termostato não é diferente de outros como TIC17, que estão disponíveis em lojas especializadas (ou no Mercado Livre). Por isso o foco principal agora é que ele transmita esses dados em tempo real para um servidor e possa receber comandos.

Dessa maneira, através de um web site ou aplicativo no celular vai ser possível saber como está a temperatura naquele exato momento e também alterar os parâmetros de configuração. Pra isso já estão a caminho um módulo WiFi (Esp8266) e um Shield Sd Card, assim ele vai armazenar e também transmitir dados. Um “esboço” de road map futuro seria:

  • Envio de dados para o servidor
  • Monitoramento e controle via Internet
  • Alarmes e notificações:
    • Tempo de inatividade (sem atualizações)
    • Funcionamento fora do esperado
    • Alterações no estágio de fermentação
  • Perfis de fermentação / maturação
  • Importação de perfis e instruções de softwares cervejeiros (BeerSmith)
  • Inclusão de novos sensores para medir nível de açúcar e álcool.

Projeto e código fonte

O código fonte para Arduino do termostato já está no GitHub, dentro do repositório thermostat-arduino, que pertence a organização Smart Homebrew. Assim, já é possível clonar o repositório, baixar o código e testar se você tiver os componentes.

O projeto ainda vai ser atualizado com as libs, desenho esquemático do circuito e outras instruções para você construir o seu termostato. Assim que isso for feito no repositório, também irei atualizar aqui o blog post.
Não está nos meus planos passar a vender o termostato montado, mas fornecer o projeto, código e dicas. A idéia é que seja algo fácil e descomplicado.

Se tiverem alguma sugestão de funcionalidade ou encontrarem algum bug, podem me enviar diretamente pela página de issues no GitHub ou até enviar um Pull Request. E se quiser conversar sobre o projeto, pode me encontrar no twitter (@netomarin) e também através dos comentários aqui nessa postagem.

Em breve volto com atualizações e novidades!

Abraços
Neto Marin

  • Rafael

    Show de bola cara, muito bom.
    Acredito que se tiver a funcionalidade de log online e acompanhamento da temperatura em real time, já vai ser o grande avanço e eu com certeza vou querer fazer. Boa sorte ai e parabéns.

  • Olá Neto, entre em contato comigo. Quero trocar umas idéias com você sobre o assunto. Aguardo seu contato. Obrigado.

  • Tens que criar uma pagina no facebook desse blog!

  • Tá aí um projeto bacana e eu fiquei imaginando 5 desses trabalhando nos meus fermentadores agora… Força!

  • Parabéns! tenho umas ideias guardadas e sem tempo de desenvolver pra mandar.

  • Leonardo

    Olá Neto,
    Te mandei um e-mail alguns dias atras. Você teria uma foto melhor das conexoes que faz na protoboard? Gostaria de testar por aqui mas nao consegui decifrar todas conexoes =/

  • renato

    as postagens pararam? quando vai ter a segunda brassagem, post sobre maturação? estou acompanhando, os primeiros ficaram ótimos. abs

  • Vinicius Tavares

    Opa, tudo bem Neto, blz? Meu nome é Vinicius e também sou da área de TI só que infraestrutura e me considero mais um “geek” que um “nerd”! rsrsrs
    Gostaria muito de saber como anda o seu projeto do fermentador? Evoluiu ?
    Quero saber porque estou iniciando como cervejeiro e já fiz a minha primeira brassagem que foi uma IRA – Irish Red Ale, e que modestia a parte ficou 10!
    Também brinco um pouco com Arduino e estou tentando automatizar meus processos, igual a você!
    Fiz recentemente um painel controlador para ajudar no controle de temperatura da panela e estou partindo agora para o fermentador. Pesquisando na web cheguei ao seu blog e vi que é exatamente isto que preciso, e seria de grande ajuda se você pudesse compartilhar as suas atualizações e descobertas.
    Podemos até tentar fazer alguma coisa juntos, pois já fazendo alguns testes com meu Arduino Mega, relê shield de 8 canais, sensor shield, sensores de temperatura e mais algumas coisinhas.
    Apesar desta ser a minha primeira cerveja já deu para perceber que preciso urgente controlar minha fermentação remotamente ou melhor, pela internet.
    Não dá mais para ficar preso em casa cuidando da “criança”, monitorando e mudando as temperaturas do processo manualmente!(rsrsrs)
    Penso até em fazer alguma coisa mais automatizada, tipo já lançar os dados da receita e todo o processo ser feito sozinho, tipo 7 dias a 18°, depois 3 dias a 23° depois vai baixando lentamente para 12°, 5°, 0°, etc… E melhorar também o termostato, para variar menos a temperatura, tipo quando a temperatura está caindo e vai chegando perto da temperatura ideal, o controlador desligue o freezer um pouco antes e vai monitorando, ligando e desligando aos poucos, porque sempre tem aquela inercia, e continua a cair mais antes de estabilizar!
    Quem sabe até pensar em alguma coisa para testar a densidade automaticamente! kkkk Aí já estou viajando né?
    Bom, já me alonguei muito, espero que não tenha abandonado o projeto!
    E aí, vamos dar sequência nisso aí? Grande abraço.
    Vinicius.

  • Pingback: Programando a ESP8266 NodeMCU ESP12-E no Mac OS X | Neto Marin()

  • Julio Verner

    🙁

  • Reinaldo de Souza

    Bom dia..Se puder me enviar o esquema de ligação ficaria muito agradecido. reinaldo356@gmail.com

  • Reinaldo de Souza

    Não consegui testar, dá um monte de erros na lib de lcd, por exemplo este;
    Thermostat:121: error: ‘class LiquidCrystal_I2C’ has no member named ‘setBacklightPin’