Kazalo:

IoT Pet Monitor!: 6 korakov (s slikami)
IoT Pet Monitor!: 6 korakov (s slikami)

Video: IoT Pet Monitor!: 6 korakov (s slikami)

Video: IoT Pet Monitor!: 6 korakov (s slikami)
Video: Какого числа от 1 до 31, родился человек, такая у него и вся жизнь 2024, November
Anonim
Image
Image
Predlagano branje
Predlagano branje

Bodite pozorni na svoje ljubljene bebe in predvajajte glasbo ali jim povejte, naj bodo tiho, medtem ko vas ni! Ta vadnica bo pokazala, kako z računalnikom Raspberry Pi spremljati glasnost zvoka v vašem domu (prek oblaka) in preveriti, ali je vaš ljubljenček razburjen in kdaj.

Drum roll… najbolj zabaven del: Če bo preglasno (na primer, da Fido laja ali dela kakšen drug hripav), jim lahko rečemo, naj bodo tiho ali naj predvajajo glasbo!

Skupaj s Pi (in zvočniki) bomo uporabili mikrofonsko ploščo SparkFun MEMS za merjenje ravni glasnosti in sprožitev avdio predvajalnika. Podatki se naložijo v storitev CloudMQTT s komunikacijskim protokolom MQTT.

Skupni čas branja: ~ 8 min

Skupni čas izdelave: 60 min (manj z izkušenimi)

Iskrena HVALA SparkFunu za podporo temu projektu! Oglejte si vadnico tukaj.

1. korak: Predlagano branje

Za izdelavo tega projekta boste potrebovali popolnoma konfiguriran računalnik Raspberry Pi 3, povezan z WiFi, z OS Raspbian. Koristno je tudi, da poznate nekaj programiranja Python, pa tudi naslednje: (1) kako uporabljati in nadzorovati zatiče Raspberry Pi GPIO; (2) komunikacija MQTT; in (3) analogni senzorji. Če vam kaj od tega ni znano ali če ste samo radovedni (bodite radovedni!), Si oglejte spodnje vaje!

Malina Pi 3

  1. Priročnik za priklop Raspberry Pi 3 Starter Kit
  2. Raspberry Pi GPIO
  3. SPI komunikacija z Raspberry Pi

Komunikacijski protokol MQTT

MQTT (Message Query Telemetry Transport) je priljubljen komunikacijski protokol IoT. Uporabili bomo knjižnico Paho Client Python in storitev MQTT, imenovano CloudMQTT. Tukaj je več o MQTT in njegovi uporabi:

  1. Raziskovanje komunikacijskih protokolov za IoT
  2. Uvod v CloudMQTT
  3. Pregled odjemalčeve knjižnice Eclipse Paho MQTT Python

Odklopna plošča za mikrofon MEMS

Mikrofon MEMS je analogni mikrofon, zato potrebujemo analogno-digitalni pretvornik ("ADC") za branje analognega signala z digitalnimi zatiči GPIO Raspberry Pi.

  1. Začnite z uporabo mikrofonske plošče SparkFun MEMS
  2. Podatkovni list za mikrofon MEMS
  3. Tehnični list ADC MCP3002

2. korak: Materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

- Raspberry Pi 3 Model B

Potrebovali bomo tudi naslednje zunanje naprave: ohišje Raspberry Pi 3; SD kartica (najmanj 8 GB); Raspberry Pi 3 GPIO kabel; Napajalni kabel MicroUSB; Kabel HDMI in monitor, združljiv s HDMI; USB tipkovnica; Miška USB; zvočniki z vhodom za slušalke 1/8.

- SparkFun MEMS Breakout Board

-MCP3002 (analogno-digitalni pretvornik)

-Breadboard & M-to-M Breadboard Jumper Wires

3. korak: 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

1. korak: Preverite in namestite posodobitve Preverjanje in nameščanje posodobitev je vedno dober način za začetek. V terminalnem oknu zaženite naslednje ukaze:

sudo apt-get posodobitev

sudo apt-get nadgradnja

sudo ponovni zagon

2. korak: Nastavite vmesnik SPI za mikrofon MEMS + MCP3002

Če želite uporabljati SPI (vmesnik serijskih vrat) za branje v mikrofonu MEMS prek MCP3002, potrebujemo paket Python Dev:

sudo apt-get install python-dev

Potrebovali bomo tudi vmesnik SPI (morda boste želeli ustvariti podmapo, v katero boste to shranili):

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

sudo python setup.py install

Tukaj je dokumentacija SPI-Dev, če naletite na kakršne koli težave.

3. korak: Predvajanje zvokov z OMXPlayerjem

OMXPlayer je predvajalnik zvoka in videa, predhodno naložen v OS Raspbian. Deluje z večino vrst zvočnih datotek, vključno z:.wav,.mp3 in.m4a. To bomo uporabili za predvajanje zvokov, ko bo Fido preglasen. Knjižnica Python za nadzor programa OMXPlayer je vključena v Raspbian (woo!).

Če želite preskusiti OMXPlayer s terminala, vnesite naslednje:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Če to ne deluje, poskusite to vsiliti prek lokalne naprave za avdio izhod:

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

4. korak: Konfigurirajte strežnik CloudMQTT

