Isi kandungan:
- Langkah 1: Bekalan
- Langkah 2: Skematik dan Pendawaian
- Langkah 3: Reka Bentuk Pangkalan Data
- Langkah 4: Sediakan Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Langkah 6: Mengkonfigurasi Bluetooth pada RPi Kami
- Langkah 7: Menulis Backend Lengkap
- Langkah 8: Menulis Frontend (HTML, CSS & JavaScript)
- Langkah 9: Membina Kes Saya dan Menyatukannya Semua
Video: Mood Speaker - Pembesar Suara yang Kuat untuk Muzik Mood Dimainkan Berdasarkan Suhu Suasana: 9 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Hai ada!
Untuk projek sekolah saya di MCT Howest Kortrijk, saya membuat Mood Speaker ini adalah peranti pembesar suara Bluetooth pintar dengan sensor yang berbeza, LCD dan WS2812b ledstrip disertakan. Pembesar suara memainkan muzik latar berdasarkan suhu tetapi juga boleh digunakan sebagai bluetooth biasa pembesar suara. Semuanya berjalan di Raspberry Pi (Pangkalan Data, Pelayan Web, Backend).
Jadi arahan ini adalah proses langkah demi langkah bagaimana saya merealisasikan projek ini dalam 3 minggu. Oleh itu, jika anda ingin membuat semula projek saya, anda boleh mengikuti panduan
Ini adalah arahan pertama saya yang saya tulis jadi jika ada pertanyaan, saya akan cuba menjawabnya secepat mungkin!
GitHub Saya:
Langkah 1: Bekalan
Kad SD Raspberry Pi 3B & 16GB
Seluruh projek saya berjalan pada Raspberry Pi 3B saya dengan gambar yang dikonfigurasi, yang akan saya jelaskan pada langkah seterusnya (Langkah 4: Siapkan Raspberry Pi)
Paparan LCD 16x2
Saya menggunakan Paparan LCD asas untuk mencetak suhu, kecerahan dan alamat IP saya.
Lembaran Data:
Sensor Suhu DS18B20
DS18B20 adalah sensor satu wayar yang mengukur suhu, yang dihasilkan oleh Maxim Integrated. Terdapat 2 jenis sensor DS18B20, komponen sahaja (Yang saya gunakan) dan versi kalis air, yang jauh lebih besar, tetapi bukan itu yang saya perlukan untuk projek saya, jadi saya menggunakan komponen itu sahaja. Sensor dapat mengukur suhu dalam kisaran -55 ° C hingga + 125 ° C (-67 ° F hingga + 257 ° F) dan ia mempunyai ketepatan 0,5 ° C dari -10 ° C hingga + 85 ° C. Ia juga mempunyai resolusi yang dapat diprogramkan dari 9 bit hingga 12 bit.
Lembaran Data:
MCP3008
Untuk membaca data dari sensor LDR dan PIR, saya menggunakan MCP3008, yang merupakan penukar analog 8 bit ke digital 8 saluran dengan antara muka SPI dan cukup mudah diprogramkan.
Lembaran Data:
Sensor gerakan PIR
Untuk mengesan bila ada seseorang memasuki dan meninggalkan bilik saya, saya menggunakan sensor inframerah pasif kerana ia mudah digunakan dan kecil.
Lembar data:
LDR
Saya menggunakan fotoresistor atau LDR (Rintangan Penurunan Cahaya, atau perintang yang bergantung pada cahaya) untuk mengesan tahap kecerahan bilik di dalamnya. Dan juga untuk menghidupkan Ledstrip saya ketika gelap.
Pembesar suara - Diameter 3”- 4 Ohm 3 Watt
Ini adalah kerucut pembesar suara yang saya pilih setelah mengira Voltan dan Amper yang diperlukannya dan ini sangat sesuai untuk projek Raspberry Pi saya, yang dihasilkan oleh Adafruit.
Gambaran keseluruhan:
MAX98357 I2S Class-D Mono Amplifier
Ini adalah penguat yang disertakan dengan pembesar suara, bukan hanya penguat, tetapi juga penukar digital ke analog I2S, jadi ini juga sesuai untuk sistem pembesar suara & audio saya.
Gambaran keseluruhan:
Lembaran Data:
Arduino Uno
Arduino Uno adalah papan mikrokontroler sumber terbuka berdasarkan mikrokontroler Microchip ATmega328P, yang dihasilkan oleh Arduino.cc. Papan Uno mempunyai 14 pin Digital, 6 pin analog dan dapat diprogram sepenuhnya dengan perisian Arduino IDE
Gambaran keseluruhan:
Pengubah tahap
Ini adalah papan kecil yang mengurus komunikasi antara Arduino Uno dan Raspberry Pi dan voltan yang berbeza, Arduino: 5V & Raspberry Pi: 3.3V. Ini diperlukan kerana ledstrip disambungkan ke Arduino dan berjalan di sana, sementara semua barang lain berjalan di Raspberry Pi.
WS2812B - Ledstrip
Ini adalah jalur pendahuluan dengan 60 LED RGB (anda boleh membeli jalur yang lebih panjang dengan lebih banyak LED RGB, jika anda mahu). Yang dalam kes saya disambungkan ke Arduino Uno, tetapi juga boleh disambungkan ke banyak peranti lain dan sangat mudah digunakan.
Lembaran Data:
GPIO T-Part, 1 Breadboard dan banyak jumperwire
Untuk menyambungkan semua yang saya perlukan papan roti dan kabel jumper, saya tidak menggunakan bahagian GPIO T tetapi anda boleh menggunakannya untuk mengetahui dengan jelas tong sampah ke mana.
Langkah 2: Skematik dan Pendawaian
Untuk membuat skematik saya, saya menggunakan Fritzing, ia adalah program yang boleh anda pasangkan yang membolehkan anda membuat skema yang sangat mudah dalam pelbagai jenis pandangan. Saya menggunakan papan roti dan pandangan skematik.
Muat turun Fritzing:
Pastikan semuanya disambung dengan betul. Saya menggunakan warna untuk menjadikannya sedikit lebih jelas untuk mengetahui di mana menghubungkan wayar. Dalam kes saya, saya menggunakan warna yang berbeza untuk wayar
Langkah 3: Reka Bentuk Pangkalan Data
Kami mengumpulkan banyak data dari 3 sensor (Suhu dari DS18B20, Kecerahan dari LDR dan Status dari PIR-sensor). Jadi yang terbaik adalah menyimpan semua data ini dalam pangkalan data. Saya akan menerangkan di kemudian hari bagaimana mengkonfigurasi pangkalan data (Langkah 5: Meneruskan Pangkalan Data Kami ke RPi!) Tetapi pertama-tama reka bentuk atau ERD (Entity Relationship Diagram) mesti dibuat. Tambang saya dinormalisasi dengan 3NF itulah sebabnya kami membahagikan komponen dan sejarah komponen menjadi jadual lain. Kami menggunakan pangkalan data Muzik untuk melacak lagu-lagu yang telah didengarkan.
Secara keseluruhan, ini adalah reka bentuk pangkalan data yang sangat asas dan mudah untuk terus dikerjakan.
Langkah 4: Sediakan Raspberry Pi
Oleh itu, sekarang kita telah menyelesaikan beberapa asas projek. Mari mulakan dengan menyiapkan Raspberry Pi!
Bahagian 1: Mengkonfigurasi Kad SD
1) Muat turun Perisian dan Fail yang Diperlukan
Anda perlu memuat turun 2 perisian dan 1 OS iaitu Raspbian untuk proses lengkap ini.1 perisian pertama: Perisian pertama ialah Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
Perisian ke-2: Perisian kedua ialah SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
OS Raspbian: Ini adalah sistem operasi utama Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Ekstrak semua fail ke desktop.
2) Dapatkan Kad SD dan Pembaca Kad
Dapatkan kad SD kelas 8GB minimum dengan pembaca kad. Masukkan kad itu ke pembaca kad dan pasangkannya ke port USB.
3) Format Kad SD
Buka SD Card Formatter dan pilih pemacu.
Klik pada format dan jangan ubah pilihan lain.
Apabila pemformatan selesai, klik OK.
4) Tuliskan OS pada Kad SD
Buka win32diskimager.
Semak imbas fail.img Raspbian OS yang diekstrak dari fail yang dimuat turun.
Klik pada terbuka dan kemudian klik Tulis.
Sekiranya ada amaran muncul, abaikan mereka dengan mengklik OK. Tunggu penulisan selesai dan mungkin memerlukan beberapa minit. Oleh itu, bersabarlah.
n
5) Setelah ini selesai, kami siap membuat beberapa penyesuaian terakhir sebelum memasukkan gambar ke dalam RPi kami.
Pergi ke direktori kad SD anda, cari fail bernama 'cmdline.txt' dan buka.
Sekarang tambahkan 'ip = 169.254.10.1' pada satu baris yang sama.
Simpan fail.
Buat fail bernama 'ssh' tanpa perluasan atau kandungan. (Cara termudah adalah dengan membuat fail txt dan membuang.txt selepas itu)
Setelah semuanya dipasang pada kad SD, anda boleh mengeluarkannya dengan selamat dari komputer anda dan memasukkannya ke dalam Raspberry Pi TANPA menyambungkan kuasa. Setelah kad SD masuk ke RPI, sambungkan kabel LAN dari komputer anda ke port LAN RPi, setelah ini disambungkan, anda boleh menyambungkan kuasa ke RPi.
Bahagian 2: Mengkonfigurasi RPi
Dempul
Sekarang kami ingin mengkonfigurasi Raspberry Pi kami, ini dilakukan melalui Putty.
Perisian putty:
Setelah dimuat turun, buka Putty dan masukkan IP '169.254.10.1' dan Port '22' dan jenis sambungan: SSH.
Sekarang kita akhirnya dapat membuka antara muka baris perintah dan log masuk dengan maklumat log masuk pemula -> Pengguna: pi & Kata Laluan: raspberry. (Sebaiknya ubahnya secepat mungkin. Berikut adalah panduan bagaimana:
Raspi-konfigurasi
Kita perlu mengaktifkan antara muka yang berbeza dan untuk melakukan itu kita harus terlebih dahulu menaip kod berikut:
sudo raspi-config
Perkara yang perlu kita aktifkan ada di bahagian antara muka. Kita perlu mengaktifkan antara muka berikut:
- Satu wayar
- Bersiri
- I2C
- SPI
Itu semua yang perlu kami lakukan dengan raspi-config
Menambah WIFI anda
Pertama, anda harus menjadi root agar perintah berikut menjadi root
sudo -i
Setelah anda root, gunakan arahan berikut: (Ganti SSID dengan nama dan kata laluan rangkaian anda dengan kata laluan rangkaian anda)
wpa_passphrase "ssid" "kata laluan" >> /etc/wpa_supplicant/wpa_supplicant.conf
Sekiranya anda melakukan sesuatu yang salah, anda boleh memeriksa, mengemas kini atau menghapus rangkaian ini dengan memasukkan perintah berikut:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Oleh itu, setelah memasuki rangkaian kami, mari masuk ke antara muka klien WPA
wpa_cli
Pilih antara muka anda
antara muka wlan0
Muat semula fail
susun semula
Dan akhirnya anda dapat melihat sama ada anda berhubung dengan baik:
ip a
Bahagian 3: Mengemas kini perisian pemasangan RPi +
Sekarang kita sudah tersambung ke internet, mengemas kini pakej yang sudah dipasang akan menjadi langkah yang bijak, jadi mari kita lakukan terlebih dahulu sebelum memasang pakej lain.
sudo apt-get kemas kini
sudo apt-get peningkatan
Setelah mengemas kini RPi, kita harus memasang perisian berikut:
Pangkalan Data MariaDB
sudo apt-get pasang mariadb-server
Pelayan Web Apache2
sudo apt pasang apache2
Python
kemas kini-alternatif - pasang / usr / bin / python python /usr/bin/python3.7 1 alternatif-kemas kini - pasang / usr / bin / python python / usr / bin / python3 2
Pakej Python
Anda perlu memasang semua pakej ini agar backend berfungsi dengan sempurna:
- Kelalang
- Kelalang-Cors
- Flask-MySql
- Flask-SocketIO
- Permintaan PyMySQL
- Python-socketio
- RPi. GPIO
- Memberi
- Gevent-websocket
Perpustakaan pembesar suara
Untuk menggunakan pembesar suara dengan penguat, kita perlu memasang perpustakaan untuknya
keriting -sS > | bash
Step 4: Reboot
After everything has been installed we will have to reboot the pi to make sure everything works correctly
sudo reboot
Step 5: Setting Up the Database to the RPi
Sekarang setelah kami memasang semua yang kami perlukan, mari letakkan Pangkalan Data kami yang kami reka pada Raspberry Pi kami!
Untuk menyiapkan pangkalan data, kita perlu menghubungkan MySql dan RPi. Untuk itu kami akan membuka MySQLWorkbench dan membuat sambungan baru. Semasa melihat gambar, anda perlu menukar untuk menukar maklumat menjadi maklumat anda.
Sekiranya anda belum mengubah apa-apa, anda boleh menggunakan SSH pi dan raspberry, untuk MySQL mysql dan mysql.
Apabila sesuatu tidak jelas, anda juga boleh mengikuti tutorial ini:
Untuk mengeksport pangkalan data anda semestinya lebih mudah menggunakan PHPmyAdmin kerana anda dapat banyak kesalahan melakukannya dengan MySql
Langkah 6: Mengkonfigurasi Bluetooth pada RPi Kami
Kami membuat pembesar suara Mood, yang juga dapat kami gunakan dengan muzik kami sendiri jadi ini lebih mudah ketika RPi
disambungkan ke bluetooth Saya mengikuti tutorial untuknya yang anda dapati di sini:
scribles.net/streaming-bluetooth-audio-fr…
Saya menulis semuanya di sini juga untuk semua orang yang ingin membuatnya semula
Mengeluarkan bluealsa yang sudah berjalan
sudo rm / var / run / bluealsa / *
Tambah profil A2DP Peranan sinki
sudo bluealsa -p a2dp-sink &
Buka antara muka bluetooth dan hidupkan bluetooth anda
kuasa bluetoothctl dihidupkan
Siapkan agen pasangan
ejen pada ejen lalai
Jadikan RPi anda dapat ditemui
boleh ditemui pada
- Sekarang dari peranti bluetooth anda, cari RPi dan sambungkan dengannya.
- Sahkan pasangan pada kedua-dua peranti, ketik 'ya' di dempul anda.
- Mengizinkan perkhidmatan A2DP, ketik 'ya' sekali lagi.
- Setelah ini selesai, kita boleh mempercayai peranti kita, jadi kita tidak perlu melalui semua ini setiap kali kita ingin menyambung
amanah XX: XX: XX: XX: XX: XX (Alamat mac bluetooth anda dari peranti sumber kami)
Sekiranya anda mahu RPi anda terus dapat ditemui, itu adalah pilihan anda sendiri, tetapi saya lebih suka mematikannya lagi, supaya orang tidak dapat mencuba untuk berhubung dengan kotak anda
boleh ditemui
Kemudian kita boleh keluar dari antara muka bluetooth kita
jalan keluar
Dan akhirnya penghalaan audio kami: peranti sumber kami meneruskan ke RPi kami
bluealsa-aplay 00: 00: 00: 00: 00: 00
Sekarang peranti kami disambungkan ke Raspberry kami dengan bluetooth dan anda seharusnya dapat mengujinya dengan memainkan media apa pun misalnya Spotify, dll.
Langkah 7: Menulis Backend Lengkap
Jadi sekarang penyiapannya selesai, akhirnya kita dapat mula menulis program backend kita!
Saya menggunakan Kod Visual Studio untuk keseluruhan backend saya, anda hanya perlu memastikan projek Visual Studio anda disambungkan ke Raspberry Pi anda, ini bermaksud kabel LAN anda harus disambungkan ke RPi anda dan untuk membuat sambungan SSH. (maklumat mengenai cara membuat sambungan jauh boleh didapati di sini:
Saya menggunakan kelas saya sendiri dan ini juga termasuk dalam GitHub saya.
Dalam fail backend saya menggunakan kelas yang berbeza, jadi semuanya boleh digunakan secara berasingan dan supaya kod utama saya tidak berantakan dengan semua benang yang berbeza. Saya menggunakan threading untuk menjalankan semua kelas yang berbeza sekaligus. Dan di bahagian bawah anda mendapat semua laluan sehingga kami dapat dengan mudah mendapatkan data di frontend kami.
Langkah 8: Menulis Frontend (HTML, CSS & JavaScript)
Setelah backend selesai, kita boleh mula menulis bahagian depan penuh.
HTML dan CSS agak sukar bagi saya, saya melakukan yang terbaik untuk menjadikannya mudah alih terlebih dahulu kerana saya dapat menyambungnya dengan bluetooth untuk menukar lagu dengan Spotify. Oleh itu, lebih mudah dikendalikan dari papan pemuka mudah alih
Anda boleh merancang papan pemuka anda dengan cara yang anda mahu, saya hanya akan meninggalkan kod dan reka bentuk saya di sini, anda boleh melakukan apa sahaja yang anda suka!
Dan Javascript tidak lebih mudah bagi saya, bekerja dengan beberapa GET dari laluan backend saya, banyak pendengar acara dan beberapa struktur socketio untuk mendapatkan data dari sensor saya.
Langkah 9: Membina Kes Saya dan Menyatukannya Semua
Saya mula-mula mula membuat sketsa bagaimana saya mahu casing itu kelihatan, sesuatu yang penting ialah ia harus cukup besar agar semuanya sesuai, kerana kita mempunyai litar besar untuk dimasukkan ke dalam casing itu tetapi harus tetap padat sehingga tidak berlaku. '' mengambil banyak ruang
Saya membuat sarung itu dari kayu, saya rasa ini adalah yang paling senang dikerjakan apabila anda tidak mempunyai banyak pengalaman dengan membina kes dan anda juga mempunyai banyak perkara yang boleh anda lakukan dengannya.
Saya bermula dari papan lama yang saya terbaring dan baru mula melihat kayu. Sebaik sahaja saya mempunyai beg asas saya, saya hanya perlu mengorek lubang di dalamnya (banyak di bahagian depan casing, seperti yang anda dapat lihat di gambar dan meletakkan beberapa kuku di dalamnya, ini adalah kotak yang sangat asas, tetapi kelihatannya sangat sejuk dan sangat sesuai. Saya juga memutuskan untuk melukisnya putih agar kelihatan cantik.
Dan setelah kes itu selesai, sudah tiba masanya untuk menyatukannya, seperti yang anda lihat pada gambar terakhir! Ini agak berantakan di dalam kotak, tetapi semuanya berfungsi dan saya tidak mempunyai lebih banyak ruang, jadi saya menasihati anda untuk membuat casing yang lebih besar sekiranya anda membuat projek saya.
Disyorkan:
Kipas Teratur PWM Berdasarkan Suhu CPU untuk Raspberry Pi: 4 Langkah (dengan Gambar)
Kipas Teratur PWM Berdasarkan Suhu CPU untuk Raspberry Pi: Banyak kes untuk Raspberry Pi dilengkapi dengan kipas 5V kecil untuk membantu menyejukkan CPU. Walau bagaimanapun, peminat ini biasanya agak bising dan banyak orang memasangkannya pada pin 3V3 untuk mengurangkan bunyi. Peminat ini biasanya dinilai untuk 200mA yang cukup
Cara Menyusun Pengawal Pemegang yang Mudah dan Kuat - Berdasarkan Mikro: Bit: 10 Langkah (dengan Gambar)
Cara Menyusun Pengawal Pemegang yang Mudah dan Kuat - Berdasarkan Mikro: Bit: Nama pemegangnya ialah Handlebit. Bentuknya adalah pemegang dan kelihatan sangat keren! Sekarang kita boleh membuat pengenalan mengenai Handlebit, mari kita teruskan
Suara Mood Android yang Dikendalikan Suara: 11 Langkah (dengan Gambar)
Suara Mood Android yang Dikendalikan Suara: Saya perlu membuat kelas untuk Kumpulan Pembuat tempatan kami. Sesuatu yang memberi jaminan kepada pengunjung pertama kali kemenangan pasti dan ganjaran besar tanpa kekacauan, tanpa keributan, dan tanpa alat atau bahan khusus. Pelajar perlu membawa pulang sesuatu yang menyenangkan
Muzik Reaktif Cahaya -- Cara Membuat Muzik Reaktif Cahaya Muzik Super Sederhana untuk Membuat Desktop Hebat .: 5 Langkah (dengan Gambar)
Muzik Reaktif Cahaya || Cara Membuat Muzik Reaktif Cahaya Muzik Super Sederhana untuk Membuat Desktop Yang Hebat: Hai apa lagi, Hari ini kita akan membina projek yang sangat menarik. Hari ini kita akan membina cahaya reaktif muzik. Led akan mengubah kecerahannya mengikut bass yang sebenarnya merupakan isyarat audio frekuensi rendah. Ia sangat mudah untuk dibina. Kami akan
IPod Nano Anda Sendiri Yang Dimainkan !: 9 Langkah
IPod Nano Anda Sendiri Yang Dimainkan!: Ini adalah cara anda boleh membuat iPod anda sendiri yang sebenarnya dimainkan