Isi kandungan:

Monitor Haiwan Peliharaan IoT !: 6 Langkah (dengan Gambar)
Monitor Haiwan Peliharaan IoT !: 6 Langkah (dengan Gambar)

Video: Monitor Haiwan Peliharaan IoT !: 6 Langkah (dengan Gambar)

Video: Monitor Haiwan Peliharaan IoT !: 6 Langkah (dengan Gambar)
Video: Menggambar Kucing dari Angka 2 Bisa? 😁 2024, November
Anonim
Image
Image
Bacaan yang dicadangkan
Bacaan yang dicadangkan

Awasi anak kesayangan anda dan mainkan muzik atau suruh mereka diam semasa anda pergi! Tutorial ini akan menunjukkan cara menggunakan komputer Raspberry Pi untuk memantau jumlah suara di rumah anda (melalui Awan) untuk melihat apakah dan kapan haiwan kesayangan anda kecewa.

Drum roll… bahagian yang paling menggembirakan: Sekiranya terlalu kuat (seperti Fido menyalak atau membuat beberapa kasar), kami akan memberitahu mereka untuk diam atau bermain muzik!

Bersama dengan Pi (dan pembesar suara), kami akan menggunakan papan pemecah mikrofon SparkFun MEMS untuk mengukur tahap kelantangan dan mencetuskan pemain audio. Data dimuat ke perkhidmatan CloudMQTT menggunakan protokol komunikasi MQTT.

Jumlah Masa Baca: ~ 8 min

Jumlah Masa Binaan: 60 min (kurang w / berpengalaman)

TERIMA KASIH kepada SparkFun kerana menyokong projek ini! Lihat tutorial di sini.

Langkah 1: Bacaan yang dicadangkan

Untuk membina projek ini, anda memerlukan komputer Raspberry Pi 3 yang disambungkan sepenuhnya dengan WiFi dengan OS Raspbian. Ia juga berguna untuk mengetahui beberapa pengaturcaraan Python serta perkara-perkara berikut: (1) cara menggunakan dan mengendalikan pin Raspberry Pi GPIO; (2) komunikasi MQTT; dan (3) sensor analog. Sekiranya ada perkara yang tidak dikenali, atau jika anda hanya ingin tahu (ingin tahu!), Lihat tutorial di bawah!

Raspberry Pi 3

  1. Panduan Hookup Kit Permulaan Raspberry Pi 3
  2. Raspberry Pi GPIO
  3. Komunikasi SPI dengan Raspberry Pi

Protokol Komunikasi MQTT

MQTT (Transport Query Telemetry Transport) adalah protokol komunikasi IoT yang popular. Kami akan menggunakan perpustakaan Paho Client Python dan perkhidmatan MQTT yang dipanggil CloudMQTT. Inilah lebih lanjut mengenai MQTT dan cara menggunakannya:

  1. Meneroka Protokol Komunikasi untuk IoT
  2. Bermula dengan CloudMQTT
  3. Gambaran keseluruhan perpustakaan pelanggan Eclipse Paho MQTT Python

Papan Pemecah Mikrofon MEMS

Mikrofon MEMS adalah mikrofon analog, jadi kami memerlukan penukar Analog-ke-Digital ("ADC") untuk membaca dalam isyarat analog dengan pin GPIO digital Raspberry Pi.

  1. Bermula dengan SparkFun MEMS Microphone Breakout Board
  2. Lembaran Data Mikrofon MEMS
  3. Lembaran Data MCP3002 ADC

Langkah 2: Bahan

Bahan
Bahan
Bahan
Bahan
Bahan
Bahan

- Raspberry Pi 3 Model B

Kami juga memerlukan periferal berikut: Kes Raspberry Pi 3; Kad SD (minimum 8 GB); Kabel Raspberry Pi 3 GPIO; Kabel kuasa MicroUSB; Kabel HDMI dan monitor serasi HDMI; Papan kekunci USB; Tetikus USB; pembesar suara dengan port fon kepala 1/8.

- SparkFun MEMS Mic Breakout Board

- MCP3002 (Penukar Analog-ke-Digital)

- Wire Jumper Breadboard & M-to-M Breadboard

Langkah 3: Konfigurasikan Raspberry Pi

Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi
Konfigurasikan Raspberry Pi

Langkah 1: Periksa & Pasang Kemas kini Memeriksa dan memasang kemas kini selalu merupakan cara yang baik untuk memulakan. Jalankan arahan berikut di tetingkap terminal:

sudo apt-get kemas kini

sudo apt-get peningkatan

rebo sudo

Langkah 2: Sediakan Muka SPI untuk MEMS Mikrofon + MCP3002

Untuk menggunakan SPI (Serial Port Interface) untuk membaca di MEMS Mikrofon melalui MCP3002, kami memerlukan Python Dev Package:

sudo apt-get install python-dev

Kami juga memerlukan Interface SPI (mungkin ingin membuat subfolder untuk menyimpannya):

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

sudo python setup.py pasang

Inilah Dokumentasi SPI-Dev jika anda menghadapi sebarang masalah.

Langkah 3: Bermain Bunyi dengan OMXPlayer

OMXPlayer adalah pemain audio dan video yang dimuatkan terlebih dahulu pada OS Raspbian. Ia berfungsi dengan kebanyakan jenis fail suara, termasuk:.wav,.mp3, dan.m4a. Inilah yang akan kita gunakan untuk memainkan semula bunyi apabila Fido terlalu kuat. Perpustakaan Python untuk mengawal OMXPlayer termasuk dalam Raspbian (woo!).

Untuk menguji OMXPlayer dari terminal, ketik yang berikut:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Sekiranya tidak berjaya, cubalah memaksanya menggunakan peranti keluar audio tempatan:

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

Langkah 4: Konfigurasikan Pelayan CloudMQTT

Sekarang kami menyediakan pelayan MQTT! Untuk melakukan ini menggunakan CloudMQTT, lakukan perkara berikut:

  1. Sediakan akaun CloudMQTT (pelan "Cute Cat" adalah percuma).
  2. Buat contoh MyCloud baru.
  3. Di Konsol, buat peraturan ACL baru.
  4. Anda boleh memantau mesej yang diterbitkan di UI "Websocket".

Akhirnya, pasang pustaka MQTT Paho Client Python:

memasang pip paho-mqtt

Langkah 4: Bangunlah! Perkakasan

Bangunlah! Perkakasan
Bangunlah! Perkakasan
Bangunlah! Perkakasan
Bangunlah! Perkakasan
Bangunlah! Perkakasan
Bangunlah! Perkakasan

Gambarajah pinout untuk Raspberry Pi dan MCP3002 terdapat dalam gambar di atas.

1. Masukkan pin MCP3002 ke papan roti (lihat gambarajah pinout di atas)

MCP3002 menggunakan 4 pin SPI untuk komunikasi: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI"), dan Chip Select ("CS"). Pin ini sesuai dengan Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI), dan GPIO Pin 8 (CE0).

Lakukan hubungan berikut dengan pin MCP3002:

  • Sambungkan Pin 1 ke Raspberry Pi GPIO Pin 8 (CE0)
  • Sambungkan Pin 2 ke output analog papan pemecah Mikrofon MEMS
  • Sambungkan Pin 4 ke GND
  • Sambungkan Pin 5 ke Raspberry Pi GPIO Pin 10 (MOSI)
  • Sambungkan Pin 6 ke Raspberry Pi GPIO pin 9 (MISO)
  • Sambungkan Pin 7 ke Raspberry Pi GPIO Pin 11 (SCLK)
  • Sambungkan Pin 8 ke Raspberry Pi 3.3V keluar

2. Kabel solder ke papan pemecah Mikrofon MEMS. Sambungkan ke MCP3002 dan Raspberry Pi

  • Sambungkan Vcc ke Raspberry Pi 3.3V.
  • Sambungkan GND ke Raspberry Pi GND
  • Sambungkan AUD ke MCP3002 Pin 2

3. Pasangkan semua kabel untuk Raspberry Pi dan hidupkan semuanya

Langkah 5: Bangunlah! Perisian

Bangunlah! Perisian
Bangunlah! Perisian

Matlamat kami dengan Bark Back adalah dua kali ganda: mencetuskan suara main balik ketika anjing menyalak, dan mengirim data ke pelayan di mana kami dapat memeriksanya.

Inilah program Python sumber terbuka untuk projek ini. Jangan ragu (dan sila lakukan) menyesuaikan dan mengubah kodnya.

Untuk menjalankan program ini, anda perlu mengisi dua perkara:

- songList: Tulis di jalur fail dan nama fail untuk setiap lagu yang anda mahu mainkan.

- creds: Masukkan maklumat CloudMQTT anda dalam kamus ini.

Langkah 1: Baca di papan pemecah Mikrofon SparkFun MEMS

Baca dalam nilai ADC (antara 0 dan 1023) dari papan pemecah Mikrofon MEMS (melalui MCP3002) menggunakan perpustakaan SPI dan hitung amplitud puncak-ke-puncak isyarat.

Petakan amplitud puncak ke puncak isyarat ke Unit Isipadu. Kod semasa memetakan rentang ADC antara 0 dan 700 (berdasarkan eksperimen cepat) ke Unit Volume antara 0 dan 10. Untuk menyesuaikan kepekaan mikrofon, sesuaikan julat input ADC.

Untuk gambaran keseluruhan mic MEMS, lihat tutorial ini.

Langkah 2: Mencetuskan pemain audio

Mula-mula kita memerlukan lagu untuk dimainkan! Anda boleh merakam suara dengan pantas di GarageBand (atau di telefon pintar anda) dan menghantarnya ke Raspberry Pi. Di Python, gunakan perpustakaan subproses untuk memanggil omxplayer.

Dalam kod, masukkan jalur fail lagu yang ingin anda mainkan dalam pemboleh ubah * songList * (baris 26). Ambang kelantangan semasa ditetapkan ke 7 dalam fungsi utama.

Langkah 3: Hantar data ke Pelayan CloudMQTT

Gunakan perpustakaan Paho Client Python untuk berkomunikasi dengan pelayan CloudMQTT. Untuk meringkaskan secara meluas: Sediakan pelayan Pelanggan; menentukan protokol komunikasi; berhubung dengan kelayakan kami (aka creds); dan melanggan dan menerbitkan data kami. Sebilangan besar ini dilakukan dalam fungsi utama (baris 129 - 149, dan baris 169 - 174).

Untuk memeriksa data yang diterima, pergi ke tab "Websocket UI" di konsol CloudMQTT.

Langkah 6: Uji & Pasang

Uji & Pasang!
Uji & Pasang!

Jalankan program BarkBack.py di Terminal atau di Python IDE (anda juga boleh menggunakan SSH untuk menjalankan program setelah anda keluar).

Pastikan anda mendapat tahap kelantangan di tab UI Websocket anda.

Uji sistem dengan memicu mikrofon (bertepuk tangan, berteriak, kulit kayu, dll.) Untuk memastikan pembesar suara memainkan semua suara.

Setelah semuanya berjalan lancar, disarankan untuk memasangkan komponen ke PCB (Printed Circuit Board) jika anda berhasrat untuk memasang sistem selama lebih dari beberapa hari.

Peraduan Mikrokontroler 2017
Peraduan Mikrokontroler 2017
Peraduan Mikrokontroler 2017
Peraduan Mikrokontroler 2017

Naib Johan dalam Peraduan Mikrokontroler 2017

Peraduan Sensor 2017
Peraduan Sensor 2017
Peraduan Sensor 2017
Peraduan Sensor 2017

Hadiah Pertama dalam Peraduan Sensor 2017

Disyorkan: