Tabla de contenido:

IDC2018IOT Connected Pet Food, Water and Monitor System: 7 pasos
IDC2018IOT Connected Pet Food, Water and Monitor System: 7 pasos

Video: IDC2018IOT Connected Pet Food, Water and Monitor System: 7 pasos

Video: IDC2018IOT Connected Pet Food, Water and Monitor System: 7 pasos
Video: Connected Pet Control System 2024, Noviembre
Anonim
Image
Image
IDC2018IOT Sistema de monitorización, agua y alimento para mascotas conectado
IDC2018IOT Sistema de monitorización, agua y alimento para mascotas conectado

Introducción

Si eres un estudiante bajo presión, una persona trabajadora o simplemente estás fuera de casa por más de unas pocas horas al día. Como dueños de mascotas cariñosos, queremos asegurarnos de que nuestros seres queridos permanezcan sanos, alimentados y, por supuesto, NO acostados en el sofá (¡bastardo!). Es hora de dejar de pedir favores, o incluso de pagar esos servicios.

Con este proyecto genial, nuestro objetivo es brindarle la capacidad de hacerlo usted mismo (escuché que ahora es una cosa). Construiremos una solución para monitorear mejor a nuestras mascotas e incluso tomaremos medidas mientras estamos en la oficina, la escuela o simplemente pasando el rato con nuestros amigos o pareja.

Este sistema le permitirá alimentar a su mascota de forma remota mientras controla la cantidad de comida que vierte del recipiente, llene el recipiente de agua siempre que se quede vacío. Además, ahora podemos monitorear los niveles de agua del recipiente en tiempo real, medir el contenido del recipiente de comida y lo más importante, ver a la mascota en vivo usando un módulo de cámara simple.

Sobre nosotros

Tomer Maimon, Gilad Ram y Alon Shprung, tres apasionados estudiantes de Ciencias de la Computación del IDC Herzeliya. Este es nuestro primer proyecto Instructables como parte de un taller de IoT; ¡esperamos que lo encuentre interesante y divertido de construir!

Paso 1: comprensión de la arquitectura:

Comprensión de la arquitectura
Comprensión de la arquitectura
Comprensión de la arquitectura
Comprensión de la arquitectura

Podemos dividir este sistema en dos partes principales:

  1. Canales de datos entrantes:

    • Sensor de agua: al tomar muestras de los niveles de agua dentro del recipiente para mascotas, los datos se transmiten desde la unidad Node-MCU al servidor Blynk y, finalmente, se presentan a través del Panel de control de mascotas.
    • Sensor de sonda: muestrea el contenido del contenedor de alimentos, los datos se transmiten desde la unidad Arduino (con extensión de escudo Ethernet) al servidor Blynk y finalmente se presentan a través del Panel de control de mascotas.
    • Módulo de cámara Pi: muestra constantemente fotogramas del área de mascotas, el Pi aloja su propio servidor que proporciona la transmisión en vivo al tablero de mascotas.
  2. Flujo de comando:

    • Botón de alimentación (tablero): actualizando un valor de pin virtual a través de Blynk, la función relevante se activa en la placa Arduino, el Servo se mueve para permitir que la comida pase a través de la tapa.
    • Give Water (Dashboard): actualiza activamente un valor de pin virtual a través de Blynk, la función relevante se activa en la placa Node-MCU, el relé se enciende, la bomba de agua comenzará a fluir agua al tazón de la mascota.
    • Pet Live Feed (Panel de control): integrado en el panel de control y que presenta datos en vivo a través del servidor de matraces que se ejecuta en el dispositivo Pi.

Paso 2: Lista de piezas

Lista de piezas
Lista de piezas
Lista de piezas
Lista de piezas
Lista de piezas
Lista de piezas

Para comenzar a trabajar en este sistema, necesitará las siguientes partes (o similares):

  1. Físico:

    • Recipiente para alimentos: Usamos un tubo industrial de dos caras de 45 cm, que compramos en una tienda departamental para el hogar. Es importante tener 2 salidas. Una para medir el contenido y una segunda salida para el mecanismo de apertura / cierre.
    • Cinta adhesiva: para mantener las cosas juntas;)
    • Jumper Wires: Cuantos más, mejor, siempre es bueno tener algo extra si algo sale mal.
    • Cable Ethernet: para conectar nuestro Arduino (con escudo ethernet) a Internet.
    • Lata de jardinería: se utiliza como recipiente para el agua y como bomba de agua.
    • Tubo de agua corto: conectado a la bomba y vierte agua en el cuenco de la mascota.
  2. Sensores:

    • Sensor de nivel de agua WINGONEER: mide los niveles de agua dentro del recipiente de la mascota.
    • Sensor de sonda: mide la distancia del nivel de los alimentos desde la tapa superior dentro del recipiente.
    • Relé TONGLING: Nos permite encender / apagar la bomba de agua que arroja agua.
    • Módulo de cámara Pi: conectado a un dispositivo Raspberry Pi y transmite imágenes del área de mascotas.
    • Servo genérico: bloquea y desbloquea el recipiente de comida.
  3. Dispositivos electrónicos / placas:

    • Arduino Uno: controla la implementación de la unidad de contenedores de alimentos.
    • Arduino Ethernet Shield: proporciona conexión a Internet a nuestra placa.
    • NodeMCU (ESP-8266): Controla la unidad de agua, tanto para medir como para verter agua. Esta placa tiene la capacidad de conectarse a través de WiFi.
    • Raspberry Pi 3: aloja el servidor de la cámara y proporciona transmisión en vivo al tablero de mascotas.
    • Bomba de agua sumergible VicTsing de 80 GPH: arroja agua desde la lata de jardinería al recipiente, junto con el tubo de agua.

Paso 3: cableado y colocación de elementos

Cableado y colocación de cosas
Cableado y colocación de cosas
Cableado y colocación de cosas
Cableado y colocación de cosas
Cableado y colocación de cosas
Cableado y colocación de cosas

Alambrado

Antes de comenzar, se recomienda colocar el Arduino / Node-MCU en una placa de pruebas para que sea más fácil juntar todos los cables y colocarlo en cualquier ubicación física. Además, se recomienda utilizar cables largos para evitar errores derivados de la desconexión del cable. Le proporcionamos un diagrama de cableado para el Node-MCU (Unidad de agua) y el Arduino (Unidad de alimentos).

  1. Unidad de alimentos (Arduino):

    • Sensor de sonda:

      • GND (negro) = GND
      • VCC (rojo) = 5 V
      • Trig (púrpura) = 3
      • Eco (azul) = 4
    • Servo:

      • GND (negro) = GND
      • VCC (rojo) = 5 V
      • Señal (amarillo) = 9
  2. Unidad de agua (nodo):

    • Sensor de nivel de agua:

      • S (azul) = A0
      • + (Rojo) = 3v3
      • - (Negro) = GND
    • Relé (cableado eléctricamente a la bomba de agua):

      • IN (amarillo) = D1
      • VCC (rojo) = Vin
      • GND (negro) = GND
  3. Unidad de cámara (Pi):

    • Sensor de cámara:

      • Conéctese al puerto de cámara única de Pi (cable de flujo)
      • Si busca obtener más información sobre Pi con módulo de cámara - Enlace

Ensamblaje de piezas juntas

En esta parte, puede personalizar y modificar este proyecto para "hacerlo suyo". Pero le proporcionaremos imágenes y una descripción para reconstruir nuestra versión del producto.

  1. Unidad de alimentos (Arduino): el contenedor es bastante sencillo, nos centraremos en la elaboración de las dos tapas.

    • Tapa superior: corte 2 orificios en la tapa para que encaje el sensor de sonda (consulte la imagen adjunta).
    • Tapa inferior + Mecanismo: Comience tomando uno de los accesorios de plástico (provistos con el servo sensor) y construya una forma de "Martillo" usando cinta adhesiva / palos de madera (solo usamos cinta adhesiva). A continuación, adjunte el servo. Ahora, necesitamos 2 agujeros en la tapa. El primero debe permitir que el servo encaje en el mecanismo que construimos colocado en el "lado interno" de la tapa. Corta otro agujero basado en el lado de la "cabeza de martillo" que hiciste. De esta forma, cada vez que se abre el servo, la cola del martillo arrastrará la comida hacia la salida y evitará que las piezas grandes se atasquen.
  2. Unidad de agua (Node-MCU): simplemente conecte el tubo de agua a la bomba de agua, ahora colóquelo dentro de la lata de jardinería (asegúrese de NO colocar la parte incorrecta con el relé y los cables eléctricos dentro del agua).
  3. Unidad de cámara: todo lo que necesita hacer es colocar el Pi con el módulo de la cámara en la ubicación que elija.

Paso 4: Configurar Blynk

Configurar Blynk
Configurar Blynk
Configurar Blynk
Configurar Blynk

Todas las capacidades remotas de este proyecto se basan en Blynk. Básicamente, este servicio nos proporciona un servidor web gratuito y una API RESTful para comunicarnos con nuestros dispositivos Arduino / Node-MCU a través de Internet mediante el protocolo HTTP. Blynk nos permite definir pines virtuales, que se utilizarán como dirección para ejecutar funciones específicas relacionadas con el vertido de agua, la alimentación y el muestreo de los diferentes sensores (hicimos esa parte por usted, todo lo que necesita hacer es obtener su propio token de aplicación, que se explicará a continuación).

Cómo obtener mi token de autenticación de Blynk

  1. Descargue la aplicación Blynk a través de AppStore / PlayStore para su dispositivo móvil.
  2. Regístrese en este servicio (es de uso gratuito).
  3. Inicie un nuevo proyecto, asegúrese de seleccionar el dispositivo correcto (en nuestro caso ESP8266).
  4. Después de la creación, se enviará un correo electrónico con el TOKEN DE AUTENTICACIÓN. Guarde el token para los siguientes pasos.

Nota: Blynk se puede utilizar por completo a través de la aplicación, pero decidimos implementar nuestro propio panel personalizado.

Finalmente, para continuar con el siguiente paso, debe descargar e instalar la biblioteca Blynk - Enlace (pase a la parte 3)

Paso 5: Configure el contenedor de alimentos, la bomba de agua y la cámara en vivo

Configurar contenedor de alimentos, bomba de agua y cámara en vivo
Configurar contenedor de alimentos, bomba de agua y cámara en vivo
Configurar contenedor de alimentos, bomba de agua y cámara en vivo
Configurar contenedor de alimentos, bomba de agua y cámara en vivo

En este punto, terminamos de ensamblar todas las piezas y obtuvimos nuestro blynkAuthAppToken (ver paso 3).

Le proporcionamos todo el código que necesita para ejecutar este proyecto, todo lo que tiene que hacer es cambiar algunas variables en el código, lo que lo convertirá en "su propio" sistema privado.

En primer lugar, comience descargando el IDE de Arduino (si aún no lo ha hecho) - Enlace

Contenedor de comida Arduino

  1. Configure el IDE en la placa Arduino: Herramientas -> Placa -> Arduino / Genuino Uno
  2. Asegúrese de tener estas bibliotecas instaladas: Sketch -> Incluir biblioteca -> Administrar bibliotecas

    Relevo (Por Rafael)

  3. Abra el archivo de boceto PetFeeder.ino, configure los siguientes parámetros (vea la imagen adjunta para obtener ayuda):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Compile y cargue el boceto en su dispositivo Arduino.

Unidad de agua Node-MCU

  1. Configure el IDE en la placa Node-MCU:

    Consulte la primera parte de este instructivo para obtener una explicación detallada

  2. Asegúrese de tener estas bibliotecas instaladas: Sketch -> Incluir biblioteca -> Administrar bibliotecas

    Administrador de WiFi (Por tzapu)

  3. Abra el archivo de boceto PetFeeder.ino, configure los siguientes parámetros (vea la imagen adjunta para obtener ayuda):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // Básicamente es el nombre de tu red WiFi
    • pasar = "YOUR_WIFI_PASSWORD"; // si no tiene contraseña, use una cadena vacía ""
  4. Compile y cargue el boceto en su dispositivo Node-MCU.

Módulo de cámara Pi Live

  1. Conecte el módulo de la cámara pi
  2. Ejecute "sudo raspi-config" y active la opción "cámara".
  3. Pruebe la cámara con el comando "raspistill" para capturar una imagen

    r aspistill -o image.jpg

  4. Configure el servidor de la cámara web Flask:

    • Instale todos los requisitos usando pip install -r requirements.txt
    • Utilice python para ejecutar camera_server.py
    • Compruébalo en 127.0.0.1:5000/video_feed
  5. Configure el servidor web Flask para que se ejecute en el arranque:

    • Agregue la siguiente línea siguiente a /etc/rc.local (antes de la línea de salida):

      python /camera_server.py

Paso 6: Cómo utilizar el panel de control

Cómo utilizar el panel de control
Cómo utilizar el panel de control

Configuración

Esta parte es bastante simple, todo lo que tiene que hacer es insertar el "token de la aplicación blynk" en el archivo "index.js" de la siguiente manera:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // usa el mismo token de los pasos anteriores.

Uso

  1. Abra el tablero haciendo doble clic en el archivo "index.html".
  2. El tablero tomará muestras del sistema automáticamente cada 10 minutos.
  3. Las medidas de los contenedores de agua y alimentos se pueden tomar manualmente.
  4. Los botones "Dar agua" y "Alimentar" se utilizan para suministrar activamente comida y agua a su mascota.
  5. La parte inferior del tablero presentará la transmisión en vivo del módulo de la cámara si siguió cuidadosamente las instrucciones del paso anterior.

Nota: Si desea personalizar la cantidad de veces que se abre el contenedor de alimentos cuando alimenta, abra el archivo "index.js" y cambie el "valor" en la siguiente línea de "3" a cualquier número de su elección:

buscar (baseURL + '/ update / V1? value = 3');

Paso 7: desafíos, límites y planes futuros

Desafíos

Los principales desafíos para nosotros en este proyecto estaban relacionados con el diseño del mecanismo de apertura / cierre del contenedor de alimentos y la creación de un código concurrente estable para controlar y medir la unidad de alimentos. Creo que probamos al menos 4 versiones diferentes hasta quedar satisfechos. La principal preocupación eran los alimentos que bloqueaban la salida. Para evitar eso, optamos por un diseño de mazo, de esta manera cada vez que abrimos el contenedor, la cola del "martillo" está barriendo la comida hacia la salida. Además, el uso de un tubo de dos lados nos hizo la vida mucho más sencilla al construir el contenedor de alimentos. Dicho objeto es perfecto para colocar el mecanismo de salida en un lado y un sensor de distancia en el otro lado para medir su contenido.

Limites

En esta fase del proyecto, el sistema tiene algunas limitaciones:

  1. No está completamente automatizado, lo que significa que la alimentación y el vertido de agua se realiza manualmente a través del panel de control sin ningún programador inteligente (¡que podría agregar en el futuro o implementarlo usted!).
  2. El tablero se ejecuta localmente desde su propia computadora portátil, para que sea más accesible, se puede alojar en plataformas populares como "Heroku".
  3. Usamos un módulo de cámara muy simple, que puede ser reemplazado por un módulo mucho más complicado para permitir una mejor calidad de imagen y posiblemente la adición de un canal de comunicación con su mascota (usando un altavoz).

Planes futuros

Si tuviéramos el tiempo y el presupuesto para continuar desarrollando este sistema, teníamos en mente algunas ideas y un posible cronograma:

  1. Adición del sistema de programación automática para la alimentación de mascotas: 2 ~ 3 días de trabajo.
  2. Crear un sitio web para permitir a los usuarios de nuestro sistema crear un panel personalizado que se aloja en línea y es accesible desde cualquier dispositivo conectado: 1-2 meses de trabajo.
  3. Trabajando en una versión industrial para este sistema, permitiendo que más dueños de mascotas controlen mejor y se comuniquen con sus mascotas en línea, tuvimos mucho interés de amigos que vieron el resultado de este Instructable. Por lo tanto, si tiene la pasión por el tiempo para llevar el proyecto al siguiente nivel, ¡tiene todo el apoyo!

Esperamos que haya disfrutado leyendo (¡y con suerte construyendo!) Este proyecto:)

Recomendado: