Isi kandungan:
- Langkah 1: Bekalan
- Langkah 2: Skematik dan Pendawaian
- Langkah 3: Reka Bentuk Pangkalan Data
- Langkah 4: Menyiapkan Raspberry Pi
- Langkah 5: Maju Kejuruteraan Pangkalan Data Kami ke 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
- Langkah 10: Beberapa Masalah yang Saya Hadapi semasa Membuat Pembesar Suara Slimbox…
Video: Slimbox - Pembesar suara Bluetooth Pintar !: 10 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Hai ada!
Untuk projek sekolah saya di MCT Howest Kortrijk, saya membuat peranti pembesar suara Bluetooth pintar dengan sensor yang berbeza, termasuk cincin LCD dan RGB NeoPixel. Semuanya berjalan di Raspberry Pi (Pangkalan Data, Pelayan Web, Backend).
Oleh itu, dalam arahan ini saya akan menunjukkan kepada anda bagaimana saya membuat projek ini dalam 3 minggu, selangkah demi selangkah, jadi jika ada antara anda yang ingin membuat semula projek saya, anda boleh melakukannya dengan mudah!
Ini juga arahan pertama saya, jika anda mempunyai sebarang pertanyaan, saya akan cuba menjawabnya secepat mungkin!
GitHub Saya:
Langkah 1: Bekalan
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:
Sensor potensiometer
Potensiometer adalah perintang dengan tiga terminal yang boleh disesuaikan secara manual dengan hanya memutar bahagian atas sensor. Kedudukan bahagian atas menentukan voltan keluaran potensiometer.
LSM303 Accelerometer + Breakout Kompas
Papan pelarian LSM303 adalah gabungan akselerometer tiga paksi dan magnetometer / kompas, yang dihasilkan oleh Adafruit. Ia digunakan dengan antara muka I2C Raspberry Pi.
Gambaran keseluruhan:
Lembaran Data:
MCP3008
Untuk membaca data dari potensiometer saya, saya menggunakan MCP3008, yang merupakan analog 8 bit 10 bit ke digital converter dengan antara muka SPI dan cukup mudah diprogramkan.
Lembaran Data:
Pembesar suara - Diameter 3”- 8 Ohm 1 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 cincin NeoPixel disambungkan ke Arduino dan berjalan di sana, sementara semua barang lain berjalan di Raspberry Pi.
Cincin NeoPixel RGB
Ini adalah cincin kecil yang dipenuhi dengan 12 led RGB (anda boleh membeli cincin yang lebih besar 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.
Gambaran keseluruhan:
Paparan LCD 16x2
Saya menggunakan Paparan LCD asas untuk mencetak suhu, kelantangan dan alamat IP saya.
Lembaran Data:
Kad SD Raspberry Pi 3B + & 16GB
Seluruh projek saya berjalan pada Raspberry Pi 3B + saya dengan gambar yang dikonfigurasi, yang akan saya bantu anda konfigurasikan kemudian dalam arahan saya.
GPIO T-Part, 2 Papan Roti dan banyak jumperwire
Untuk menyambungkan semua yang saya perlukan papan roti dan jumperwire, saya menggunakan bahagian GPIO T sehingga saya mempunyai lebih banyak ruang dan jelas pin mana.
Langkah 2: Skematik dan Pendawaian
Untuk skema saya, saya menggunakan Fritzing, ini adalah program yang boleh anda pasangkan yang membolehkan anda membuat skema yang sangat mudah dalam pelbagai jenis pandangan.
Muat turun Fritzing:
Oleh itu, pastikan anda menghubungkan semuanya dengan cara yang betul! Dalam kes saya, warna wayar tidak sama seperti pada skema.
Langkah 3: Reka Bentuk Pangkalan Data
Kami mengumpulkan banyak data dari 3 sensor yang disambungkan, jadi kami memerlukan pangkalan data untuk menyimpan data dan sensor. Kemudian kami akan melihat bagaimana mengkonfigurasi pangkalan data pada Raspberry Pi dan cara menambahkan data ke dalamnya. Tetapi pertama-tama reka bentuk pangkalan data atau ERD (Entity Relationship Diagram) harus dibuat dan saya juga dinormalisasi dengan 3NF. Itulah sebabnya kami membahagikan sensor ke meja lain dan bekerjasama dengan ID.
Secara keseluruhan, ini adalah reka bentuk pangkalan data yang sangat asas dan mudah untuk terus dikerjakan.
Langkah 4: Menyiapkan Raspberry Pi
Oleh itu, sekarang kita telah menyelesaikan beberapa asas projek. Mari mulakan dengan Raspberry Pi!
Konfigurasi Kad SD
Pertama, anda memerlukan Kad SD 16GB di mana anda boleh meletakkan gambar anda dan program untuk memuat naik gambar permulaan ke kad SD.
Perisian:
Mula gambar:
Oleh itu, apabila ini dimuat turun:
- Letakkan kad SD anda di komputer anda.
- Buka Win32 yang baru anda muat turun.
- Pilih fail gambar Raspbian yang juga baru anda muat turun.
- Klik 'tulis' ke lokasi kad SD anda.
Ini mungkin memerlukan sedikit masa, bergantung pada perkakasan anda. 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 peluasan atau kandungan.
Kini anda dapat SELAMAT mengeluarkan kad SD dari komputer anda dan memasukkannya ke dalam Raspberry Pi TANPA 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.
Sekarang kami mahu mengawal 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.
Raspi-konfigurasi
sudo raspi-config
Yang sangat penting untuk projek ini ialah bahagian antara muka, kita harus mengaktifkan banyak antara muka yang berbeza, mengaktifkan semua antara muka berikut:
- Satu wayar
- SPI
- I2C
- Bersiri
Sekarang kita sudah selesai dengan raspi-config, mari kita cuba dan membuat sambungan dengan internet.
Sambungan Wi-Fi
Pertama, anda mesti menjadi root untuk perintah berikut
sudo -i
Setelah anda root, gunakan arahan berikut. SSID adalah nama rangkaian anda dan kata laluan jelas kata laluan.
wpa_passphrase "ssid" "kata laluan" >> /etc/wpa_supplicant/wpa_supplicant.conf
Sekiranya anda melakukan kesalahan, anda boleh memeriksa, mengemas kini atau menghapus rangkaian ini dengan memasukkan fail itu:
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
Kemas kini & naik taraf
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
Pangkalan Data MariaDB
Pasang pelayan pangkalan data MariaDB:
sudo apt-get pasang mariadb-server
Pelayan Web Apache2
Pasang pelayan web Apache2:
sudo apt pasang apache2
Python
Pasang Python:
kemas kini-alternatif - pasang / usr / bin / python python /usr/bin/python2.7 1
kemas kini-alternatif - 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
- PyMySQL
- Permintaan
- Python-socketio
- RPi. GPIO
- Memberi
- Gevent-websocket
- Ujson
- Wsaccel
Perpustakaan pembesar suara
Pasang perpustakaan pembesar suara dari Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Masa untuk but semula
rebo sudo
Langkah 5: Maju Kejuruteraan Pangkalan Data Kami ke RPi
Sekarang setelah kami memasang semua yang kami perlukan, mari letakkan Pangkalan Data kami yang kami reka pada Raspberry Pi kami!
Oleh itu, pertama-tama kita perlu memajukan pangkalan data kita di meja kerja MySql, sambil melakukan itu, salin kod pangkalan data penuh anda dan hapus semua perkataan 'yang kelihatan' di dalamnya. Jadi setelah disalin, mari buka dempul lagi, log masuk dan taip:
sudo mysql
dan sekarang anda berada di antara muka mysql, salin kod pangkalan data anda di dalamnya dan tekan enter.
Sekarang kita hanya perlu membuat pengguna
BUAT PENGGUNA 'pengguna' DIKENALI OLEH 'pengguna';
MEMBERI SEMUA KEISTIMEWAAN PADA *. * KEPADA 'pengguna';
Sekarang but semula.
Oleh itu, semuanya harus disiapkan sekarang, anda juga boleh membuat sambungan dengan Pi dan MySql Workbench anda, jadi lebih mudah untuk memeriksa semua data dalam jadual anda.
Langkah 6: Mengkonfigurasi Bluetooth pada RPi Kami
Kami membuat pembesar suara Bluetooth, jadi ini bermaksud media dihantar dari sumber kami ke Raspberry Pi dan ini dapat dilakukan dengan mudah, mari masuk ke dalamnya!
Sumber saya untuk sambungan bluetooth:
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
bluetoothctl
hidupkan
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
Kini peranti kami disambungkan sepenuhnya ke Raspberry kami dan anda seharusnya dapat memainkan media dari peranti sumber anda pada pembesar suara Pi.
Langkah 7: Menulis Backend Lengkap
Jadi sekarang penyiapannya selesai, akhirnya kita dapat mula menulis program backend kita!
Saya menggunakan PyCharm untuk keseluruhan backend saya, anda hanya perlu memastikan projek PyCharm anda disambungkan ke Raspberry Pi anda, ini bermaksud jalan Deployment anda disiapkan dalam tetapan anda dan anda memasang semua pakej yang kami perlukan, sudah semestinya sudah selesai 4.
Saya menggunakan kelas saya sendiri dan ini juga termasuk dalam GitHub saya. Pautan ada di intro sekiranya anda terlepas;)
Dalam fail backend saya menggunakan kelas threading, jadi semuanya dapat berjalan pada masa yang sama dan tidak akan saling mengganggu. 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 & CSS dilakukan dengan cukup mudah, cuba menggunakan telefon bimbit terlebih dahulu sebanyak mungkin, kerana kita sering kali bersambung dengan Bluetooth dari peranti mudah alih, 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 begitu sukar, bekerja dengan beberapa GET dari laluan backend saya, banyak pendengar acara dan beberapa struktur socketio.
Langkah 9: Membina Kes Saya dan Menyatukannya Semua
Saya mula-mula memulakan dengan beberapa sketsa bagaimana saya mahu kotak itu kelihatan, sesuatu yang penting ialah ia harus cukup besar agar semuanya sesuai, kerana kita mempunyai litar besar untuk dimasukkan ke dalam casing tersebut.
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 bekas botol anggur dan baru mula menggergaji kayu. Sebaik sahaja saya mempunyai beg asas saya, saya hanya perlu mengebor lubang di dalamnya (banyak di bahagian depan casing, seperti yang anda lihat pada gambar: P) dan meletakkan beberapa kuku di dalamnya, ini adalah kes yang sangat asas, tetapi kelihatan cukup sejuk dan sangat sesuai.
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.
Langkah 10: Beberapa Masalah yang Saya Hadapi semasa Membuat Pembesar Suara Slimbox…
Kesalahan Bluetooth & bluealsa
Setiap kali saya mahu memainkan muzik atau berhubung dengan bluetooth, saya menerima kesalahan dari bluetooth dan bluealsa. Saya membuat kajian mengenainya dan ini adalah penyelesaian untuk masalah saya. Oleh itu, atas sebab tertentu bluetooth saya disekat lembut, tidak pasti jika ini adalah blok lembut biasa. Anda dapat melihat apakah itu dengan menaip perintah berikut di Putty anda.
senarai rfkill
Oleh itu, jika disekat lembut, gunakan ini:
rfkill nyahsekat bluetooth
Dan anda mungkin mahu reboot selepas ini, sumber saya:
Masalah sambungan bersiri
Jadi masalah besar lain yang saya hadapi ialah saya tidak dapat membuat hubungan dengan Arduino saya melalui pergeseran level, setelah beberapa carian saya mendapat tahu bahawa '/ dev / ttyS0' saya telah hilang dan ini mungkin disebabkan oleh kemas kini RPi anda. Juga terdapat penyelesaian mengenai perkara ini
Anda perlu mengaktifkan semula konsol bersiri dengan raspi-config, reboot, dan kemudian mengeluarkan bit "console = serial0, 115200" secara manual dari '/boot/cmdline.txt'. Pastikan bahawa "enable_uart = 1" ada di' /boot/config.txt ', dan reboot sekali lagi. Itu akan mengembalikan port ttyS0 anda, serta pautan lembut' / dev / serial0 'kepadanya.
Sumber:
Disyorkan:
Lampu LED Meja Pintar - Pencahayaan Pintar W / Arduino - Ruang Kerja Neopixels: 10 Langkah (dengan Gambar)
Lampu LED Meja Pintar | Pencahayaan Pintar W / Arduino | Ruang Kerja Neopixels: Sekarang beberapa hari kita menghabiskan banyak masa di rumah, belajar dan bekerja secara maya, jadi mengapa tidak menjadikan ruang kerja kita lebih besar dengan sistem lampu khas Arduino dan Ws2812b berdasarkan LED. Di sini saya tunjukkan kepada anda bagaimana membina Smart anda Lampu LED Meja yang
Ubah Telefon Pintar Tidak Digunakan Ke Paparan Pintar: 6 Langkah (dengan Gambar)
Ubah Telefon Pintar yang Tidak Digunakan Ke Paparan Pintar: Tutorial Deze ada di Engels, voor de Nederlandse versie klik hier. Adakah anda mempunyai telefon pintar (lama) yang tidak digunakan? Ubahnya menjadi paparan pintar menggunakan Helaian Google dan beberapa pen dan kertas, dengan mengikuti tutorial langkah demi langkah yang mudah ini. Apabila anda selesai
Pintar Pintar DIY: Kod, Persediaan dan Integrasi HA: 7 Langkah (dengan Gambar)
Pintar Pintar DIY: Kod, Penyediaan dan Integrasi HA: Dalam projek ini, saya akan menunjukkan kepada anda bagaimana anda boleh mengubah bel pintu biasa anda menjadi telefon pintar tanpa mengubah fungsi semasa atau memotong wayar. Saya akan menggunakan papan ESP8266 yang dipanggil Wemos D1 mini. Baru ke ESP8266? Tonton Pengenalan saya
Jam Penggera Pintar: Jam Penggera Pintar Dibuat Dengan Raspberry Pi: 10 Langkah (dengan Gambar)
Jam Penggera Pintar: Jam Penggera Pintar Dibuat Dengan Raspberry Pi: Adakah anda pernah mahukan jam pintar? Jika ya, ini adalah penyelesaian untuk anda! Saya membuat Jam Penggera Pintar, ini adalah jam yang boleh anda ubah waktu penggera mengikut laman web. Apabila penggera berbunyi, akan ada bunyi (bel) dan 2 lampu akan
Cara Mengawal Suis Pintar Asas Sonoff Berasaskan ESP8266 Dengan Telefon Pintar: 4 Langkah (dengan Gambar)
Cara Mengawal Suis Pintar Asas Sonoff Berasaskan ESP8266 Dengan Telefon Pintar: Sonoff adalah barisan peranti untuk Rumah Pintar yang dibangunkan oleh ITEAD. Salah satu peranti yang paling fleksibel dan murah dari talian tersebut adalah Sonoff Basic. Ia adalah suis berkemampuan Wi-Fi berdasarkan cip hebat, ESP8266. Artikel ini menerangkan cara menyiapkan Cl