Sisukord:

Meeleolukõlar- võimas kõlar meeleolumuusika esitamiseks ümbritseva õhu temperatuuril: 9 sammu
Meeleolukõlar- võimas kõlar meeleolumuusika esitamiseks ümbritseva õhu temperatuuril: 9 sammu

Video: Meeleolukõlar- võimas kõlar meeleolumuusika esitamiseks ümbritseva õhu temperatuuril: 9 sammu

Video: Meeleolukõlar- võimas kõlar meeleolumuusika esitamiseks ümbritseva õhu temperatuuril: 9 sammu
Video: Part 3 - Anne of the Island Audiobook by Lucy Maud Montgomery (Chs 24-41) 2024, November
Anonim
Meeleolukõlar- võimas kõlar meeleolumuusika esitamiseks ümbritseva õhu temperatuuril
Meeleolukõlar- võimas kõlar meeleolumuusika esitamiseks ümbritseva õhu temperatuuril

Tere!

Oma kooliprojekti jaoks MCT Howest Kortrijkis tegin meeleolu kõlari, see on nutikas Bluetooth -kõlar, millel on erinevad andurid, LCD ja WS2812b LED -riba. Kõlar esitab taustamuusikat vastavalt temperatuurile, kuid seda saab kasutada ka tavalise bluetoothina kõneleja. Kõik töötab Raspberry Pi -l (andmebaas, veebiserver, taustaprogramm).

Nii et see juhend on samm -sammult protsess, kuidas ma selle projekti kolme nädala jooksul realiseerisin. Nii et kui soovite minu projekti uuesti luua, saate seda juhendit järgida

See õpetlik on minu esimene, mille ma kirjutasin, nii et kui on mingeid ootusi, proovin neile vastata nii kiiresti kui võimalik!

Minu GitHub:

Samm: tarvikud

Raspberry Pi 3B ja 16 GB SD -kaart

Kogu minu projekt töötab minu seadmel Raspberry Pi 3B koos konfigureeritud pildiga, mida selgitan hilisemas etapis (4. samm: Raspberry Pi seadistamine)

LCD ekraan 16x2

Temperatuuri, heleduse ja IP -aadressi printimiseks kasutasin tavalist LCD -ekraani.

Andmeleht:

DS18B20 temperatuuriandur

DS18B20 on ühe juhtmega andur, mis mõõdab temperatuuri, tootja Maxim Integrated. Seal on kahte tüüpi DS18B20 andureid, ainult komponent (mida ma kasutasin) ja veekindel versioon, mis on palju suurem, kuid see pole minu projekti jaoks vajalik, seega kasutasin ainult komponenti. Andur suudab mõõta temperatuuri vahemikus -55 ° C kuni +125 ° C (-67 ° F kuni +257 ° F) ja selle täpsus on 0,5 ° C vahemikus -10 ° C kuni +85 ° C. Sellel on ka programmeeritav eraldusvõime 9 bitist 12 bitini.

Andmeleht:

MCP3008

LDR- ja PIR-anduri andmete lugemiseks kasutasin MCP3008, mis on SPI-liidesega 8-kanaliline 10-bitine analoog-digitaalmuundur ja mida on üsna lihtne programmeerida.

Andmeleht:

PIR liikumisandur

Et tuvastada, millal keegi minu tuppa siseneb ja sealt lahkub, kasutasin passiivset infrapunaandurit, kuna neid on lihtne kasutada ja need on väikesed.

Andmeleht:

LDR

Kasutasin valgusresistorit või LDR-i (valgust vähendav takistus või valgusest sõltuv takisti), et tuvastada ruumi heledustase. Samuti lülitasin oma LED-riba sisse, kui on pime.

Kõlar - 3”läbimõõt - 4 oomi 3 vatti

See on kõlarite koonus, mille valisin pärast vajaliku pinge ja amprite arvutamist ning see sobis ideaalselt minu Adafruit'i toodetud Raspberry Pi projektiga.

Ülevaade:

MAX98357 I2S D-klassi monovõimendi

See on võimendi, mis on kõlariga kaasas, mitte ainult võimendi, vaid ka I2S digitaal -analoogmuundur, nii et see sobib ideaalselt ka minu kõlari ja helisüsteemiga.

Ülevaade:

Andmeleht:

Arduino Uno

Arduino Uno on avatud lähtekoodiga mikrokontrolleri plaat, mis põhineb mikrokiibil ATmega328P mikrokontrolleril, tootja Arduino.cc. Uno -plaadil on 14 digitaalset tihvti, 6 analoognõela ja see on täielikult programmeeritav Arduino IDE tarkvara abil

Ülevaade:

Taseme nihutaja

See on väike tahvel, mis hoolitseb Arduino Uno ja Raspberry Pi vahelise suhtluse ning erinevate pingete, Arduino: 5V ja Raspberry Pi: 3.3V eest. Seda on vaja, sest LED -riba on ühendatud Arduinoga ja jookseb seal edasi, samas kui kõik muu kraam jookseb Raspberry Pi peal.

WS2812B - Ledstrip

See on LED -riba 60 RGB -valgusdioodiga (soovi korral saate osta pikemaid ribasid, millel on rohkem RGB -valgusdioode). Mis on minu puhul ühendatud Arduino Unoga, kuid seda saab ühendada ka paljude teiste seadmetega ja seda on tõesti lihtne kasutada.

Andmeleht:

GPIO T-osa, 1 leivaplaat ja palju ühendusjuhtmeid

Kõigi vajalike leivaplaatide ja hüppajajuhtmete ühendamiseks ei kasutanud ma GPIO T-osa, kuid selle abil saate selgelt teada, milline prügikast kuhu läheb.

2. samm: skeem ja juhtmestik

Skeem ja juhtmestik
Skeem ja juhtmestik
Skeem ja juhtmestik
Skeem ja juhtmestik

Oma skeemi tegemiseks kasutasin ma Fritzingit, see on programm, mille saate installida ja mis võimaldab teil luua erinevates vaadetes skemaatilise kujunduse. Ma kasutasin leivaplaati ja skemaatilist vaadet.

Laadige Fritzing alla:

Veenduge, et kõik on õigesti ühendatud. Kasutasin värve, et oleks natuke selgem teada, kuhu juhtmed ühendada. Minu puhul kasutasin juhtmete jaoks erinevaid värve

3. samm: andmebaasi kujundamine

Andmebaasi kujundus
Andmebaasi kujundus

Kogume palju andmeid kolmest andurist (temperatuur alates DS18B20, heledus LDR-st ja olek PIR-andurist). Seetõttu on parem hoida kõik need andmed andmebaasis. Selgitan hilisemas etapis, kuidas andmebaasi seadistada (5. samm: suunake meie andmebaas edasi RPi -le!) Kuid kõigepealt tuleb teha disain või ERD (olemisuhete skeem). Minu oma normaliseeriti 3NF -iga, seetõttu jagasime komponendid ja komponentide ajaloo teise tabelisse. Kasutame muusika andmebaasi, et jälgida kuulatud lugusid.

Üldiselt on see tõesti lihtne ja lihtne andmebaasi kujundus, millega edasi töötada.

Samm: seadistage Raspberry Pi

Nüüd, kui meil on projekti põhitõed tehtud. Alustame Raspberry Pi seadistamisega!

Osa 1: SD -kaardi seadistamine

1) Laadige alla vajalik tarkvara ja failid

Selle täieliku protsessi jaoks peate alla laadima 2 tarkvara ja 1 OS -i, st Raspbiani. 1. tarkvara: esimene tarkvara on Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

Teine tarkvara: teine tarkvara on SD -kaardi vormindaja.

www.sdcard.org/downloads/formatter_4/

Raspbian OS: see on Pi peamine operatsioonisüsteem.

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

Pakkige kõik failid töölauale.

2) Hankige SD -kaart ja kaardilugeja

Hankige kaardilugejaga vähemalt 8 GB klassi 10 SD -kaart. Sisestage see kaart kaardilugejasse ja ühendage see USB -porti.

3) Vormindage SD -kaart

Avage SD -kaardi vormindaja ja valige draiv.

Klõpsake vormingut ja ärge muutke muid valikuid.

Kui vormindamine on lõpetatud, klõpsake nuppu OK.

4) Kirjutage operatsioonisüsteem SD -kaardile

Avage win32diskimager.

Sirvige allalaaditud failist eraldatud Raspbian OS.img -faili.

Klõpsake nuppu Ava ja seejärel nuppu Kirjuta.

Kui ilmub mõni hoiatus, siis ignoreerige neid, klõpsates nuppu OK. Oodake, kuni kirjutamine on lõpule viidud ja see võib võtta mõne minuti. Nii et olge kannatlik.

n

5) Kui see on tehtud, oleme valmis enne pildi RPi lisamist tegema mõned lõplikud kohandused.

Minge oma SD -kaardi kataloogi, otsige faili nimega cmdline.txt ja avage see.

Nüüd lisage samale reale 'ip = 169.254.10.1'.

Salvestage fail.

Looge fail nimega „ssh” ilma laiendi ja sisuta. (Lihtsaim viis on luua txt -fail ja seejärel eemaldada.txt)

Nüüd, kui kõik on SD -kaardile installitud, saate selle TURVALISELT oma arvutist eemaldada ja panna selle Raspberry Pi -sse ilma toiteühenduseta. Kui SD -kaart on RPI -sse ühendatud, ühendage arvutist LAN -kaabel RPi LAN -porti, kui see on ühendatud, saate toite RPi -ga ühendada.

Osa 2: RPi seadistamine

Pahtel

Nüüd tahame oma Raspberry Pi seadistada, seda tehakse Putty kaudu.

Pahtlitarkvara:

Pärast allalaadimist avage Putty ja sisestage IP '169.254.10.1' ja port '22' ning ühenduse tüüp: SSH.

Nüüd saame lõpuks avada oma käsurealiidese ja logida sisse starteri sisselogimisteabega -> Kasutaja: pi & Parool: vaarikas. (Soovitame seda võimalikult kiiresti muuta. Siin on juhend, kuidas:

Raspi-config

Peame lubama erinevaid liideseid ja selleks peame esmalt sisestama järgmise koodi:

sudo raspi-config

Asjad, mida peame lubama, on liideste jaotises. Peame lubama järgmised liidesed:

  • Ühe juhtmega
  • Seriaal
  • I2C
  • SPI

See oli kõik, mida meil oli vaja teha raspi-configiga

WIFI lisamine

Esiteks peate olema root, et järgmine käsk saaks root

sudo -i

Kui olete root, kasutage järgmist käsku: (Asendage SSID oma võrgu nime ja parooliga võrgu parooliga)

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

Kui tegite midagi valesti, saate seda võrku kontrollida, värskendada või kustutada, sisestades lihtsalt järgmise käsu:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Nii et pärast võrku sisenemist siseneme WPA kliendiliidesesse

wpa_cli

Valige oma liides

liides wlan0

Laadige fail uuesti

uuesti seadistada

Ja lõpuks näete, kas olete hästi ühendatud:

ip a

Osa 3: RPi + installimistarkvara värskendamine

Nüüd, kui oleme Interneti -ühendusega, oleks juba installitud pakettide värskendamine nutikas samm, nii et teeme seda enne teiste pakettide installimist.

sudo apt-get update

sudo apt-get upgrade

Pärast RPi värskendamist peame installima järgmise tarkvara:

MariaDB andmebaas

sudo apt-get install mariadb-server

Apache2 veebiserver

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

Pythoni pakett

Taustprogrammi ideaalseks toimimiseks peate installima kõik need paketid:

  • Kolb
  • Kolvid-korvid
  • Kolb-MySql
  • Flask-SocketIO
  • PyMySQL taotlused
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-veebipesa

Kõlarite raamatukogu

Kõlari võimendiga kasutamiseks peame selle jaoks raamatukogu installima

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

Andmebaasi seadistamine RPi -le!
Andmebaasi seadistamine RPi -le!

Nüüd, kui oleme kõik vajaliku installinud, paneme oma kavandatud andmebaasi meie Raspberry Pi -le!

Andmebaasi seadistamiseks peame ühendama MySql ja RPi. Selleks avame MySQLWorkbenchi ja loome uue ühenduse. Pildi vaatamisel peate muutma, et muuta teave enda omaks.

Kui te pole veel midagi muutnud, saate kasutada SSH pi ja vaarika, MySQL mysql ja mysql jaoks.

Kui midagi pole selge, saate seda õpetust ka järgida:

Andmebaasi eksportimiseks peaks PHPmyAdmini kasutamine olema lihtsam, sest MySql -iga saate seda teha palju vigu

Samm: Bluetoothi seadistamine meie RPi -s

Loome Mood kõlarit, mida saame kasutada ka oma muusikaga, nii et RPi puhul on see lihtsam

Bluetoothiga ühenduses järgisin selle õpetust, mille leiate siit:

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

Kirjutasin siia kõik üles ka kõigile, kes soovivad seda uuesti luua

Juba töötava bluealsa eemaldamine

sudo rm/var/run/bluealsa/*

Lisa A2DP profiili valamu roll

sudo bluealsa -p a2dp -valamu &

Avage Bluetooth -liides ja lülitage Bluetooth sisse

bluetoothctl toide sisse

Seadistage sidumisagent

agent vaikimisi agendil

Muutke oma RPi avastatavaks

leitavad

  • Otsige nüüd oma Bluetooth -seadmest üles RPi ja looge sellega ühendus.
  • Kinnitage sidumine mõlemas seadmes, tippige oma pahtlisse „jah”.
  • Luba A2DP teenus, tippige uuesti „jah”.
  • Kui see on tehtud, saame oma seadet usaldada, nii et me ei pea seda iga kord ühenduse loomisel läbima

usaldus XX: XX: XX: XX: XX: XX (teie bluetoothi maci aadress meie lähteseadmest)

Kui soovite, et teie RPi oleks avastatav, on see teie enda valik, kuid ma eelistan selle uuesti välja lülitada, et inimesed ei saaks teie kastiga ühendust luua

avastatav

Siis saame oma Bluetooth -liidesest väljuda

väljumine

Ja lõpuks meie heli marsruutimine: meie lähteseade edastab meie RPi -le

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

Nüüd on meie seade Bluetoothiga meie Raspberryga ühendatud ja peaksite saama seda testida, mängides mis tahes meediat, näiteks Spotify jne.

Samm: täieliku taustaprogrammi kirjutamine

Nüüd, kui seadistamine on tehtud, saame lõpuks alustada oma taustaprogrammi kirjutamist!

Ma kasutasin Visual Studio koodi kogu oma taustaprogrammi jaoks, peate lihtsalt veenduma, et teie Visual Studio projekt on teie Raspberry Pi -ga ühendatud, see tähendab, et teie LAN -kaabel peab olema ühendatud teie RPi -ga ja SSH -ühenduse loomiseks. (info kaugühenduse loomise kohta leiate siit:

Kasutasin oma tunde ja need on ka kõik minu GitHubi kaasatud.

Oma taustafailis kasutasin erinevaid klasse, nii et kõike saab kasutada eraldi ja nii, et minu põhikood pole kõigi erinevate lõimedega jama. Kõigi erinevate klasside korraga käivitamiseks kasutasin keermestamist. Altpoolt leiate kõik marsruudid, et saaksime hõlpsalt oma esiplaanilt andmeid hankida.

8. samm: kasutajaliidese kirjutamine (HTML, CSS ja JavaScript)

Nüüd, kui taustaprogramm on valmis, saame hakata kirjutama täielikku esiosa.

HTML ja CSS olid minu jaoks päris rasked. Andsin endast parima, et muuta see esmalt mobiilseks, sest saan sellega bluetoothiga ühenduse luua, et lugusid Spotify abil muuta. Seega oleks lihtsam juhtida mobiilse armatuurlaua kaudu

Saate oma armatuurlaua kujundada mis tahes viisil, kui soovite, ma jätan oma koodi ja kujunduse siia, saate teha kõike, mis teile meeldib!

Ja Javascript ei olnud minu jaoks lihtsam, töötasin mõne GET -ga minu taustaprogrammilt, palju sündmuste kuulajaid ja mõningaid pistikupesa struktuure, et saada andmeid minu anduritelt.

9. samm: minu juhtumi ehitamine ja selle kõik kokku panemine

Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine
Minu juhtumi ehitamine ja selle kõik kokku panemine

Hakkasin esmalt visandama, kuidas ma tahaksin, et juhtum välja näeks. Oluline oli see, et see peab olema piisavalt suur, et kõik ära mahuks, kuna me saime korpuse jaoks suure vooluringi, kuid pidime olema kompaktsed, nii et see ei sobinud. t ei võta palju ruumi

Ma tegin korpuse puidust, ma arvan, et sellega on kõige lihtsam töötada, kui sul pole ümbriste ehitamisega nii palju kogemusi ja sul on ka palju asju, mida saate sellega teha.

Alustasin vanast plangust, mille ümber panin, ja hakkasin lihtsalt puitu saagima. Kui mul oli oma põhikohver olemas, pidin ma sellesse lihtsalt augud puurima (palju korpuse esikülge, nagu piltidelt näha ja mõned küüned sinna sisse panna, see on tõesti põhijuhtum, aga tundub päris lahe ja sobib ideaalselt. Ma otsustasin ka valgeks värvida, et see hea välja näeks.

Ja kui juhtum oli tehtud, oli aeg see kõik kokku panna, nagu näete viimasel pildil! Karbi sees on küll jama, aga kõik toimib ja mul ei olnud palju rohkem ruumi, seega soovitan teil ehk minu projekti uuesti luues luua suurem ümbris.

Soovitan: