Sadržaj:

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

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

Video: Zvučnik raspoloženja- snažan zvučnik za reprodukciju glazbe raspoloženja na temelju temperature okoline: 9 koraka
Video: Часть 01 - Аудиокнига «Наш общий друг» Чарльза Диккенса (книга 1, главы 1–5) 2024, Studeni
Anonim
Mood Speaker- snažan zvučnik za reprodukciju glazbe raspoloženja na temelju temperature okoline
Mood Speaker- snažan zvučnik za reprodukciju glazbe raspoloženja na temelju temperature okoline

Hej tamo!

Za svoj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametni Bluetooth zvučnički uređaj s različitim senzorima, uključenim LCD i WS2812b LED trakom. Zvučnik pušta glazbu 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).

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

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

Moj GitHub:

Korak 1: Opskrba

Raspberry Pi 3B i 16 GB 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 zaslon 16x2

Koristio sam osnovni LCD zaslon za ispis temperature, svjetline i IP adrese.

Tehnički list:

Senzor temperature DS18B20

DS18B20 je jednožični senzor koji mjeri temperaturu, proizveo Maxim Integrated. Postoje dvije vrste senzora DS18B20, samo komponenta (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 točnost od 0,5 ° C od -10 ° C do +85 ° C. Također ima programibilnu rezoluciju od 9 bita do 12 bita.

Tehnički list:

MCP3008

Za čitanje podataka s LDR i PIR senzora upotrijebio 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 kad padne mrak.

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

Ovo je konus zvučnika koji sam odabrao nakon što sam izračunao napon i ampere koji su mu potrebni, a ovo je savršeno odgovaralo mom projektu Raspberry Pi, proizvođača 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 je i savršeno odgovara za moj zvučnik i audio sustav.

Pregled:

Tehnički list:

Arduino Uno

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

Pregled:

Promjenjivač razina

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 s više RGB LED dioda). Što je u mom slučaju povezano s Arduino Uno, ali također se može povezati s mnogim drugim uređajima i stvarno je jednostavno za korištenje.

Tehnički list:

GPIO T-Part, 1 Breadboard i puno premosnika

Za povezivanje svega što mi je potrebno za matične ploče i spojne žice, nisam koristio GPIO T-dio, ali pomoću njega možete jasno znati koja kanta kamo 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 stvorite shemu vrlo jednostavno u različitim vrstama pogleda. 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 s 3 senzora (temperatura iz DS18B20, svjetlina iz LDR-a i status s PIR-senzora). Zato je najbolje da sve te podatke čuvate u bazi podataka. Objasnit ću u kasnijem koraku kako konfigurirati bazu podataka (Korak 5: Proslijedi inženjering naše baze podataka na RPi!) No prvo se mora napraviti dizajn ili ERD (Entity Relationship Diagram). Moj je normaliziran s 3NF -om, zato smo komponente i povijest komponenti podijelili u drugu tablicu. Koristimo bazu glazbe za praćenje pjesama koje su slušane.

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

Korak 4: Postavljanje Raspberry Pi

Dakle, sada kada smo napravili neke osnove projekta. Počnimo s postavljanjem Raspberry Pi!

1. dio: Konfiguriranje SD kartice

1) Preuzmite potrebni softver i datoteke

Za ovaj potpuni proces morate 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 sustav Pi.

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

Izdvojite sve datoteke na radnu površinu.

2) Nabavite SD karticu i čitač kartica

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

3) Formatirajte SD karticu

Otvorite SD Card Formatter i odaberite pogon.

Pritisnite format i ne mijenjajte druge opcije.

Kad je formatiranje dovršeno, kliknite U redu.

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. Pričekajte da se pisanje dovrši i može potrajati nekoliko minuta. Zato budite strpljivi.

n

5) Nakon što to učinimo, spremni smo za konačne prilagodbe prije stavljanja slike u RPi.

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

Sada dodajte 'ip = 169.254.10.1' u isti redak.

Spremite datoteku.

Izradite datoteku pod nazivom 'ssh' bez proširenja 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čunala i staviti u Raspberry Pi BEZ povezivanja napajanja. Nakon što SD kartica uđe u RPI, spojite LAN kabel s računala na RPi LAN priključak, nakon što je ovo spojeno, možete spojiti napajanje na RPi.

2. dio: Konfiguriranje RPi -ja

Kit

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 naredbenog retka 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 sučelja. Moramo omogućiti sljedeća sučelja:

  • Jednožilni
  • Serijski
  • I2C
  • SPI

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

Dodavanje WIFI -ja

Prvo morate biti root da bi sljedeća naredba postala root

sudo -i

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

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

sučelje wlan0

Ponovno učitajte datoteku

ponovno konfigurirati

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

ip a

3. dio: 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 ažuriranje

sudo apt-get nadogradnja

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

Baza podataka MariaDB

sudo apt-get install mariadb-server

Apache2 web poslužitelj

sudo apt instalirajte apache2

Piton

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

Python paket

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

  • Boca
  • Flask-Cors
  • Flask-MySql
  • Utičnica za utičnicuIO
  • PyMySQL zahtjevi
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-websocket

Biblioteka zvučnika

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

uvijati -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 podatke kako biste ih promijenili 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, bilo bi 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 -ima

Stvaramo Mood zvučnik koji možemo koristiti i s vlastitom glazbom pa je to 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…

Ovdje sam zapisao i sve za sve koji to žele ponovno 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, upišite "da" u svoj kit.
  • Ovlastite A2DP uslugu, ponovno upišite 'da'.
  • Nakon što to učinimo, možemo vjerovati svom uređaju pa ne moramo sve ovo prolaziti svaki put kad 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 bih ga ponovno isključio, tako da se ljudi ne mogu pokušati povezati s vašim kutijom

otkriven off

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 potpune 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 udaljenu vezu možete pronaći ovdje:

Koristio sam vlastite tečajeve 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 pri 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 kako bih promijenio pjesme sa Spotifyjem. Tako bi bilo lakše kontrolirati s mobilne nadzorne ploče

Svoju nadzornu ploču možete dizajnirati 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 s mojih pozadinskih ruta, tona 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

Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti
Izgraditi svoj slučaj i sve to spojiti

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 kako ne bi ' ne zauzimaju puno prostora

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

Počeo sam od stare daske koju sam polagao i tek sam počeo piljeti drvo. Nakon što sam imao svoj osnovni kovčeg, samo sam morao 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 stvarno osnovni kovčeg, ali izgleda prilično cool i savršeno pristaje. Odlučila sam ga i obojati u bijelo kako bi dobro izgledao.

A kad je slučaj gotov, došlo je vrijeme da sve to spojite, kao što vidite na posljednjoj slici! Unutar kutije je 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čeni: