Tabla de contenido:

Dispensador de golosinas IoT para mascotas: 7 pasos (con imágenes)
Dispensador de golosinas IoT para mascotas: 7 pasos (con imágenes)

Video: Dispensador de golosinas IoT para mascotas: 7 pasos (con imágenes)

Video: Dispensador de golosinas IoT para mascotas: 7 pasos (con imágenes)
Video: Un dispensador de comida para Pelusa 2024, Noviembre
Anonim
Image
Image
Dispensador de golosinas IoT para mascotas
Dispensador de golosinas IoT para mascotas

Tengo dos gatos y tener que darles golosinas unas 3 veces al día se convirtió en una molestia. Me miraban con sus caras lindas y miradas intensas, luego corrían hacia una caja llena de gatos verdes, maullando y suplicando por ellos. Había decidido que ya era suficiente. No más levantarse solo para darle un par de golosinas a un gato. Ahora era el momento de una máquina dispensadora de golosinas, porque como dice el refrán: "Los programadores existen para hacer cosas complicadas para hacer las cosas menos simples".

DFRobot patrocinó este proyecto.

Lista de partes:

  • DFRobot Raspberry Pi 3
  • Módulo de cámara DFRobot Raspberry Pi
  • Motor paso a paso DFRobot con engranaje planetario
  • Pantalla LCD I2C 16x2
  • Conector de barril a la terminal
  • Controlador de motor paso a paso DRV8825
  • Condensador 100 µF
  • Arduino UNO y Genuino UNO
  • Cables de puente (genéricos)

Paso 1: creación de un diseño

Creando un Diseño
Creando un Diseño

Primero fue la elección de cómo controlar mi máquina recién pensada. Bluetooth habría tenido un alcance demasiado corto, a solo 30 pies sin obstrucciones. Con esta información, opté por usar WiFi. Pero ahora, ¿cómo uso WiFi para controlar la máquina? Una Raspberry Pi 3 tiene capacidades WiFi integradas, lo que me permite usar Flask para alojar una página web. El siguiente fue el tema del recinto y cómo dispensar golosinas. Decidí un diseño de rueda giratoria, donde las golosinas caerían en pequeñas secciones, se rotarían y luego las golosinas caerían sobre una rampa y viajarían al frente de la máquina.

Paso 2: Hacer el modelo Fusion 360

Hacer el modelo Fusion 360
Hacer el modelo Fusion 360
Hacer el modelo Fusion 360
Hacer el modelo Fusion 360
Hacer el modelo Fusion 360
Hacer el modelo Fusion 360

Comencé creando un modelo base para el receptáculo de golosinas. Las golosinas caen en una mini-tolva donde luego se llevan a una rueda giratoria.

A continuación, agregué la Raspberry Pi 3 al diseño de Fusion, junto con otros componentes electrónicos, incluido un módulo de cámara LCD y Raspberry Pi. También hice una tolva que podría almacenar golosinas adicionales.

Se supone que las paredes del dispensador de golosinas deben cortarse de madera contrachapada de 1/4 de pulgada en un enrutador CNC. Tiene 7 piezas, 4 paredes, un piso y una tapa y una tapa que se pueden abrir y cerrar para exponer las golosinas.

Por último, creé un asa "elegante" para abrir la tapa.

Paso 3: Configurar el Pi

DFRobot se acercó a mí y me envió su módulo de cámara Raspberry Pi 3 y Raspberry Pi. Entonces, después de abrir las cajas, me puse manos a la obra configurando la tarjeta SD. Primero fui a la página de descargas de Raspberry Pi y descargué la versión más reciente de Raspbian. Luego extraje el archivo y lo puse en un directorio conveniente. No puede simplemente copiar / pegar un archivo.img en una tarjeta SD, tiene que "grabarlo" en la tarjeta. Puede descargar una utilidad de grabación como Etcher.io para transferir fácilmente la imagen del sistema operativo. Después de que el archivo.img estuvo en mi tarjeta SD, lo inserté en la Raspberry Pi y le di energía. Después de unos 50 segundos, desconecté el cable y extraje la tarjeta SD. A continuación, volví a poner la tarjeta SD en mi PC y fui al directorio de "arranque". Abrí el Bloc de notas y lo guardé como un archivo en blanco llamado "ssh" sin extensión. También había un archivo que agregué llamado "wpa_supplicant.conf" y puse este texto en él: network = {ssid = psk =} Luego guardé y expulsé la tarjeta y la volví a colocar en la Raspberry Pi 3. Esto ahora debería permitir el uso de SSH y la conexión a WiFi.

Paso 4: instalación del software

Hay varios softwares diferentes que pueden transmitir video, como VLC y motion, pero decidí usar mjpeg-streamer debido a su baja latencia y su fácil instalación. De acuerdo con las instrucciones del sitio, haga: git clone https://github.com/jacksonliam/mjpg-streamer.git En una carpeta, luego escriba: sudo apt-get install cmake libjpeg8-dev Para instalar las bibliotecas necesarias. Cambie su directorio a la carpeta que descargó y luego escriba: make Seguido de: sudo make install Para compilar el software. Finalmente ingrese: export LD_LIBRARY_PATH =. Y para ejecutarlo, escriba:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Puede acceder al flujo dirigiéndose a: https:// IP local del pi: 8080 / stream. html Para ver la secuencia.

Paso 5: configurar un servidor web

Para que la máquina fuera controlada externamente por WiFi, necesitaba un servidor web. Un servidor web básicamente sirve páginas web cuando lo solicita, generalmente un navegador. Quería algo rápido y simple de configurar y usar, quitando Apache de la mesa. También quería conectar el servidor web con Python para poder controlar Arduino Uno con PySerial. Esta búsqueda finalmente me llevó a Flask, una bonita biblioteca de Python que permite a los usuarios crear rápidamente un servidor web. El código completo se adjunta a esta página del proyecto. El script de Python básicamente configura 2 páginas web, una alojada en el directorio raíz, '/', y otra alojada en '/ dispense'. La página de índice tiene un formulario HTML que, cuando se envía, envía una solicitud de publicación a la página de distribución. La página de dispensación luego verifica si el valor de publicación es correcto, y si es el mensaje 'D / n' se envía por serie al Arduino Uno.

Paso 6: Control de IO

Controlando IO
Controlando IO
Controlando IO
Controlando IO
Controlando IO
Controlando IO
Controlando IO
Controlando IO

Decidí usar el DRV8825 para impulsar mi motor paso a paso, principalmente porque solo necesita 2 pines IO además de tener una limitación de corriente ajustable. Intenté usar un L293D pero no pudo soportar la carga del motor paso a paso. El DRV8825 se controla pulsando el pin STEP a través de PWM, y la dirección se controla tirando del pin DIR hacia arriba o hacia abajo. El motor paso a paso que estoy usando tiene un consumo de 1.2 amperios, así que ajusté el voltaje VREF a.6V. Lo siguiente fue la pantalla LCD. Quería usar I2C para reducir la cantidad de IO necesaria y simplificar el código. Para instalar la biblioteca, simplemente busque "LiquidCrystal_I2C" e instálelo. Finalmente, Arduino Uno busca nueva información en el búfer de serie y si coincide con 'D'. Si lo hace, el Uno hace que el motor paso a paso se mueva 180 grados y luego -72 grados para evitar que las golosinas se atasquen.

Recomendado: