Índice:

Máquina de alimentação de animais de estimação com RasPi e Telegram Bot: 4 etapas (com fotos)
Máquina de alimentação de animais de estimação com RasPi e Telegram Bot: 4 etapas (com fotos)

Vídeo: Máquina de alimentação de animais de estimação com RasPi e Telegram Bot: 4 etapas (com fotos)

Vídeo: Máquina de alimentação de animais de estimação com RasPi e Telegram Bot: 4 etapas (com fotos)
Vídeo: 2000+ Common Swedish Nouns with Pronunciation · Vocabulary Words · Svenska Ord #1 2024, Novembro
Anonim
Máquina alimentadora de animais de estimação com RasPi e Telegram Bot
Máquina alimentadora de animais de estimação com RasPi e Telegram Bot
Máquina alimentadora de animais de estimação com RasPi e Telegram Bot
Máquina alimentadora de animais de estimação com RasPi e Telegram Bot

Primeiramente preciso esclarecer que esta não é uma Ideia Mina original, basta atualizar e adaptar os roteiros de programação para funcionar com telegrama, encontrei em um Instructable anterior então os créditos realmente são do autor.

Você pode ver a versão em espanhol disso em meu blog pessoal:

Você precisa construir um pequeno circuito que ative um motor de alto torque e, como meu conhecimento de eletrônica é muito, muito escasso, tive que passar alguns dias aprendendo o básico assistindo a vídeos no YouTube.

O script de automação original é escrito em Python e usa uma conexão do GMail para consultar os comandos, nunca tinha usado essa linguagem de programação mas a verdade não é tão diferente das outras, modifiquei um pouco para que se adapte melhor à nova As bibliotecas Python e o processo de automação, juntamente com as configurações do sistema operacional, permitem parametrizar o seguinte:

  • Interação por meio de comandos enviados ao Chat controlados por ChatBots.
  • Permite acompanhar o estado dos alimentos dispensados.
  • Controla a quantidade de comida que será distribuída.
  • Possui botões que permitem a alimentação manual.
  • Não permite a sobrealimentação, desativando a alimentação em intervalos de 8 horas.
  • Possui um LCD de status que mostra os dados como a data e hora da próxima vez para a próxima fonte de alimentação, o SSID ao qual está conectado ao WiFi e o endereço IP do dispositivo.
  • Opcional: Mostra algumas piadas aleatórias de Chuck Norris e / ou curiosidades de números usando um par de APIS públicos (engenhosos do autor original).
  • O sistema é imune a reinicializações devido a cortes de energia, uma vez que salva um arquivo de status.
  • O sistema detecta quando há uma perda de conexão e tenta se reconectar até que seja bem-sucedido.

Etapa 1: Materiais Usados

  • 1 Raperry Pi, de preferência a versão 3 que já vem integrada com a placa Wireless, você também pode usar a versão Pi 3 Zero, dá um pouco mais de trabalho porque você tem que soldar os pinos, mas descobri muito tarde que poderia ser usar um destes que são mais econômicos.
  • 1 motor elétrico de alto torque, 37mm, 3,5 rpm e 12V.
  • 1 Braket para motor 37mm.
  • Tela LCD de 1 caractere de 20x4 linhas com controle HD44780.
  • 1 Distribuidor de Cereais Zevro Modelo WM1001 eixo-D de 5 polegadas de comprimento, 0,63 cm de diâmetro (corte D é necessário para fixá-lo ao distribuidor)
  • 1 Acoplador de eixo de 1/4 "a 6 mm para unir ao motor.

Todos os materiais anteriores, exceto os dois últimos, não consegui obtê-los em meu país (ou pelo menos não sabia onde encontrá-los), porém a haste e o acoplador provavelmente estão em uma oficina de soldagem, mas é a primeira vez que faço algo assim, não tinha ideia de como deveria ser para encaixar o motor então perguntei a página dos links descritos acima; Abaixo os materiais que eu poderia comprar nas lojas locais:

  • 1 caixa de madeira, uso uma de 20,3 cm de largura x 26,7 cm de altura x 13 cm de profundidade. a caixa tem uma porta que abre para a direita com um orifício de 10cm x 4cm para colocar o ecrã LCD (marcenaria local)
  • 3 botões de pressão
  • 1 pequeno protoboard
  • 1 LED de 3,3 Volts (não importa a cor, mas para a tensão geralmente são vermelhos)
  • 1 transistor NPN PN2222
  • 1 Resistência de 270 Ω
  • 1 Resistência de 10 KΩ
  • 1 potenciômetro de 10 KΩ
  • 1 diodo IN4003 (pode operar IN4001 ou IN4004)
  • 1 adaptador 12V 3A
  • 1 adaptador 5V 2A
  • 4 parafusos com porca de orelhas de 1,5 polegadas a 2 polegadas (depende da espessura da madeira utilizada, servem para fixar o suporte do motor na caixa de madeira)
  • Cabos Jumper fios de várias cores
  • 1 tubo dobrável ou um conjunto de PVC de 4 polegadas de diâmetro, dependendo da altura em que a caixa de madeira será colocada.
  • 1 cotovelo de PVC que se fixa ao gesso anterior.
  • 3 braçadeiras para tubos de automóveis (The World)
  • 4 pés de cabo UTP (precisamos dos pares trançados para fazer as conexões)
  • 1 USB WebCam, não é necessário ser de alta resolução.

Alguns materiais diversos que podem ser obtidos em lojas de ferragens ou possivelmente já temos: Fita Industrial

  • Soldador de lata
  • Lata
  • Furar
  • Drill 16/05
  • Parafusos S8 com expansores

Etapa 2: Colocando a Estrutura

Colocando a Estrutura
Colocando a Estrutura
Colocando a Estrutura
Colocando a Estrutura
Colocando a Estrutura
Colocando a Estrutura

A ideia principal é substituir a manivela dispensadora que vem no ZEVRO pela haste D que será então conectada ao Motor por meio do Acoplador. O dispensador será preso à caixa de madeira e a caixa de madeira à parede. Como não conheço muita eletrônica não usei nenhuma placa de baquelite para montar o circuito então usei a protoboard para colocar todos os componentes assim no fundo da caixa é fixada com parafusos o Rapberry Pi e o protoboard que já tinha adesivo na parte de trás, então fui colá-lo. A caixa deverá ter três botões que terão a função de reiniciar o temporizador, acionar o alimentador e o último será um passo direto para acionar o motor sem passar pelo circuito. O motor ficará preso dentro da caixa por meio do suporte, de forma que apenas a haste D que se conecta ao dispensador se projete da caixa, no fundo da caixa fixe e ajuste a webcam para que a cada consulta e confirmação do correio eu enviaram uma foto de como está o prato, isso para não exagerar caso não tenham terminado a última rodada de comida.

Do fundo do dispensador, colocava-se o tubo que desce até a placa e colocava-se o cotovelo de PVC na base, coloquei um pouco de Fita Industrial na saída para minimizar a velocidade do fluxo de alimentos e fiz uma base dispensadora para evite que os alimentos espirrem em todos os lugares. Para fixar o tubo à parede, use suportes de metal que você fixa na parede com os parafusos prisioneiros S8.

Na porta da caixa segure a placa da tela de LCD e use os pares trançados do cabo UTP para levá-los diretamente ao Framboesa, na outra ponta dos cabos emende as pontas fêmeas dos jumpers para facilitar a conexão no as portas GPIO do Raspberry. Este seria o diagrama do circuito. Vou tentar explicar com o pouco que posso obter da Eletrônica.

O motor é conectado diretamente ao pólo positivo do transformador de 12 volts, mas para que a corrente flua ela deve passar pelo circuito no pólo neutro do motor, para que este transistor N2222 seja utilizado. Os transistores normalmente possuem 3 pernas que correspondem a um coletor, uma base e um emissor, dependendo do modelo do transistor a localização dessas pernas pode variar; Este transistor faz com que a chave funcione. É aqui que ligamos o pólo neutro do motor ao coletor do transistor, o pino nº 19 do rapberry é conectado à base por meio de uma resistência de 270Ω e o emissor é conectado ao terminal neutro do transistor. Transformador 12V junto com um dos pólos de terra da framboesa; o transistor permitirá que a corrente flua entre o coletor e o emissor, desde que a base seja estimulada com tensão suficiente; depois programaremos o rapberry para que de acordo com certas ordens a porta 19 emita 3,3 volts, o suficiente para que o circuito continue e acione o motor.

Para a tela LCD, outra parte do protobard é usada em um circuito diferente onde você conecta o potenciômetro de 10KΩ que rejeita o contraste do texto que aparece no LCD, então se nada aparecer na tela é provavelmente porque o potenciômetro está totalmente fechado; no meu caso deixo totalmente aberto para que o texto seja melhor visualizado. No final, as conexões na placa de ensaio seriam as seguintes.

Etapa 3: configuração do Raspberry Pi

Em primeiro lugar, é importante criar o Bot do Telegram que o sistema será gerenciado. Você precisará de uma chave para modificar o script python anexado. Leia as etapas da Documentação do telegrama:

core.telegram.org/bots#3-how-do-i-create-a-bot

Para configurar o rapberry, use a versão Lite do Rapbian (não precisamos da interface gráfica) e aplique a configuração básica que mostra o raspbian depois de instalado ou usando o comando raspi-config: expanda o espaço para 100% e habilite o SSH mas principalmente o mais importante é mudar a senha e nome de usuário para o usuário pi que vem por padrão (caso contrário, como aconteceu comigo, eles podem sofrer um ataque pela porta 22 se tiverem um IP público endereçado ao raspberry). Além disso, a configuração para se conectar automaticamente à minha rede WiFi (assumindo que minha rede se chama "BlogSoriano" e minha senha é "$ ecure123!") Geramos e salvamos a chave no arquivo de conexões sem fio com o seguinte comando:

sudo wpa_passphrase "BlogSoriano" "$ ecure123!" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf> / dev / null

a próxima coisa é atualizar e instalar o sistema de instalação do python "pip" para que possamos fazer o login como root, atualizar e instalar os pacotes necessários:

sudo -i apt-get update apt-get install build-essential python-dev python-smbus python-pip

Com isso já temos acesso à biblioteca de classes Python, para o script que vamos usar, precisamos instalar o seguinte:

pip instalar RPi. GPIO Adafruit-CharLCD httplib2 html2text netifaces wireless telepot cv2

Uma vez finalizada a instalação das dependências, usaremos o script anexado a este passo, eu salvo no caminho /opt/petfeeder.py e o arquivo pode ser criado usando o comando nano /opt/petfeeder.py e dentro deste arquivo colamos o código ou, se você tiver mais experiência em Linux, pode fazer o download diretamente com o wget. No script é importante modificar as variáveis BOTKEY (na linha 36) e SYSPASSWORD (na linha 23).

Esclareço que este código não foi escrito por mim pois nunca tinha programado em Python, apenas o modifiquei para funcionar com as novas bibliotecas e com a tela LCD 20x4 e para usar o telegrama Bot.

Assim que tivermos o Script, devemos alterar os valores das variáveis com a chave do bot; para isso é necessário criar um novo Telegram Bot, com isso seria apenas salvar o arquivo e sair (com Ctrl + ou save e ctrl + x sai do editor nano), só precisamos ser a prova de reinicialização; o próprio script salva na última vez que o sistema de energia é ativado, então só temos que fazer o script rodar toda vez que o sistema operacional inicia, para isso eu encontrei uma solução muito particular com um programa chamado supervisor, que é instalado a partir dos repositórios Debian:

apt-get install supervisor

e uma vez instalado, só precisamos criar um arquivo de configuração em /etc/supervisor/conf.d/petfeeder.conf, como no caso anterior podemos criar e salvá-lo com o nano, este arquivo terá o seguinte:

[programa: petfeederd] directory = / opt command = python petfeeder.py autostart = true autorestart = true

Assim que o arquivo for salvo, podemos usar o comando supervisorctl [start | pare | restart] petfeederd, como neste caso o serviço não foi iniciado, executamos com start:

supervisorctl start petfeederd

Etapa 4: pronto para testar

Image
Image
Pronto para testar
Pronto para testar
Pronto para testar
Pronto para testar
Pronto para testar
Pronto para testar

E com isso o sistema deve funcionar, a tela de LCD deve mostrar informações sobre quando deve ser a próxima alimentação ou se está pronto para alimentar devo dizer. Você também deve mostrar o nome da rede wireless a qual está conectado e o endereço IP que está sendo usado caso precisemos conectar através de SSH, compartilho um pequeno vídeo que fiz, peço desculpas pela qualidade, I não sou muito bom esse assunto dos vlogs.

Você deve ser capaz de pesquisar seu bot no Telegram e enviar um dos próximos comandos depois de autorizar seu bate-papo:

/ feed: Inicia o processo de alimentação contanto que o período de tempo parametrizado tenha decorrido.

/ quando: retorna informações sobre quando foi a última alimentação e uma foto do prato de comida.

/ foto: Mostra uma imagem do prato de comida.

/ restart: Reinicia o sistema, define a variável da última alimentação para 0 para poder alimentar imediatamente.

/ status Informa sobre o status da conexão com a Internet: SSID do Wireless conectado e o endereço IP que o sistema possui na rede.

Recomendado: