Innehållsförteckning:
- Steg 1: Föreslagen läsning
- Steg 2: Material
- Steg 3: Konfigurera Raspberry Pi
- Steg 4: Bygg det! Hårdvara
- Steg 5: Bygg det! programvara
- Steg 6: Testa och installera
Video: IoT Pet Monitor !: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Håll ett öga på dina älskade bbies och spela musik eller be dem vara tysta medan du är borta! Denna handledning visar hur du använder en Raspberry Pi -dator för att övervaka ljudvolymen i ditt hem (via molnet) för att se om och när ditt husdjur är upprörd.
Trumma … den roligaste delen: Om det blir för högt (som att Fido skäller eller gör något annat häftigt) kan vi säga att de ska vara tysta eller spela musik!
Tillsammans med Pi (och högtalare) använder vi SparkFun MEMS -mikrofonbrytarkortet för att mäta volymnivåer och trigga ljudspelaren. Data laddas upp till CloudMQTT -tjänsten med MQTT -kommunikationsprotokollet.
Total lästid: ~ 8 min
Total byggtid: 60 min (mindre med erfarenhet)
Ett stort TACK till SparkFun för att ni stött detta projekt! Kolla in handledningen här.
Steg 1: Föreslagen läsning
För att bygga detta projekt behöver du en fullt konfigurerad, WiFi-ansluten Raspberry Pi 3-dator med Raspbian OS. Det är också bra att känna till lite Python -programmering samt följande saker: (1) hur man använder och styr Raspberry Pi GPIO -stiften; (2) MQTT -kommunikation; och (3) analoga sensorer. Om något av detta är okänt, eller om du bara är nyfiken (var nyfiken!), Kolla in självstudierna nedan!
Raspberry Pi 3
- Raspberry Pi 3 Anslutningsguide för startpaket
- Raspberry Pi GPIO
- SPI -kommunikation med Raspberry Pi
MQTT -kommunikationsprotokoll
MQTT (Message Query Telemetry Transport) är ett populärt IoT -kommunikationsprotokoll. Vi använder Paho Client Python -biblioteket och en MQTT -tjänst som kallas CloudMQTT. Här är mer om MQTT och hur du använder det:
- Utforska kommunikationsprotokoll för IoT
- Komma igång med CloudMQTT
- Översikt över Eclipse Paho MQTT Python -klientbibliotek
MEMS Microphone Breakout Board
MEMS-mikrofonen är en analog mikrofon, så vi behöver en analog-till-digital-omvandlare ("ADC") för att läsa in den analoga signalen med Raspberry Pi digitala GPIO-stift.
- Komma igång med SparkFun MEMS Microphone Breakout Board
- MEMS mikrofondatablad
- MCP3002 ADC -datablad
Steg 2: Material
- Raspberry Pi 3 Model B
Vi behöver också följande kringutrustning: Raspberry Pi 3 -fodral; SD -kort (minst 8 GB); Raspberry Pi 3 GPIO -kabel; MicroUSB strömkabel; HDMI-kabel och HDMI-kompatibel bildskärm; USB -tangentbord; USB -mus; högtalare med 1/8 hörlursport.
- SparkFun MEMS Mic Breakout Board
-MCP3002 (analog-till-digital-omvandlare)
-Brödbräda & M-till-M brödbräda
Steg 3: Konfigurera Raspberry Pi
Steg 1: Kontrollera och installera uppdateringar Att söka efter och installera uppdateringar är alltid ett bra sätt att börja. Kör följande kommandon i terminalfönstret:
sudo apt-get uppdatering
sudo apt-get uppgradering
sudo starta om
Steg 2: Konfigurera SPI -gränssnitt för MEMS -mikrofon + MCP3002
För att använda SPI (Serial Port Interface) för att läsa i MEMS -mikrofonen via MCP3002 behöver vi Python Dev -paketet:
sudo apt-get install python-dev
Vi behöver också SPI -gränssnittet (kanske vill skapa en undermapp för att spara detta i):
git-klon git: //github.com/doceme/py-spidev
sudo python setup.py installera
Här är SPI-Dev-dokumentationen om du stöter på några problem.
Steg 3: Spela ljud med OMXPlayer
OMXPlayer är en ljud- och videospelare förinstallerad på Raspbian OS. Det fungerar med de flesta ljudfiltyper, inklusive:.wav,.mp3 och.m4a. Detta är vad vi kommer att använda för att spela upp ljud när Fido blir för högt. Python -biblioteket för att styra OMXPlayer ingår i Raspbian (woo!).
För att testa OMXPlayer från terminalen, skriv följande:
omxplayer /home/…/SongFilePath/SongFileName.mp3
Om det inte fungerar, försök tvinga det över den lokala ljudutgångsenheten:
omxplayer -o local /home/…/SongFilePath/SongFileName.mp3
Steg 4: Konfigurera CloudMQTT -server
Nu har vi skapat en MQTT -server! Gör så här med CloudMQTT:
- Skapa ett CloudMQTT -konto ("Cute Cat" -planen är gratis).
- Skapa en ny MyCloud -instans.
- Skapa en ny ACL -regel i konsolen.
- Du kan övervaka publicerade meddelanden i gränssnittet "Websocket".
Slutligen installerar du MQTT Paho Client Python -biblioteket:
pip installera paho-mqtt
Steg 4: Bygg det! Hårdvara
Pinout -diagram för Raspberry Pi och MCP3002 finns på bilderna ovan.
1. Sätt i MCP3002 -stiften i brödbrädet (se pinout -diagram ovan)
MCP3002 använder 4 SPI -stift för kommunikation: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") och Chip Select ("CS"). Dessa stift motsvarar Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI) och GPIO Pin 8 (CE0).
Gör följande anslutningar med MCP3002 -stift:
- Anslut Pin 1 till Raspberry Pi GPIO Pin 8 (CE0)
- Anslut stift 2 till den analoga utgången på MEMS -mikrofonbrytarkortet
- Anslut stift 4 till GND
- Anslut Pin 5 till Raspberry Pi GPIO Pin 10 (MOSI)
- Anslut Pin 6 till Raspberry Pi GPIO pin 9 (MISO)
- Anslut stift 7 till Raspberry Pi GPIO Pin 11 (SCLK)
- Anslut stift 8 till Raspberry Pi 3.3V ut
2. Lödkablar till MEMS -mikrofonbrytarkortet. Anslut till MCP3002 och Raspberry Pi
- Anslut Vcc till Raspberry Pi 3.3V.
- Anslut GND till Raspberry Pi GND
- Anslut AUD till MCP3002 Pin 2
3. Anslut alla kablar till Raspberry Pi och sätt på allt
Steg 5: Bygg det! programvara
Vårt mål med Bark Back är tvåfaldigt: aktivera ett uppspelningsljud när hunden skäller och skicka data till en server där vi kan kontrollera det.
Här är Python-programmet med öppen källkod för detta projekt. Du kan (och snälla) justera och ändra koden.
För att få igång programmet måste du fylla i två saker:
- songList: Skriv in filvägen och filnamnet för alla låtar du vill spela.
- cred: Ange din CloudMQTT -information i denna ordbok.
Steg 1: Läs i SparkFun MEMS -mikrofonbrytarkortet
Läs in ADC-värdet (mellan 0 och 1023) från MEMS-mikrofonbrytarkortet (via MCP3002) med hjälp av SPI-biblioteket och beräkna signalen topp-till-topp-amplitud.
Kartlägga signalens topp-till-topp-amplitud till en volymenhet. Den aktuella koden kartlägger ADC -intervallet mellan 0 och 700 (baserat på snabba experiment) till en volymenhet mellan 0 och 10. För att justera mikrofonens känslighet, justera ADC -ingångsområdet.
För en grundlig översikt av MEMS -mikrofonen, kolla in den här självstudien.
Steg 2: Utlös ljudspelare
Först behöver vi låtar för att spela! Du kan snabbt spela in ljud i GarageBand (eller på din smartphone) och skicka dem till Raspberry Pi. I Python, använd delprocessbiblioteket för att ringa omxplayer.
I koden anger du filvägen för de låtar du vill spela upp i variabeln * songList * (rad 26). Den nuvarande volymgränsen är inställd på 7 i huvudfunktionen.
Steg 3: Skicka data till CloudMQTT Server
Använd Paho Client Python -biblioteket för att kommunicera med CloudMQTT -servrarna. För att i stora drag sammanfatta: Skapa en klientserver; definiera kommunikationsprotokoll; ansluta till våra referenser (aka creds); och prenumerera och publicera vår data. Det mesta görs i huvudfunktionen (rad 129 - 149 och rad 169 - 174).
För att kontrollera mottagna data, gå till fliken "Websocket UI" i CloudMQTT -konsolen.
Steg 6: Testa och installera
Kör BarkBack.py -programmet i Terminal eller i Python IDE (du kan också använda SSH för att köra programmet efter att du redan har lämnat).
Kontrollera att du får volymnivåer på fliken Websocket UI.
Testa systemet genom att aktivera mikrofonen (klappa, skrika, skälla, etc.) för att vara säker på att högtalarna spelar igenom alla ljud.
När allt är igång rekommenderas att lödda komponenterna till ett kretskort (Printed Circuit Board) om du tänker installera systemet i mer än bara några dagar.
Tvåa i Microcontroller Contest 2017
Första pris i Sensors Contest 2017
Rekommenderad:
Leo: Pet Cat: 7 steg (med bilder)
Leo: Pet Cat: Hej, Detta är mina första instruktioner. Den första versionen av " Sony Aibo Robot (1999) " lockade mig mot robotik vid fyra års ålder, sedan dess var det min dröm att göra en sällskapsrobot åt mig. Så jag kom på " Leo: the Pet Cat " w
SmartPET - Smart Pet Feeder: 7 steg (med bilder)
SmartPET - Smart Pet Feeder: Hej! Jag är Maxime Vermeeren, en 18 år gammal MCT-student (Multimedia och kommunikationsteknik) på Howest. Jag har valt att skapa en smart husdjursmatare som mitt projekt. Varför gjorde jag det här? Min katt har några viktproblem, så jag bestämde mig för att göra en maskin
Pet Bot: 6 steg (med bilder)
Pet Bot: Credit: Det här projektet är inspirerat av Beetlebot av robomaniac.Update: Jag har sedan bytt namn på detta till Pet Bot. (Videon visar det fortfarande som Catfish Bot) Jag lär robotik till unga tillverkare på ESP8266, Arduino och Raspberry PI -plattformar och en av utmaningarna
Pet Feedermaskin med RasPi och Telegram Bot: 4 steg (med bilder)
Pet Feeder Machine med RasPi och Telegram Bot: Först och främst måste jag förtydliga att detta inte är en original Idea Mine, bara uppdatera och anpassa programmeringsskripten för att fungera med telegram, jag hittade det i en tidigare Instructable så krediterna är verkligen författare till det. Du kunde se spanska
IoT Outdoor Pet Door: 6 steg (med bilder)
IoT Outdoor Pet Door: Jag inspirerades av denna instruerbara att skapa en automatisk hönsdörr. Jag ville inte bara ha hönsdörren på en timer, utan jag ville också ansluta dörren till internet så att jag kunde styra den med min telefon eller min dator. Denna d