Innholdsfortegnelse:
- Trinn 1: Foreslått lesing
- Trinn 2: Materialer
- Trinn 3: Konfigurer Raspberry Pi
- Trinn 4: Bygg det! Maskinvare
- Trinn 5: Bygg det! Programvare
- Trinn 6: Test og installer
Video: IoT Pet Monitor !: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
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
- Raspberry Pi 3 oppstartssett for oppstartssett
- Raspberry Pi GPIO
- 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:
- Utforske kommunikasjonsprotokoller for IoT
- Komme i gang med CloudMQTT
- 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.
- Komme i gang med SparkFun MEMS Microphone Breakout Board
- MEMS mikrofon datablad
- MCP3002 ADC -datablad
Trinn 2: 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
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:
- Opprett en CloudMQTT -konto ("Cute Cat" -planen er gratis).
- Lag en ny MyCloud -forekomst.
- Opprett en ny ACL -regel i konsollen.
- 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
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
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
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.
Runner Up i Microcontroller Contest 2017
Førstepremie i sensorkonkurransen 2017
Anbefalt:
Leo: Pet Cat: 7 trinn (med bilder)
Leo: Pet Cat: Hei, Dette er mine første instrukser. Den første versjonen av " Sony Aibo Robot (1999) " tiltrukket meg mot robotikk i en alder av fire, siden det var min drøm å lage en kjæledyrrobot for meg. Så jeg kom på " Leo: Pet Cat " w
Pet Bot: 6 trinn (med bilder)
Pet Bot: Kreditt: Dette prosjektet er inspirert av Beetlebot av robomaniac. Oppdatering: Jeg har siden omdøpt dette til Pet Bot. (Videoen viser den fremdeles som Catfish Bot) Jeg lærer roboter til unge produsenter på ESP8266, Arduino og Raspberry PI -plattformer og en av utfordringene
Pet Robot Ball: 10 trinn (med bilder)
Pet Robot Ball: Min kjæledyrhund elsker å leke med leker, spesielt de han kan jage! Jeg bygde en robotkule som slår seg på og ruller bort automatisk når han samhandler med den, varsler meg via mobiltelefonen min som jeg deretter kan bruke til å kontrollere den over WiFi og fin
D4E1 PET Cutter (Artmaker02): 9 trinn (med bilder)
D4E1 PET Cutter (Artmaker02): Hva gjør denne flaskekutteren? Denne maskinen kutter resirkulerte plastflasker (PET) i ringer eller spiraler med en oppvarmet kniv i et trygt kabinett som kan brukes trygt av alle. Hvorfor gjorde vi dette og hvem er det for? Vi er en gruppe industrielle D
IoT Outdoor Pet Door: 6 trinn (med bilder)
IoT Outdoor Pet Door: Jeg ble inspirert av dette instruerbare til å lage en automatisk hønsehusdør. Ikke bare ville jeg ha hønsehusdøren på en timer, men jeg ønsket også å koble døren til internett slik at jeg kunne kontrollere den med telefonen eller datamaskinen min. Denne d