Sommario:

IoT Pet Monitor!: 6 passaggi (con immagini)
IoT Pet Monitor!: 6 passaggi (con immagini)

Video: IoT Pet Monitor!: 6 passaggi (con immagini)

Video: IoT Pet Monitor!: 6 passaggi (con immagini)
Video: Камера-ЛАМПА со слежением и определением человека. 2024, Dicembre
Anonim
Image
Image
Lettura suggerita
Lettura suggerita

Tieni d'occhio i tuoi amati bbies e metti musica o dì loro di stare zitti mentre sei via! Questo tutorial mostrerà come utilizzare un computer Raspberry Pi per monitorare il volume del suono nella tua casa (tramite il Cloud) per vedere se e quando il tuo animale domestico è arrabbiato.

Rullo di tamburi… la parte più divertente: se diventa troppo rumoroso (come Fido che abbaia o fa qualche altro rauco), puoi dire loro di stare zitti o di mettere della musica!

Insieme al Pi (e agli altoparlanti), utilizzeremo la scheda breakout del microfono SparkFun MEMS per misurare i livelli di volume e attivare il lettore audio. I dati vengono caricati sul servizio CloudMQTT utilizzando il protocollo di comunicazione MQTT.

Tempo di lettura totale: ~ 8 min

Tempo di costruzione totale: 60 min (meno con esperienza)

Un enorme GRAZIE a SparkFun per aver supportato questo progetto! Dai un'occhiata al tutorial qui.

Passaggio 1: lettura suggerita

Per creare questo progetto, avrai bisogno di un computer Raspberry Pi 3 completamente configurato e connesso tramite WiFi con sistema operativo Raspbian. È anche utile conoscere un po' di programmazione Python e le seguenti cose: (1) come utilizzare e controllare i pin GPIO di Raspberry Pi; (2) comunicazione MQTT; e (3) sensori analogici. Se qualcuno di questi non è familiare, o se sei solo curioso (sii curioso!), dai un'occhiata ai tutorial qui sotto!

Raspberry Pi 3

  1. Guida al collegamento del kit di avvio Raspberry Pi 3
  2. Raspberry Pi GPIO
  3. Comunicazione SPI con il Raspberry Pi

Protocollo di comunicazione MQTT

MQTT (Message Query Telemetry Transport) è un popolare protocollo di comunicazione IoT. Useremo la libreria Paho Client Python e un servizio MQTT chiamato CloudMQTT. Ecco di più su MQTT e su come usarlo:

  1. Esplorazione dei protocolli di comunicazione per IoT
  2. Iniziare con CloudMQTT
  3. Panoramica della libreria client Python MQTT di Eclipse Paho

Scheda di breakout per microfono MEMS

Il microfono MEMS è un microfono analogico, quindi avremo bisogno di un convertitore analogico-digitale ("ADC") per leggere il segnale analogico con i pin GPIO digitali di Raspberry Pi.

  1. Iniziare con la scheda di breakout del microfono MEMS SparkFun
  2. Scheda tecnica del microfono MEMS
  3. Scheda tecnica ADC MCP3002

Passaggio 2: materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

- Raspberry Pi 3 Modello B

Avremo anche bisogno delle seguenti periferiche: Custodia Raspberry Pi 3; Scheda SD (minimo 8 GB); Cavo GPIO Raspberry Pi 3; Cavo di alimentazione MicroUSB; Cavo HDMI e monitor compatibile con HDMI; tastiera USB; mouse USB; altoparlanti con porta per cuffie da 1/8.

- SparkFun MEMS Mic Breakout Board

- MCP3002 (convertitore analogico-digitale)

- Fili di ponticello per tagliere e tagliere M-to-M

Passaggio 3: configura il Raspberry Pi

Configura il Raspberry Pi
Configura il Raspberry Pi
Configura il Raspberry Pi
Configura il Raspberry Pi
Configura il Raspberry Pi
Configura il Raspberry Pi
Configura il Raspberry Pi
Configura il Raspberry Pi

Passaggio 1: verifica e installazione degli aggiornamenti La verifica e l'installazione degli aggiornamenti è sempre un buon modo per iniziare. Esegui i seguenti comandi nella finestra del terminale:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

Passaggio 2: configurare l'interfaccia SPI per microfono MEMS + MCP3002

Per utilizzare SPI (Serial Port Interface) per leggere nel microfono MEMS tramite MCP3002, avremo bisogno del pacchetto Python Dev:

sudo apt-get install python-dev

Avremo anche bisogno dell'interfaccia SPI (potremmo voler creare una sottocartella in cui salvarlo):

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

sudo python setup.py install

Ecco la documentazione SPI-Dev se riscontri problemi.

Passaggio 3: riprodurre suoni con OMXPlayer

OMXPlayer è un lettore audio e video precaricato sul sistema operativo Raspbian. Funziona con la maggior parte dei tipi di file audio, inclusi:.wav,.mp3 e.m4a. Questo è ciò che useremo per riprodurre i suoni quando Fido diventa troppo forte. La libreria Python per controllare l'OMXPlayer è inclusa in Raspbian (woo!).

Per testare OMXPlayer dal terminale, digitare quanto segue:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Se non funziona, prova a forzarlo sul dispositivo di uscita audio locale:

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

Passaggio 4: configurare il server CloudMQTT

Ora impostiamo un server MQTT! Per farlo utilizzando CloudMQTT, procedi come segue:

  1. Configura un account CloudMQTT (il piano "Cute Cat" è gratuito).
  2. Crea una nuova istanza MyCloud.
  3. Nella Console, crea una nuova regola ACL.
  4. Puoi monitorare i messaggi pubblicati nell'interfaccia utente "Websocket".

Infine, installa la libreria MQTT Paho Client Python:

pip install paho-mqtt

Passaggio 4: costruiscilo! Hardware

Costruiscilo! Hardware
Costruiscilo! Hardware
Costruiscilo! Hardware
Costruiscilo! Hardware
Costruiscilo! Hardware
Costruiscilo! Hardware

I diagrammi di pinout per Raspberry Pi e MCP3002 sono nelle foto sopra.

1. Inserire i pin MCP3002 nella breadboard (vedere lo schema di piedinatura sopra)

L'MCP3002 utilizza 4 pin SPI per la comunicazione: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") e Chip Select ("CS"). Questi pin corrispondono al pin 11 GPIO del Raspberry Pi (SCLK), pin 9 GPIO (MISO), pin 10 GPIO (MOSI) e pin 8 GPIO (CE0).

Effettuare i seguenti collegamenti con i pin MCP3002:

  • Collegare il pin 1 al pin 8 GPIO del Raspberry Pi (CE0)
  • Collegare il Pin 2 all'uscita analogica della scheda breakout del microfono MEMS
  • Collegare il pin 4 a GND
  • Collegare il pin 5 al pin 10 GPIO del Raspberry Pi (MOSI)
  • Collegare il pin 6 al pin 9 GPIO del Raspberry Pi (MISO)
  • Collegare il pin 7 al pin 11 GPIO del Raspberry Pi (SCLK)
  • Collega Pin 8 a Raspberry Pi 3.3V out

2. Saldare i fili alla scheda breakout del microfono MEMS. Connettiti a MCP3002 e Raspberry Pi

  • Collega Vcc a Raspberry Pi 3.3V.
  • Collega GND a Raspberry Pi GND
  • Collegare AUD a MCP3002 Pin 2

3. Collega tutti i cavi per il Raspberry Pi e accendi tutto

Passaggio 5: costruiscilo! Software

Costruiscilo! Software
Costruiscilo! Software

Il nostro obiettivo con Bark Back è duplice: attivare un suono di riproduzione quando il cane abbaia e inviare i dati a un server dove possiamo controllarlo.

Ecco il programma Python open source per questo progetto. Sentiti libero di (e per favore fallo) aggiustare e modificare il codice.

Per far funzionare il programma, devi compilare due cose:

- SongList: Scrivi il percorso del file e il nome del file per ciascuna delle canzoni che vuoi riprodurre.

- creds: inserisci le tue informazioni CloudMQTT in questo dizionario.

Passaggio 1: leggere la scheda breakout del microfono MEMS di SparkFun

Leggere il valore ADC (tra 0 e 1023) dalla scheda breakout del microfono MEMS (tramite MCP3002) utilizzando la libreria SPI e calcolare l'ampiezza del segnale da picco a picco.

Mappare l'ampiezza del segnale da picco a picco su un'unità di volume. Il codice attuale mappa l'intervallo ADC tra 0 e 700 (basato su una rapida sperimentazione) su un'unità di volume tra 0 e 10. Per regolare la sensibilità del microfono, regolare l'intervallo di ingresso ADC.

Per una panoramica completa del microfono MEMS, dai un'occhiata a questo tutorial.

Passaggio 2: attiva il lettore audio

Per prima cosa avremo bisogno di canzoni da suonare! Puoi registrare rapidamente i suoni in GarageBand (o sul tuo smartphone) e inviarli al Raspberry Pi. In Python, usa la libreria subprocess per chiamare omxplayer.

Nel codice, inserisci il percorso del file delle canzoni che vuoi riprodurre nella variabile *songList* (riga 26). La soglia del volume corrente è impostata su 7 nella funzione principale.

Passaggio 3: inviare i dati al server CloudMQTT

Utilizza la libreria Paho Client Python per comunicare con i server CloudMQTT. Per riassumere in generale: impostare un server client; definire i protocolli di comunicazione; connettersi con le nostre credenziali (aka creds); e sottoscrivere e pubblicare i nostri dati. La maggior parte di ciò viene eseguita nella funzione principale (righe 129 - 149 e righe 169 - 174).

Per controllare i dati ricevuti, vai alla scheda "Websocket UI" nella console CloudMQTT.

Passaggio 6: prova e installa

Prova e installa!
Prova e installa!

Esegui il programma BarkBack.py in Terminale o nell'IDE Python (puoi anche usare SSH per eseguire il programma dopo che sei già uscito).

Verifica di ricevere i livelli di volume nella scheda dell'interfaccia utente di Websocket.

Prova il sistema attivando il microfono (batti le mani, urla, abbaia, ecc.) per assicurarti che gli altoparlanti riproducano tutti i suoni.

Una volta che tutto è installato e funzionante, si consiglia di saldare i componenti a un PCB (Printed Circuit Board) se si intende installare il sistema per più di pochi giorni.

Concorso Microcontrollori 2017
Concorso Microcontrollori 2017
Concorso Microcontrollori 2017
Concorso Microcontrollori 2017

Secondo classificato al Microcontroller Contest 2017

Concorso Sensori 2017
Concorso Sensori 2017
Concorso Sensori 2017
Concorso Sensori 2017

Primo Premio al Concorso Sensori 2017

Consigliato: