Tabla de contenido:
- Paso 1: Lectura sugerida
- Paso 2: Materiales
- Paso 3: configura la Raspberry Pi
- Paso 4: ¡Constrúyelo! Hardware
- Paso 5: ¡Constrúyelo! Software
- Paso 6: ¡Pruebe e instale
Video: Monitor de mascotas IoT: 6 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
¡Vigila a tus queridos bbies y toca música o diles que se callen mientras no estás! Este tutorial le mostrará cómo usar una computadora Raspberry Pi para monitorear el volumen del sonido en su hogar (a través de la nube) para ver si su mascota está molesta y cuándo.
Redoble de tambores … la parte más divertida: si se pone demasiado fuerte (como si Fido estuviera ladrando o haciendo algún otro estruendo), ¡podemos decirles que se callen o pongan música!
Junto con el Pi (y los altavoces), usaremos la placa de conexión del micrófono SparkFun MEMS para medir los niveles de volumen y activar el reproductor de audio. Los datos se cargan en el servicio CloudMQTT utilizando el protocolo de comunicación MQTT.
Tiempo total de lectura: ~ 8 min
Tiempo total de construcción: 60 min (menos con experiencia)
¡MUCHAS GRACIAS a SparkFun por apoyar este proyecto! Mira el tutorial aquí.
Paso 1: Lectura sugerida
Para construir este proyecto, necesitará una computadora Raspberry Pi 3 completamente configurada y conectada a WiFi con sistema operativo Raspbian. También es útil conocer algo de programación en Python, así como las siguientes cosas: (1) cómo usar y controlar los pines GPIO de Raspberry Pi; (2) comunicación MQTT; y (3) sensores analógicos. Si algo de esto no le resulta familiar, o si simplemente tiene curiosidad (¡tenga curiosidad!), ¡Consulte los tutoriales a continuación!
Frambuesa pi 3
- Guía de conexión del kit de inicio de Raspberry Pi 3
- Raspberry Pi GPIO
- Comunicación SPI con Raspberry Pi
Protocolo de comunicación MQTT
MQTT (Message Query Telemetry Transport) es un protocolo de comunicación de IoT popular. Usaremos la biblioteca Python del cliente Paho y un servicio MQTT llamado CloudMQTT. Aquí hay más información sobre MQTT y cómo usarlo:
- Explorando los protocolos de comunicación para IoT
- Introducción a CloudMQTT
- Descripción general de la biblioteca cliente Eclipse Paho MQTT Python
Placa de conexión de micrófono MEMS
El micrófono MEMS es un micrófono analógico, por lo que necesitaremos un convertidor de analógico a digital ("ADC") para leer la señal analógica con los pines GPIO digitales de la Raspberry Pi.
- Introducción a la placa de conexión de micrófono SparkFun MEMS
- Ficha técnica del micrófono MEMS
- Hoja de datos de MCP3002 ADC
Paso 2: Materiales
- Raspberry Pi 3 Modelo B
También necesitaremos los siguientes periféricos: Estuche para Raspberry Pi 3; Tarjeta SD (mínimo 8 GB); Cable GPIO Raspberry Pi 3; Cable de alimentación microUSB; Cable HDMI y monitor compatible con HDMI; Teclado USB; Ratón USB; altavoces con puerto para auriculares de 1/8.
- Placa de conexión de micrófono SparkFun MEMS
- MCP3002 (convertidor de analógico a digital)
- Cables de puente de placa de pruebas y placa de pruebas de M a M
Paso 3: configura la Raspberry Pi
Paso 1: Verificar e instalar actualizaciones Buscar e instalar actualizaciones es siempre una buena manera de comenzar. Ejecute los siguientes comandos en la ventana de la terminal:
sudo apt-get update
sudo apt-get upgrade
sudo reiniciar
Paso 2: Configure la interfaz SPI para el micrófono MEMS + MCP3002
Para usar SPI (interfaz de puerto serie) para leer en el micrófono MEMS a través del MCP3002, necesitaremos el paquete Python Dev:
sudo apt-get install python-dev
También necesitaremos la interfaz SPI (es posible que desee crear una subcarpeta para guardar esto):
git clone git: //github.com/doceme/py-spidev
instalación de sudo python setup.py
Aquí está la documentación de SPI-Dev si tiene algún problema.
Paso 3: reproducción de sonidos con OMXPlayer
OMXPlayer es un reproductor de audio y video precargado en Raspbian OS. Funciona con la mayoría de los tipos de archivos de sonido, incluidos:.wav,.mp3 y.m4a. Esto es lo que usaremos para reproducir sonidos cuando Fido suene demasiado. La biblioteca de Python para controlar OMXPlayer está incluida en Raspbian (¡woo!).
Para probar OMXPlayer desde la terminal, escriba lo siguiente:
omxplayer /home/…/SongFilePath/SongFileName.mp3
Si eso no funciona, intente forzarlo a través del dispositivo de salida de audio local:
omxplayer -o local /home/…/SongFilePath/SongFileName.mp3
Paso 4: configurar el servidor CloudMQTT
¡Ahora configuramos un servidor MQTT! Para hacer esto usando CloudMQTT, haga lo siguiente:
- Configure una cuenta de CloudMQTT (el plan "Cute Cat" es gratuito).
- Cree una nueva instancia de MyCloud.
- En la consola, cree una nueva regla de ACL.
- Puede supervisar los mensajes publicados en la interfaz de usuario de "Websocket".
Finalmente, instale la biblioteca Python MQTT Paho Client:
pip instalar paho-mqtt
Paso 4: ¡Constrúyelo! Hardware
Los diagramas de pines para Raspberry Pi y MCP3002 están en las fotos de arriba.
1. Inserte los pines MCP3002 en la placa de pruebas (consulte el diagrama de pines anterior)
El MCP3002 usa 4 pines SPI para la comunicación: reloj serial ("SCL"), entrada maestra, salida esclava ("MISO"), salida maestra, entrada esclava ("MOSI") y selección de chip ("CS"). Estos pines corresponden al pin 11 (SCLK) de Raspberry Pi GPIO, pin 9 de GPIO (MISO), pin 10 de GPIO (MOSI) y pin 8 de GPIO (CE0).
Realice las siguientes conexiones con los pines MCP3002:
- Conecte el pin 1 al pin 8 de GPIO de Raspberry Pi (CE0)
- Conecte el pin 2 a la salida analógica de la placa de conexión del micrófono MEMS
- Conecte el pin 4 a GND
- Conecte el pin 5 al pin 10 de GPIO de Raspberry Pi (MOSI)
- Conecte el pin 6 al pin 9 de Raspberry Pi GPIO (MISO)
- Conecte el pin 7 al pin 11 de GPIO de Raspberry Pi (SCLK)
- Conecte el pin 8 a la salida de 3.3V de Raspberry Pi
2. Suelde los cables a la placa de conexión del micrófono MEMS. Conéctese a MCP3002 y Raspberry Pi
- Conecte Vcc a Raspberry Pi 3.3V.
- Conecte GND a Raspberry Pi GND
- Conecte AUD al pin 2 del MCP3002
3. Conecte todos los cables de la Raspberry Pi y encienda todo
Paso 5: ¡Constrúyelo! Software
Nuestro objetivo con Bark Back es doble: activar un sonido de reproducción cuando el perro ladra y enviar los datos a un servidor donde podamos verificarlos.
Aquí está el programa Python de código abierto para este proyecto. Siéntase libre de (y hágalo) ajustar y modificar el código.
Para que el programa esté en funcionamiento, debe completar dos cosas:
- songList: escriba la ruta del archivo y el nombre del archivo para cada una de las canciones que desee reproducir.
- creds: Ingrese su información de CloudMQTT en este diccionario.
Paso 1: Lea en la placa de conexión del micrófono SparkFun MEMS
Lea el valor ADC (entre 0 y 1023) de la placa de conexión del micrófono MEMS (a través del MCP3002) utilizando la biblioteca SPI y calcule la amplitud pico a pico de la señal.
Asigne la amplitud pico a pico de la señal a una unidad de volumen. El código actual asigna el rango de ADC entre 0 y 700 (basado en una experimentación rápida) a una unidad de volumen entre 0 y 10. Para ajustar la sensibilidad del micrófono, ajuste el rango de entrada de ADC.
Para obtener una descripción general completa del micrófono MEMS, consulte este tutorial.
Paso 2: Activa el reproductor de audio
¡Primero necesitaremos canciones para tocar! Puede grabar sonidos rápidamente en GarageBand (o en su teléfono inteligente) y enviarlos a la Raspberry Pi. En Python, use la biblioteca de subprocesos para llamar a omxplayer.
En el código, ingrese la ruta del archivo de las canciones que desea reproducir en la variable * songList * (línea 26). El umbral de volumen actual se establece en 7 en la función principal.
Paso 3: enviar datos al servidor CloudMQTT
Utilice la biblioteca Python del cliente Paho para comunicarse con los servidores de CloudMQTT. Para resumir ampliamente: Configure un servidor de cliente; definir protocolos de comunicación; conectarse con nuestras credenciales (también conocidas como credenciales); y suscribirte y publicar nuestros datos. La mayor parte de esto se realiza en la función principal (líneas 129 a 149 y líneas 169 a 174).
Para verificar los datos recibidos, vaya a la pestaña "Websocket UI" en la consola de CloudMQTT.
Paso 6: ¡Pruebe e instale
Ejecute el programa BarkBack.py en Terminal o en el IDE de Python (también puede usar SSH para ejecutar el programa después de que ya se haya ido).
Compruebe que está obteniendo niveles de volumen en la pestaña de la interfaz de usuario de Websocket.
Pruebe el sistema activando el micrófono (aplausos, gritos, ladridos, etc.) para asegurarse de que los altavoces reproduzcan todos los sonidos.
Una vez que todo esté en funcionamiento, se recomienda soldar los componentes a una PCB (placa de circuito impreso) si tiene la intención de instalar el sistema por más de unos pocos días.
Finalista en el Concurso de Microcontroladores 2017
Primer premio en el Concurso de Sensores 2017
Recomendado:
Sistema de monitoreo de mascotas con Arduino y Raspberry Pi: 19 pasos (con imágenes)
Sistema de monitoreo de mascotas con Arduino y Raspberry Pi: Recientemente, mientras estábamos de vacaciones, nos dimos cuenta de la falta de conexión con nuestra mascota Beagle. Después de investigar un poco, encontramos productos que presentaban una cámara estática que permitía monitorear y comunicarse con su mascota. Estos sistemas tenían ciertos beneficios b
Alimentador automático de mascotas con un reloj digital antiguo: 10 pasos (con imágenes)
Alimentador automático de mascotas con un reloj digital antiguo: Hola, en este instructivo le mostraré cómo hice un alimentador automático de mascotas con un reloj digital antiguo. También incluí un video sobre cómo hice este alimentador. Este instructivo se inscribirá en el concurso de PCB y, como un favor, ap
Alimentador de mascotas con RasPi y Telegram Bot: 4 pasos (con imágenes)
Pet Feeder Machine con RasPi y Telegram Bot: En primer lugar necesito aclarar que esta no es una Idea Mine original, solo actualizo y adapto los scripts de programación para que funcionen con Telegram, lo encontré en un Instructable anterior para que los créditos realmente sean los autor del mismo. Podías ver el español
Dispensador de golosinas IoT para mascotas: 7 pasos (con imágenes)
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
Puerta para mascotas para exteriores de IoT: 6 pasos (con imágenes)
Puerta para mascotas IoT Outdoor: Me inspiré en este instructable para crear una puerta automática para gallinero. No solo quería que la puerta del gallinero tuviera un temporizador, sino que también quería conectar la puerta a Internet para poder controlarla con mi teléfono o mi computadora. Este d