Índice:

JavaStation (cafeteira IoT com auto-recarga totalmente automática): 9 etapas (com imagens)
JavaStation (cafeteira IoT com auto-recarga totalmente automática): 9 etapas (com imagens)

Vídeo: JavaStation (cafeteira IoT com auto-recarga totalmente automática): 9 etapas (com imagens)

Vídeo: JavaStation (cafeteira IoT com auto-recarga totalmente automática): 9 etapas (com imagens)
Vídeo: No it doesn’t shoot water into the grounds #coffee #espresso 2024, Julho
Anonim
JavaStation (cafeteira IoT com auto-recarga totalmente automática)
JavaStation (cafeteira IoT com auto-recarga totalmente automática)
JavaStation (máquina de café IoT com auto-recarga totalmente automática)
JavaStation (máquina de café IoT com auto-recarga totalmente automática)
JavaStation (máquina de café IoT com auto-recarga totalmente automática)
JavaStation (máquina de café IoT com auto-recarga totalmente automática)

O objetivo deste projeto era fazer uma cafeteira totalmente automática com controle de voz que se auto-enchia de água e tudo o que você realmente precisava fazer era substituir os clientes e beber seu café;)

Etapa 1: Introdução

Introdução
Introdução

Como este foi meu segundo mod de café, aprendi muito no processo, principalmente que quanto mais complexa a máquina você modifica, mais problemas / bugs você encontrará durante a operação do dia a dia. A máquina anterior era apenas uma simples cafeteira de 1 switch com um mod de relé.

A Circolo (versão totalmente automática) é a máquina premium topo de linha da Dolce Gusto. Tive que passar horas procurando a máquina adequada porque todas as outras máquinas desta série usam a alavanca mecânica superior para alternar entre os fluxos de água quente e fria, conforme mostrado na imagem.

Etapa 2: Escolha a máquina certa

Escolha a máquina certa
Escolha a máquina certa

Minha máquina base não é apenas totalmente automática, mas tem características notáveis como desligar automaticamente após 5 minutos e lembrar da última quantidade de café (o que tornará as coisas muito mais fáceis mais tarde no modding). A operação básica da máquina:

1, botão liga / desliga pressionado

2, botão de água fria pressionado (dispersará imediatamente a água para o copo)

3, botão de água quente pressionado (vai aquecer a caldeira ~ 20-60 seg e começa a liberar água quente para o copo) A luz de energia piscará em vermelho durante o período de espera e ficará verde permanentemente quando a caldeira estiver pronta.

Esta máquina também tem a capacidade de detectar os seguintes erros:

Tanque de água está vazio

O porta-copos não está no lugar

Em ambos os casos, a luz de energia estará piscando entre vermelho / verde.

Etapa 3: modificações de hardware

Modificações de Hardware
Modificações de Hardware

Neste artigo não vou detalhar a desmontagem e remontagem do caso, pois há vídeos sobre isso no YouTube. O microprocessador principal está escondido logo abaixo do painel principal, onde os 2 interruptores estão. A caldeira encontra-se do lado direito da caixa separada de todo o resto, a bomba e o painel de alimentação ficam do lado esquerdo.

A máquina de café é um ambiente pesado para a eletrônica, nenhuma das laterais é perfeitamente adequada para a integração de um circuito. A direita na caldeira tem mais espaço, mas você vai lidar com o calor, obviamente o circuito não poderia tocar na placa da caldeira nem ficar perto dela. Eu escolhi a fonte de alimentação / lado da bomba, mas aqui você tem que lidar com a ressonância pesada proveniente da operação da bomba de membrana que pode destruir o circuito de controle / fazer com que os fios escapem de seus conectores com o tempo.

O painel da fonte de alimentação não contém nada útil, mas pode ser usado para retirar um + 5V estável (mais um polegar para cima para esta máquina) que pode ser conectado diretamente ao pino VIN do Arduino ignorando o regulador de tensão integrado.

Lista rápida de hardware (não BOM completo, não inclui o básico):

  1. Dolce Gusto Circulo versão totalmente automática
  2. Módulo de relé de 4 canais 5V com optoacoplador para PIC AVR DSP (sugiro o uso de 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (sugiro usar SparkFun Pro Micro ou mais recente no futuro)
  4. 2PCS 4n35 FSC optoacopladores fototransistor
  5. Válvula Solenóide Elétrica 1/2 "Para Água Ar N / C Normalmente Fechada DC 12V
  6. Módulo Ultrassônico HC-SR04 Sensor Transdutor de Medição de Distância (compre alguns extras, você verá mais tarde o porquê)
  7. Módulo sensor de detecção de umidade de gota de chuva 2 unidades de detecção de chuva para Arduino
  8. 1 Xbee
  9. Encaixes de tubulação para blocos de água (pode variar dependendo da casa, melhor comprar em uma loja de ferragens e montar tudo lá antes de comprar)

Etapa 4: Conexões principais e a placa controladora

Conexões principais e a placa controladora
Conexões principais e a placa controladora
Conexões principais e a placa controladora
Conexões principais e a placa controladora
Conexões principais e a placa controladora
Conexões principais e a placa controladora

Os seguintes pontos de circuito precisam ser conectados:

1, botão de atalho

2, botão frio

3, led vermelho

4, led verde

5, botão de alimentação principal

6, GND compartilhado

Infelizmente, perdi minhas notas / fotos sobre onde soldá-los na placa, mas tudo pode ser facilmente rastreado com um multímetro (basta usar o modo de teste de diodo para rastrear os fios de volta). A soldagem não foi muito difícil, escolha os pontos com as pernas SMD e solde os fios ali.

Os LEDs vermelho / verde estão localizados próximos um do outro na chave liga / desliga. São necessários para determinar os estados da máquina (ligada, pronta para fazer café (caldeira aquecida), erro). Eu os tirei diretamente da placa principal, porque é difícil mexer no pequeno circuito ao redor do botão liga / desliga.

Eu estava usando optoacopladores 4N35 para fazer uma interface segura com o Arduino e ler os estados do LED. A ideia original era usar 5 deles e fazer as leituras e também os controles (fazer um circuito totalmente silencioso). Infelizmente, este chip não conseguiu gerar resistência baixa o suficiente para emular um toque de botão, então fui forçado a usar relés. Usei o módulo de relé genérico de 4 canais que tinha em mãos, mas se tivesse que refazer este projeto, usaria apenas pequenos relés Reed (SIP-1A05 Reed Switch Relay com diodos flyback internos) que podem ser conectados diretamente à saída do Arduino pinos (carga de ~ 7 mA) para que tudo pudesse ser colocado em uma estrutura de placa de 2 níveis.

Os 5 pequenos cabos podem ser facilmente colocados próximos aos cabos de alimentação embaixo da placa de alimentação.

Para usar o espaço de forma mais eficiente na máquina, decidi dividir a eletrônica em 2 painéis principais:

A esquerda é a placa de controle principal, a direita (o que eu chamo de placa de comunicação) segura o Xbee e embora não seja mostrado na imagem os 2 sensores de água (para detecção de transbordamento) espremidos atrás dela. Na parte superior o relógio de tempo real (opcional para uptime:)) e a placa de relé de 4 canais ocupando seu lugar próximo à bomba na parte inferior envolta em uma esponja, também colada um pouco para proteger da ressonância.

Para a placa de comunicação, não me incomodei em fazer o PCB, apenas usei uma placa de ensaio normal porque não há muita coisa acontecendo lá. Possui 6 conexões com a placa principal:

Vcc (5V), GND, Xbee (TX), Xbee (RX), sensor de água 1 (dados), sensor de água 2 (dados)

Etapa 5: Controle do fluxo de água e mecanismo de recarga

Controle de fluxo de água e o mecanismo de recarga
Controle de fluxo de água e o mecanismo de recarga
Controle de fluxo de água e o mecanismo de recarga
Controle de fluxo de água e o mecanismo de recarga
Controle de fluxo de água e o mecanismo de recarga
Controle de fluxo de água e o mecanismo de recarga

Projetei esta máquina com a segurança em mente, tornando impossível que invasores / falhas de funcionamento causem sérios danos à água na casa, já que a máquina estaria conectada à torneira e à Internet 24 horas por dia, 7 dias por semana. Isso é o que o seguinte circuito de proteção 555 faz no topo do solenóide.

Observe também que o solenóide opera com uma fonte de alimentação de 12 V que ainda consegui espremer na parte inferior da máquina de café ao lado da bomba e da placa de relé. Para não desperdiçar energia, a placa de relé de 4 canais comuta o 230 V principal diretamente para o adaptador que ligará o solenóide. É claro que há um atraso de desligamento de alguns microssegundos que você deve calcular para o colapso do campo magnético tanto no solenóide + quanto no adaptador ao puxar o plugue.

Estou usando um conector padrão de 3,5 mm para conectar o bloco de água externo com um longo fio de 3 metros e um tubo de PVC de pequeno diâmetro saindo do bloco que vai até a cafeteira.

A parte superior do tanque de água é perfurada para acomodar esse tubo, que é levado para o fundo do tanque. Eu observaria que é muito importante alimentar o tubo até o fundo do lado, sem passar pelo meio e interferir nos sensores ultrassônicos.

Depois que o solenóide é ligado, o circuito o desliga automaticamente após ~ 4 segundos (o que deve ser mais do que tempo suficiente para encher o tanque até cheio) e permanece neste estado até o próximo ciclo de LIGAÇÃO. Este circuito é a última linha de defesa contra mau funcionamento e opera totalmente independente da cafeteira. Se o relé da máquina falhasse e ficasse fechado a água poderia inundar a casa, com essa proteção isso nunca poderia acontecer.

Se isso ainda não for bom para você ou se for impossível fechar a água ou se você não quiser mexer nos blocos d'água, dê uma olhada no meu projeto WasserStation que foi construído exatamente para isso para estender o pequeno tanque de água da máquina de café.

Etapa 6: detecção de inundação

Detecção de Inundação
Detecção de Inundação
Detecção de Inundação
Detecção de Inundação
Detecção de Inundação
Detecção de Inundação

Existem 2 sensores de água adicionais para proteção:

  • Sensor1: na parte de trás do tanque para detecção de transbordamento do tanque
  • Sensor2: na parte inferior da máquina de café para detecção de transbordamento da xícara

Ambos os sensores irão disparar uma interrupção que desliga a água imediatamente, acende a luz de erro e aborta a execução do programa para evitar um ataque como fazer um milhão de cafés e inundar a casa dessa forma. Depois que o programa é encerrado, a máquina não responde mais a nada e deve ser circulada manualmente.

Caso você esteja se perguntando o que aconteceria se o sensor ultrassônico fosse inundado (isso aconteceu uma vez:))

Ele estava devolvendo o nível da água assim por alguns dias, mas mesmo depois de secar nunca mais foi preciso e tive que substituí-lo. A máquina foi projetada para funcionar com água fria da torneira, de forma que nenhum vapor quente danificaria o sensor. Este sensor só é preciso até que o nível de água esteja a 2-3 cm dele.

A forma elíptica do tanque dificultou os cálculos do nível de água, então eles foram medidos e codificados no programa para corresponder às porcentagens.

Etapa 7: Teste e Montagem Final

Teste e Montagem Final
Teste e Montagem Final
Teste e Montagem Final
Teste e Montagem Final
Teste e Montagem Final
Teste e Montagem Final

A máquina em seu estado final, escondendo quase completamente os rastros de qualquer invasão e se os 3 LEDs indicadores de status e a porta de depuração USB não estivessem lá, você não poderia dizer que mais alguma coisa acontecendo dentro de você mesmo poderia abrigar um Wifi conectado Servidor Quake:)

Quando eu modifico dispositivos, sempre mantenho o uso manual como prioridade. Após o hack, a máquina pode ser totalmente utilizada por qualquer pessoa do jeito que estava, exceto que o tanque de água não pode ser removido facilmente. A menos que você termine a parte completa da automação da água do projeto, a máquina só pode ser abastecida neste ponto com uma combinação de pequeno tubo + funil.

Etapa 8: Código de controle do café

Código de Controle de Café
Código de Controle de Café

Encontre o código-fonte completo do Arduino anexado abaixo.

Breve explicação do código:

O loop principal chama a função xcomm (), responsável pelo processamento do comando, preparação do café, liga / desliga a máquina.

O código abaixo só é alcançado em caso de controle manual. Ele aumenta um contador de estatísticas para controlar quantos cafés foram feitos e enche o tanque de água automaticamente.

Os comandos podem ser enviados pelo Xbee ou pela porta USB (o Debug deve ser ativado no início). Quando a comunicação vem de um dos dois, o led laranja pisca por um segundo para mostrar a atividade da rede. Os seguintes comandos são implementados:

1, CMSTAT - estatísticas de consulta da máquina

A máquina armazena estatísticas sobre quantos cafés quentes / frios / manuais foram feitos e também obtém o tempo de atividade do RTC que não transborda após 3x dias, podendo ir até anos: P

2, CMWSTART - começa a fazer café e bebidas quentes com água quente

3, CMCSTART - começa a fazer chá gelado e bebidas geladas com água fria

Os processos quentes e frios começam com a chamada da função standby (), que faz verificações adicionais e, em seguida, aciona o botão liga / desliga. Depois disso, o programa aguarda a luz verde (quando a caldeira está aquecida) e emula o pressionamento do botão quente / frio. Depois disso, ele aguarda 50 segundos (o que é mais do que suficiente até mesmo para a maior xícara de café) e desliga a energia. Isso nem seria necessário já que esta excelente máquina desligava automaticamente 5 minutos depois de fazer o café, mas por que desperdiçar energia? Já agora, o consumo de energia em modo de espera da máquina, mesmo após a modificação, é inferior a 2 Watts.

Reabastecimento de água e segurança

Essa máquina foi projetada com a segurança em mente, de modo que seria impossível para um invasor que ganhasse o controle inundar toda a casa com água. Uma falha de hardware também não resultaria em danos graves. Ao lado dos sensores de hardware, há proteções embutidas no código para o refil. Um contador que aciona a rotina ISR se a máquina não for recarregada em x segundos (isso, por exemplo, pode acontecer se o sensor ultrassônico não funcionar corretamente e der 20% após x segundos após o reabastecimento ser iniciado).

Não há autenticação, qualquer pessoa que conheça os comandos pode usar a máquina dentro do alcance do rádio, então eu mudei o ID da piconet Xbee padrão para outra coisa, também o ERR_INVALIDCMD pode ser comentado e a máquina irá ignorar quaisquer comandos desconhecidos.

Insetos

Bug duplo do café: o mais chato sobre esse bug é que começou a acontecer alguns meses depois de usar a máquina com o mesmo código. Depois que o comando café foi emitido ele fez o café, desligou e ligou novamente e continuou fazendo mais 1 café com o mesmo patroon.

Tive que começar a depurar a duplicação do comando no nível do Android porque implementei o reenvio para o código em caso de perda de pacote. Descobriu-se que nem o Android, o software de controle C ou o kernel do Linux no raspi2 foram responsáveis por isso, e sim o Xbee.

Após emitir o eco “CMCSTART”> / dev / ttyACM0 no nó de controle, ele sai duas vezes para a outra extremidade. Concluí que meu espectro de 2,4 GHz em minha casa começou a ficar saturado com os muitos dispositivos de rádio nesta faixa, o que fez com que um Xbee invocasse algum tipo de reenvio na camada de rádio e os dados fossem enviados duas vezes (nem sempre). Uma vez que o primeiro comando entrou nas máquinas, a função xcomm () começou a processá-lo, porém um segundo veio logo em seguida, estava esperando no buffer do Xbees e quando o loop terminou ele começou a processar o segundo comando. Para contornar esse problema, introduzi 3 limites no código para tornar impossível fazer mais de 1 café em 2 minutos. Além disso, há um limite no CMSTAT, mas para não interferir no código de controle C / Android, ele simplesmente silencia as respostas por 2 segundos.

O último limite foi colocado para o contador manual de café, porque uma vez que a máquina atingiu o estado pronto (caldeira aquecida, luz verde) ela registrou o evento verde centenas de vezes aumentando a contagem de café.

Etapa 9: Considerações sobre o projeto e reflexões finais

Depois de muitos problemas com a comunicação do Xbee, eu não recomendaria o Xbee para este projeto. Use o rádio 433Mhz barato padrão com VirtualWire e Bps reduzidos para estabilidade ou incorpore um Raspberry PI Zero com conexão Wifi diretamente na máquina de café.

Como a data mostra, é um projeto antigo, então peço desculpas pelos pequenos detalhes faltando, como a conexão do circuito de controle às pernas do pino preciso na placa-mãe. Este projeto requer um certo nível de conhecimento técnico para fazê-lo por conta própria. Se você encontrar algum bug / problema ou gostaria de contribuir com este tutorial, por favor me avise.

O software de controle, métodos para controle de voz é de outra parte que tornará possível ter seu café pronto apenas com um comando de voz antes mesmo de sair da cama.

Concluí a documentação do meu sistema de armazenamento de água (WasserStation) e atualizei o CoffeeControlCode para a versão mais recente, que também inclui o reabastecimento automático. Se utilizar a mesma máquina para a construção o refil funcionará perfeitamente (sem nenhuma modificação no código) já que os níveis de água foram calibrados para o tanque de água do Circolo.

Recomendado: