Sadržaj:

IoT Pet Monitor!: 6 koraka (sa slikama)
IoT Pet Monitor!: 6 koraka (sa slikama)

Video: IoT Pet Monitor!: 6 koraka (sa slikama)

Video: IoT Pet Monitor!: 6 koraka (sa slikama)
Video: КОНЕЦ МУЧЕНИЯМ. Трава больше не проблема! 2024, Novembar
Anonim
Image
Image
Predloženo čitanje
Predloženo čitanje

Pazite na svoje voljene bebe i puštajte muziku ili im recite da šute dok ste odsutni! Ovaj vodič će pokazati kako se pomoću računara Raspberry Pi može pratiti jačina zvuka u vašem domu (putem oblaka) kako bi se vidjelo je li i kada vaš ljubimac uznemiren.

Drum roll … najzabavniji dio: Ako postane preglasno (kao što Fido laje ili pravi neku drugu hrapavost), reći ćemo im da šute ili puste muziku!

Uz Pi (i zvučnike), koristit ćemo SparkFun MEMS ploču za razbijanje mikrofona za mjerenje glasnoće i aktiviranje audio playera. Podaci se učitavaju u CloudMQTT uslugu pomoću komunikacijskog protokola MQTT.

Ukupno vrijeme čitanja: ~ 8 min

Ukupno vrijeme izgradnje: 60 min (manje sa iskusnim)

Veliko HVALA SparkFunu na podršci ovom projektu! Vodič pogledajte ovdje.

Korak 1: Predloženo čitanje

Za izradu ovog projekta trebat će vam potpuno konfigurirano Raspberry Pi 3 računalo povezano WiFi-em s Raspbian OS-om. Takođe je korisno znati nekoliko programa za Python, kao i sledeće stvari: (1) kako se koriste i kontrolišu Raspberry Pi GPIO pinovi; (2) MQTT komunikacija; i (3) analogni senzori. Ako vam nešto od ovoga nije poznato ili ste samo znatiželjni (budite znatiželjni!), Pogledajte vodiče ispod!

Raspberry Pi 3

  1. Vodič za spajanje Raspberry Pi 3 početnog kompleta
  2. Raspberry Pi GPIO
  3. SPI komunikacija sa Raspberry Pi

MQTT komunikacijski protokol

MQTT (Telemetry Transport Message Query Telemetry Transport) je popularan IoT komunikacijski protokol. Koristićemo Paho Client Python biblioteku i MQTT uslugu koja se zove CloudMQTT. Evo više o MQTT -u i kako ga koristiti:

  1. Istraživanje komunikacijskih protokola za IoT
  2. Početak rada s CloudMQTT -om
  3. Pregled klijentske biblioteke Eclipse Paho MQTT Python

MEMS ploča za razbijanje mikrofona

MEMS mikrofon je analogni mikrofon, pa će nam trebati analogno-digitalni pretvarač ("ADC") za čitanje analognog signala pomoću Raspberry Pi digitalnih GPIO pinova.

  1. Početak rada sa SparkFun MEMS mikrofonskom pločom
  2. Tehnički list MEMS mikrofona
  3. Tehnički list MCP3002 ADC

Korak 2: Materijali

Materijali
Materijali
Materijali
Materijali
Materijali
Materijali

- Raspberry Pi 3 Model B

Trebat će nam i sljedeće periferne jedinice: Raspberry Pi 3 kućište; SD kartica (najmanje 8 GB); Raspberry Pi 3 GPIO kabel; Kabel za napajanje MicroUSB; HDMI kabl i monitor kompatibilan sa HDMI; USB tastatura; USB miš; zvučnici sa 1/8 priključkom za slušalice.

- SparkFun MEMS mikrofonska ploča

-MCP3002 (analogno-digitalni pretvarač)

-Breadboard & M-to-M Breadboard Jumper žice

Korak 3: Konfigurirajte Raspberry Pi

Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi
Konfigurirajte Raspberry Pi

Korak 1: Provjerite i instalirajte ažuriranja Provjera i instaliranje ažuriranja uvijek su dobar način za početak. Pokrenite sljedeće naredbe u prozoru terminala:

sudo apt-get update

sudo apt-get nadogradnja

sudo reboot

Korak 2: Postavite SPI sučelje za MEMS mikrofon + MCP3002

Da bismo koristili SPI (sučelje serijskog porta) za čitanje u MEMS mikrofonu putem MCP3002, trebat će nam paket Python Dev:

sudo apt-get install python-dev

Trebat će nam i SPI sučelje (možda ćete htjeti stvoriti podmapu u koju ćete ovo spremiti):

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

sudo python setup.py install

Evo SPI-Dev dokumentacije ako naiđete na bilo koji problem.

Korak 3: Reprodukcija zvukova sa OMXPlayerom

OMXPlayer je audio i video player unaprijed učitan na Raspbian OS. Radi s većinom vrsta zvučnih datoteka, uključujući:.wav,.mp3 i.m4a. Ovo je ono što ćemo koristiti za reprodukciju zvukova kada Fido postane preglasan. Python biblioteka za kontrolu OMXPlayera uključena je u Raspbian (woo!).

Da biste testirali OMXPlayer s terminala, upišite sljedeće:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Ako to ne uspije, pokušajte ga prisiliti na lokalni uređaj za audio izlaz:

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

Korak 4: Konfigurirajte CloudMQTT poslužitelj

Sada smo postavili MQTT server! Da biste to učinili koristeći CloudMQTT, učinite sljedeće:

  1. Postavite CloudMQTT račun (plan "Cute Cat" je besplatan).
  2. Kreirajte novu instancu MyCloud.
  3. U konzoli kreirajte novo ACL pravilo.
  4. Objavljene poruke možete pratiti u korisničkom sučelju "Websocket".

Na kraju, instalirajte MQTT Paho Client Python biblioteku:

pip install paho-mqtt

Korak 4: Izgradite ga! Hardver

Build It! Hardver
Build It! Hardver
Build It! Hardver
Build It! Hardver
Build It! Hardver
Build It! Hardver

Dijagrami iscrtavanja za Raspberry Pi i MCP3002 nalaze se na gornjim fotografijama.

1. Umetnite pinove MCP3002 u matičnu ploču (pogledajte gornji dijagram iscrtavanja)

MCP3002 koristi 4 SPI pina za komunikaciju: serijski sat ("SCL"), glavni ulazni izlazni izlaz ("MISO"), glavni izlazni ulazni ulaz ("MOSI") i odabir čipa ("CS"). Ovi pinovi odgovaraju Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI) i GPIO Pin 8 (CE0).

Ostvarite sljedeće veze s pinovima MCP3002:

  • Spojite Pin 1 na Raspberry Pi GPIO Pin 8 (CE0)
  • Spojite pin 2 na analogni izlaz MEMS mikrofonske ploče
  • Spojite pin 4 na GND
  • Spojite Pin 5 na Raspberry Pi GPIO Pin 10 (MOSI)
  • Priključite pin 6 na Raspberry Pi GPIO pin 9 (MISO)
  • Spojite Pin 7 na Raspberry Pi GPIO Pin 11 (SCLK)
  • Spojite Pin 8 na 3.3V izlaz Raspberry Pi

2. Lemite žice na MEMS mikrofonsku ploču. Povežite se na MCP3002 i Raspberry Pi

  • Priključite Vcc na Raspberry Pi 3.3V.
  • Povežite GND sa Raspberry Pi GND
  • Spojite AUD na MCP3002 Pin 2

3. Uključite sve kablove za Raspberry Pi i uključite sve

Korak 5: Izgradite ga! Softver

Build It! Softver
Build It! Softver

Naš cilj sa Bark Back -om je dvojak: aktivirati zvuk reprodukcije kada pas laje i poslati podatke na server gdje to možemo provjeriti.

Evo otvorenog koda Python programa za ovaj projekt. Slobodno (i molimo vas) prilagodite i izmijenite kôd.

Da biste pokrenuli program, morate ispuniti dvije stvari:

- songList: Upišite putanju datoteke i naziv datoteke za svaku pjesmu koju želite reproducirati.

- creds: Unesite svoje CloudMQTT informacije u ovaj rječnik.

Korak 1: Pročitajte na SparkFun MEMS mikrofonskoj ploči

Očitajte vrijednost ADC-a (između 0 i 1023) sa MEMS mikrofonske ploče (preko MCP3002) pomoću SPI biblioteke i izračunajte amplitudu signala od vrha do vrha.

Preslikajte amplitudu vrha signala signala u jedinicu za volumen. Trenutni kôd preslikava raspon ADC -a između 0 i 700 (na temelju brzog eksperimentiranja) u jedinicu za jačinu zvuka između 0 i 10. Da biste prilagodili osjetljivost mikrofona, prilagodite raspon ulaza ADC -a.

Za detaljan pregled MEMS mikrofona pogledajte ovaj vodič.

Korak 2: Pokrenite audio player

Prvo će nam trebati pjesme za sviranje! Možete brzo snimiti zvukove u GarageBand -u (ili na pametnom telefonu) i poslati ih na Raspberry Pi. U Pythonu koristite biblioteku potprocesa za pozivanje omxplayera.

U kôd unesite putanju datoteke pjesama koje želite reproducirati u varijablu * songList * (26. red). Trenutni prag glasnoće je postavljen na 7 u glavnoj funkciji.

Korak 3: Pošaljite podatke na CloudMQTT server

Koristite Paho Client Python biblioteku za komunikaciju s CloudMQTT poslužiteljima. Ukratko, rezimirajte: Postavite klijentski server; definirati komunikacijske protokole; povežite se s našim vjerodajnicama (aka creds); i pretplatite se i objavite naše podatke. Većina toga se radi u glavnoj funkciji (redovi 129 - 149 i redovi 169 - 174).

Da biste provjerili primljene podatke, idite na karticu "Websocket UI" u CloudMQTT konzoli.

Korak 6: Testirajte i instalirajte

Testirajte i instalirajte!
Testirajte i instalirajte!

Pokrenite program BarkBack.py na Terminalu ili u Python IDE -u (možete koristiti i SSH za pokretanje programa nakon što ste već napustili).

Provjerite dobivate li jačinu zvuka na kartici UI Websocket.

Testirajte sistem pokretanjem mikrofona (pljeskanje, vikanje, lavež itd.) Kako biste bili sigurni da zvučnici puštaju sve zvukove.

Kada sve bude pokrenuto, preporučuje se lemljenje komponenti na PCB (štampana ploča) ako namjeravate instalirati sistem na više od samo nekoliko dana.

Takmičenje za mikrokontrolere 2017
Takmičenje za mikrokontrolere 2017
Takmičenje za mikrokontrolere 2017
Takmičenje za mikrokontrolere 2017

Drugoplasirani na takmičenju mikrokontrolera 2017

Takmičenje senzora 2017
Takmičenje senzora 2017
Takmičenje senzora 2017
Takmičenje senzora 2017

Prva nagrada na takmičenju senzora 2017

Preporučuje se: