Daftar Isi:
- Langkah 1: Persediaan
- Langkah 2: Skema dan Pengkabelan
- Langkah 3: Desain Basis Data
- Langkah 4: Mempersiapkan Raspberry Pi
- Langkah 5: Teruskan Rekayasa Database Kami ke RPi
- Langkah 6: Mengonfigurasi Bluetooth di RPi
- Langkah 7: Menulis Backend Lengkap
- Langkah 8: Menulis Frontend (HTML, CSS & JavaScript)
- Langkah 9: Membangun Kasus Saya dan Menggabungkannya
- Langkah 10: Beberapa Masalah yang Saya Hadapi dalam Perjalanan Membuat Speaker Slimbox…
Video: Slimbox - Speaker Bluetooth Cerdas!: 10 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Hei!
Untuk proyek sekolah saya di MCT Howest Kortrijk, saya membuat perangkat speaker Bluetooth pintar dengan sensor yang berbeda, termasuk LCD dan cincin RGB NeoPixel. Semuanya berjalan di Raspberry Pi (Database, Webserver, Backend).
Jadi dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana saya membuat proyek ini dalam 3 minggu, langkah demi langkah, jadi jika ada di antara kalian yang ingin membuat ulang proyek saya, Anda dapat melakukannya dengan mudah!
Ini juga instruksi pertama saya, jika Anda memiliki pertanyaan, saya akan mencoba menjawabnya secepat mungkin!
GitHub saya:
Langkah 1: Persediaan
Sensor Suhu DS18B20
DS18B20 adalah sensor satu kabel yang mengukur suhu, diproduksi oleh Maxim Integrated. Ada 2 macam sensor DS18B20, komponennya saja (yang saya pakai) dan versi tahan air, yang jauh lebih besar, tapi bukan itu yang saya butuhkan untuk proyek saya, jadi saya menggunakan komponennya saja. Sensor dapat mengukur suhu dalam kisaran -55 °C hingga +125 °C (-67 °F hingga +257 °F) dan memiliki akurasi 0,5 °C dari -10 °C hingga +85 °C. Ini juga memiliki resolusi yang dapat diprogram dari 9 bit hingga 12 bit.
Lembar Data:
Sensor potensiometer
Potensiometer adalah resistor dengan tiga terminal yang dapat diatur secara manual hanya dengan memutar bagian atas sensor. Posisi bagian atas menentukan tegangan keluaran potensiometer.
LSM303 Akselerometer + Kompas Breakout
Papan breakout LSM303 adalah kombinasi dari akselerometer tiga sumbu dan magnetometer / kompas, diproduksi oleh Adafruit. Ini digunakan dengan antarmuka I2C dari Raspberry Pi.
Ikhtisar:
Lembar Data:
MCP3008
Untuk membaca data dari potensiometer saya, saya menggunakan MCP3008, yang merupakan konverter analog ke digital 8 saluran 10 bit dengan antarmuka SPI dan cukup mudah untuk diprogram.
Lembar Data:
Speaker – Diameter 3” – 8 Ohm 1 Watt
Ini adalah kerucut speaker yang saya pilih setelah menghitung Tegangan dan Ampere yang dibutuhkan dan ini sangat cocok untuk proyek Raspberry Pi saya, yang diproduksi oleh Adafruit.
Ikhtisar:
MAX98357 I2S Kelas-D Mono Amplifier
Ini adalah amplifier yang disertakan dengan speaker, tidak hanya amplifier, ini juga merupakan konverter digital ke analog I2S, jadi ini juga sangat cocok untuk speaker & sistem audio saya.
Ikhtisar:
Lembar Data:
Arduino Uno
Arduino Uno adalah papan mikrokontroler open-source berdasarkan mikrokontroler Microchip ATmega328P, diproduksi oleh Arduino.cc. Papan Uno memiliki 14 pin Digital, 6 pin analog dan sepenuhnya dapat diprogram dengan perangkat lunak Arduino IDE
Ikhtisar:
Pengubah level
Ini adalah papan kecil yang menangani komunikasi antara Arduino Uno dan Raspberry Pi dan voltase yang berbeda, Arduino: 5V & Raspberry Pi: 3.3V. Ini diperlukan karena cincin NeoPixel terhubung ke Arduino dan berjalan di sana, sementara semua hal lainnya berjalan di Raspberry Pi.
Cincin NeoPixel RGB
Ini adalah cincin kecil yang diisi dengan 12 led RGB (Anda dapat membeli cincin yang lebih besar dengan lebih banyak led RGB, jika Anda mau). Yang dalam kasus saya terhubung ke Arduino Uno, tetapi juga dapat dihubungkan ke banyak perangkat lain dan sangat mudah digunakan.
Ikhtisar:
Layar LCD 16x2
Saya menggunakan Layar LCD dasar untuk mencetak suhu, volume, dan alamat IP saya.
Lembar Data:
Kartu SD Raspberry Pi 3B+ & 16GB
Seluruh proyek saya berjalan di Raspberry Pi 3B+ saya dengan gambar yang dikonfigurasi, yang akan saya bantu konfigurasikan nanti di instruksi saya.
GPIO T-Part, 2 Breadboard dan banyak kabel jumper
Untuk menghubungkan semua yang saya butuhkan papan tempat memotong roti dan kabel jumper, saya menggunakan bagian T GPIO sehingga saya memiliki lebih banyak ruang dan jelas pin mana yang mana.
Langkah 2: Skema dan Pengkabelan
Untuk skema saya, saya menggunakan Fritzing, ini adalah program yang dapat Anda instal yang memungkinkan Anda membuat skema dengan sangat mudah dalam berbagai jenis tampilan.
Unduh Fritzing:
Jadi, pastikan Anda menghubungkan semuanya dengan cara yang benar! Dalam kasus saya, warna kabel tidak sama seperti pada skema.
Langkah 3: Desain Basis Data
Kami mengumpulkan banyak data dari 3 sensor yang terhubung, jadi kami membutuhkan database untuk menyimpan data dan sensor. Nanti kita akan melihat cara mengkonfigurasi database pada Raspberry Pi dan cara menambahkan data ke dalamnya. Tapi pertama-tama desain database atau ERD (Entity Relationship Diagram) harus dibuat dan milik saya juga dinormalisasi dengan 3NF. Itu sebabnya kami membagi sensor menjadi tabel lain dan bekerja dengan ID.
Secara keseluruhan ini adalah desain database yang sangat mendasar dan mudah untuk dikerjakan lebih lanjut.
Langkah 4: Mempersiapkan Raspberry Pi
Jadi sekarang kami telah menyelesaikan beberapa dasar proyek. Mari kita mulai dengan Raspberry Pi!
Konfigurasi Kartu SD
Pertama, Anda memerlukan Kartu SD 16GB tempat Anda dapat meletakkan gambar dan program untuk mengunggah gambar awal ke kartu SD.
Perangkat lunak:
Mulai gambar:
Jadi setelah ini diunduh:
- Letakkan kartu SD Anda di komputer Anda.
- Buka Win32 yang baru saja Anda unduh.
- Pilih file gambar Raspbian yang juga baru saja Anda unduh.
- Klik 'tulis' ke lokasi kartu SD Anda.
Ini mungkin memakan waktu, tergantung pada perangkat keras Anda. Setelah ini selesai, kami siap untuk membuat beberapa penyesuaian akhir sebelum memasukkan gambar ke dalam RPi kami.
- Buka direktori kartu SD Anda, cari file bernama 'cmdline.txt' dan buka.
- Sekarang tambahkan 'ip=169.254.10.1' pada satu baris yang sama.
- Simpan file.
- Buat file bernama 'ssh' tanpa ekstensi atau konten.
Sekarang Anda AMAN dapat mengeluarkan kartu SD dari komputer Anda dan memasukkannya ke dalam Raspberry Pi TANPA daya. Setelah kartu SD masuk ke RPI, sambungkan kabel LAN dari komputer Anda ke port LAN RPi, setelah ini terhubung, Anda dapat menghubungkan daya ke RPi.
Sekarang kita ingin mengontrol Raspberry Pi kita, ini dilakukan melalui Putty.
Perangkat lunak dempul:
Setelah diunduh, buka Putty dan masukkan IP '169.254.10.1' dan Port '22' dan jenis koneksi: SSH. Sekarang kita akhirnya dapat membuka antarmuka baris perintah dan login dengan informasi login starter -> Pengguna: pi & Kata Sandi: raspberry.
Raspi-config
sudo raspi-config
Apa yang benar-benar penting untuk proyek ini adalah bagian antarmuka, kita harus mengaktifkan banyak antarmuka yang berbeda, mengaktifkan semua antarmuka berikut:
- Satu kawat
- SPI
- I2C
- Serial
Sekarang setelah kita selesai dengan raspi-config, mari kita coba membuat koneksi dengan internet.
Koneksi wifi
Pertama, Anda harus menjadi root untuk perintah berikut
sudo -i
Setelah Anda root, gunakan perintah berikut. SSID adalah nama jaringan Anda dan kata sandi jelas itu kata sandi.
wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf
Jika Anda melakukan kesalahan, Anda dapat memeriksa, memperbarui, atau menghapus jaringan ini hanya dengan memasukkan file tersebut:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Jadi setelah kita memasuki jaringan kita, mari masuk ke antarmuka klien WPA
wpa_cli
Pilih antarmuka Anda
antarmuka wlan0
Muat ulang file
mengkonfigurasi ulang
Dan akhirnya Anda dapat melihat apakah Anda terhubung dengan baik:
ip a
Memperbaharui peningkatan
Sekarang kita terhubung ke internet, memperbarui paket yang sudah diinstal akan menjadi langkah yang cerdas, jadi mari kita lakukan itu terlebih dahulu sebelum menginstal paket lain.
sudo apt-get update
sudo apt-get upgrade
Database MariaDB
Instal server database MariaDB:
sudo apt-get install mariadb-server
Server Web Apache2
Instal server web Apache2:
sudo apt install apache2
Python
Instal Python:
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Paket Python
Anda harus menginstal semua paket ini untuk membuat backend bekerja dengan sempurna:
- Labu
- Flask-Cors
- Labu-MySql
- Flask-SocketIO
- PyMySQL
- Permintaan
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- wasaccel
Perpustakaan pembicara
Instal perpustakaan speaker dari Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | pesta
Saatnya untuk memulai ulang
sudo reboot
Langkah 5: Teruskan Rekayasa Database Kami ke RPi
Sekarang kita telah menginstal semua yang kita butuhkan, mari kita letakkan Database yang kita rancang di Raspberry Pi kita!
Jadi pertama-tama kita perlu mem-forward insinyur database kita di meja kerja MySql, sambil melakukan itu, salin kode database lengkap Anda dan hapus semua kata 'terlihat' di dalamnya. Jadi setelah disalin, mari buka Putty lagi, masuk dan ketik:
sudo mysql
dan sekarang Anda berada di antarmuka mysql, salin kode database Anda di dalamnya dan tekan enter.
Sekarang kita hanya perlu membuat pengguna
BUAT PENGGUNA 'pengguna' DIIDENTIFIKASI OLEH 'pengguna';
HIBAH SEMUA HAK ISTIMEWA PADA *.* KEPADA 'pengguna';
Sekarang reboot.
Jadi semuanya harus diatur sekarang, Anda juga dapat membuat koneksi dengan Pi dan MySql Workbench Anda, jadi lebih mudah untuk memeriksa semua data di tabel Anda.
Langkah 6: Mengonfigurasi Bluetooth di RPi
Kami sedang membuat speaker Bluetooth, jadi ini berarti media sedang dikirim dari sumber kami ke Raspberry Pi dan ini bisa dilakukan dengan cukup mudah, mari kita langsung ke dalamnya!
Sumber saya untuk koneksi bluetooth:
Menghapus bluealsa yang sudah berjalan
sudo rm /var/run/bluealsa/*
Tambahkan peran Sink profil A2DP
sudo bluealsa -p a2dp-sink &
Buka antarmuka bluetooth dan nyalakan bluetooth Anda
bluetoothctl
nyalakan
Siapkan agen pasangan
agen aktif
default-agen
Jadikan RPi Anda dapat ditemukan
dapat ditemukan di
- Sekarang dari perangkat bluetooth Anda, cari RPi dan hubungkan dengannya.
- Konfirmasikan pemasangan di kedua perangkat, ketik 'ya' di dempul Anda.
- Otorisasi layanan A2DP, ketik 'ya' lagi.
- Setelah ini selesai, kami dapat mempercayai perangkat kami, jadi kami tidak harus melalui semua ini setiap kali kami ingin terhubung
percaya XX:XX:XX:XX:XX:XX (Alamat mac bluetooth Anda dari perangkat sumber kami)
Jika Anda ingin RPi Anda tetap dapat ditemukan, itu adalah pilihan Anda sendiri, tetapi saya lebih suka mematikannya lagi, sehingga orang tidak dapat mencoba terhubung dengan kotak Anda
tidak dapat ditemukan
Kemudian kita bisa keluar dari antarmuka bluetooth kita
keluar
Dan akhirnya perutean audio kami: penerusan perangkat sumber kami ke RPi
bluealsa-aplay 00:00:00:00:00:00
Sekarang perangkat kami sepenuhnya terhubung ke Raspberry kami dan Anda seharusnya dapat memutar media dari perangkat sumber Anda di speaker Pi.
Langkah 7: Menulis Backend Lengkap
Jadi sekarang setup selesai, kita akhirnya bisa mulai menulis program backend kita!
Saya menggunakan PyCharm untuk seluruh backend saya, Anda hanya perlu memastikan proyek PyCharm Anda terhubung ke Raspberry Pi Anda, ini berarti jalur Deployment Anda sudah diatur di pengaturan Anda dan Anda menginstal semua paket yang kami butuhkan, seharusnya sudah dilakukan pada langkah 4.
Saya menggunakan kelas saya sendiri dan semua ini juga termasuk dalam GitHub saya. Tautan ada di intro jika Anda melewatkannya;)
Dalam file backend saya, saya menggunakan kelas threading, sehingga semuanya dapat berjalan pada waktu yang sama dan tidak akan mengganggu satu sama lain. Dan di bagian bawah Anda mendapatkan semua rute sehingga kami dapat dengan mudah mendapatkan data di frontend kami.
Langkah 8: Menulis Frontend (HTML, CSS & JavaScript)
Sekarang setelah backend selesai, kita bisa mulai menulis front-end penuh.
HTML & CSS dilakukan dengan cukup mudah, cobalah bekerja seluler terlebih dahulu sebanyak mungkin, karena kami sering terhubung dengan Bluetooth dari perangkat seluler, akan lebih mudah untuk mengontrol dari dasbor seluler.
Anda dapat mendesain dasbor Anda dengan cara apa pun yang Anda inginkan, saya akan meninggalkan kode dan desain saya di sini, Anda dapat melakukan apa pun yang Anda suka!
Dan Javascript tidak terlalu sulit, bekerja dengan beberapa GET dari rute backend saya, banyak pendengar acara dan beberapa struktur socketio.
Langkah 9: Membangun Kasus Saya dan Menggabungkannya
Saya pertama kali memulai dengan beberapa sketsa tentang bagaimana saya ingin kasingnya terlihat, sesuatu yang penting adalah bahwa itu harus cukup besar agar semuanya muat, karena kami memiliki sirkuit besar untuk dimasukkan ke dalam kasing.
Saya membuat kasing dari kayu, saya pikir ini adalah yang paling mudah untuk dikerjakan ketika Anda tidak memiliki banyak pengalaman dengan kasing bangunan dan Anda juga memiliki banyak hal yang dapat Anda lakukan dengannya.
Saya mulai dari kasing untuk botol anggur dan baru saja mulai menggergaji kayu. Setelah saya memiliki kasing dasar saya, saya hanya perlu mengebor lubang di dalamnya (banyak di bagian depan kasing, seperti yang Anda lihat pada gambar: P) dan menaruh beberapa paku di dalamnya, ini adalah kasing yang sangat mendasar, tapi itu terlihat sangat keren dan sangat cocok.
Dan begitu kasusnya selesai, saatnya untuk menyatukan semuanya, seperti yang Anda lihat di gambar terakhir! Ini agak berantakan di dalam kotak, tetapi semuanya berfungsi dan saya tidak memiliki lebih banyak ruang, jadi saya menyarankan Anda untuk membuat kasing yang lebih besar jika Anda membuat ulang proyek saya.
Langkah 10: Beberapa Masalah yang Saya Hadapi dalam Perjalanan Membuat Speaker Slimbox…
Kesalahan Bluetooth & bluealsa
Setiap kali saya ingin memutar musik atau terhubung dengan bluetooth, saya menerima kesalahan dari bluetooth dan bluealsa. Saya melakukan riset tentang itu dan ini adalah solusi untuk masalah saya. Jadi untuk beberapa alasan bluetooth saya diblokir lunak, tidak yakin apakah ini standar yang diblokir lembut. Anda dapat melihat apakah itu dengan mengetikkan perintah berikut di Putty Anda.
daftar rfkill
Jadi jika diblokir lunak, gunakan saja ini:
rfkill buka blokir bluetooth
Dan Anda mungkin ingin mem-boot ulang setelah ini, sumber saya:
Masalah koneksi serial
Jadi masalah besar lainnya yang saya miliki adalah saya tidak dapat membuat koneksi dengan Arduino saya melalui levelshifter, setelah beberapa pencarian saya menemukan bahwa '/ dev/ttyS0' saya hilang dan ini mungkin karena pembaruan RPi Anda. Juga menemukan solusi tentang ini
Anda harus mengaktifkan kembali konsol serial dengan raspi-config, reboot, dan kemudian secara manual menghapus bit "console=serial0, 115200" dari '/boot/cmdline.txt'. Konfirmasikan bahwa "enable_uart=1" ada di ' /boot/config.txt', dan reboot lagi. Itu akan mengembalikan port ttyS0 Anda, serta tautan lunak '/dev/serial0' ke sana.
Sumber:
Direkomendasikan:
Lampu LED Meja Cerdas - Pencahayaan Cerdas Dengan Arduino - Ruang Kerja Neopiksel: 10 Langkah (dengan Gambar)
Lampu LED Meja Cerdas | Pencahayaan Cerdas Dengan Arduino | Ruang Kerja Neopiksel: Saat ini kita menghabiskan banyak waktu di rumah, belajar dan bekerja secara virtual, jadi mengapa tidak membuat ruang kerja kita lebih luas dengan sistem pencahayaan khusus dan cerdas berbasis Arduino dan LED Ws2812b. Di sini saya tunjukkan cara membangun Smart Anda Lampu LED Meja yang
Lampu Keamanan Cerdas WiFi DIY Dengan Shelly 1: 6 Langkah (dengan Gambar)
Lampu Keamanan Cerdas WiFi DIY Dengan Shelly 1: Instruksi ini akan melihat cara membuat lampu keamanan pintar DIY menggunakan relai pintar Shelly 1 dari Shelly. Membuat lampu keamanan menjadi cerdas akan memungkinkan Anda untuk memiliki kontrol lebih besar saat diaktifkan dan berapa lama lampu itu menyala. Bisa jadi akt
Jam Alarm Cerdas: Jam Alarm Cerdas Dibuat Dengan Raspberry Pi: 10 Langkah (dengan Gambar)
Jam Alarm Cerdas: Jam Alarm Cerdas yang Dibuat Dengan Raspberry Pi: Pernahkah Anda menginginkan jam pintar? Jika iya, ini solusinya untuk Anda! Saya membuat Smart Alarm Clock, ini adalah jam yang bisa Anda ubah waktu alarmnya sesuai dengan website. Saat alarm berbunyi, akan ada suara (buzzer) dan 2 lampu akan
Berkebun Cerdas Berbasis IoT dan Pertanian Cerdas Menggunakan ESP32: 7 Langkah
Berkebun Cerdas dan Pertanian Cerdas Berbasis IoT Menggunakan ESP32: Dunia berubah seiring waktu dan pertanian. Saat ini, Orang mengintegrasikan elektronik di setiap bidang dan pertanian tidak terkecuali untuk ini. Penggabungan elektronik dalam pertanian ini membantu petani dan orang-orang yang mengelola kebun.Dalam hal ini
Skala Cerdas DIY Dengan Jam Alarm (dengan Wi-Fi, ESP8266, Arduino IDE dan Adafruit.io): 10 Langkah (dengan Gambar)
Skala Cerdas DIY Dengan Jam Alarm (dengan Wi-Fi, ESP8266, Arduino IDE dan Adafruit.io): Dalam proyek saya sebelumnya, saya mengembangkan skala kamar mandi pintar dengan Wi-Fi. Itu dapat mengukur berat pengguna, menampilkannya secara lokal dan mengirimkannya ke cloud. Anda bisa mendapatkan detail lebih lanjut tentang ini di tautan di bawah ini: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi