Índice:

IoT Pet Monitor !: 6 etapas (com imagens)
IoT Pet Monitor !: 6 etapas (com imagens)

Vídeo: IoT Pet Monitor !: 6 etapas (com imagens)

Vídeo: IoT Pet Monitor !: 6 etapas (com imagens)
Vídeo: Generate Studio Quality Realistic Photos By Kohya LoRA Stable Diffusion Training - Full Tutorial 2024, Novembro
Anonim
Image
Image
Leitura sugerida
Leitura sugerida

Fique de olho em seus amados bbies e toque música ou diga a eles para ficarem quietos enquanto você estiver fora! Este tutorial mostrará como usar um computador Raspberry Pi para monitorar o volume do som em sua casa (através da nuvem) para ver se e quando seu animal de estimação está chateado.

Rufar os tambores… a parte mais divertida: Se ficar muito alto (como o Fido latindo ou fazendo algum outro barulho), nós podemos dizer a eles para ficarem quietos ou tocarem música!

Junto com o Pi (e alto-falantes), usaremos a placa de breakout do microfone SparkFun MEMS para medir os níveis de volume e acionar o reprodutor de áudio. Os dados são carregados para o serviço CloudMQTT usando o protocolo de comunicação MQTT.

Tempo total de leitura: ~ 8 min

Tempo total de construção: 60 min (menos com experiência)

MUITO OBRIGADO a SparkFun por apoiar este projeto! Confira o tutorial aqui.

Etapa 1: Leitura sugerida

Para construir este projeto, você precisará de um computador Raspberry Pi 3 totalmente configurado e conectado por Wi-Fi com Raspbian OS. Também é útil saber um pouco de programação Python, bem como as seguintes coisas: (1) como usar e controlar os pinos GPIO do Raspberry Pi; (2) comunicação MQTT; e (3) sensores analógicos. Se alguma dessas coisas não lhe for familiar, ou se você estiver apenas curioso (seja curioso!), Verifique os tutoriais abaixo!

Raspberry Pi 3

  1. Guia de conexão do Raspberry Pi 3 Starter Kit
  2. Raspberry Pi GPIO
  3. Comunicação SPI com o Raspberry Pi

Protocolo de Comunicação MQTT

MQTT (Message Query Telemetry Transport) é um protocolo de comunicação IoT popular. Usaremos a biblioteca Paho Client Python e um serviço MQTT chamado CloudMQTT. Aqui está mais sobre MQTT e como usá-lo:

  1. Explorando protocolos de comunicação para IoT
  2. Primeiros passos com CloudMQTT
  3. Visão geral da biblioteca cliente Eclipse Paho MQTT Python

Placa de interrupção do microfone MEMS

O microfone MEMS é um microfone analógico, portanto, precisaremos de um conversor Analógico para Digital ("ADC") para ler o sinal analógico com os pinos GPIO digitais do Raspberry Pi.

  1. Primeiros passos com o SparkFun MEMS Microphone Breakout Board
  2. Folha de Dados do Microfone MEMS
  3. Folha de dados do ADC MCP3002

Etapa 2: Materiais

Materiais
Materiais
Materiais
Materiais
Materiais
Materiais

- Raspberry Pi 3 Modelo B

Também precisaremos dos seguintes periféricos: Capa Raspberry Pi 3; Cartão SD (mínimo 8 GB); Cabo GPIO Raspberry Pi 3; Cabo de alimentação MicroUSB; Cabo HDMI e monitor compatível com HDMI; Teclado USB; Mouse USB; alto-falantes com porta de fone de ouvido de 1/8.

- Placa Breakout do Microfone SparkFun MEMS

- MCP3002 (conversor analógico-digital)

- Fios de jumper de tábua de ensaio e M para M

Etapa 3: configurar o Raspberry Pi

Configure o Raspberry Pi
Configure o Raspberry Pi
Configure o Raspberry Pi
Configure o Raspberry Pi
Configure o Raspberry Pi
Configure o Raspberry Pi
Configure o Raspberry Pi
Configure o Raspberry Pi

Etapa 1: Verificar e instalar atualizações Verificar e instalar atualizações é sempre uma boa maneira de começar. Execute os seguintes comandos na janela do terminal:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

Etapa 2: configurar a interface SPI para o microfone MEMS + MCP3002

Para usar o SPI (Serial Port Interface) para ler no microfone MEMS por meio do MCP3002, precisaremos do Python Dev Package:

sudo apt-get install python-dev

Também precisaremos da interface SPI (pode ser desejável criar uma subpasta para salvar isso):

git clone git: //github.com/doceme/py-spidev

sudo python setup.py install

Aqui está a documentação do SPI-Dev se você encontrar algum problema.

Etapa 3: Tocando sons com OMXPlayer

O OMXPlayer é um reprodutor de áudio e vídeo pré-carregado no Raspbian OS. Funciona com a maioria dos tipos de arquivos de som, incluindo:.wav,.mp3 e.m4a. É o que usaremos para reproduzir sons quando o Fido ficar muito alto. A biblioteca Python para controlar o OMXPlayer está incluída no Raspbian (woo!).

Para testar o OMXPlayer no terminal, digite o seguinte:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Se isso não funcionar, tente forçar no dispositivo de saída de áudio local:

omxplayer -o local /home/…/SongFilePath/SongFileName.mp3

Etapa 4: configurar o servidor CloudMQTT

Agora configuramos um servidor MQTT! Para fazer isso usando CloudMQTT, faça o seguinte:

  1. Configure uma conta CloudMQTT (o plano "Cute Cat" é gratuito).
  2. Crie uma nova instância MyCloud.
  3. No console, crie uma nova regra ACL.
  4. Você pode monitorar as mensagens publicadas na IU do "Websocket".

Por fim, instale a biblioteca MQTT Paho Client Python:

pip install paho-mqtt

Etapa 4: Construa! Hardware

Construa! Hardware
Construa! Hardware
Construa! Hardware
Construa! Hardware
Construa! Hardware
Construa! Hardware

Os diagramas de pinagem para o Raspberry Pi e o MCP3002 estão nas fotos acima.

1. Insira os pinos MCP3002 na placa de ensaio (consulte o diagrama de pinagem acima)

O MCP3002 usa 4 pinos SPI para comunicação: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") e Chip Select ("CS"). Esses pinos correspondem a Raspberry Pi GPIO pino 11 (SCLK), GPIO pino 9 (MISO), GPIO pino 10 (MOSI) e GPIO pino 8 (CE0).

Faça as seguintes conexões com os pinos MCP3002:

  • Conecte o pino 1 ao pino 8 do Raspberry Pi GPIO (CE0)
  • Conecte o pino 2 à saída analógica da placa de interrupção do microfone MEMS
  • Conecte o pino 4 ao GND
  • Conecte o pino 5 ao pino 10 do Raspberry Pi GPIO (MOSI)
  • Conecte o pino 6 ao pino 9 do Raspberry Pi GPIO (MISO)
  • Conecte o pino 7 ao pino 11 do Raspberry Pi GPIO (SCLK)
  • Conecte o pino 8 à saída Raspberry Pi 3.3V

2. Solde os fios na placa de fuga do microfone MEMS. Conecte-se a MCP3002 e Raspberry Pi

  • Conecte o Vcc ao Raspberry Pi 3.3V.
  • Conecte o GND ao Raspberry Pi GND
  • Conecte AUD ao MCP3002 Pino 2

3. Conecte todos os cabos do Raspberry Pi e ligue tudo

Etapa 5: Construa! Programas

Construa! Programas
Construa! Programas

Nosso objetivo com o Bark Back é duplo: acionar um playback de som quando o cachorro late, e enviar os dados para um servidor onde podemos verificá-los.

Este é o programa Python de código aberto para este projeto. Sinta-se à vontade para (e faça) ajustar e modificar o código.

Para colocar o programa em execução, você precisa preencher duas coisas:

- songList: Escreva o caminho e o nome do arquivo para cada uma das músicas que deseja reproduzir.

- creds: Insira suas informações CloudMQTT neste dicionário.

Etapa 1: Leia a placa de breakout do SparkFun MEMS Microphone

Leia o valor ADC (entre 0 e 1023) da placa de interrupção do microfone MEMS (por meio do MCP3002) usando a biblioteca SPI e calcule a amplitude pico a pico do sinal.

Mapeie a amplitude pico a pico do sinal para uma unidade de volume. O código atual mapeia a faixa ADC entre 0 e 700 (com base em experimentação rápida) para uma Unidade de Volume entre 0 e 10. Para ajustar a sensibilidade do microfone, ajuste a faixa de entrada ADC.

Para uma visão geral completa do microfone MEMS, confira este tutorial.

Etapa 2: acione o reprodutor de áudio

Primeiro vamos precisar de músicas para tocar! Você pode gravar sons rapidamente no GarageBand (ou no seu smartphone) e enviá-los para o Raspberry Pi. Em Python, use a biblioteca de subprocesso para chamar o omxplayer.

No código, insira o caminho do arquivo das músicas que deseja reproduzir na variável * songList * (linha 26). O limite de volume atual é definido como 7 na função principal.

Etapa 3: enviar dados ao servidor CloudMQTT

Use a biblioteca Python do cliente Paho para se comunicar com os servidores CloudMQTT. Para resumir amplamente: Configure um servidor de cliente; definir protocolos de comunicação; conecte-se com nossas credenciais (também conhecidas como creds); e assinar e publicar nossos dados. A maior parte disso é feito na função principal (linhas 129 - 149 e linhas 169 - 174).

Para verificar os dados recebidos, vá para a guia "Websocket UI" no console CloudMQTT.

Etapa 6: Teste e instale

Teste e instale!
Teste e instale!

Execute o programa BarkBack.py no Terminal ou no Python IDE (você também pode usar SSH para executar o programa depois de sair).

Verifique se você está obtendo os níveis de volume na guia UI do Websocket.

Teste o sistema acionando o microfone (bata palmas, gritos, latidos, etc.) para ter certeza de que os alto-falantes tocam todos os sons.

Depois que tudo estiver instalado e funcionando, é recomendável soldar os componentes em uma PCB (placa de circuito impresso) se você pretende instalar o sistema por mais do que apenas alguns dias.

Concurso de Microcontroladores 2017
Concurso de Microcontroladores 2017
Concurso de Microcontroladores 2017
Concurso de Microcontroladores 2017

Vice-campeão no Concurso de Microcontroladores 2017

Sensors Contest 2017
Sensors Contest 2017
Sensors Contest 2017
Sensors Contest 2017

Primeiro Prêmio no Concurso de Sensores 2017

Recomendado: