Tabla de contenido:

Monitor de mascotas IoT: 6 pasos (con imágenes)
Monitor de mascotas IoT: 6 pasos (con imágenes)

Video: Monitor de mascotas IoT: 6 pasos (con imágenes)

Video: Monitor de mascotas IoT: 6 pasos (con imágenes)
Video: SERIE HMI #0: INTERFAZ GRAFICA DE CONTROL - ARDUINO - ESP32 - GUI 2024, Noviembre
Anonim
Image
Image
Lectura sugerida
Lectura sugerida

¡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

  1. Guía de conexión del kit de inicio de Raspberry Pi 3
  2. Raspberry Pi GPIO
  3. 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:

  1. Explorando los protocolos de comunicación para IoT
  2. Introducción a CloudMQTT
  3. 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.

  1. Introducción a la placa de conexión de micrófono SparkFun MEMS
  2. Ficha técnica del micrófono MEMS
  3. Hoja de datos de MCP3002 ADC

Paso 2: Materiales

Materiales
Materiales
Materiales
Materiales
Materiales
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

Configurar la Raspberry Pi
Configurar la Raspberry Pi
Configurar la Raspberry Pi
Configurar la Raspberry Pi
Configurar la Raspberry Pi
Configurar la Raspberry Pi
Configurar la Raspberry Pi
Configurar 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:

  1. Configure una cuenta de CloudMQTT (el plan "Cute Cat" es gratuito).
  2. Cree una nueva instancia de MyCloud.
  3. En la consola, cree una nueva regla de ACL.
  4. 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

¡Constrúyelo! Hardware
¡Constrúyelo! Hardware
¡Constrúyelo! Hardware
¡Constrúyelo! Hardware
¡Constrúyelo! Hardware
¡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

¡Constrúyelo! Software
¡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

¡Prueba e instala!
¡Prueba e instala!

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.

Concurso de microcontroladores 2017
Concurso de microcontroladores 2017
Concurso de microcontroladores 2017
Concurso de microcontroladores 2017

Finalista en el Concurso de Microcontroladores 2017

Concurso de Sensores 2017
Concurso de Sensores 2017
Concurso de Sensores 2017
Concurso de Sensores 2017

Primer premio en el Concurso de Sensores 2017

Recomendado: