Sadržaj:

Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka
Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka

Video: Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka

Video: Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka
Video: Часть 1. Аудиокнига «История Юлия Цезаря» Джейкоба Эббота (главы 1–6) 2024, Juli
Anonim
Mood Speaker- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline
Mood Speaker- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline

Zdravo!

Za svoj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametan Bluetooth zvučnički uređaj s različitim senzorima, uključen LCD i WS2812b LED traka. Zvučnik pušta muziku u pozadini ovisno o temperaturi, ali se može koristiti i kao obični bluetooth zvučnik. Sve radi na Raspberry Pi -u (baza podataka, web -poslužitelj, pozadina).

Dakle, ovo uputstvo je korak po korak proces kako sam realizirao ovaj projekt u 3 sedmice. Dakle, ako želite rekreirati moj projekt, možete slijediti vodič

Ovo uputstvo je moje prvo koje sam napisao pa ako bude bilo kakvih pitanja, pokušat ću odgovoriti na njih što je brže moguće!

Moj GitHub:

Korak 1: Potrošni materijal

Raspberry Pi 3B i 16GB SD kartica

Cijeli moj projekt radi na mom Raspberry Pi 3B sa konfiguriranom slikom, što ću objasniti u kasnijem koraku (4. korak: Postavljanje Raspberry Pi)

LCD ekran 16x2

Koristio sam osnovni LCD ekran za štampanje svoje temperature, svjetline i IP adrese.

Tehnički list:

DS18B20 Senzor temperature

DS18B20 je jednožični senzor koji mjeri temperaturu, proizveden od strane Maxim Integrated. Postoje dvije vrste senzora DS18B20, samo komponentna (koju sam koristio) i vodootporna verzija, koja je mnogo veća, ali to nije ono što mi je trebalo za moj projekt, pa sam koristio samo komponentu. Senzor može mjeriti temperaturu u rasponu od -55 ° C do +125 ° C (-67 ° F do +257 ° F) i ima tačnost od 0,5 ° C od -10 ° C do +85 ° C. Takođe ima programibilnu rezoluciju od 9 bita do 12 bita.

Tehnički list:

MCP3008

Za čitanje podataka s LDR i PIR senzora koristio sam MCP3008, koji je 8-kanalni 10-bitni analogno-digitalni pretvarač sa SPI sučeljem i prilično ga je lako programirati.

Tehnički list:

PIR senzor pokreta

Da bih otkrio kada netko ulazi i izlazi iz moje sobe, upotrijebio sam pasivni infracrveni senzor jer su laki za korištenje i mali su.

Tehnički list:

LDR

Koristio sam fotootpornik ili LDR (otpor koji smanjuje svjetlost, ili otpornik ovisan o svjetlu) da otkrijem razinu osvjetljenja prostorije u kojoj se nalazi. I da uključim LED traku kada padne mrak.

Zvučnik - 3”prečnik - 4 Ohm 3 Watt

Ovo je konus zvučnika koji sam odabrao nakon izračunavanja napona i ampera koji su mu potrebni, a ovo je savršeno odgovaralo mom projektu Raspberry Pi, koji je proizveo Adafruit.

Pregled:

MAX98357 I2S Class-D mono pojačalo

Ovo je pojačalo koje dolazi sa zvučnikom, ne samo da je pojačalo, već je i I2S digitalno -analogni pretvarač, tako da se savršeno uklapa i u moj zvučnik i audio sistem.

Pregled:

Tehnički list:

Arduino Uno

Arduino Uno je ploča mikrokontrolera otvorenog koda zasnovana na mikrokontroleru Microchip ATmega328P, proizvođača Arduino.cc. Uno ploča ima 14 digitalnih pinova, 6 analognih pinova i potpuno je programabilna sa Arduino IDE softverom

Pregled:

Levelshifter

Ovo je mala ploča koja se brine za komunikaciju između Arduino Uno i Raspberry Pi i različitih napona, Arduino: 5V i Raspberry Pi: 3.3V. To je potrebno jer je LED traka povezana s Arduinom i tamo radi, dok sve ostale stvari rade na Raspberry Pi.

WS2812B - Ledstrip

Ovo je LED traka sa 60 RGB LED dioda (ako želite, možete kupiti duže trake sa više RGB LED dioda). Što je u mom slučaju povezano s Arduino Uno, ali se može povezati i sa mnogim drugim uređajima i zaista je jednostavno za korištenje.

Tehnički list:

GPIO T-Part, 1 Breadboard i puno kratkospojnika

Za povezivanje svega što mi je potrebno za matične ploče i kratkospojnike, nisam koristio GPIO T-dio, ali pomoću njega možete jasno znati koja kanta gdje ide.

Korak 2: Shema i ožičenje

Shema i ožičenje
Shema i ožičenje
Shema i ožičenje
Shema i ožičenje

Za izradu svoje sheme koristio sam Fritzing, to je program koji možete instalirati koji vam omogućuje da kreirate shemu vrlo jednostavno u različitim vrstama prikaza. Koristio sam matičnu ploču i shematski prikaz.

Preuzmite Fritzing:

Provjerite je li sve ispravno povezano. Koristio sam boje kako bih malo jasnije znao gdje spojiti žice. U mom slučaju koristio sam različite boje za žice

Korak 3: Dizajn baze podataka

Dizajn baze podataka
Dizajn baze podataka

Prikupljamo mnogo podataka sa 3 senzora (temperatura iz DS18B20, svjetlina iz LDR-a i status sa PIR-senzora). Zato je najbolje da sve te podatke držite u bazi podataka. Objasnit ću u kasnijem koraku kako konfigurirati bazu podataka (Korak 5: Inženjering naše baze podataka na RPi!) Ali prvo se mora napraviti dizajn ili ERD (Entity Relationship Diagram). Moj je normaliziran s 3NF -om, zato smo podijelili komponente i povijest komponenti u drugu tablicu. Koristimo muzičku bazu podataka da bismo pratili pjesme koje su slušane.

Sve u svemu, ovo je zaista jednostavan i jednostavan dizajn baze podataka za daljnji rad.

Korak 4: Postavite Raspberry Pi

Dakle, sada kada smo završili neke osnove projekta. Započnimo s postavljanjem Raspberry Pi!

1. dio: Konfiguriranje SD kartice

1) Preuzmite potreban softver i datoteke

Za ovaj kompletan proces trebate preuzeti 2 softvera i 1 OS, tj. Raspbian. 1. softver: Prvi softver je Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

2. softver: Drugi softver je SD Card Formatter.

www.sdcard.org/downloads/formatter_4/

Raspbian OS: Ovo je glavni operativni sistem Pi.

www.raspberrypi.org/downloads/raspberry-pi-os/

Izvucite sve datoteke na radnu površinu.

2) Nabavite SD karticu i čitač kartica

Nabavite najmanje 8 GB SD kartice razreda 10 sa čitačem kartica. Umetnite tu karticu u čitač kartica i priključite je na USB priključak.

3) Formatirajte SD karticu

Otvorite SD Card Formatter i odaberite pogon.

Kliknite na format i ne mijenjajte druge opcije.

Kada je formatiranje dovršeno, kliknite na OK.

4) Napišite OS na SD karticu

Otvorite win32diskimager.

Pregledajte.img datoteku Raspbian OS -a koja je izdvojena iz preuzete datoteke.

Pritisnite na open, a zatim na Write.

Ako se pojavi upozorenje, zanemarite ga klikom na U redu. Sačekajte da se pisanje završi i može potrajati nekoliko minuta. Zato budite strpljivi.

n

5) Nakon što to učinimo, spremni smo za konačna prilagođavanja prije stavljanja slike u RPi.

Idite u direktorij vaše SD kartice, potražite datoteku pod nazivom 'cmdline.txt' i otvorite je.

Sada dodajte 'ip = 169.254.10.1' u isti red.

Sačuvajte datoteku.

Kreirajte datoteku pod nazivom 'ssh' bez ekstenzije ili sadržaja. (Najjednostavniji način je stvoriti txt datoteku i nakon toga ukloniti.txt)

Sada kada je sve instalirano na SD kartici, možete je SIGURNO izbaciti iz računara i staviti u Raspberry Pi BEZ priključivanja napajanja. Nakon što SD kartica uđe u RPI, povežite LAN kabel s računara na RPi LAN port. Nakon što je ovo spojeno, možete priključiti napajanje na RPi.

Dio 2: Konfiguriranje RPi -ja

Git

Sada želimo konfigurirati naš Raspberry Pi, to se radi putem Puttyja.

Softver za kit:

Nakon preuzimanja otvorite Putty i umetnite IP '169.254.10.1' i Port '22' te vrstu veze: SSH.

Sada konačno možemo otvoriti sučelje naredbene linije i prijaviti se s podacima za prijavu za početak -> Korisnik: pi & Lozinka: malina. (Preporučuje se da ga promijenite što je prije moguće. Evo vodiča kako:

Raspi-config

Morat ćemo omogućiti različita sučelja, a da bismo to učinili, prvo moramo upisati sljedeći kod:

sudo raspi-config

Stvari koje moramo omogućiti su u odjeljku povezivanja. Moramo omogućiti sljedeće interfejse:

  • Jednožilni
  • Serial
  • I2C
  • SPI

To je bilo sve što smo trebali učiniti s raspi-config

Dodavanje WIFI -ja

Prvo morate biti root da bi naredna naredba postala root

sudo -i

Nakon što ste root, upotrijebite sljedeću naredbu: (Zamijenite SSID mrežnim imenom i lozinku lozinkom mreže)

wpa_passphrase "ssid" "lozinka" >> /etc/wpa_supplicant/wpa_supplicant.conf

U slučaju da ste učinili nešto pogrešno, možete provjeriti, ažurirati ili izbrisati ovu mrežu jednostavnim unosom sljedeće naredbe:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Dakle, nakon što smo ušli u našu mrežu, uđimo u WPA klijentsko sučelje

wpa_cli

Odaberite svoje sučelje

interfejs wlan0

Ponovo učitajte datoteku

ponovo konfigurirati

I na kraju možete vidjeti jeste li dobro povezani:

ip a

Dio 3: Ažuriranje softvera RPi + za instaliranje

Sada kada smo spojeni na internet, ažuriranje već instaliranih paketa bio bi pametan potez, pa učinimo to prije instaliranja drugih paketa.

sudo apt-get update

sudo apt-get nadogradnja

Nakon ažuriranja RPi -a morat ćemo instalirati sljedeći softver:

MariaDB baza podataka

sudo apt-get install mariadb-server

Apache2 Web server

sudo apt instalirajte apache2

Python

nadogradnja-alternative --install/usr/bin/python python /usr/bin/python3.7 1 alternative-nadogradnja --install/usr/bin/python python/usr/bin/python3 2

Python paket

Morat ćete instalirati sve ove pakete da bi pozadina radila savršeno:

  • Flask
  • Flask-Cors
  • Flask-MySql
  • Flask-SocketIO
  • PyMySQL Zahtevi
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-websocket

Biblioteka zvučnika

Za korištenje zvučnika s pojačalom morat ćemo za njega instalirati biblioteku

curl -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

Postavljanje baze podataka na RPi!
Postavljanje baze podataka na RPi!

Sada kada smo instalirali sve što nam je potrebno, stavimo našu bazu podataka koju smo dizajnirali na naš Raspberry Pi!

Za postavljanje baze podataka morat ćemo povezati MySql i RPi. Za to ćemo otvoriti MySQLWorkbench i uspostaviti novu vezu. Kada gledate sliku, morat ćete promijeniti da promijenite podatke u svoje.

Ako još niste ništa promijenili, možete koristiti za SSH pi i malinu, za MySQL mysql i mysql.

Kad vam nešto nije jasno, možete slijediti i ovaj vodič:

Da biste izvezli bazu podataka, trebalo bi biti lakše koristiti PHPmyAdmin jer možete učiniti mnogo grešaka radeći to s MySql -om

Korak 6: Konfiguriranje Bluetootha na našim RPi

Kreiramo Mood zvučnik koji možemo koristiti i sa vlastitom muzikom, tako da je lakše kada je RPi

spojen na bluetooth slijedio sam vodič za njega koji možete pronaći ovdje:

scribles.net/streaming-bluetooth-audio-fr…

Zapisao sam ovdje i sve za sve koji to žele ponovo stvoriti

Uklanjanje već pokrenute bluealse

sudo rm/var/run/bluealsa/*

Dodajte ulogu sudopera A2DP profila

sudo bluealsa -p a2dp -umivaonik &

Otvorite bluetooth sučelje i uključite bluetooth

bluetoothctl uključen

Postavite agenta za uparivanje

agent na default-agent

Neka vaš RPi bude otkriven

otkriven na

  • Sada sa svog bluetooth uređaja potražite RPi i povežite se s njim.
  • Potvrdite uparivanje na oba uređaja, unesite kit u svoj kit.
  • Ovlastite A2DP uslugu, ponovo upišite 'da'.
  • Nakon što to učinimo, možemo vjerovati svom uređaju, pa ne moramo sve ovo prolaziti svaki put kada se želimo povezati

povjerenje XX: XX: XX: XX: XX: XX (Vaša bluetooth mac adresa s našeg izvornog uređaja)

Ako želite da vaš RPi i dalje bude otkriven, to je vaš vlastiti izbor, ali radije ga isključujem ponovo, tako da se ljudi ne mogu pokušati povezati s vašim kutijom

otkriveno isključeno

Tada možemo izaći iz našeg bluetooth sučelja

Izlaz

I na kraju naše usmjeravanje zvuka: izvorni uređaj koji prosljeđuje na naš RPi

bluealsa-aplay 00: 00: 00: 00: 00: 00

Sada je naš uređaj povezan s našom malinom putem Bluetootha i trebali biste ga moći testirati reprodukcijom bilo kojeg medija, na primjer Spotify, itd.

Korak 7: Pisanje kompletne pozadine

Dakle, sada je postavljanje završeno, konačno možemo početi pisati naš pozadinski program!

Koristio sam Visual Studio Code za cijeli svoj backkend, samo trebate provjeriti je li vaš Visual Studio projekt povezan s vašim Raspberry Pi, to znači da vaš LAN kabel mora biti spojen na vaš RPi i uspostaviti SSH vezu. (informacije o tome kako stvoriti daljinsku vezu možete pronaći ovdje:

Koristio sam vlastite časove i svi su oni također uključeni u moj GitHub.

U svojoj pozadinskoj datoteci koristio sam različite klase, tako da se sve može koristiti zasebno i tako da moj glavni kôd nije nered sa svim različitim nitima. Koristio sam threading za pokretanje svih različitih klasa odjednom. A na dnu imate sve rute tako da možemo lako doći do podataka na našem sučelju.

Korak 8: Pisanje sučelja (HTML, CSS i JavaScript)

Sada kada je pozadina gotova, možemo početi pisati cijeli front-end.

HTML i CSS su mi bili prilično teški, dao sam sve od sebe da ga prvo napravim mobilnim jer se mogu povezati s njim putem Bluetootha da promijenim pjesme sa Spotifyjem. Tako bi bilo lakše kontrolirati s mobilne nadzorne ploče

Možete dizajnirati svoju nadzornu ploču na bilo koji način, samo ću ostaviti svoj kôd i dizajn ovdje, možete raditi što god želite!

Javascript mi nije bio lakši, radio sam s nekoliko GET -ova sa mojih pozadinskih ruta, tonama slušatelja događaja i nekim socketio strukturama kako bih dobio podatke od mojih senzora.

Korak 9: Izgradite svoj slučaj i spojite ga zajedno

Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno
Izgradnja mog kućišta i sve to zajedno

Prvo sam počeo skicirati kako želim da kućište izgleda, nešto važno je bilo da mora biti dovoljno veliko da se sve uklopi, budući da smo dobili veliki krug za umetanje u kućište, ali morali smo ostati kompaktni da ne bi ' ne zauzimaju puno prostora

Napravio sam kućište od drveta, mislim da je s njim najlakše raditi kada nemate toliko iskustva u izgradnji kućišta, a imate i puno stvari koje možete s njim učiniti.

Počeo sam od stare daske koju sam ležao i tek sam počeo da piljem drvo. Jednom kada sam imao svoj osnovni kovčeg, morao sam samo izbušiti rupe u njemu (puno na prednjoj strani kućišta, kao što možete vidjeti na slikama i staviti nekoliko čavala u njega, to je zaista osnovni kovčeg, ali izgleda prilično cool Odlučio sam i da ga ofarbam u bijelo kako bi izgledao dobro.

I kad je slučaj završen, došlo je vrijeme da se sve spoji, kao što vidite na posljednjoj slici! U kutiji je nekakav nered, ali sve funkcionira i nisam imao toliko prostora, pa vam savjetujem da možda stvorite veći slučaj ako ponovno stvarate moj projekt.

Preporučuje se: