Daftar Isi:

Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar: 9 Langkah
Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar: 9 Langkah

Video: Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar: 9 Langkah

Video: Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar: 9 Langkah
Video: Apaan nih..??? 2024, November
Anonim
Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar
Mood Speaker- Speaker Kuat untuk Musik Suasana Hati yang Akan Diputar Berdasarkan Suhu Sekitar

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

Skema dan Pengkabelan
Skema dan Pengkabelan
Skema dan Pengkabelan
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

Desain Basis Data
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

Menyiapkan Database ke RPi!
Menyiapkan Database ke 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

Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya
Membangun Kasus Saya dan Menggabungkan Semuanya

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: