Tabla de contenido:

Alimentador inteligente para mascotas: 9 pasos
Alimentador inteligente para mascotas: 9 pasos

Video: Alimentador inteligente para mascotas: 9 pasos

Video: Alimentador inteligente para mascotas: 9 pasos
Video: Alimentador Automatico Mascotas 2024, Noviembre
Anonim
Image
Image
Alimentador inteligente para mascotas
Alimentador inteligente para mascotas

¿Tienes una mascota?

  • No: ¡adopta uno! (y regrese a este instructivo).
  • Sí: ¡buen trabajo!

¿No sería genial si pudieras alimentar y dar agua a tu ser querido sin cancelar planes para poder llegar a casa a tiempo? Decimos no te preocupes más.

En este proyecto hemos realizado un dispensador de agua y comida a control remoto (a través de la web).

A través del panel de control en línea, puede ver datos y controlar los dispensadores:

  • Ver los niveles de agua y comida en los tanques.
  • Vea los niveles de comida y agua en los tazones.
  • ¿El animal come o bebe en este momento?
  • Programe las alimentaciones (el dispositivo no dispensará comida si hay suficiente comida en el tazón).
  • Dispensa agua automáticamente cuando el recipiente se vacía.
  • Dispense alimentos / agua con solo presionar un botón.
  • Reciba notificaciones automáticas en su teléfono (mediante la aplicación Telegram).

¿Quienes somos?

Creado por Tom Kaufman y Katya Fichman, estudiantes de Ciencias de la Computación en IDC Herzliya.

Este proyecto se realizó para un curso de IOT.

Suministros

Electrónica

  • 2 X ESP8266 (Wemos d1 mini).
  • Cables de puente.
  • 2 X Protoboard.
  • 4 X sensor ultrasónico.
  • 2 X Celda de carga.
  • 2 X Amplificador de celda de carga (HX711).
  • Servo (180 °).
  • Servo (rotación continua).
  • Fuente de alimentación 2 X 6V.

Partes

  • Dispensador de copos de maíz (enlace de Amazon).
  • Embudo del dispensador de alimentos impreso en 3D (https://www.thingiverse.com/thing:3998805).
  • Servo accesorio del dispensador de alimentos impreso en 3D (https://www.thingiverse.com/thing:3269637).
  • Stand del dispensador de alimentos impreso en 3D (diseñado para este proyecto:
  • Base y placa de celda de carga impresa en 3D (diseñada para este proyecto:
  • Dispensador de agua (enlace de Amazon a algo similar).
  • Cable (para conectar la perilla del dispensador de agua al servo).
  • 3 X Soporte de sensor ultrasónico.

Paso 1: ¿Cómo funciona?

¿Como funciona?
¿Como funciona?

Las placas ESP8266 envían las lecturas de los sensores a Node-RED a través de Mosquitto (agente MQTT).

Node-RED procesa los datos, realiza las acciones correspondientes (también envía comandos de dispensación a los tableros ESP8266 a través de Mosquitto) y muestra información en el tablero.

Todos los cálculos se realizan en Node-RED, por lo que sería fácil replicar este proyecto y cambiar el procesamiento de los datos de acuerdo con sus configuraciones y preferencias sin ensuciarse las manos con la codificación.

Paso 2: software

Softwares
Softwares

IDE de Arduino

Descargue e instale (enlace:

Mosquitto

Descargue e instale (enlace:

Node.js

Descargue e instale (enlace:

Nodo-RED

Siga las instrucciones:

ngrok

Descarga:

Telegrama

Instale la aplicación en su teléfono inteligente.

Paso 3: diseño del circuito

Disposición del circuito
Disposición del circuito

* Ambos dispositivos tienen circuitos idénticos

Dispensador de agua

  • Sensor ultrasónico (para el tanque de agua)

    • GND - G
    • VCC - 5 V
    • ECHO - D5
    • GATILLO - D0
  • Sensor ultrasónico (para la distancia de la mascota al recipiente)

    • GND - G
    • VCC - 5 V
    • ECO - D6
    • GATILLO - D7
  • Célula de carga
    • VERDE - A + (HX711)
    • BLANCO - A- (HX711)
    • NEGRO - E- (HX711)
    • ROJO - E + (HX711)
  • HX711 (amplificador de celda de carga)

    • GND - G
    • VCC - 5 V
    • DT - D4
    • SCK - D3
  • Servo (180 °)

    • GND - G
    • VCC - 5 V

Dispensador de alimentos

  • Sensor ultrasónico (para el tanque de alimentos)

    • GND - G
    • VCC - 5 V
    • ECHO - D5
    • GATILLO - D0
  • Sensor ultrasónico (para la distancia de la mascota al cuenco)

    • GND - G
    • VCC - 5 V
    • ECO - D6
    • GATILLO - D7
  • Célula de carga
    • VERDE - A + (HX711)
    • BLANCO - A- (HX711)
    • NEGRO - E- (HX711)
    • ROJO - E + (HX711)
  • HX711 (amplificador de celda de carga)

    • GND - G
    • VCC - 5 V
    • DT - D4
    • SCK - D3
  • Servo (rotación continua)

    • GND - G
    • VCC - 5 V
    • CONTROL - D8

Paso 4: Artesanía

Artesanía
Artesanía
Artesanía
Artesanía
Artesanía
Artesanía

Dispensador de agua

  1. Pegue el servo a la parte superior de la parte inferior del dispensador (como se muestra en la foto).
  2. Haz un pequeño agujero en la perilla del dispensador de agua.
  3. Conecte el cabezal del servo a la perilla con un cable (asegúrese de que el cabezal del servo esté en la posición 0 y asegúrese de que el cable esté apretado).
  4. Pegue un sensor ultrasónico al lado interior del tanque, cerca de su parte superior (sensor hacia abajo).
  5. Pegue un sensor ultrasónico debajo de la perilla de agua hacia el exterior (asegúrese de que esté lo suficientemente alto para que el recipiente de agua no afecte sus lecturas).

Dispensador de comida

  1. Atornille el servo a su soporte (pieza impresa en 3D).
  2. Pegue el embudo (parte impresa en 3D) al soporte del tanque (parte impresa en 3D).
  3. Conecte el soporte del tanque al soporte del dispensador (parte impresa en 3D) y coloque el tanque en su lugar.
  4. Inserte la parte giratoria (impresa en 3D) en su lugar y a través de la parte de goma giratoria del dispensador.
  5. Atornille la parte del soporte del servo al soporte del dispensador.
  6. Pegue un sensor ultrasónico al lado interior de la tapa del tanque (sensor hacia abajo).
  7. Pegue un sensor ultrasónico al lado del soporte del tanque que mira hacia el lugar donde comerá su mascota.

Células de carga

Pegue cada celda de carga a la base y placa impresas en 3D (la flecha de la celda de carga hacia abajo)

Paso 5: Mosquitto

Mosquitto
Mosquitto

Abra Mosquitto (usuarios de Windows: vaya a la carpeta Mosquitto, abra cmd e ingrese: "mosquitto -v").

* Para obtener la dirección IP interna de la computadora, ejecute cmd e ingrese "ipconfig".

Paso 6: IDE de Arduino

IDE de Arduino
IDE de Arduino
IDE de Arduino
IDE de Arduino

Abra el IDE de Arduino y siga la parte "Instalar el complemento ESP8266 en el IDE de Arduino" de esta guía:

Vaya a Herramientas-> Tablero y elija "LOLIN (WEMOS) D1 R2 & mini".

Vaya a Sketch-> Incluir biblioteca-> Agregar biblioteca. ZIP … y agregue las 3 bibliotecas en el archivo "Libraries.rar".

Abra el boceto "HX711Calibration", cárguelo en ambos ESP8266, ejecútelo y siga las instrucciones (al principio del código y en el monitor en serie) para calibrar las celdas de carga (asegúrese de que la velocidad en baudios del monitor en serie esté configurada en 115200 baudios).

* Anote el factor de calibración y la compensación cero (para uso posterior).

Abra los bocetos de "Dispensador de alimentos" y "Dispensador de agua" a través del IDE y cambie las siguientes variables con su configuración (en el archivo "Configuración.h"):

  • WIFI_SSID
  • CONTRASEÑA DE WIFI
  • MQTT_SERVER
  • LOAD_CELL_CALIBRATION_FACTOR
  • LOAD_CELL_ZERO_OFFSET

* En MQTT_SERVER ingrese la dirección IP interna del paso "Mosquitto".

Sube los bocetos a tus dos ESP8266 (un código para cada placa).

* Tenga en cuenta que hemos utilizado la biblioteca "AsyncMqttClient" y no la biblioteca "pubsubclient" más común, ya que el esp8266 se bloquea cuando se combina con la biblioteca "HX711".

* Si opta por realizar cambios en el código, asegúrese de no utilizar las funciones de "retraso" y "rendimiento" dentro de las funciones de devolución de llamada, ya que provocaría bloqueos.

Paso 7: Ngrok

Ngrok
Ngrok
Ngrok
Ngrok

Descomprima el archivo descargado (desde el enlace en el paso "Software").

Abra "ngrok.exe" y ejecute el comando "ngrok http 1880".

* Puede seleccionar la región más cercana a usted (au, eu, ap, us, jp, in, sa). El predeterminado somos nosotros.

Por ejemplo, ejecutando el comando: "ngrok http --region = eu 1880" (establezca la región en Europa).

Ahora verá su dirección web para uso externo (nos referiremos a esta dirección como YOUR_NGROK_ADDRESS).

Paso 8: Node-RED

Nodo-RED
Nodo-RED
Nodo-RED
Nodo-RED
Nodo-RED
Nodo-RED

Abra Node-RED (usuarios de Windows: abra cmd e ingrese "node-red") y vaya a https:// localhost: 1880 (si no funciona, busque la dirección en la ventana de cmd donde está escrito "Servidor ahora corriendo en ").

Abra el menú (en la esquina superior derecha) y presione "Administrar paleta".

Vaya a la pestaña "Instalar", busque e instale estos módulos:

  • node-red-contrib-persist.
  • node-red-contrib-cron-plus.
  • node-red-contrib-ui-led.
  • node-red-dashboard.
  • node-red-contrib-telegrambot.

Vaya al menú-> Importar y cargue el archivo de flujo (extraiga el archivo RAR adjunto y cargue el archivo json).

Consulte las imágenes adjuntas para obtener explicaciones sobre el flujo.

Deberá modificar estos nodos con su configuración:

  • Actualiza el perfil del nodo "Remitente de Telegram" con el nombre de usuario y el token de tu bot (usa esta guía:
  • En la parte inferior del flujo, cambie las cargas útiles de los nodos "Dirección de Ngrok" e "Id. De chat de Telegram" (obtenga su identificación de chat utilizando la guía de Telegram en el enlace de arriba).
  • En la parte inferior del flujo hay nodos de configuración; modifíquelos según sus necesidades:

    • Activar las alertas de mascota está comiendo / bebiendo.
    • Defina cuál es la distancia para activar la alerta de comer / beber.
    • Definir el procesamiento de datos de tazones y tanques.
    • Modifique los tiempos de dispensación (durante cuánto tiempo se dispensan: modo automático y pulsación de botón).
    • Defina el porcentaje del umbral de desbordamiento del tazón de comida (cancele la dispensación automática de alimentos si hay suficiente comida en el tazón).

Implemente el flujo (en la parte superior derecha).

* Solo en la primera implementación, verá una advertencia en la ventana de depuración sobre la falta del archivo 'persistance.json'. No se preocupe, ya que en el momento en que establecerá los tiempos de alimentación o cambiará el interruptor automático de agua, inicializará este archivo y ya no tendrá esta advertencia.

Puede ver su panel en https:// NODE-RED_PC'S_INTERNAL_IP_ADDRESS: 1880 / ui (si está conectado a la misma LAN que el servidor) o YOUR_NGROK_ADDRESS / ui (desde cualquier lugar).

Paso 9: Conclusión

Envolver
Envolver

Esperamos que este tutorial sea informativo y fácil de leer, comprender e implementar.

Siéntete libre de preguntarnos lo que sea.

Recomendado: