Kazalo:

Mood Speaker- zmogljiv zvočnik za predvajanje glasbe glede na temperaturo okolice: 9 korakov
Mood Speaker- zmogljiv zvočnik za predvajanje glasbe glede na temperaturo okolice: 9 korakov

Video: Mood Speaker- zmogljiv zvočnik za predvajanje glasbe glede na temperaturo okolice: 9 korakov

Video: Mood Speaker- zmogljiv zvočnik za predvajanje glasbe glede na temperaturo okolice: 9 korakov
Video: Part 5 - Triplanetary Audiobook by E. E. Smith (Chs 18-19) 2024, November
Anonim
Mood Speaker- zmogljiv zvočnik za predvajanje glasbe na podlagi temperature okolice
Mood Speaker- zmogljiv zvočnik za predvajanje glasbe na podlagi temperature okolice

Živijo!

Za moj šolski projekt v MCT Howest Kortrijk sem izdelal Mood Speaker, to je pametna zvočniška naprava Bluetooth z različnimi senzorji, vključenimi LCD in WS2812b led trakovi. Zvočnik predvaja glasbo v ozadju glede na temperaturo, lahko pa jo uporabljamo tudi kot navaden bluetooth zvočnik. Vse deluje na Raspberry Pi (baza podatkov, spletni strežnik, zaledje).

Tako je ta pouk korak po korak, kako sem v treh tednih uresničil ta projekt. Torej, če želite ponovno ustvariti moj projekt, lahko sledite vodniku

To navodilo je moje prvo, ki sem ga napisal, zato, če obstajajo kakršna koli vprašanja, bom nanje poskušal odgovoriti čim hitreje!

Moj GitHub:

1. korak: Zaloge

Kartica SD Raspberry Pi 3B in 16 GB

Celoten projekt teče na mojem Raspberry Pi 3B s konfigurirano sliko, ki jo bom razložil v naslednjem koraku (4. korak: Namestitev Raspberry Pi)

LCD zaslon 16x2

Za tiskanje temperature, svetlosti in naslova IP sem uporabil osnovni LCD zaslon.

Podatkovni list:

Temperaturni senzor DS18B20

DS18B20 je enožični senzor za merjenje temperature, ki ga proizvaja Maxim Integrated. Obstajata dve vrsti senzorjev DS18B20, samo sestavni del (ki sem ga uporabil) in vodotesna različica, ki je veliko večja, vendar to ni tisto, kar sem potreboval za svoj projekt, zato sem uporabil samo komponento. Senzor lahko meri temperaturo v območju od -55 ° C do +125 ° C (-67 ° F do +257 ° F) in ima natančnost 0,5 ° C od -10 ° C do +85 ° C. Ima tudi programabilno ločljivost od 9 do 12 bitov.

Podatkovni list:

MCP3008

Za branje podatkov iz senzorja LDR in PIR sem uporabil MCP3008, ki je 8-kanalni 10-bitni analogno-digitalni pretvornik z vmesnikom SPI in ga je zelo enostavno programirati.

Podatkovni list:

PIR senzor gibanja

Za odkrivanje, kdaj kdo vstopi in zapusti mojo sobo, sem uporabil pasivni infrardeči senzor, ker so enostavni za uporabo in majhni.

Podatkovni list:

LDR

Uporabil sem fotorezistor ali LDR (odpornost proti zmanjšanju svetlobe ali upor, odvisen od svetlobe), da sem odkril stopnjo svetlosti prostora, v katerem je. In tudi, da vklopim LED trak, ko je temno.

Zvočnik - 3”premer - 4 Ohm 3 Watt

To je zvočniški stožec, ki sem ga izbral po izračunu napetosti in amperov, ki bi jih potreboval, in to je bilo odlično za moj projekt Raspberry Pi, ki ga je izdelal Adafruit.

Pregled:

MAX98357 I2S Mono ojačevalnik razreda D

To je ojačevalnik, ki je priložen zvočniku, ne samo, da je ojačevalnik, je tudi digitalno -analogni pretvornik I2S, zato je tudi popolnoma primeren za moj zvočnik in avdio sistem.

Pregled:

Podatkovni list:

Arduino Uno

Arduino Uno je odprtokodna mikrokrmilna plošča, ki temelji na mikrokrmilniku Microchip ATmega328P, proizvajalca Arduino.cc. Plošča Uno ima 14 digitalnih zatičev, 6 analognih zatičev in je popolnoma programirana s programsko opremo Arduino IDE

Pregled:

Preklopnik ravni

To je majhna plošča, ki skrbi za komunikacijo med Arduino Uno in Raspberry Pi ter različnimi napetostmi, Arduino: 5V in Raspberry Pi: 3.3V. To je potrebno, ker je led trak povezan z Arduinom in teče naprej, medtem ko vse ostale stvari tečejo na Raspberry Pi.

WS2812B - Ledstrip

To je trak s 60 RGB LED diodami (če želite, lahko kupite daljše trakove z več RGB LED). Kar je v mojem primeru povezano z Arduino Uno, lahko pa ga povežem tudi s številnimi drugimi napravami in je zelo preprosto za uporabo.

Podatkovni list:

GPIO T-del, 1 plošča in veliko mostičnih žic

Za povezavo vsega, kar sem potreboval, so bile plošče in mostični kabli, nisem uporabil GPIO T-dela, lahko pa z njim jasno veste, katera posoda kam gre.

2. korak: Shema in ožičenje

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

Za izdelavo sheme sem uporabil program Fritzing, ki ga lahko namestite in vam omogoča enostavno ustvarjanje sheme v različnih pogledih. Uporabil sem osnovo in shematski pogled.

Prenesite Fritzing:

Prepričajte se, da je vse pravilno povezano. Uporabil sem barve, da bi bilo nekoliko jasneje vedeti, kje priključiti žice. V mojem primeru sem za žice uporabil različne barve

3. korak: Oblikovanje baze podatkov

Oblikovanje baze podatkov
Oblikovanje baze podatkov

Zbiramo veliko podatkov iz treh senzorjev (Temperatura iz DS18B20, Svetlost iz LDR in Status iz PIR-senzorja). Zato je najbolje, da vse te podatke hranite v bazi podatkov. V naslednjem koraku bom razložil, kako konfigurirati bazo podatkov (5. korak: Posredovanje naše baze podatkov v RPi!) Najprej pa je treba izdelati zasnovo ali ERD (Entity Relationship Diagram). Moj je bil normaliziran s 3NF, zato smo komponente in zgodovino komponent razdelili v drugo tabelo. Z zbirko podatkov Glasba spremljamo pesmi, ki so bile poslušane.

Na splošno je to res osnovna in enostavna zasnova baze podatkov za nadaljnje delo.

4. korak: Namestite Raspberry Pi

Zdaj, ko smo naredili nekaj osnov projekta. Začnimo z nastavitvijo Raspberry Pi!

1. del: Konfiguriranje kartice SD

1) Prenesite potrebno programsko opremo in datoteke

Za ta celoten postopek morate prenesti 2 programsko opremo in 1 OS, tj. Raspbian. 1. programska oprema: Prva programska oprema je Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

2. programska oprema: Druga programska oprema je SD Card Formatter.

www.sdcard.org/downloads/formatter_4/

Raspbian OS: To je glavni operacijski sistem Pi.

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

Izvlecite vse datoteke na namizje.

2) Vzemite kartico SD in bralnik kartic

Pridobite najmanj 8 GB SD kartice razreda 10 z bralnikom kartic. Kartico vstavite v bralnik kartic in jo priključite v vrata USB.

3) Formatirajte kartico SD

Odprite SD SD Formatter in izberite pogon.

Kliknite na obliko in ne spreminjajte drugih možnosti.

Ko je oblikovanje končano, kliknite V redu.

4) Zapišite operacijski sistem na kartico SD

Odprite win32diskimager.

Prebrskajte datoteko.img OS Raspbian, ki je bila izvlečena iz prenesene datoteke.

Kliknite na odpri in nato na Napiši.

Če se pojavi kakšno opozorilo, ga prezrite s klikom na V redu. Počakajte, da se pisanje zaključi in lahko traja nekaj minut. Zato bodite potrpežljivi.

n

5) Ko to naredimo, smo pripravljeni narediti nekaj končnih prilagoditev, preden sliko vstavimo v RPi.

Pojdite v imenik kartice SD, poiščite datoteko z imenom 'cmdline.txt' in jo odprite.

Zdaj dodajte "ip = 169.254.10.1" v isto vrstico.

Shranite datoteko.

Ustvarite datoteko z imenom 'ssh' brez razširitve ali vsebine. (Najlažji način je, da ustvarite datoteko txt in nato odstranite datoteko.txt)

Zdaj, ko je vse nameščeno na kartici SD, jo lahko VARNO odstranite iz računalnika in jo vstavite v Raspberry Pi BREZ priključitve na napajanje. Ko je kartica SD v RPI, priključite kabel LAN iz računalnika na vrata RPi LAN, ko je ta priključen, lahko priključite napajanje na RPi.

2. del: Konfiguriranje RPi

Kiti

Zdaj želimo konfigurirati naš Raspberry Pi, to se naredi prek Puttyja.

Programska oprema za kiti:

Ko naložite, odprite Putty in vstavite IP '169.254.10.1' in vrata '22' ter vrsto povezave: SSH.

Zdaj lahko končno odpremo vmesnik ukazne vrstice in se prijavimo z začetnimi podatki za prijavo -> Uporabnik: pi & Geslo: malina. (Priporočamo, da ga čim prej spremenite. Tukaj je vodnik, kako:

Raspi-config

Omogočiti bomo morali različne vmesnike, za to pa moramo najprej vnesti naslednjo kodo:

sudo raspi-config

Stvari, ki jih moramo omogočiti, so v razdelku vmesnik. Omogočiti moramo naslednje vmesnike:

  • Enožilni
  • Serijski
  • I2C
  • SPI

To je bilo vse, kar smo morali narediti z raspi-config

Dodajanje vašega WIFI

Najprej morate biti root, da naslednji ukaz postane root

sudo -i

Ko ste root, uporabite naslednji ukaz: (SSID zamenjajte z omrežnim imenom in geslom z geslom za omrežje)

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

Če ste storili kaj narobe, lahko preverite, posodobite ali izbrišete to omrežje tako, da vnesete naslednji ukaz:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Torej, ko smo vstopili v naše omrežje, vstopimo v odjemalski vmesnik WPA

wpa_cli

Izberite svoj vmesnik

vmesnik wlan0

Znova naložite datoteko

ponovno konfigurirati

In končno lahko vidite, ali ste dobro povezani:

ip a

3. del: Posodobitev programske opreme RPi +

Zdaj, ko smo povezani z internetom, bi bila posodobitev že nameščenih paketov pametna poteza, zato naredimo to najprej, preden namestimo druge pakete.

sudo apt-get posodobitev

sudo apt-get nadgradnja

Po posodobitvi RPi bomo morali namestiti naslednjo programsko opremo:

Baza podatkov MariaDB

sudo apt-get install mariadb-server

Spletni strežnik Apache2

sudo apt namestite apache2

Python

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

Paket Python

Za popolno delovanje zaledja boste morali namestiti vse te pakete:

  • Bučka
  • Bučke
  • Flask-MySql
  • Vtičnica za bučkoIO
  • Zahteve PyMySQL
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-websocket

Knjižnica zvočnikov

Za uporabo zvočnika z ojačevalnikom bomo morali zanj namestiti knjižnico

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

Nastavitev baze podatkov na RPi!
Nastavitev baze podatkov na RPi!

Zdaj, ko smo namestili vse, kar potrebujemo, postavimo našo bazo podatkov, ki smo jo oblikovali, na naš Raspberry Pi!

Za nastavitev baze podatkov bomo morali povezati MySql in RPi. Za to bomo odprli MySQLWorkbench in vzpostavili novo povezavo. Ko gledate sliko, se morate spremeniti, da spremenite podatke v svoje.

Če še niste ničesar spremenili, lahko uporabite za SSH pi in malino, za MySQL mysql in mysql.

Če vam nekaj ni jasno, lahko sledite tudi tej vadnici:

Če želite izvoziti svojo bazo podatkov, bi bilo z uporabo PHPmyAdmin lažje, ker lahko z MySqlom dobite veliko napak

6. korak: Konfiguriranje Bluetootha na naših RPi

Ustvarjamo zvočnik Mood, ki ga lahko uporabljamo tudi z lastno glasbo, tako da je to lažje, ko je RPi

povezano z bluetoothom sem sledil vadnici zanj, ki jo najdete tukaj:

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

Tu sem zapisal tudi vse za vse, ki bi radi to poustvarili

Odstranitev že delujoče bluealse

sudo rm/var/run/bluealsa/*

Dodaj vlogo A2DP profila Umivalnik

sudo bluealsa -p a2dp -umivalnik &

Odprite vmesnik bluetooth in vklopite bluetooth

bluetoothctl vklopljen

Nastavite agenta za seznanjanje

agent on default-agent

Naj bo vaš RPi odkrit

odkriti na

  • Zdaj v napravi Bluetooth poiščite RPi in se povežite z njim.
  • Potrdite seznanjanje na obeh napravah, v svoj kiti vnesite "da".
  • Pooblastite storitev A2DP, znova vnesite "da".
  • Ko to storimo, lahko zaupamo svoji napravi, zato nam ni treba iti skozi vse to vsakič, ko se želimo povezati

zaupajte XX: XX: XX: XX: XX: XX (vaš Mac -naslov bluetooth iz naše izvorne naprave)

Če želite, da je vaš RPi še vedno odkrit, je to vaša lastna izbira, vendar ga raje znova izklopim, da se ljudje ne bodo mogli povezati z vašim ohišjem

odkrito izključeno

Nato lahko zapustimo vmesnik bluetooth

izhod

In končno naše usmerjanje zvoka: naša izvorna naprava, ki posreduje v naš RPi

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

Zdaj je naša naprava povezana z našo Raspberry z bluetoothom, zato bi jo morali preizkusiti tako, da predvajate kateri koli medij, na primer Spotify itd.

7. korak: Pisanje celotnega ozadja

Zdaj je nastavitev končana, končno lahko začnemo pisati naš zaledni program!

Kodo Visual Studio sem uporabil za celotno ozadje, le prepričati se morate, da je vaš projekt Visual Studio povezan z vašo Raspberry Pi, kar pomeni, da mora biti vaš LAN kabel priključen na vaš RPi in vzpostaviti povezavo SSH. (informacije o tem, kako ustvariti oddaljeno povezavo, najdete tukaj:

Uporabljal sem svoje razrede in vsi so vključeni tudi v moj GitHub.

V svoji zaledni datoteki sem uporabljal različne razrede, zato se lahko vse uporablja ločeno in tako, da moja glavna koda ni nered z vsemi različnimi nitmi. Uporabil sem nit za izvajanje vseh različnih razredov hkrati. Na dnu pa imate vse poti, da lahko enostavno dobimo podatke na naši strani.

8. korak: Pisanje vmesnika (HTML, CSS in JavaScript)

Zdaj, ko je zaledje končano, lahko začnemo pisati celoten sprednji del.

HTML in CSS sta bila zame precej težka. Potrudil sem se, da bi bil najprej mobilni, ker se lahko povežem z njim prek Bluetootha, da spremenim pesmi s Spotifyjem. Tako bi bilo lažje upravljati z mobilne nadzorne plošče

Armaturno ploščo lahko oblikujete na kakršen koli način, svojo kodo in oblikovanje bom pustil tukaj, lahko delate kar želite!

In Javascript mi ni bil lažji, delal sem z nekaj GET -i iz mojih zalednih poti, na tone poslušalcev dogodkov in nekaj socketio struktur, da bi dobil podatke iz mojih senzorjev.

9. korak: Zgraditi svoj primer in ga združiti

Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti
Zgraditi svoj primer in vse skupaj združiti

Najprej sem začel skicirati, kako želim videti zadeva, nekaj pomembnega je bilo, da mora biti dovolj velika, da se vse prilega, saj smo imeli v ohišje veliko vezje, vendar smo morali ostati kompaktni, da se ni ne zavzame veliko prostora

Ohišje sem naredil iz lesa, mislim, da je z njim najlažje delati, ko nimaš toliko izkušenj z gradnjo etuijev in imaš tudi veliko stvari, ki jih lahko narediš z njim.

Začel sem iz stare deske, ki sem jo imel naokoli, in šele začel žagati les. Ko sem imel osnovno ohišje, sem moral v njem izvrtati luknje (veliko na sprednji strani ohišja, kot lahko vidite na slikah in vanj vstavite nekaj žebljev, to je res osnovni kovček, vendar izgleda precej kul Odlično sem se odločil, da ga pobarvam v belo, da bo videti dobro.

In ko je bil primer končan, je bil čas, da vse skupaj sestavite, kot vidite na zadnji sliki! V škatli je nekakšen nered, vendar vse deluje in nisem imel toliko več prostora, zato vam svetujem, da morda ustvarite večji primer, če na novo ustvarjate moj projekt.

Priporočena: