Daftar Isi:
- Langkah 1: Persediaan
- Langkah 2: Skema dan Pengkabelan
- Langkah 3: Desain Basis Data
- Langkah 4: Siapkan Raspberry Pi
- Step 5: Setting Up the Database to the 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
Video: Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar: 9 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Hei!
Untuk proyek sekolah saya di MCT Howest Kortrijk, saya membuat Mood Speaker ini adalah perangkat speaker Bluetooth pintar dengan sensor yang berbeda, termasuk LCD dan strip led WS2812b. Speaker memutar musik latar berdasarkan suhu tetapi juga dapat digunakan sebagai bluetooth biasa pembicara. Semuanya berjalan di Raspberry Pi (Database, Webserver, Backend).
Jadi instruksi ini adalah proses langkah demi langkah bagaimana saya mewujudkan proyek ini dalam 3 minggu. Jadi jika kalian ingin membuat ulang proyek saya, Anda dapat mengikuti panduan
Instruksi ini adalah yang pertama saya tulis jadi jika ada pertanyaan, saya akan mencoba menjawabnya secepat mungkin!
GitHub saya:
Langkah 1: Persediaan
Kartu SD Raspberry Pi 3B & 16GB
Seluruh proyek saya berjalan di Raspberry Pi 3B saya dengan gambar yang dikonfigurasi, yang akan saya jelaskan di langkah selanjutnya (Langkah 4: Setup Raspberry Pi)
Layar LCD 16x2
Saya menggunakan Layar LCD dasar untuk mencetak suhu, kecerahan, dan alamat IP saya.
Lembar Data:
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:
MCP3008
Untuk membaca data dari sensor LDR dan PIR saya, saya menggunakan MCP3008, yang merupakan konverter analog ke digital 8 saluran 10 bit dengan antarmuka SPI dan cukup mudah untuk diprogram.
Lembar Data:
Sensor gerak PIR
Untuk mendeteksi ketika ada seseorang yang masuk dan keluar kamar saya, saya menggunakan sensor inframerah pasif karena mudah digunakan dan berukuran kecil.
Lembar Data:
LDR
Saya menggunakan photoresistor atau LDR (Light Decreasing Resistance, atau resistor yang bergantung pada cahaya) untuk mendeteksi tingkat kecerahan ruangan. Dan juga menyalakan Ledstrip saya saat gelap.
Speaker – Diameter 3” – 4 Ohm 3 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 ledstrip terhubung ke Arduino dan berjalan di sana, sementara semua hal lainnya berjalan di Raspberry Pi.
WS2812B - Strip LED
Ini adalah strip led dengan 60 led RGB (Anda dapat membeli strip yang lebih panjang 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.
Lembar data:
GPIO T-Part, 1 Breadboard dan banyak kabel jumper
Untuk menghubungkan semua yang saya butuhkan papan tempat memotong roti dan kabel jumper, saya tidak menggunakan GPIO T-part tetapi Anda dapat menggunakannya untuk mengetahui dengan jelas bin mana yang pergi ke mana.
Langkah 2: Skema dan Pengkabelan
Untuk membuat skema saya, saya menggunakan Fritzing, ini adalah program yang dapat Anda instal yang memungkinkan Anda membuat skema dengan sangat mudah dalam berbagai jenis tampilan. Saya menggunakan papan tempat memotong roti dan tampilan skema.
Unduh Fritzing:
Pastikan semuanya terhubung dengan benar. Saya menggunakan warna untuk membuatnya sedikit lebih jelas untuk mengetahui di mana menghubungkan kabel. Dalam kasus saya, saya menggunakan warna berbeda untuk kabelnya
Langkah 3: Desain Basis Data
Kami mengumpulkan banyak data dari 3 sensor (Suhu dari DS18B20, Kecerahan dari LDR dan Status dari sensor PIR). Jadi yang terbaik adalah menyimpan semua data ini dalam database. Saya akan menjelaskan pada langkah selanjutnya bagaimana mengkonfigurasi database (Langkah 5: Forward Engineering Database Kami ke RPi!) Tetapi pertama-tama harus dibuat desain atau ERD (Entity Relationship Diagram). Milik saya dinormalisasi dengan 3NF itu sebabnya kami membagi komponen dan riwayat komponen ke dalam tabel lain. Kami menggunakan database Musik untuk melacak lagu-lagu yang telah didengarkan.
Secara keseluruhan ini adalah desain database yang sangat mendasar dan mudah untuk dikerjakan lebih lanjut.
Langkah 4: Siapkan Raspberry Pi
Jadi sekarang kami telah menyelesaikan beberapa dasar proyek. Mari kita mulai dengan menyiapkan Raspberry Pi!
Bagian 1: Mengkonfigurasi Kartu SD
1) Unduh Perangkat Lunak dan File yang Diperlukan
Anda perlu mengunduh 2 perangkat lunak dan 1 OS yaitu Raspbian untuk proses lengkap ini. Perangkat lunak pertama: Perangkat lunak pertama adalah Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
Perangkat lunak kedua: Perangkat lunak kedua adalah Pemformat Kartu SD.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Ini adalah sistem operasi utama dari Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Ekstrak semua file ke desktop.
2) Dapatkan Kartu SD dan Pembaca Kartu
Dapatkan kartu SD kelas 10 minimal 8GB dengan pembaca kartu. Masukkan kartu itu ke pembaca kartu dan colokkan ke port USB.
3) Format Kartu SD
Buka SD Card Formatter dan pilih drive.
Klik pada format dan jangan ubah opsi lain.
Ketika pemformatan selesai, klik OK.
4) Tulis OS di Kartu SD
Buka win32diskimager.
Jelajahi file.img dari Raspbian OS yang diekstrak dari file yang diunduh.
Klik buka lalu klik Tulis.
Jika ada peringatan yang muncul, abaikan saja dengan mengklik OK. Tunggu hingga penulisan selesai dan mungkin perlu beberapa menit. Jadi bersabarlah.
n
5) Setelah ini selesai, kami siap untuk melakukan 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. (cara termudah adalah membuat file txt dan menghapus.txt setelahnya)
Sekarang semuanya sudah terpasang pada kartu SD Anda AMAN dapat mengeluarkannya dari komputer Anda dan memasukkannya ke dalam Raspberry Pi TANPA menghubungkan 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.
Bagian 2: Mengkonfigurasi RPi
Dempul
Sekarang kita ingin mengkonfigurasi 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. (Disarankan untuk mengubahnya secepat mungkin. Berikut adalah panduan caranya:
Raspi-config
Kita harus mengaktifkan antarmuka yang berbeda dan untuk melakukan itu pertama-tama kita harus mengetikkan kode berikut:
sudo raspi-config
Hal-hal yang perlu kita aktifkan ada di bagian interfacing. Kita perlu mengaktifkan antarmuka berikut:
- Satu kawat
- Serial
- I2C
- SPI
Itu semua yang perlu kami lakukan dengan raspi-config
Menambahkan WIFI Anda
Pertama, Anda harus menjadi root agar perintah berikut menjadi root
sudo -i
Setelah Anda melakukan root, gunakan perintah berikut: (Ganti SSID dengan nama jaringan Anda dan kata sandi dengan kata sandi jaringan Anda)
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 perintah berikut:
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
Bagian 3: Memperbarui RPi + menginstal perangkat lunak
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
Setelah memperbarui RPi, kita harus menginstal perangkat lunak berikut:
Database MariaDB
sudo apt-get install mariadb-server
Server Web Apache2
sudo apt install apache2
Python
update-alternatives --install /usr/bin/python python /usr/bin/python3.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
- Permintaan PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Perpustakaan pembicara
Untuk menggunakan speaker dengan amplifier, kita harus memasang perpustakaan untuk itu
ikal -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 kita telah menginstal semua yang kita butuhkan, mari kita letakkan Database yang kita rancang di Raspberry Pi kita!
Untuk mengatur database kita harus menghubungkan MySql dan RPi. Untuk itu kita akan membuka MySQLWorkbench dan membuat koneksi baru. Saat melihat gambar, Anda harus mengubah untuk mengubah info menjadi milik Anda.
Jika Anda belum mengubah apa pun, Anda dapat menggunakan untuk SSH pi dan raspberry, untuk MySQL mysql dan mysql.
Jika ada yang kurang jelas, Anda juga dapat mengikuti tutorial ini:
Untuk mengekspor database Anda seharusnya lebih mudah menggunakan PHPmyAdmin karena Anda bisa mendapatkan banyak kesalahan saat melakukannya dengan MySql
Langkah 6: Mengonfigurasi Bluetooth di RPi
Kami sedang membuat speaker Mood, yang juga dapat kami gunakan dengan musik kami sendiri, jadi ini lebih mudah saat RPi diputar
terhubung ke bluetooth Saya mengikuti tutorial untuk itu yang dapat Anda temukan di sini:
scribles.net/streaming-bluetooth-audio-fr…
Saya menulis semuanya di sini juga untuk semua orang yang ingin membuatnya kembali
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 hidupkan
Siapkan agen pasangan
agen di default-agent
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 terhubung ke Raspberry kami dengan bluetooth dan Anda harus dapat mengujinya dengan memutar media apa pun misalnya Spotify, dll.
Langkah 7: Menulis Backend Lengkap
Jadi sekarang setup selesai, kita akhirnya bisa mulai menulis program backend kita!
Saya menggunakan Visual Studio Code untuk seluruh backend saya, Anda hanya perlu memastikan proyek Visual Studio Anda terhubung ke Raspberry Pi Anda, ini berarti kabel LAN Anda harus terhubung ke RPi Anda dan membuat koneksi SSH. (info tentang cara membuat koneksi jarak jauh dapat ditemukan di sini:
Saya menggunakan kelas saya sendiri dan semua ini juga termasuk dalam GitHub saya.
Dalam file backend saya, saya menggunakan kelas yang berbeda, jadi semuanya dapat digunakan secara terpisah dan agar kode utama saya tidak berantakan dengan semua utas yang berbeda. Saya menggunakan threading untuk menjalankan semua kelas yang berbeda sekaligus. 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 dan CSS cukup sulit bagi saya, saya melakukan yang terbaik untuk menjadikannya seluler terlebih dahulu karena saya dapat menghubungkannya dengan bluetooth untuk mengubah lagu dengan Spotify. Jadi 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 mudah bagi saya, bekerja dengan beberapa GET dari rute backend saya, banyak pendengar acara dan beberapa struktur socketio untuk mendapatkan data dari sensor saya.
Langkah 9: Membangun Kasus Saya dan Menggabungkannya
Saya pertama kali mulai membuat sketsa bagaimana saya ingin kasingnya terlihat, sesuatu yang penting adalah bahwa itu harus cukup besar untuk semuanya muat, karena kami punya sirkuit besar untuk dimasukkan ke dalam kasing tetapi harus tetap kompak sehingga tidak' tidak memakan banyak tempat
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 papan tua yang saya letakkan di sekitar dan baru saja mulai menggergaji kayu. Setelah saya memiliki kasing dasar, saya hanya perlu mengebor lubang di dalamnya (banyak di bagian depan kasing, seperti yang Anda lihat pada gambar dan memasang paku di dalamnya, ini adalah kasing yang sangat mendasar, tetapi terlihat cukup keren dan sangat cocok Saya juga memutuskan untuk mengecatnya putih agar terlihat bagus.
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.
Direkomendasikan:
Lampu Suasana Hati LED $1 Dengan ATtiny13 dan WS2812: 7 Langkah
Lampu Mood LED $1 Dengan ATtiny13 dan WS2812: Ini adalah lampu mood murah dengan empat mode.1. Percikan pelangi. Sebuah percikan cahaya bergerak ke atas dari waktu ke waktu dan secara bertahap berubah warna.2. Cahaya pelangi. Cahaya stabil yang secara bertahap berubah warna.3. Simulasi api lilin.4. Mati. Anda boleh
Kipas yang Diatur PWM Berdasarkan Suhu CPU untuk Raspberry Pi: 4 Langkah (dengan Gambar)
Kipas yang Diatur PWM Berdasarkan Suhu CPU untuk Raspberry Pi: Banyak casing untuk Raspberry Pi dilengkapi dengan kipas 5V kecil untuk membantu mendinginkan CPU. Namun, kipas ini biasanya cukup berisik dan banyak orang memasangnya pada pin 3V3 untuk mengurangi kebisingan. Kipas angin ini biasanya diberi nilai 200mA yang cukup
Cara Merakit Pengontrol Pegangan yang Sederhana dan Kuat-- Berdasarkan Mikro: Bit: 10 Langkah (dengan Gambar)
Cara Merakit Handle Controller yang Sederhana dan Kuat-- Berdasarkan Mikro: Bit: Nama handlenya Handlebit.Bentuknya adalah handle dan tampilannya sangat keren! Sekarang kita dapat membuat pengenalan tentang Handlebit, mari kita lanjutkan
Cahaya Suasana Hati Android yang Dikendalikan Suara: 11 Langkah (dengan Gambar)
Cahaya Suasana Hati Android Terkendali Suara: Saya perlu membuat kelas untuk Grup Pembuat lokal kami. Sesuatu yang menjamin bahkan pengunjung pertama kali mendapatkan kemenangan yang pasti dan hadiah besar tanpa kerumitan, tanpa keributan, dan tanpa alat atau bahan khusus. Para siswa perlu membawa pulang sesuatu yang
Proyektor Suasana Hati (Philips Hue Light yang Diretas Dengan GSR) TfCD: 7 Langkah (dengan Gambar)
Proyektor Suasana Hati (Philips Hue Light yang Diretas Dengan GSR) TfCD: Oleh Laura Ahsmann & Maaike Weber Tujuan: Suasana hati yang rendah dan stres adalah bagian besar dari kehidupan modern yang serba cepat. Itu juga sesuatu yang tidak terlihat di luar. Bagaimana jika kita dapat memproyeksikan tingkat stres kita secara visual dan akustik dengan