Zdaj smo nastavili strežnik MQTT! Če želite to narediti s storitvijo CloudMQTT, naredite naslednje:

  1. Nastavite račun CloudMQTT (načrt "Cute Cat" je brezplačen).
  2. Ustvarite nov primerek MyCloud.
  3. V konzoli ustvarite novo pravilo ACL.
  4. Objavljena sporočila lahko spremljate v uporabniškem vmesniku "Websocket".

Na koncu namestite knjižnico Python odjemalca MQTT Paho Client:

pip install paho-mqtt

4. korak: Zgradite ga! Strojna oprema

Zgradite ga! Strojna oprema
Zgradite ga! Strojna oprema
Zgradite ga! Strojna oprema
Zgradite ga! Strojna oprema
Zgradite ga! Strojna oprema
Zgradite ga! Strojna oprema

Diagrami izpisov za Raspberry Pi in MCP3002 so na zgornjih fotografijah.

1. Vtičnice MCP3002 vstavite v ploščo (glejte zgornji diagram izklopa)

MCP3002 uporablja 4 zatiča SPI za komunikacijo: zaporedna ura ("SCL"), glavni vhodni pomožni izhod ("MISO"), glavni izhodni podrejeni vhod ("MOSI") in izbira čipa ("CS"). Ti zatiči ustrezajo Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI) in GPIO Pin 8 (CE0).

S priključki MCP3002 vzpostavite naslednje povezave:

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

2. Spajkajte žice na odklopno ploščo mikrofona MEMS. Povežite se z MCP3002 in Raspberry Pi

  • Priključite Vcc na Raspberry Pi 3.3V.
  • Povežite GND z Raspberry Pi GND
  • Priključite AUD na pin 2 MCP3002

3. Priključite vse kable za Raspberry Pi in vse vklopite

5. korak: Zgradite ga! Programska oprema

Zgradite ga! Programska oprema
Zgradite ga! Programska oprema

Naš cilj pri Bark Back je dvojen: sproži zvok predvajanja, ko pes laja, in podatke pošlje na strežnik, kjer jih lahko preverimo.

Tukaj je odprtokodni program Python za ta projekt. Kodo lahko prilagodite (in prosim).

Če želite zagnati program, morate izpolniti dve stvari:

- songList: Vnesite pot do datoteke in ime datoteke za vsako skladbo, ki jo želite predvajati.

- creds: Vnesite svoje podatke CloudMQTT v ta slovar.

1. korak: Preberite na plošči za odpiranje mikrofona SparkFun MEMS

V knjižnici SPI preberite vrednost ADC (med 0 in 1023) z odklopne plošče mikrofona MEMS (prek MCP3002) in izračunajte amplitudo signala od vrha do vrha.

Preslikajte amplitudo signala od vrha do vrha na enoto za glasnost. Trenutna koda preslika območje ADC med 0 in 700 (na podlagi hitrega preizkušanja) v enoto za glasnost med 0 in 10. Če želite prilagoditi občutljivost mikrofona, prilagodite vhodno območje ADC.

Za podroben pregled mikrofona MEMS si oglejte to vadnico.

2. korak: Sprožite avdio predvajalnik

Najprej bomo potrebovali pesmi za predvajanje! Zvoke lahko hitro posnamete v GarageBand (ali na pametnem telefonu) in jih pošljete v Raspberry Pi. V Pythonu uporabite knjižnico podprocesov, da pokličete omxplayer.

V kodo vnesite pot do datoteke skladb, ki jih želite predvajati, v spremenljivko * songList * (vrstica 26). Trenutni prag glasnosti je v glavni funkciji nastavljen na 7.

3. korak: Pošljite podatke na strežnik CloudMQTT

Za komunikacijo s strežniki CloudMQTT uporabite knjižnico Paho Client Python. Če povzamemo na splošno: Nastavite odjemalčev strežnik; opredeliti komunikacijske protokole; povežite se z našimi poverilnicami (aka creds); ter se naročite in objavite naše podatke. Večina tega se izvaja v glavni funkciji (vrstice 129 - 149 in vrstice 169 - 174).

Če želite preveriti prejete podatke, pojdite na zavihek "Websocket UI" v konzoli CloudMQTT.

6. korak: Preizkusite in namestite

Preizkusite in namestite!
Preizkusite in namestite!

Zaženite program BarkBack.py v terminalu ali v Python IDE (za zagon programa lahko uporabite tudi SSH, potem ko ste že odšli).

Preverite, ali na zavihku UI Websocket prejemate glasnost.

Preizkusite sistem tako, da sprožite mikrofon (ploskanje, vpitje, lajanje itd.), Da se prepričate, da zvočniki predvajajo vse zvoke.

Ko namestite vse, je priporočljivo, da komponente spajkate na tiskano vezje, če nameravate sistem namestiti za več kot le nekaj dni.

Natečaj za mikrokrmilnik 2017
Natečaj za mikrokrmilnik 2017
Natečaj za mikrokrmilnik 2017
Natečaj za mikrokrmilnik 2017

Drugouvrščeni na natečaju za mikrokrmilnik 2017

Natečaj senzorjev 2017
Natečaj senzorjev 2017
Natečaj senzorjev 2017
Natečaj senzorjev 2017

Prva nagrada na tekmovanju senzorjev 2017

Priporočena: