Taula de continguts:

Monitor de mascotes IoT !: 6 passos (amb imatges)
Monitor de mascotes IoT !: 6 passos (amb imatges)

Vídeo: Monitor de mascotes IoT !: 6 passos (amb imatges)

Vídeo: Monitor de mascotes IoT !: 6 passos (amb imatges)
Vídeo: Раскрываю секрет сочного мяса! Рецепт приготовления баранины с содой в помпейской печи 2024, Desembre
Anonim
Image
Image
Lectura suggerida
Lectura suggerida

Vigileu els vostres estimats bbies i toqueu música o digueu-los que callin mentre esteu fora. Aquest tutorial us mostrarà com utilitzar un ordinador Raspberry Pi per controlar el volum de so a casa vostra (a través del núvol) per veure si i quan la vostra mascota està molesta.

Rodar el tambor … la part més divertida: si es fa massa fort (com si Fido bordi o faci alguna altra canalla), els podem dir que callin o que toquin música.

Juntament amb el Pi (i els altaveus), utilitzarem la placa de separació del micròfon SparkFun MEMS per mesurar els nivells de volum i activar el reproductor d’àudio. Les dades es carreguen al servei CloudMQTT mitjançant el protocol de comunicació MQTT.

Temps total de lectura: ~ 8 min

Temps total de construcció: 60 min (menys amb experiència)

MOLTES GRÀCIES a SparkFun per donar suport a aquest projecte. Consulteu el tutorial aquí.

Pas 1: lectura suggerida

Per construir aquest projecte, necessitareu un equip Raspberry Pi 3 completament configurat i connectat a WiFi amb Raspbian OS. També és útil conèixer algunes de les programacions de Python i les coses següents: (1) com utilitzar i controlar els pins GPIO de Raspberry Pi; (2) comunicació MQTT; i (3) sensors analògics. Si alguna cosa d'això és desconeguda o si només teniu curiositat (tingueu curiositat!), Consulteu els tutorials següents.

Raspberry Pi 3

  1. Guia de connexió del kit d’inici Raspberry Pi 3
  2. Raspberry Pi GPIO
  3. Comunicació SPI amb el Raspberry Pi

Protocol de comunicació MQTT

MQTT (Message Query Telemetry Transport) és un popular protocol de comunicació IoT. Utilitzarem la biblioteca Paho Client Python i un servei MQTT anomenat CloudMQTT. Aquí hi ha més informació sobre MQTT i com utilitzar-lo:

  1. Exploració de protocols de comunicació per a IoT
  2. Introducció a CloudMQTT
  3. Visió general de la biblioteca client Eclipse Paho MQTT Python

Tauler de separació de micròfons MEMS

El micròfon MEMS és un micròfon analògic, de manera que necessitarem un convertidor analògic a digital ("ADC") per llegir el senyal analògic amb els pins GPIO digitals de Raspberry Pi.

  1. Primers passos amb la placa de separació de micròfons SparkFun MEMS
  2. Full de dades de micròfon MEMS
  3. Full de dades MCP3002 ADC

Pas 2: materials

Materials
Materials
Materials
Materials
Materials
Materials

- Raspberry Pi 3 Model B

També necessitarem els perifèrics següents: Raspberry Pi 3 Case; Targeta SD (mínim 8 GB); Cable GPIO Raspberry Pi 3; Cable d'alimentació MicroUSB; Cable HDMI i monitor compatible amb HDMI; Teclat USB; Ratolí USB; altaveus amb port per a auriculars de 1/8.

- Tauler SparkFun MEMS Mic Breakout

- MCP3002 (convertidor analògic a digital)

- Filferros de pont de taulers de panells i taulers de pa M-a-M

Pas 3: configureu el Raspberry Pi

Configureu el Raspberry Pi
Configureu el Raspberry Pi
Configureu el Raspberry Pi
Configureu el Raspberry Pi
Configureu el Raspberry Pi
Configureu el Raspberry Pi
Configureu el Raspberry Pi
Configureu el Raspberry Pi

Pas 1: comprovar i instal·lar actualitzacions Comprovar i instal·lar actualitzacions sempre és una bona manera de començar. Executeu les ordres següents a la finestra del terminal:

sudo apt-get update

sudo apt-get upgrade

sudo reiniciar

Pas 2: configureu la interfície SPI per al micròfon MEMS + MCP3002

Per utilitzar l’SPI (interfície de port sèrie) per llegir el micròfon MEMS mitjançant l’MCP3002, necessitarem el paquet Python Dev:

sudo apt-get install python-dev

També necessitarem la interfície SPI (és possible que vulgueu crear una subcarpeta per desar-la):

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

sudo python setup.py install

Aquí teniu la documentació SPI-Dev si teniu problemes.

Pas 3: Reproducció de sons amb OMXPlayer

L'OMXPlayer és un reproductor d'àudio i vídeo precarregat al sistema operatiu Raspbian. Funciona amb la majoria de tipus de fitxers de so, inclosos:.wav,.mp3 i.m4a. Això és el que farem servir per reproduir sons quan Fido es posi massa fort. La biblioteca Python per controlar OMXPlayer està inclosa a Raspbian (woo!).

Per provar l'OMXPlayer des del terminal, escriviu el següent:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Si això no funciona, proveu de forçar-lo sobre el dispositiu de sortida d'àudio local:

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

Pas 4: configureu el servidor CloudMQTT

Ara hem creat un servidor MQTT. Per fer-ho mitjançant CloudMQTT, feu el següent:

  1. Configureu un compte CloudMQTT (el pla "Cute Cat" és gratuït).
  2. Creeu una nova instància de MyCloud.
  3. A la consola, creeu una nova regla ACL.
  4. Podeu supervisar els missatges publicats a la interfície d'usuari "Websocket".

Finalment, instal·leu la biblioteca Python Client MQTT Paho:

pip install paho-mqtt

Pas 4: construïu-lo. Maquinari

Construeix-ho! Maquinari
Construeix-ho! Maquinari
Construeix-ho! Maquinari
Construeix-ho! Maquinari
Construeix-ho! Maquinari
Construeix-ho! Maquinari

Els diagrames detallats del Raspberry Pi i el MCP3002 es troben a les fotos de dalt.

1. Inseriu els pins MCP3002 a la placa de visualització (vegeu el diagrama de pinout anterior)

El MCP3002 utilitza 4 pins SPI per a la comunicació: rellotge sèrie ("SCL"), sortida d'esclau d'entrada principal ("MISO"), entrada d'esclau de sortida principal ("MOSI") i selecció de xip ("CS"). Aquests pins corresponen a Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI) i GPIO Pin 8 (CE0).

Feu les connexions següents amb els pins MCP3002:

  • Connecteu el pin 1 al pin 8 de Raspberry Pi GPIO (CE0)
  • Connecteu el pin 2 a la sortida analògica de la placa de separació del micròfon MEMS
  • Connecteu el pin 4 a GND
  • Connecteu el pin 5 al pin 10 Raspberry Pi GPIO (MOSI)
  • Connecteu el pin 6 al pin 9 de Raspberry Pi GPIO (MISO)
  • Connecteu el pin 7 al pin 11 Raspberry Pi GPIO (SCLK)
  • Connecteu el pin 8 a la sortida Raspberry Pi 3.3V

2. Cables de soldar a la placa de trencament del micròfon MEMS. Connecteu-vos a MCP3002 i Raspberry Pi

  • Connecteu Vcc a Raspberry Pi 3.3V.
  • Connecteu GND a Raspberry Pi GND
  • Connecteu AUD al pin 2 de MCP3002

3. Connecteu tots els cables del Raspberry Pi i engegueu-ho tot

Pas 5: construïu-lo. Programari

Construeix-ho! Programari
Construeix-ho! Programari

El nostre objectiu amb Bark Back és doble: activar un so de reproducció quan el gos borda i enviar les dades a un servidor on puguem comprovar-les.

Aquí teniu el programa Python de codi obert per a aquest projecte. No dubteu a ajustar i modificar el codi (i si us plau, feu-ho).

Per posar en marxa el programa, heu d'emplenar dues coses:

- SongList: escriviu al camí del fitxer i al nom del fitxer per a cadascuna de les cançons que vulgueu reproduir.

- crèdits: introduïu la informació de CloudMQTT en aquest diccionari.

Pas 1: llegiu al tauler de separació de micròfons SparkFun MEMS

Llegiu el valor ADC (entre 0 i 1023) des de la placa de ruptura del micròfon MEMS (mitjançant l'MCP3002) mitjançant la biblioteca SPI i calculeu l'amplitud del senyal de pic a pic.

Assigneu l’amplitud de pic a pic del senyal a una unitat de volum. El codi actual assigna el rang ADC entre 0 i 700 (basat en una experimentació ràpida) a una unitat de volum entre 0 i 10. Per ajustar la sensibilitat del micròfon, ajusteu el rang d'entrada ADC.

Per obtenir una visió completa del micròfon MEMS, consulteu aquest tutorial.

Pas 2: activar el reproductor d'àudio

Primer necessitarem cançons per tocar! Podeu enregistrar sons ràpidament a GarageBand (o al telèfon intel·ligent) i enviar-los al Raspberry Pi. A Python, utilitzeu la biblioteca de subprocessos per trucar a omxplayer.

Al codi, introduïu el camí del fitxer de les cançons que vulgueu reproduir a la variable * songList * (línia 26). El llindar de volum actual s'estableix en 7 a la funció principal.

Pas 3: envieu dades al servidor CloudMQTT

Utilitzeu la biblioteca Paho Client Python per comunicar-vos amb els servidors CloudMQTT. Per resumir: configureu un servidor client; definir protocols de comunicació; connecteu-vos amb les nostres credencials (també crèdits); i subscriu-te i publica les nostres dades. La major part d'això es fa a la funció principal (línies 129 - 149 i línies 169 - 174).

Per comprovar les dades rebudes, aneu a la pestanya "Websocket UI" de la consola CloudMQTT.

Pas 6: proveu i instal·leu

Prova i instal·la
Prova i instal·la

Executeu el programa BarkBack.py a Terminal o a l'IDE de Python (també podeu utilitzar SSH per executar el programa després de deixar-lo).

Comproveu que obteniu nivells de volum a la pestanya UI de Websocket.

Proveu el sistema activant el micròfon (picades, crits, escorces, etc.) per assegurar-vos que els altaveus reprodueixen tots els sons.

Un cop tot estigui en marxa, es recomana soldar els components a una placa de circuit imprès (PCB) si teniu intenció d’instal·lar el sistema durant més d’uns dies.

Concurs de microcontroladors 2017
Concurs de microcontroladors 2017
Concurs de microcontroladors 2017
Concurs de microcontroladors 2017

Accèssit al concurs de microcontroladors 2017

Concurs de sensors 2017
Concurs de sensors 2017
Concurs de sensors 2017
Concurs de sensors 2017

Primer premi del Concurs de Sensors 2017

Recomanat: