Innholdsfortegnelse:

IoT Pet Monitor !: 6 trinn (med bilder)
IoT Pet Monitor !: 6 trinn (med bilder)

Video: IoT Pet Monitor !: 6 trinn (med bilder)

Video: IoT Pet Monitor !: 6 trinn (med bilder)
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, November
Anonim
Image
Image
Foreslått lesing
Foreslått lesing

Hold øye med dine kjære bbies og spill musikk eller be dem være stille mens du er borte! Denne opplæringen viser hvordan du bruker en Raspberry Pi -datamaskin til å overvåke lydvolumet i hjemmet ditt (via skyen) for å se om og når kjæledyret ditt er opprørt.

Trommelrulle … den morsomste delen: Hvis det blir for høyt (som om Fido bjeffer eller lager andre rasende), kan vi fortelle dem at de skal være stille eller spille musikk!

Sammen med Pi (og høyttalere) bruker vi SparkFun MEMS -mikrofonbryterbrettet for å måle volumnivåer og utløse lydspilleren. Data lastes opp til CloudMQTT -tjenesten ved hjelp av MQTT -kommunikasjonsprotokollen.

Total lesetid: ~ 8 min

Total byggetid: 60 min (mindre m/ erfaren)

Tusen takk til SparkFun for å støtte dette prosjektet! Sjekk opplæringen her.

Trinn 1: Foreslått lesing

For å bygge dette prosjektet trenger du en fullt konfigurert, WiFi-tilkoblet Raspberry Pi 3-datamaskin med Raspbian OS. Det er også nyttig å kjenne til litt Python -programmering, samt følgende ting: (1) hvordan du bruker og kontrollerer Raspberry Pi GPIO -pinnene; (2) MQTT -kommunikasjon; og (3) analoge sensorer. Hvis noe av dette er ukjent, eller hvis du bare er nysgjerrig (vær nysgjerrig!), Sjekk opplæringen nedenfor!

Raspberry Pi 3

  1. Raspberry Pi 3 oppstartssett for oppstartssett
  2. Raspberry Pi GPIO
  3. SPI -kommunikasjon med Raspberry Pi

MQTT kommunikasjonsprotokoll

MQTT (Message Query Telemetry Transport) er en populær IoT -kommunikasjonsprotokoll. Vi bruker Paho Client Python -biblioteket og en MQTT -tjeneste kalt CloudMQTT. Her er mer om MQTT og hvordan du bruker det:

  1. Utforske kommunikasjonsprotokoller for IoT
  2. Komme i gang med CloudMQTT
  3. Oversikt over Eclipse Paho MQTT Python -klientbibliotek

MEMS Microphone Breakout Board

MEMS-mikrofonen er en analog mikrofon, så vi trenger en analog-til-digital-omformer ("ADC") for å lese inn det analoge signalet med Raspberry Pi digitale GPIO-pinner.

  1. Komme i gang med SparkFun MEMS Microphone Breakout Board
  2. MEMS mikrofon datablad
  3. MCP3002 ADC -datablad

Trinn 2: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

- Raspberry Pi 3 Model B

Vi trenger også følgende eksterne enheter: Raspberry Pi 3 -deksel; SD -kort (minimum 8 GB); Bringebær Pi 3 GPIO -kabel; MicroUSB strømkabel; HDMI-kabel og HDMI-kompatibel skjerm; USB -tastatur; USB -mus; høyttalere med 1/8 hodetelefonport.

- SparkFun MEMS Mic Breakout Board

-MCP3002 (analog-til-digital-omformer)

-Breadboard & M-to-M Breadboard Jumper Wires

Trinn 3: Konfigurer Raspberry Pi

Konfigurer Raspberry Pi
Konfigurer Raspberry Pi
Konfigurer Raspberry Pi
Konfigurer Raspberry Pi
Konfigurer Raspberry Pi
Konfigurer Raspberry Pi
Konfigurer Raspberry Pi
Konfigurer Raspberry Pi

Trinn 1: Kontroller og installer oppdateringer Å se etter og installere oppdateringer er alltid en god måte å starte. Kjør følgende kommandoer i terminalvinduet:

sudo apt-get oppdatering

sudo apt-get oppgradering

sudo omstart

Trinn 2: Sett opp SPI -grensesnitt for MEMS -mikrofon + MCP3002

For å bruke SPI (Serial Port Interface) til å lese i MEMS -mikrofonen via MCP3002, trenger vi Python Dev -pakken:

sudo apt-get install python-dev

Vi trenger også SPI -grensesnittet (det kan være lurt å opprette en undermappe for å lagre dette i):

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

sudo python setup.py installere

Her er SPI-Dev-dokumentasjonen hvis du får problemer.

Trinn 3: Spill lyder med OMXPlayer

OMXPlayer er en lyd- og videospiller forhåndsinstallert på Raspbian OS. Den fungerer med de fleste lydfiltyper, inkludert:.wav,.mp3 og.m4a. Dette er hva vi vil bruke til å spille av lyder når Fido blir for høy. Python -biblioteket for å kontrollere OMXPlayer er inkludert i Raspbian (woo!).

For å teste OMXPlayer fra terminalen, skriver du inn følgende:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Hvis det ikke fungerer, kan du prøve å tvinge det over den lokale lydenheten:

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

Trinn 4: Konfigurer CloudMQTT -server

Nå har vi satt opp en MQTT -server! Gjør følgende for å gjøre dette ved hjelp av CloudMQTT:

  1. Opprett en CloudMQTT -konto ("Cute Cat" -planen er gratis).
  2. Lag en ny MyCloud -forekomst.
  3. Opprett en ny ACL -regel i konsollen.
  4. Du kan overvåke publiserte meldinger i "Websocket" -grensesnittet.

Til slutt installerer du MQTT Paho Client Python -biblioteket:

pip installer paho-mqtt

Trinn 4: Bygg det! Maskinvare

Bygg det! Maskinvare
Bygg det! Maskinvare
Bygg det! Maskinvare
Bygg det! Maskinvare
Bygg det! Maskinvare
Bygg det! Maskinvare

Pinout -diagrammer for Raspberry Pi og MCP3002 er på bildene ovenfor.

1. Sett MCP3002 -pinnene i brødbrettet (se pinout -diagrammet ovenfor)

MCP3002 bruker 4 SPI -pinner for kommunikasjon: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") og Chip Select ("CS"). Disse pinnene tilsvarer Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI) og GPIO Pin 8 (CE0).

Gjør følgende tilkoblinger med MCP3002 -pinner:

  • Koble pin 1 til Raspberry Pi GPIO Pin 8 (CE0)
  • Koble pin 2 til den analoge utgangen på MEMS -mikrofonutbruddskortet
  • Koble pin 4 til GND
  • Koble Pin 5 til Raspberry Pi GPIO Pin 10 (MOSI)
  • Koble pin 6 til Raspberry Pi GPIO pin 9 (MISO)
  • Koble pin 7 til Raspberry Pi GPIO Pin 11 (SCLK)
  • Koble pin 8 til Raspberry Pi 3.3V ut

2. Loddetråder til MEMS -mikrofonutbruddskortet. Koble til MCP3002 og Raspberry Pi

  • Koble Vcc til Raspberry Pi 3.3V.
  • Koble GND til Raspberry Pi GND
  • Koble AUD til MCP3002 Pin 2

3. Koble til alle kablene til Raspberry Pi og slå på alt

Trinn 5: Bygg det! Programvare

Bygg det! Programvare
Bygg det! Programvare

Målet vårt med Bark Back er todelt: utløs en avspillingslyd når hunden bjeffer, og send dataene til en server hvor vi kan sjekke det.

Her er Python-programmet med åpen kildekode for dette prosjektet. Du kan (og vær så snill) justere og endre koden.

For å få programmet i gang må du fylle ut to ting:

- songList: Skriv inn filbanen og filnavnet for hver av sangene du vil spille.

- creds: Skriv inn CloudMQTT -informasjonen din i denne ordboken.

Trinn 1: Les i SparkFun MEMS mikrofonutbruddskortet

Les inn ADC-verdien (mellom 0 og 1023) fra MEMS Microphone breakout board (via MCP3002) ved å bruke SPI-biblioteket og beregne signalet topp-til-topp amplitude.

Tilordne signalet topp-til-topp amplitude til en volumenhet. Den nåværende koden tilordner ADC -området mellom 0 og 700 (basert på raske eksperimenter) til en volumenhet mellom 0 og 10. For å justere følsomheten til mikrofonen, juster ADC -inngangsområdet.

For en grundig oversikt over MEMS -mikrofonen, sjekk ut denne opplæringen.

Trinn 2: Trigger lydavspiller

Først trenger vi sanger for å spille! Du kan raskt ta opp lyder i GarageBand (eller på smarttelefonen) og sende dem til Raspberry Pi. I Python bruker du delprosessbiblioteket til å ringe omxplayer.

I koden, skriv inn filbanen til sangene du vil spille av i * songList * -variabelen (linje 26). Gjeldende volumgrense er satt til 7 i hovedfunksjonen.

Trinn 3: Send data til CloudMQTT Server

Bruk Paho Client Python -biblioteket til å kommunisere med CloudMQTT -serverne. For å oppsummere stort sett: Sett opp en klientserver; definere kommunikasjonsprotokoller; få kontakt med legitimasjonen vår (aka creds); og abonnere og publisere dataene våre. Det meste av dette gjøres i hovedfunksjonen (linje 129 - 149, og linjer 169 - 174).

For å sjekke mottatte data, gå til kategorien "Websocket UI" i CloudMQTT -konsollen.

Trinn 6: Test og installer

Test og installer!
Test og installer!

Kjør BarkBack.py -programmet i Terminal eller i Python IDE (du kan også bruke SSH til å kjøre programmet etter at du allerede har forlatt).

Kontroller at du får volumnivåer i kategorien Websocket UI.

Test systemet ved å utløse mikrofonen (klapp, kjeft, bark, etc.) for å være sikker på at høyttalerne spiller gjennom alle lydene.

Når alt er i gang, anbefales det å lodde komponentene til et PCB (Printed Circuit Board) hvis du har tenkt å installere systemet i mer enn bare noen få dager.

Mikrokontrollerkonkurranse 2017
Mikrokontrollerkonkurranse 2017
Mikrokontrollerkonkurranse 2017
Mikrokontrollerkonkurranse 2017

Runner Up i Microcontroller Contest 2017

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

Førstepremie i sensorkonkurransen 2017

Anbefalt: