Como construir sua própria máquina de café inteligente
ComoSe você gosta de café, você provavelmente terá uma bela máquina de café expresso em casa. Talvez até um Rancilio Silvia. A Silvia é uma máquina elegante, simples, robusta e de alta qualidade.
No entanto, uma desvantagem desta máquina de café é que, como muitos outros, ela usa termostatos para controlar a temperatura de café. Utilizando termostatos para obter precisão e controle contínuo de temperatura não é muito eficaz.
É por isso que você vê máquinas de café comerciais de alta tecnologia utilizando controladores Proporcional-Integral-Derivativos (PID).
Este hack irá mostrar-lhe como criar uma GUI que irá incorporar o controle de temperatura de precisão em qualquer máquina de café simples. Hacking-up usando um Raspberry Pi também significará a capacidade de integrar a Internet-of-Things na máquina..
- Experimente mais projetos incríveis de Raspberry Pi
O primeiro passo será descer alguns espressos duplos. Então, é hora de começar os negócios. Este hack irá requerer algumas habilidades doces no Linux, Kivy (para o front end GUI) e Python.
Mas não se preocupe se você é apenas um iniciante - este tutorial é uma ótima maneira de desenvolver suas habilidades. Você também precisará de um ferro de solda, ferramentas eletrônicas básicas e um suprimento sólido de grãos de café (para seu próprio consumo).
Dependendo de quão longe você deseja ir com a compilação, você também pode fabricar um novo painel frontal (embora isso o torne um pouco mais caro).
O que você precisa
O hardware necessário para a construção Silvia-Pi inclui:
- Framboesa Pi 2
- Raspberry Pi de 7 polegadas touchscreen
- Qualquer máquina de café que poderia fazer com melhor controle de temperatura
- Relé de Estado Sólido (SSR)
- 2x relés DPST (Single Pole Single Throw)
- 2x transistores e diodos (para os circuitos de acionamento nos relés DPST)
- Fonte de alimentação integrada (entrada de seu país V AC in, saída de 5 V DC)
- termopar tipo k
- Amplificador de 1x termopar (1 fio MAX31850K)
Por que você está usando um SSR? Por que você não usa um relé mecânico para controlar a caldeira? Bem…
Isto é devido à taxa de comutação potencialmente alta do controlador. Na prática atual, a taxa de comutação é relativamente baixa, e algumas máquinas de baixo custo usam relés mecânicos. No entanto, os relés mecânicos normalmente não conseguem abrir. SSRs normalmente falham fechados.
Isto é definitivamente algo para se ter em mente quando se pensa em segurança em sua aplicação. Além disso, os relés mecânicos são bons somente para um número especificado de ciclos. Além do mais, os relés mecânicos fazem um ruído, enquanto os SSRs são silenciosos.
Para esta aplicação, um bom SSR para usar é o Kudom KSI240D10-L SSR: 10A 240V AC, 4-32V DC.
A faixa de temperatura do termopar tipo K é tipicamente entre -250ºC a 1250ºC e com precisão de ± 1ºC. Para fins de processamento de sinal, o tipo K é fácil de acomodar.
Existem inúmeras variedades de circuitos integrados que são embalados com amplificadores, filtros, compensação de junção fria e conversores analógico-digitais que são especificamente construídos para o termopar do tipo K e também são de baixo custo..
Por causa disso, o tipo K é perfeito para esta aplicação de máquina de café.
O touchscreen
A fim de solucionar problemas, depurar e se familiarizar com a funcionalidade, você precisará começar a configurar essa tela sensível ao toque de 7 polegadas no Raspberry Pi.
Vá para o site element14 e confira o tutorial de tela sensível ao toque de 7 polegadas do Raspberry Pi. Uma vez que você esteja ligado, dê uma voltinha com o quão bem o Debian, o Pi e o touchscreen funcionam juntos.
Uma interface gráfica do usuário
A especificação da GUI será a seguinte: um gráfico de plotagem em tempo real, um botão de café para puxar uma xícara de café expresso, um botão de vapor para espumar o leite e um botão de água quente.
O gráfico de plotagem permitirá que você veja a eficiência do ajuste do controlador PID, incorporando a plotagem do ponto de ajuste e a plotagem real da temperatura de geração - além disso, ele oferece à sua máquina a imagem de alta precisão e controle de precisão que merece. A Espresso Standard, afinal, especifica 88 ° C na saída do grouphead
Familiarizando-se com o Kivy
Kivy será usado para construir a GUI. Por quê? O Kivy é baseado em um sistema simples de widget de aplicativo. O sistema de widgets Kivy é fácil de descobrir. Kivy tem um bom suporte de API e tutoriais no site da Kivy. O Kivy também possui um gerenciador de widgets de configurações integrado que faz uso dos arquivos de configuração JSON.
Isso torna a criação de aplicativos rápida e fácil. Você pode modificar o widget de configurações padrão do Kivy para incluir os períodos de espera e de despertar. Isso permite que você configure o grouphead para ser agradável e quente quando sair da cama e economizar energia durante os horários de pico..
Kivy tem um gerenciador de plugins super útil chamado Kivy Garden. O Kivy também possui funcionalidades de plataforma cruzada (Linux, Android, iOS, OS X, etc.). O Kivy Garden tem alguns widgets de plugins legais que esse hack vai usar, como o Graph. Este hack utiliza o Graph para o plotter em tempo real. Codificar com um FOSS IDE como o Eclipse e o Secure Shelling no Pi através da sua área de trabalho é uma maneira eficaz de implementar esse hack.
Isso significa que você precisa configurar o Kivy tanto na área de trabalho quanto no Raspberry Pi. Vá em frente e faça isso fazendo login no seu terminal e inserindo $ pip instalar kivy então $ pip instalar kivy-garden Seguido por $ garden install graph
Construindo seu aplicativo Kivy
Assim que o Kivy for instalado, você poderá começar a criar aplicativos do Kivy e se familiarizar com os módulos do Kivy. Vá para o site da Kivy e olhe pela biblioteca da API, ou até mesmo siga o “primeiro aplicativo” tutorial - um aplicativo Pong - para se concentrar no código e no layout geral da criação de aplicativos Kivy.
Aqui estaremos construindo um CoffeeApp, que será uma combinação de widgets do Kivy, como BoxLayout, Button, Label, Graph. Então, hora de ir atrás disso. Em coffee.py:
#! / usr / bin / kivy import kivy do kivy.app import App from kivy.uix.boxlayout import Classe do BoxLayout CoffeeApp (App): def build (self): # Incluir root do widget pai = BoxLayout (orientação = 'horizontal') verticalBtns = BoxLayout (orientation = 'vertical', size_hint_x = 0.25) # Adicione widgets filhos aqui e adicione-os ao pai "root". return root # Executa o script se __name__ == '__main__': CoffeeApp (). run ()
O código acima irá criar um aplicativo padrão de estoque BoxLayout Kivy com um widget pai chamado raiz. Você também notará verticalBtns BoxLayout - você usará isso para separar seus botões do gráfico e exibi-los verticalmente no quarto direito do aplicativo.
size_hint_x = 0,25. Você não poderá ver essa dica de tamanho até adicionar o gráfico mais tarde. Adicionar botões e gráficos no widget é tão simples quanto criar o widget
coffeeButton = Botão (texto = 'café')
e, em seguida, adicionando-o ao widget pai:
verticalBtns.add_widget (coffeeButton)
Neste caso, você adicionará os três botões (café, vapor e água) repetindo este código para cada botão. Você usa o simples BoxLayout, que lida com a posição e o tamanho dos botões dentro da raiz do widget pai do aplicativo, portanto, é necessário adicionar verticalBtns ao widget raiz, adicionando o seguinte:
root.add_widget (verticalBtns)
O ol 'diagrama de linha única para a construção de Silvia Pi. Parece muito com hieróglifos do Egito Antigo. Provavelmente porque eles estavam trabalhando em um projeto semelhante.Botões, ligações e eventos
Agora, para obter seus três botões classificados. Execute o código e você verá três botões dispostos verticalmente no aplicativo. Se você estiver executando via SSH ou direto para o seu Raspberry Pi, você verá o aplicativo sendo executado diretamente na tela sensível ao toque de 7 polegadas.
Tente pressionar os botões para ver o que acontece ... Não muito? Você verá que os botões mudam de cinza para azul claro, mas é só isso. Hora de ligar esses botões para obter alguma funcionalidade. Usando o método bind e definindo on_press () e on_release () métodos você pode especificar o que acontece.
Comece adicionando funcionalidade ao coffeeButton no seu código. Entre criar os botões e adicionando os botões para raiz, chame o seguinte método de ligação, adicionando o seguinte código:
coffeeButton.bind (on_press = self.coffeePress_callback)
e
coffeeButton.bind (on_release = self.coffeeRelease_callback)
Agora você precisa definir os métodos dentro da classe CoffeeApp:
coffeePress_callback (self, * args)
e
coffeeRelease_callback (self, * args)
Faça isso acima do método de construção dentro da classe. Adicione alguns impressão declarações lá como rastreadores para ver se algo acontece na imprensa e liberação, e execute o aplicativo novamente.
Ah não! Parece que o R2-D2 está passando por uma cirurgia no cérebro! Nah, não realmente… É o Pi sendo forjado na Silvia junto com os relés e circuitos de motorista necessários.Agora você encontrará ao pressionar o botão de café que o seu impressão declarações serão enviadas para o terminal. Repita os passos acima novamente para os botões vapor e água.