Índice:

Dispensador automático para cães: 10 etapas
Dispensador automático para cães: 10 etapas

Vídeo: Dispensador automático para cães: 10 etapas

Vídeo: Dispensador automático para cães: 10 etapas
Vídeo: Comedouro automático Eletrônico 2024, Julho
Anonim
Dispensador automático para cães
Dispensador automático para cães
Dispensador automático para cães
Dispensador automático para cães
Dispensador automático para cães
Dispensador automático para cães

Com o meu projeto, certifico-me de que, quando você deixa seu cão sozinho em casa, ele nunca fica sem comida.

O alimentador automático será "hackeado" de um dispensador de cereais. O dispensador é o reservatório para comida de cachorro, a roda na parte inferior será conectada a um servo motor que automaticamente deixa cair comida quando o berço está quase vazio e quando o cachorro está perto o suficiente. Na parte inferior do dispensador, haverá um tubo de PVC conectado que deixará a comida de cachorro cair no berço. Este projeto terá, portanto, 3 sensores, 2 dos quais não são abrangidos na aula e 1 dos quais é um atuador.

O primeiro sensor é o leitor RFID. Este sensor verifica quando o cão se aproxima do berço. O RFID será incorporado na coleira do cachorro. Se este sensor perceber que o cão está perto o suficiente, ele transmitirá um sinal para o segundo sensor. O segundo sensor é o sensor de peso (não coberto na aula) que mede a comida no berço, se este sensor detectar que o peso está muito baixo, ele enviará um sinal para o servo motor que irá jogar a comida no berço (com confirmação do RFID e do sensor de peso). Em suma, o cão só ganha comida extra quando está perto o suficiente do berço e quando o berço está quase vazio. É claro que também há um limite definido que você mesmo pode definir por meio do servidor da web; para que o cão não receba muita comida por dia. O terceiro sensor é um sensor de luz que ilumina um holofote de LED quando está muito escuro ao redor do berço. O atuador será, portanto, um servo motor conectado à roda no dispensador.

Este projeto é voltado para cães, você também pode usá-lo para outros pequenos animais de estimação.

Suprimentos

Raspberry Pi 3

Célula de carga (1KG)

Amplificador de célula de carga HX711

Tigela de comida

Distribuidor de cereais

Madeira (+ parafusos e chave de fenda)

Sensor de luz

Conduziu

Leitor RFID rc522

Fios de ligação

16 * 2 LCD (display)

Servo motor

Adaptador de energia 5V

Resistor 470 Ohm

Tubo de PVC

Breadbord

Potenciômetro

Serra

Papel de lixa

Arma de silicone

Etapa 1: Configuração de Pi

Configuração de Pi
Configuração de Pi

Configurar

Para começar, primeiro precisamos configurar seu Pi.

Você precisará de duas coisas:

- Win32 Disk Imager em

- Imagem do sistema operacional Raspbian em

Baixe o arquivo ZIP e extraia-o para onde quiser.

A instalação

1. Selecione sua imagem através do ícone de pasta

2. Selecione seu cartão SD no menu suspenso

3. Clique em escrever

Agora precisaremos fazer alguns ajustes extras em algumas configurações para que possamos acessar o Pi.

1. Vá para o diretório de inicialização do cartão SD

2. Abra o arquivo "cmdline.txt"

3. Adicione ip = 169.254.10.1 No final da linha longa do texto separado por um espaço (na mesma linha).

4. Salve o arquivo.

5. Crie um arquivo chamado ssh sem extensão no mesmo diretório

Agora você pode ejetar o cartão SD e colocá-lo no seu Pi.

Conectando

Agora precisaremos configurar o software.

Primeiro conecte um cabo LAN, uma extremidade em seu desktop / laptop e a outra em seu Pi.

Agora inicialize o Raspberry Pi.

1. Instale o Putty de

2. Digite 169.254.10.1 na caixa IP.

3. Certifique-se de que SSH esteja selecionado e a porta 22 preenchida.

4. Clique em abrir

5. Preencha o nome de usuário: pi

6. Preencha a senha: framboesa

Raspi-config

Abra o utilitário Raspi-config usando:

sudo raspi-config

Habilite as seguintes opções na categoria de interfaces

- 1 fio

- SPI

Desative as seguintes opções na categoria de opções de inicialização

- Tela de abertura

Por último, defina a configuração Desktop / CLI na categoria de opções de inicialização como Desktop Autologin.

Wi-fi

Para o alimentador de cães, precisamos ter uma conexão wi-fi, então certifique-se de ter suas credenciais wi-fi fechadas.

1. Vá para o modo raiz

sudo -i

2. Cole esta linha, mas certifique-se de que o SSID e a senha estão preenchidos

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

3. Entre no cliente WPA.

Wpa_cli

4. Selecione a interface

Interface wlan0

5. Recarregue a configuração

Reconfigurar

Certifique-se de estar conectado corretamente digitando ip a e vendo se você possui um IP nas interfaces WLAN0.

Pacotes

Agora que estamos conectados à internet, teremos que instalar alguns pacotes.

Primeiro, precisamos atualizar as listas de pacotes para a mais recente.

atualização do apt sudo

Pitão

Forçaremos o Raspbian a usar Python 3

atualizar-alternativas --install / usr / bin / python python /usr/bin/python2.7 1

atualizar-alternativas --install / usr / bin / python python / usr / bin / python3 2

MariaDB

Cole a seguinte linha para instalar o banco de dados.

sudo apt instalar servidor mariadb

Então, precisaremos proteger nossa instalação.

mysql_secure_installation

Ele nos pedirá a senha de root atual, já que não temos uma, basta pressionar enter.

Em seguida, ele pergunta se queremos um tipo de senha de root em y, já que queremos uma.

Para as próximas perguntas, basta inserir Y.

Em seguida, criaremos um usuário que poderemos usar para o espelho.

Entre no shell mysql fazendo:

- Elevar-nos para enraizar

Sudo -i

- Entre no shell do mysql

Mysql

- Substitua por seu próprio nome de usuário e o mesmo por

concede todos os privilégios em *. * para '' @ '%' identificado por '';

- concede todos os privilégios em *. * para '' @ '%' identificado por '';

Em seguida, adicionaremos nosso banco de dados.

Apache Webserver

Para instalar o Webserver execute a linha abaixo.

sudo apt install apache2 -y

Pacotes Python

Vamos instalar esses pacotes

- Frasco

- Flask-Cors

- Flask-MySQL

- Flask-SocketIO

- PyMySQL

- Gevent

- Gevent-websocket

-

- Python-socketio

- Solicitações de

- Wsaccel

- Ujson

Fazendo

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio solicitações wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

Etapa 2: LED e sensor de luz

Led e Sensor de Luz
Led e Sensor de Luz
Led e Sensor de Luz
Led e Sensor de Luz

Conectando o led

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> Resistor 470 ohm e GND

Conectando o sensor de luz

  1. OUT -> GPIO17
  2. VCC -> 3,3V
  3. GND -> GND

Agora podemos testar se nosso sensor de led e luz funciona com este pequeno script

importar RPi. GPIO como GPIO GPIO.setmode (GPIO. BCM)

GPIO.setup (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

tente: enquanto verdadeiro:

se GPIO.input (17) == 0:

GPIO.output (15, GPIO. HIGH)

se GPIO.input (17) == 1:

GPIO.output (15, GPIO. LOW)

exceto KeyboardInterrupt: GPIO.cleanup ()

Etapa 3: Servo motor

Servo motor
Servo motor

Conectando o servo motor

  1. OUT -> GPIO18
  2. VCC -> 5V
  3. GND -> GND

Agora podemos testar se nosso sensor de led e luz funciona com este pequeno script

importar RPi. GPIO como GPIOimport time

GPIO.setmode (GPIO. BCM)

GPIO.setup (18, GPIO. OUT)

p = GPIO. PWM (18, 50)

p.start (12.5)

Experimente:

enquanto verdadeiro:

p. ChangeDutyCycle (12.5)

tempo.sono (1)

p. ChangeDutyCycle (2.5)

tempo.sono (1)

exceto KeyboardInterrupt:

p.stop ()

GPIO.cleanup ()

Etapa 4: Leitor RFID RC522

Leitor RFID RC522
Leitor RFID RC522

Conectando o RFID

  1. RST -> GPIO6
  2. MISO -> GPIO9 (MISO)
  3. MOSI -> GPIO10 (MOSI)
  4. SCK -> GPIO11 (SPISCLK)
  5. SDA -> GPIO8 (SPICS0)
  6. 3,3 V -> 3,3 V
  7. GND -> GND

Agora podemos testar se nosso leitor RFID funciona com este pequeno script

importar RPi. GPIO como GPIO

de mfrc522 import SimpleMFRC522

leitor = SimpleMFRC522 ()

text = input ('Novos dados:')

imprimir ("Agora coloque sua tag para escrever")

reader.write (texto)

imprimir ("Escrito")

Etapa 5: Célula de carga HX711

Célula de carga HX711
Célula de carga HX711

Conectando a célula de carga à placa do driver HX711

  1. Vermelho -> E +
  2. Preto -> E-
  3. Verde -> A +
  4. Branco -> A-

Conectando a célula de carga

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. VERMELHO -> 3,3 V
  4. GND -> GND

Agora podemos testar se nossa célula de carga funciona com este pequeno script

import RPi. GPIO as GPIOimport time import sys from klasses. HX711 import HX711

def cleanAndExit (): print ("Limpando…") GPIO.cleanup () print ("Tchau!") sys.exit ()

hx = HX711 (22, 27)

hx.set_reading_format ("LSB", "MSB")

hx.set_reference_unit (2167)

hx.reset ()

hx.tare ()

enquanto verdadeiro:

Experimente:

val = max (0, int (hx.get_weight (5)))

imprimir (val)

hx.power_down ()

hx.power_up ()

tempo.sono (0,5)

exceto (KeyboardInterrupt, SystemExit): cleanAndExit ()

Etapa 6: LCD (16 * 2)

LCD (16 * 2)
LCD (16 * 2)

Conectando o LCD

  1. RS -> GPIO21
  2. RW -> GND
  3. E-> GPIO20
  4. D0 -> GPIO16
  5. D1 -> GPIO12
  6. D2 -> GPIO6
  7. D3 -> GPIO24
  8. D4 -> GPIO23
  9. D5 -> GPIO26
  10. D6 -> GPIO19
  11. D7 -> GPIO13
  12. VSS -> GND
  13. VDD -> 5V
  14. A -> 5V
  15. K -> GND
  16. V0 -> pino de potência média

Agora podemos testar se nossa tela LCD funciona com este pequeno script

importar Adafruit_CharLCD como LCDlcd_rs = 21

lcd_en = 20

lcd_d4 = 23

lcd_d5 = 26

lcd_d6 = 19

lcd_d7 = 13

lcd_columns = 16

lcd_rows = 2

lcd = LCD. Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)

lcd.message ('169.254.10.1')

Etapa 7: Circuito Completo

Circuito Completo
Circuito Completo

aqui você pode verificar novamente se todo o circuito está correto

Etapa 8: início do caso

Início do caso
Início do caso
Início do caso
Início do caso
Início do caso
Início do caso
Início do caso
Início do caso

Usei um dispensador de floco de milho como reservatório para a comida de cachorro

Eu conectei a roda do dispensador ao meu servo motor

Agora posso controlar a roda com meu servo motor e jogar comida para fora do reservatório

No final do reservatório, há um tubo de PVC conectado que deixa a comida cair bem no berço

Eu uso madeira como revestimento

Etapa 9: Juntando tudo

Juntar as peças
Juntar as peças
Juntar as peças
Juntar as peças
Juntar as peças
Juntar as peças

Etapa 10: O site

O site
O site
O site
O site
O site
O site
O site
O site

Agora nossa máquina funciona, precisamos colocar o site no pi. Agora tudo está funcionando e executando algumas instruções sobre como o site funciona.

Você pode conectar seu pi ao wi-fi conectando um cabo HDMI e ativar desta forma

A primeira página é a página inicial, aqui você pode ver:

  • Informações em tempo real sobre a luz
  • Informações em tempo real sobre a comida que resta na tigela
  • Você pode largar comida
  • Informações sobre o cachorro

A segunda página é a página de edição, aqui você pode editar:

  • o nome do seu animal de estimação
  • a idade do seu animal de estimação
  • o peso do seu animal de estimação
  • a foto do seu animal de estimação

A terceira página é a página de histórico, aqui você pode ver:

  • quando a luz acendeu
  • quando o cachorro comeu
  • quando a comida cair

A quarta página é a página de configurações, aqui você pode editar:

  • quando a comida precisa cair
  • a quantidade de comida a cair
  • max food / day
  • a luz

Recomendado: