Índice:

Sistema de monitoramento, água e comida para animais de estimação conectados IDC2018IOT: 7 etapas
Sistema de monitoramento, água e comida para animais de estimação conectados IDC2018IOT: 7 etapas

Vídeo: Sistema de monitoramento, água e comida para animais de estimação conectados IDC2018IOT: 7 etapas

Vídeo: Sistema de monitoramento, água e comida para animais de estimação conectados IDC2018IOT: 7 etapas
Vídeo: Faça um alimentador automático para cachorros #ManualMaker Aula 12, Vídeo 2 2024, Julho
Anonim
Image
Image
IDC2018IOT Connected Pet Food, Water and Monitor System
IDC2018IOT Connected Pet Food, Water and Monitor System

Introdução

Quer você seja um estudante sob pressão, uma pessoa que trabalha duro ou simplesmente esteja fora de casa por mais do que algumas horas por dia. Como donos de animais de estimação, queremos ter certeza de que nossos entes queridos permaneçam saudáveis, alimentados e, claro, NÃO deitados no sofá (seu bastardo!). É hora de parar de pedir favores, ou mesmo de pagar por esses serviços.

Com este projeto legal, pretendemos fornecer a você a capacidade de fazer você mesmo (ouvi dizer que é uma coisa agora). Vamos construir uma solução para monitorar melhor nossos animais de estimação e até mesmo tomar medidas enquanto estamos no escritório, na escola ou apenas saindo com nossos amigos ou outras pessoas significativas.

Este sistema permitirá que você alimente seu animal de estimação remotamente enquanto controla a quantidade de comida que você despeja do recipiente, encher a tigela de água sempre que ela esvaziar. Além disso, agora podemos monitorar os níveis de água da tigela em tempo real, medir o conteúdo do recipiente de comida e, o mais importante, assistir o animal ao vivo usando um módulo de câmera simples.

Sobre nós

Tomer Maimon, Gilad Ram e Alon Shprung. Três apaixonados estudantes de Ciência da Computação do IDC Herzeliya. Este é o nosso primeiro projeto Instructables como parte de um workshop de IoT - esperamos que você o considere interessante e divertido de construir!

Etapa 1: Compreendendo a arquitetura:

Compreendendo a arquitetura
Compreendendo a arquitetura
Compreendendo a arquitetura
Compreendendo a arquitetura

Podemos dividir este sistema em duas partes principais:

  1. Canais de entrada de dados:

    • Sensor de água - coleta a amostra dos níveis de água dentro da tigela do animal de estimação, os dados são transmitidos da unidade Node-MCU para o servidor Blynk e, finalmente, são apresentados por meio do Pet Dashboard.
    • Sensor de sonar - amostragem do conteúdo do recipiente de comida, os dados são transmitidos da unidade Arduino (com extensão de escudo Ethernet) para o servidor Blynk e, finalmente, são apresentados por meio do Pet Dashboard.
    • Módulo de câmera Pi - amostras de quadros constantemente da área do animal de estimação, o Pi está hospedando seu próprio servidor que fornece a alimentação ao vivo para o painel do animal de estimação.
  2. Fluxo de Comando:

    • Botão Feed (Dashboard) - atualizando um valor de pino virtual através do Blynk, a função relevante é acionada na placa Arduino, o Servo então se move para permitir que o alimento passe pela tampa.
    • Give Water (Dashboard) - atualiza ativamente um valor de pino virtual através do Blynk, a função relevante é acionada na placa Node-MCU, o relé é ligado, a bomba de água começará a fluir água para a tigela do animal de estimação.
    • Pet Live Feed (Dashboard) - embutido no painel e apresentando dados ao vivo por meio do servidor flask que é executado no dispositivo Pi.

Etapa 2: Lista de peças

Lista de peças
Lista de peças
Lista de peças
Lista de peças
Lista de peças
Lista de peças

Para começar a trabalhar neste sistema, você precisará das seguintes partes (ou semelhantes):

  1. Fisica:

    • Recipiente de comida: Usamos um cachimbo industrial de 45cm de dois lados, que compramos em uma loja de departamentos doméstica. É importante ter 2 saídas. Uma para a medição do conteúdo e a segunda saída para o mecanismo de abrir / fechar.
    • Fita adesiva: Para manter as coisas juntas;)
    • Jumper Wires: Quanto mais, melhor, é sempre bom ter um extra se algo der errado.
    • Cabo Ethernet: Para conectar nosso Arduino (com blindagem ethernet) à internet.
    • Lata de jardinagem: usada como recipiente para água e bomba d'água.
    • Tubo Curto de Água: Conectado à bomba e despeja água na tigela do animal.
  2. Sensores:

    • WINGONEER Sensor de Nível de Água: Meça o nível de água dentro da tigela do animal.
    • Sensor de sonar - mede a distância do nível de comida da tampa superior dentro do recipiente.
    • Relé TONGLING: Permite-nos ligar / desligar a bomba de água que flui a água.
    • Módulo de câmera Pi: Conectado a um dispositivo raspberry Pi e transmite imagens da área do animal de estimação.
    • Servo genérico: bloqueia e desbloqueia o recipiente de alimentos.
  3. Dispositivos eletrônicos / placas:

    • Arduino Uno: controla a implementação da unidade de contêiner de alimentos.
    • Arduino Ethernet Shield: Fornece conexão à Internet para nossa placa.
    • NodeMCU (ESP-8266): Controla a unidade de água, tanto para medir quanto para despejar água. Esta placa tem a capacidade de se conectar via wi-fi.
    • Raspberry Pi 3 - hospeda o servidor da câmera e fornece alimentação ao vivo para o painel do animal de estimação.
    • Bomba de água submersível VicTsing 80 GPH: Flui água da lata de jardinagem para a tigela, junto com o tubo de água.

Etapa 3: conectar e colocar as coisas juntas

Conectando e colocando as coisas juntas
Conectando e colocando as coisas juntas
Conectando e colocando as coisas juntas
Conectando e colocando as coisas juntas
Conectando e colocando as coisas juntas
Conectando e colocando as coisas juntas

Fiação

Antes de começar, é recomendável colocar o Arduino / Node-MCU em uma placa de ensaio para facilitar a junção de todos os fios e a sua colocação em qualquer local físico. Além disso, é recomendado o uso de fios longos para evitar erros decorrentes do desprendimento do cabo. Fornecemos um diagrama de fiação para o Node-MCU (Unidade de água) e o Arduino (Unidade de alimento).

  1. Unidade Alimentar (Arduino):

    • Sensor de sonar:

      • GND (preto) = GND
      • VCC (vermelho) = 5V
      • Trig (roxo) = 3
      • Eco (azul) = 4
    • Servo:

      • GND (preto) = GND
      • VCC (vermelho) = 5V
      • Sinal (amarelo) = 9
  2. Unidade de Água (Nó):

    • Sensor de nível de água:

      • S (azul) = A0
      • + (Vermelho) = 3v3
      • - (Preto) = GND
    • Relé (conectado eletricamente à bomba d'água):

      • IN (amarelo) = D1
      • VCC (vermelho) = Vin
      • GND (preto) = GND
  3. Unidade de câmera (Pi):

    • Sensor da câmera:

      • Conecte-se à porta de câmera única do Pi (cabo de fluxo)
      • Se você deseja aprender mais sobre Pi com módulo de câmera - Link

Montagem de peças juntas

Nesta parte, você pode personalizar e modificar este projeto para "torná-lo seu". Mas iremos fornecer-lhe imagens e descrições para reconstruir a nossa versão do produto.

  1. Unidade de alimentos (Arduino): O contêiner é bastante simples, vamos nos concentrar em criar as duas tampas.

    • Tampa superior: Faça 2 orifícios na tampa para que o sensor do sonar se encaixe (consulte a imagem anexa).
    • Tampa inferior + mecanismo: comece pegando um dos acessórios de plástico (fornecido com o servo sensor) e construa uma forma de "marreta" usando fita adesiva / palitos de madeira (usamos apenas fita adesiva). Em seguida, conecte-o ao servo. Agora, precisamos de 2 furos na própria tampa. O primeiro deve permitir que o servo se encaixe no mecanismo que construímos colocado no "lado interno" da tampa. Corte outro buraco com base na lateral da "cabeça do martelo" que você criou. Dessa forma, sempre que o servo abrir, a cauda do martelo irá varrer o alimento em direção à saída e evitar que pedaços grandes fiquem grudados.
  2. Unidade de Água (Node-MCU): Simplesmente conecte o tubo de água à bomba d'água, agora coloque-o dentro da lata de jardinagem (certifique-se de NÃO colocar a parte errada com o relé e os fios elétricos dentro da água).
  3. Unidade de câmera: Tudo que você precisa fazer é colocar o Pi com módulo de câmera em um local de sua escolha.

Etapa 4: configurar o Blynk

Setup Blynk
Setup Blynk
Setup Blynk
Setup Blynk

Todos os recursos remotos neste projeto são baseados em Blynk. Este serviço basicamente nos fornece um servidor Web gratuito e uma API RESTful para comunicação com nossos dispositivos Arduino / Node-MCU pela Internet usando o protocolo HTTP. Blynk nos permite definir pinos virtuais, que serão usados como um endereço para executar funções específicas relacionadas a despejar água, alimentar e amostrar os diferentes sensores (fizemos essa parte para você, tudo o que você precisa fazer é obter seu próprio token de aplicativo, que será explicado a seguir).

Como obter meu token de autenticação Blynk

  1. Baixe o aplicativo Blynk via AppStore / PlayStore para o seu dispositivo móvel.
  2. Inscreva-se neste serviço (o seu uso é gratuito).
  3. Inicie um novo projeto, certifique-se de selecionar o dispositivo correto (no nosso caso ESP8266).
  4. Após a criação, será enviado um e-mail com o TOKEN DE AUTENTICAÇÃO - Salve o token para as próximas etapas.

Nota: Blynk pode ser totalmente usado por meio do aplicativo, mas decidimos implementar nosso próprio painel personalizado.

Finalmente, para prosseguir para a próxima etapa, você deve baixar e instalar a biblioteca Blynk - Link (pule para a parte 3)

Etapa 5: configurar o recipiente de comida, bomba d'água e câmera ao vivo

Configurar recipiente de comida, bomba d'água e câmera ao vivo
Configurar recipiente de comida, bomba d'água e câmera ao vivo
Configurar recipiente de comida, bomba de água e câmera ao vivo
Configurar recipiente de comida, bomba de água e câmera ao vivo

Neste ponto, terminamos de montar todas as peças e obtivemos nosso blynkAuthAppToken (consulte a etapa 3).

Fornecemos todo o código de que você precisa para executar este projeto, tudo o que você precisa fazer é alterar algumas variáveis no código, o que o tornará "seu" sistema privado.

Em primeiro lugar, comece baixando o IDE do Arduino (se ainda não o fez) - Link

Arduino Food Container

  1. Configure o IDE para a placa Arduino: Ferramentas -> Placa -> Arduino / Genuino Uno
  2. Certifique-se de ter estas bibliotecas instaladas: Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas

    Revezamento (por Rafael)

  3. Abra o arquivo de esboço PetFeeder.ino, configure os seguintes parâmetros (consulte a imagem em anexo para obter ajuda):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Compile e envie o esboço para o seu dispositivo Arduino.

Unidade de Água Node-MCU

  1. Configure o IDE para a placa Node-MCU:

    Consulte a primeira parte deste instrutível para obter uma explicação detalhada

  2. Certifique-se de ter estas bibliotecas instaladas: Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas

    Gerenciador de WiFi (por tzapu)

  3. Abra o arquivo de esboço PetFeeder.ino, configure os seguintes parâmetros (consulte a imagem em anexo para obter ajuda):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // Basicamente, é o nome da sua rede WiFi
    • passar = "YOUR_WIFI_PASSWORD"; // se você não tem senha, use a string vazia ""
  4. Compile e envie o esboço para o seu dispositivo Node-MCU.

Módulo de câmera Pi Live

  1. Conecte o módulo de câmera pi
  2. Execute "sudo raspi-config" e defina a opção "câmera" habilitada.
  3. Teste a câmera usando o comando "raspistill" para capturar uma imagem

    r aspistill -o image.jpg

  4. Definir servidor de câmera web Flask:

    • Instale todos os requisitos usando pip install -r requirements.txt
    • Use python para executar camera_server.py
    • Confira em 127.0.0.1:5000/video_feed
  5. Defina o servidor da web Flask para executar na inicialização:

    • Adicione a seguinte linha a /etc/rc.local (antes da linha de saída):

      python /camera_server.py

Etapa 6: como usar o painel de controle

Como usar o painel de controle
Como usar o painel de controle

Configurar

Esta parte é bastante simples, tudo o que você precisa fazer é inserir o "blynk app token" no arquivo "index.js" da seguinte maneira:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // use o mesmo token das etapas anteriores.

Uso

  1. Abra o painel clicando duas vezes no arquivo "index.html".
  2. O painel fará uma amostra do sistema automaticamente a cada 10 minutos.
  3. As medidas do recipiente de água e alimentos podem ser feitas manualmente.
  4. Os botões "Dar Água" e "Alimentar" são usados para fornecer comida e água ativamente ao seu animal de estimação.
  5. A parte inferior do painel apresentará a transmissão ao vivo do módulo da câmera se você seguiu as instruções da etapa anterior cuidadosamente.

Nota: Se você deseja personalizar o número de vezes que o recipiente de comida abre quando você alimenta, abra o arquivo "index.js" e altere o "valor" na próxima linha de "3" para qualquer número de sua escolha:

buscar (baseURL + '/ atualizar / V1? valor = 3');

Etapa 7: Desafios, Limites e Planos Futuros

Desafios

Os principais desafios para nós neste projeto, estavam relacionados ao design do mecanismo de abertura / fechamento do recipiente de alimentos e à criação de um código simultâneo estável para controlar e medir a unidade de alimentos. Acredito que tentamos pelo menos 4 versões diferentes até ficarmos satisfeitos. A principal preocupação era a comida bloqueando a saída. Para evitar isso, optamos por um desenho de Marreta, desta forma sempre que abrimos o recipiente, a cauda do "martelo" empurra os alimentos para a saída. Além disso, o uso de um tubo de dois lados tornou nossa vida muito mais simples durante a construção do recipiente para alimentos. Esse objeto é perfeito para posicionar o mecanismo de saída de um lado e um sensor de distância do outro para medir seu conteúdo.

Limites

Nesta fase do projeto, existem algumas limitações para o sistema:

  1. Não é totalmente automatizado, o que significa que a alimentação e o derramamento de água são feitos manualmente por meio do painel de monitoramento sem nenhum programador inteligente (que pode ser adicionado no futuro ou implementado por você!).
  2. O painel está sendo executado localmente a partir do seu próprio laptop, a fim de torná-lo mais acessível, ele pode ser hospedado em plataformas populares como o "Heroku".
  3. Utilizamos um módulo de câmera muito simples, que pode ser substituído por um módulo muito mais complicado para possibilitar melhor qualidade de imagem e possível a adição de canal de comunicação com seu animal de estimação (através de um alto-falante).

Planos futuros

Se tivéssemos tempo e orçamento para continuar desenvolvendo este sistema, tínhamos algumas idéias e possível cronograma em mente:

  1. Adicionando sistema de agendamento automático para alimentação de animais de estimação - 2 a 3 dias de trabalho.
  2. Construir um site para permitir que os usuários de nosso sistema criem painéis personalizados que são hospedados online e acessíveis de qualquer dispositivo conectado - 1-2 meses de trabalho.
  3. Trabalhar em uma versão industrial para este sistema, permitindo que mais donos de animais de estimação controlem melhor e se comuniquem com seus animais de estimação online, tivemos muito interesse de amigos que viram o resultado deste Instructable. Então, se você tem paixão pelo tempo para levar o projeto para o próximo nível - você tem todo o suporte!

Esperamos que você tenha gostado de ler (e espero que construa!) Este projeto:)

Recomendado: