Sisällysluettelo:

Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella: 9 vaihetta
Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella: 9 vaihetta

Video: Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella: 9 vaihetta

Video: Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella: 9 vaihetta
Video: MAAILMA VANNIPOMMI PÄEV – OTSE PIDU 2024, Heinäkuu
Anonim
Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella
Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella

Hei siellä!

Kouluprojektissani MCT Howest Kortrijkissa tein Mood -kaiuttimen, joka on älykäs Bluetooth -kaiutinlaite, jossa on eri anturit, LCD -näyttö ja WS2812b -LED -nauha. Kaiutin toistaa taustamusiikkia lämpötilan perusteella, mutta sitä voidaan käyttää myös tavallisena bluetoothina kaiutin. Kaikki toimii Raspberry Pi: llä (tietokanta, verkkopalvelin, taustajärjestelmä).

Joten tämä opettavainen on askel askeleelta prosessi siitä, miten tajusin tämän projektin 3 viikossa. Joten jos haluat luoda projektini uudelleen, voit seurata opasta

Tämä ohje on ensimmäinen, jonka kirjoitin, joten jos minulla on jonotuksia, yritän vastata niihin mahdollisimman nopeasti!

Oma GitHub:

Vaihe 1: Tarvikkeet

Raspberry Pi 3B ja 16 Gt: n SD -kortti

Koko projektini toimii Raspberry Pi 3B -laitteellani, jossa on määritetty kuva, jonka selitän myöhemmin (vaihe 4: Määritä Raspberry Pi)

LCD -näyttö 16x2

Tulostin lämpötilan, kirkkauden ja IP -osoitteen perus LCD -näytöllä.

Tietolomake:

DS18B20 lämpötila -anturi

DS18B20 on Maxim Integratedin valmistama yksijohtiminen lämpötila-anturi. On olemassa kahdenlaisia DS18B20 -antureita, vain komponentti (jota käytin) ja vedenpitävä versio, joka on paljon isompi, mutta sitä en tarvinnut projektissani, joten käytin vain komponenttia. Anturi voi mitata lämpötilan alueella -55 ° C - +125 ° C (-67 ° F - +257 ° F) ja sen tarkkuus on 0,5 ° C välillä -10 ° C - +85 ° C. Siinä on myös ohjelmoitava resoluutio 9 bitistä 12 bittiin.

Tietolomake:

MCP3008

LDR- ja PIR-anturini tietojen lukemiseen käytin MCP3008: a, joka on 8-kanavainen 10-bittinen analoginen digitaalimuunnin SPI-liitännällä ja on melko helppo ohjelmoida.

Tietolomake:

PIR -liiketunnistin

Tunnistaakseni, kun joku tulee huoneeseen ja poistuu siitä, käytin passiivista infrapuna -anturia, koska niitä on helppo käyttää ja ne ovat pieniä.

Tietolomake:

LDR

Käytin valoresistoria tai LDR: ää (Light Decreasing Resistance, tai valosta riippuvaa vastusta) havaitsemaan huoneen kirkkaustaso. Ja kytken myös Ledstripin päälle, kun se on pimeä.

Kaiutin - halkaisija 3” - 4 ohmia 3 wattia

Tämä on kaiutinkartio, jonka valitsin tarvitsemasi jännitteen ja ampeerien laskemisen jälkeen, ja tämä sopi täydellisesti Adafruutin valmistamaan Raspberry Pi -projektiini.

Yleiskatsaus:

MAX98357 I2S D-luokan monovahvistin

Tämä on kaiuttimen mukana tuleva vahvistin, ei vain vahvistin, vaan se on myös I2S -digitaalimuunnin analogiseksi, joten se sopii täydellisesti myös kaiuttimelleni ja äänijärjestelmälleni.

Yleiskatsaus:

Tietolomake:

Arduino Uno

Arduino Uno on avoimen lähdekoodin mikrokortti, joka perustuu Microchip ATmega328P -mikro-ohjaimeen, valmistaja Arduino.cc. Uno -kortissa on 14 digitaalista nastaa, 6 analogista nastaa ja se on täysin ohjelmoitava Arduino IDE -ohjelmistolla

Yleiskatsaus:

Tasonsäädin

Tämä on pieni levy, joka huolehtii Arduino Unon ja Raspberry Pi: n välisestä tiedonsiirrosta ja eri jännitteistä, Arduino: 5V ja Raspberry Pi: 3.3V. Tätä tarvitaan, koska led -nauha on kytketty Arduinoon ja kulkee siellä, kun taas kaikki muu tavara kulkee Raspberry Pi -laitteella.

WS2812B - Ledstrip

Tämä on LED -nauha, jossa on 60 RGB -lediä (voit halutessasi ostaa pidempiä nauhoja, joissa on enemmän RGB -ledejä). Joka on minun tapauksessani kytketty Arduino Unoon, mutta voidaan liittää myös moniin muihin laitteisiin ja on todella helppokäyttöinen.

Tietolomake:

GPIO T-osa, 1 leipälevy ja paljon hyppylankoja

Kaikkien tarvittavien leipälevyjen ja hyppyjohtojen liittämiseksi en käyttänyt GPIO T-osaa, mutta voit käyttää sitä selkeästi tietämään, mikä astia menee minne.

Vaihe 2: Kaavio ja johdotus

Kaavio ja johdotus
Kaavio ja johdotus
Kaavio ja johdotus
Kaavio ja johdotus

Kaavion tekemiseen käytin Fritzingia, se on ohjelma, jonka voit asentaa ja jonka avulla voit luoda kaavion todella helposti erilaisissa näkymissä.

Lataa Fritzing:

Varmista, että kaikki on kytketty oikein. Käytin värejä tehdäkseni hieman selvemmäksi tietää, mihin johdot liittää. Minun tapauksessani käytin eri värejä johtoihin

Vaihe 3: Tietokannan suunnittelu

Tietokannan suunnittelu
Tietokannan suunnittelu

Keräämme paljon tietoa kolmesta anturista (lämpötila DS18B20: sta, kirkkaus LDR: stä ja tila PIR-anturista). Joten on parasta pitää kaikki nämä tiedot tietokannassa. Selitän myöhemmässä vaiheessa, kuinka tietokanta määritetään (Vaihe 5: Välitä tietokantamme eteenpäin RPi: lle!) Mutta ensin on tehtävä suunnittelu tai ERD (Entity Relationship Diagram). Omani normalisoitiin 3NF: llä, siksi jaoimme komponentit ja komponenttien historian toiseen taulukkoon. Käytämme musiikkitietokantaa kuunneltujen kappaleiden seurantaan.

Kaiken kaikkiaan tämä on todella yksinkertainen ja helppo tietokantasuunnittelu, jota voidaan jatkaa työskentelemällä.

Vaihe 4: Asenna Raspberry Pi

Joten nyt, kun meillä on joitain perusasioita projektista. Aloitetaan Raspberry Pi: n käyttöönotosta!

Osa 1: SD -kortin määrittäminen

1) Lataa tarvittavat ohjelmistot ja tiedostot

Sinun on ladattava 2 ohjelmistoa ja 1 käyttöjärjestelmä eli Raspbian tätä koko prosessia varten. 1. ohjelmisto: Ensimmäinen ohjelmisto on Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

Toinen ohjelmisto: Toinen ohjelmisto on SD Card Formatter.

www.sdcard.org/downloads/formatter_4/

Raspbian -käyttöjärjestelmä: Tämä on Pi: n pääkäyttöjärjestelmä.

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

Pura kaikki tiedostot työpöydälle.

2) Hanki SD -kortti ja kortinlukija

Hanki vähintään 8 Gt luokan 10 SD -kortti kortinlukijalla. Aseta kortti kortinlukijaan ja liitä se USB -porttiin.

3) Alusta SD -kortti

Avaa SD Card Formatter ja valitse asema.

Napsauta muotoa ja älä muuta muita vaihtoehtoja.

Kun muotoilu on valmis, napsauta OK.

4) Kirjoita käyttöjärjestelmä SD -kortille

Avaa win32diskimager.

Selaa ladatusta tiedostosta purettua Raspbian -käyttöjärjestelmän.img -tiedostoa.

Napsauta Avaa ja sitten Kirjoita.

Jos jokin varoitus tulee näkyviin, ohita ne napsauttamalla OK. Odota, että kirjoitus on valmis, ja se voi kestää muutaman minuutin. Joten ole kärsivällinen.

n

5) Kun tämä on tehty, olemme valmiita tekemään joitain viimeisiä säätöjä ennen kuvan asettamista RPi: hen.

Siirry SD -kortin hakemistoon, etsi tiedosto nimeltä 'cmdline.txt' ja avaa se.

Lisää nyt 'ip = 169.254.10.1' samalla rivillä.

Tallenna tiedosto.

Luo tiedosto nimeltä 'ssh' ilman laajennusta tai sisältöä. (Helpoin tapa on luoda txt -tiedosto ja poistaa.txt -tiedosto sen jälkeen)

Nyt kun kaikki on asennettu SD -kortille, voit poistaa sen TURVALLISESTI tietokoneestasi ja laittaa sen Raspberry Pi -laitteeseen ilman virtaa. Kun SD -kortti on RPI: ssä, kytke tietokoneesi LAN -kaapeli RPi LAN -porttiin, kun tämä on kytketty, voit kytkeä virran RPi: hen.

Osa 2: RPi: n määrittäminen

Kitti

Nyt haluamme määrittää Raspberry Pi: n, tämä tehdään Puttyn kautta.

Putty -ohjelmisto:

Kun olet ladannut, avaa Putty ja lisää IP '169.254.10.1' ja portti '22' ja yhteystyyppi: SSH.

Nyt voimme vihdoin avata komentoriviliittymän ja kirjautua sisään aloituskirjautumistiedoilla -> Käyttäjä: pi & Salasana: vadelma. (Sen suositus on vaihtaa se mahdollisimman nopeasti. Tässä on opas:

Raspi-config

Meidän on otettava käyttöön eri rajapinnat, ja tehdäksesi sen meidän on ensin kirjoitettava seuraava koodi:

sudo raspi-config

Asiat, jotka meidän on otettava käyttöön, ovat liitäntäosassa. Meidän on otettava käyttöön seuraavat rajapinnat:

  • Yksijohtiminen
  • Sarja
  • I2C
  • SPI

Se oli kaikki mitä tarvitsimme raspi-configin kanssa

WIFI: n lisääminen

Ensin sinun on oltava root, jotta seuraava komento tulee rootiksi

sudo -i

Kun olet pääkäyttäjä, käytä seuraavaa komentoa: (Korvaa SSID verkkosi nimellä ja salasana verkkosi salasanalla)

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

Jos teit jotain väärin, voit tarkistaa, päivittää tai poistaa tämän verkon antamalla seuraavan komennon:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Joten kun pääsimme verkkoon, siirrymme WPA -asiakasrajapintaan

wpa_cli

Valitse käyttöliittymä

käyttöliittymä wlan0

Lataa tiedosto uudelleen

määritä uudelleen

Ja lopuksi voit nähdä, onko yhteys kunnossa:

ip a

Osa 3: RPi + -asennusohjelmiston päivittäminen

Nyt kun olemme yhteydessä Internetiin, jo asennettujen pakettien päivittäminen olisi järkevää, joten tehkää se ennen muiden pakettien asentamista.

sudo apt-get päivitys

sudo apt-get päivitys

RPi -päivityksen jälkeen meidän on asennettava seuraava ohjelmisto:

MariaDB -tietokanta

sudo apt-get install mariadb-server

Apache2 -verkkopalvelin

sudo apt asentaa apache2

Python

update-alternatives --install/usr/bin/python python /usr/bin/python3.7 1 päivitysvaihtoehdot --install/usr/bin/python python/usr/bin/python3 2

Python paketti

Sinun on asennettava kaikki nämä paketit, jotta taustajärjestelmä toimii täydellisesti:

  • Pullo
  • Pullo-Cors
  • Pullo-MySql
  • Flask-SocketIO
  • PyMySQL -pyynnöt
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-websocket

Kaiutinkirjasto

Jotta kaiutinta voidaan käyttää vahvistimen kanssa, meidän on asennettava sille kirjasto

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

Tietokannan määrittäminen RPi: lle!
Tietokannan määrittäminen RPi: lle!

Nyt kun olemme asentaneet kaiken tarvitsemamme, laitetaan suunnittelemamme tietokanta Raspberry Pi -laitteeseemme!

Tietokannan luomiseksi meidän on yhdistettävä MySql ja RPi. Tätä varten avaamme MySQLWorkbenchin ja muodostamme uuden yhteyden. Kun katsot kuvaa, sinun on muutettava muuttaaksesi tiedot omiksi.

Jos et ole vielä muuttanut mitään, voit käyttää SSH pi ja vadelma, MySQL mysql ja mysql.

Jos jokin on epäselvää, voit myös seurata tätä opetusohjelmaa:

Tietokannan viemisen pitäisi olla helpompaa PHPmyAdminin avulla, koska voit saada paljon virheitä tekemällä sen MySql: n avulla

Vaihe 6: Bluetoothin määrittäminen RPi -laitteellemme

Luomme Mood -kaiuttimen, jota voimme käyttää myös oman musiikkimme kanssa, joten tämä on helpompaa RPi: n ollessa

Bluetoothiin yhdistettynä seurasin sen opetusohjelmaa, jonka löydät täältä:

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

Kirjoitin kaiken tähän myös kaikille, jotka haluavat luoda sen uudelleen

Poistetaan jo käynnissä oleva bluealsa

sudo rm/var/run/bluealsa/*

Lisää A2DP -profiilin pesuallas

sudo bluealsa -p a2dp -pesuallas &

Avaa Bluetooth -käyttöliittymä ja käynnistä Bluetooth

bluetoothctl virta päällä

Määritä pariliitosagentti

agentti oletusagentilla

Tee RPi löydettäviksi

löydettävissä

  • Etsi nyt Bluetooth -laitteeltasi RPi ja muodosta yhteys siihen.
  • Vahvista pariliitos molemmilla laitteilla, kirjoita kittiisi kyllä.
  • Valtuuta A2DP -palvelu, kirjoita uudelleen kyllä.
  • Kun tämä on tehty, voimme luottaa laitteeseemme, joten meidän ei tarvitse käydä tätä läpi joka kerta, kun haluamme muodostaa yhteyden

luottamus XX: XX: XX: XX: XX: XX (bluetooth -mac -osoitteesi lähdelaitteeltamme)

Jos haluat, että RPi on edelleen löydettävissä, se on sinun valintasi, mutta mieluummin sammutan sen uudelleen, jotta ihmiset eivät voi yrittää muodostaa yhteyttä laatikkoosi

löydettävissä

Sitten voimme poistua Bluetooth -käyttöliittymästämme

poistua

Ja lopuksi äänireititys: lähdelaitteemme välittää RPi: lle

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

Nyt laitteemme on yhdistetty Vadelma -laitteeseemme bluetoothilla ja sinun pitäisi pystyä testaamaan sitä toistamalla mitä tahansa mediaa, kuten Spotify jne.

Vaihe 7: Koko taustaohjelman kirjoittaminen

Joten nyt asennus on valmis, voimme vihdoin alkaa kirjoittaa taustaohjelmaamme!

Käytin Visual Studio -koodia koko taustajärjestelmässäni, sinun on vain varmistettava, että Visual Studio -projektisi on kytketty Raspberry Pi -laitteeseesi, mikä tarkoittaa, että LAN -kaapelisi on yhdistettävä RPi -laitteeseesi ja muodostettava SSH -yhteys. (tietoja etäyhteyden luomisesta löydät täältä:

Käytin omia kurssejani, ja nämä kaikki sisältyvät myös GitHubiini.

Taustatiedostossani käytin erilaisia luokkia, joten kaikkea voidaan käyttää erikseen ja jotta pääkoodini ei ole sotku kaikkien eri säikeiden kanssa. Käytin kierteitystä kaikkien eri luokkien suorittamiseen kerralla. Ja alareunassa on kaikki reitit, jotta voimme helposti saada tietoja käyttöliittymästämme.

Vaihe 8: Käyttöliittymän kirjoittaminen (HTML, CSS ja JavaScript)

Nyt kun taustaohjelma on valmis, voimme aloittaa koko käyttöliittymän kirjoittamisen.

HTML ja CSS olivat minulle melko vaikeita. Tein parhaani tehdäkseni siitä ensin mobiili, koska voin muodostaa yhteyden siihen Bluetoothilla vaihtaakseni kappaleita Spotifyn avulla. Joten sitä olisi helpompi hallita mobiililaitteesta

Voit suunnitella kojelaudasi haluamallasi tavalla, jätän vain koodini ja suunnitteluni tähän, voit tehdä mitä haluat!

Ja Javascript ei ollut helpompi minulle, työskenteli muutaman GET: n kanssa taustareiteiltäni, tonnia tapahtumakuuntelijoita ja joitain socketio -rakenteita saadakseni tiedot antureistani.

Vaihe 9: Kotelon rakentaminen ja kaiken yhdistäminen

Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen
Kotelon rakentaminen ja kaiken yhdistäminen

Aloitin ensin luonnostelun siitä, miten halusin näyttää kotelon, tärkeä asia oli, että sen oli oltava riittävän suuri, jotta kaikki mahtuu, koska saimme suuren piirin koteloon, mutta meidän oli pysyttävä kompaktina, jotta se ei t vie paljon tilaa

Tein kotelon puusta, mielestäni se on helpointa työskennellä, kun sinulla ei ole niin paljon kokemusta koteloiden rakentamisesta ja sinulla on myös paljon asioita, joita voit tehdä sen kanssa.

Aloitin vanhasta lankusta, jonka olin asettanut, ja aloin juuri sahata puuta. Kun minulla oli peruskotelo, minun piti vain porata siihen reikiä (paljon kotelon etuosaan, kuten kuvista näkyy ja laittaa siihen nauloja, se on todella peruskotelo, mutta se näyttää aika siistiltä ja sopii täydellisesti. Päätin myös maalata sen valkoiseksi, jotta se näyttää hyvältä.

Ja kun tapaus oli tehty, oli aika koota kaikki yhteen, kuten voit nähdä viimeisestä kuvasta! Laatikon sisällä on sotku, mutta kaikki toimii, eikä minulla ollut paljon enemmän tilaa, joten neuvon sinua luomaan ehkä isomman kotelon, jos luot projektiani uudelleen.

Suositeltava: