Índice:

Dispensador de deleites para IoT para animais de estimação: 7 etapas (com fotos)
Dispensador de deleites para IoT para animais de estimação: 7 etapas (com fotos)

Vídeo: Dispensador de deleites para IoT para animais de estimação: 7 etapas (com fotos)

Vídeo: Dispensador de deleites para IoT para animais de estimação: 7 etapas (com fotos)
Vídeo: proyecto arduino dispensador de comida para mascotas 2024, Novembro
Anonim
Image
Image
Distribuidor de deleites IoT para animais de estimação
Distribuidor de deleites IoT para animais de estimação

Tenho dois gatos e ter de dar-lhes guloseimas cerca de 3 vezes por dia tornou-se um grande incómodo. Eles olhavam para mim com seus rostos bonitos e olhares intensos, em seguida, corriam para uma caixa cheia de greenies de gatos, miando e implorando por eles. Eu tinha decidido que já era o suficiente. Chega de levantar-se apenas para dar alguns petiscos a um gato. Agora era a hora de uma máquina distribuidora de guloseimas, porque, como diz o ditado: "Os programadores existem para fazer coisas complicadas para fazer menos coisas simples."

O DFRobot patrocinou este projeto.

Lista de peças:

  • DFRobot Raspberry Pi 3
  • Módulo de câmera DFRobot Raspberry Pi
  • Motor de passo DFRobot com engrenagem planetária
  • I2C LCD 16x2
  • Barrel Jack para Terminal
  • Driver do motor de passo DRV8825
  • Capacitor 100 µF
  • Arduino UNO e Genuino UNO
  • Fios de ligação (genérico)

Etapa 1: Criação de um design

Criando um Design
Criando um Design

Primeiro foi a escolha de como controlar minha máquina de pensamento recém-criada. O Bluetooth teria um alcance muito curto, a apenas 9 metros, sem obstruções. Com essas informações, optei por usar wi-fi. Mas agora, como faço para usar o WiFi para controlar a máquina? Um Raspberry Pi 3 tem recursos de WiFi integrados, permitindo-me usar o Flask para hospedar uma página da web. Em seguida, foi o tópico do cerco e como dispensar guloseimas. Decidi usar um projeto de roda giratória, onde as guloseimas cairiam em pequenas seções, girariam e, em seguida, as guloseimas cairiam em uma rampa e iriam para a frente da máquina.

Etapa 2: fazendo o modelo Fusion 360

Fazendo o modelo Fusion 360
Fazendo o modelo Fusion 360
Fazendo o modelo Fusion 360
Fazendo o modelo Fusion 360
Fazendo o modelo Fusion 360
Fazendo o modelo Fusion 360

Comecei criando um modelo básico para o recipiente de guloseimas. As guloseimas caem em um mini-funil de onde são levadas para uma roda giratória.

Em seguida, adicionei o Raspberry Pi 3 ao design do Fusion, junto com os outros componentes eletrônicos, incluindo um LCD e um módulo de câmera Raspberry Pi. Também fiz um funil que pode armazenar guloseimas adicionais.

As paredes do dispensador de guloseimas devem ser cortadas de compensado de 1/4 de polegada em uma fresadora CNC. São 7 peças, 4 paredes, um piso e uma parte superior e uma tampa que podem abrir e fechar para expor as guloseimas.

Por último, criei uma alça "chique" para abrir a tampa.

Etapa 3: Configurando o Pi

O DFRobot me procurou e enviou seu Módulo de Câmera Raspberry Pi 3 e Raspberry Pi. Então, depois de abrir as caixas, comecei a trabalhar configurando o cartão SD. Primeiro fui para a página de downloads do Raspberry Pi e baixei a versão mais recente do Raspbian. Em seguida, extraí o arquivo e coloquei em um diretório conveniente. Você não pode simplesmente copiar / colar um arquivo.img em um cartão SD, você tem que "gravá-lo" no cartão. Você pode baixar um utilitário de gravação como o Etcher.io para transferir facilmente a imagem do sistema operacional. Depois que o arquivo.img estava no meu cartão SD, eu o inseri no Raspberry Pi e liguei. Após cerca de 50 segundos, desconectei o cabo e removi o cartão SD. Em seguida, coloquei o cartão SD de volta no meu PC e fui para o diretório "boot". Abri o Bloco de notas e salvei-o como um arquivo em branco chamado "ssh" sem extensão. Também havia um arquivo que adicionei chamado "wpa_supplicant.conf" e coloquei este texto nele: network = {ssid = psk =} Então salvei e ejetei o cartão e coloquei de volta no Raspberry Pi 3. Isso agora deve permitir o uso de SSH e conexão com WiFi.

Etapa 4: Instalando o software

Existem vários softwares diferentes que podem transmitir vídeo, como VLC e motion, mas decidi usar o mjpeg-streamer devido à sua baixa latência e fácil instalação. De acordo com as instruções no site, faça um: git clone https://github.com/jacksonliam/mjpg-streamer.git Em uma pasta, digite: sudo apt-get install cmake libjpeg8-dev Para instalar as bibliotecas necessárias. Mude o seu diretório para a pasta que você baixou e digite: make Seguido por: sudo make install Para compilar o software. Por fim, digite: export LD_LIBRARY_PATH =. E para executá-lo digite:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Você pode acessar o stream indo para: https:// O ip local do pi: 8080 / stream. html Para ver o fluxo.

Etapa 5: Configurando um servidor da web

Para que a máquina fosse controlada externamente por WiFi, eu precisava de um servidor web. Um servidor da web basicamente fornece páginas da web quando solicitado, geralmente por um navegador. Eu queria algo rápido e simples de configurar e usar, tirando o Apache da mesa. Eu também queria fazer a interface do servidor web com Python para que pudesse controlar o Arduino Uno com PySerial. Essa busca acabou me levando ao Flask, uma ótima biblioteca Python que permite aos usuários criar um servidor web rapidamente. O código completo está anexado a esta página do projeto. O script python basicamente configura 2 páginas da web, uma hospedada no diretório raiz, '/', e outra hospedada em '/ dispense'. A página de índice tem um formulário HTML que, quando enviado, envia uma solicitação de postagem para a página de dispensa. A página de dispensa então verifica se o valor post está correto, e se é a mensagem 'D / n' é enviada via serial para o Arduino Uno.

Etapa 6: Controle de IO

Controle de IO
Controle de IO
Controle de IO
Controle de IO
Controle de IO
Controle de IO
Controle de IO
Controle de IO

Decidi usar o DRV8825 para acionar meu motor de passo, principalmente porque ele precisa de apenas 2 pinos IO além de ter limitação de corrente ajustável. Tentei usar um L293D, mas ele não aguentou a carga do motor de passo. O DRV8825 é controlado pulsando o pino STEP via PWM, e a direção é controlada puxando o pino DIR para cima ou para baixo. O motor de passo que estou usando tem um consumo de 1,2 A, então ajustei a tensão VREF para 0,6 V. Em seguida, veio o LCD. Eu queria usar I2C para reduzir a quantidade de E / S necessária e simplificar o código. Para instalar a biblioteca, basta pesquisar "LiquidCrystal_I2C" e instalá-lo. Finalmente, o Arduino Uno verifica se há novas informações no buffer serial e se corresponde a 'D'. Se isso acontecer, o Uno faz com que o motor de passo se mova 180 graus e depois -72 graus para evitar que as guloseimas fiquem presas.

Recomendado: