Sisällysluettelo:
- Vaihe 1: Tarvikkeet
- Vaihe 2: Kaavio ja johdotus
- Vaihe 3: Tietokannan suunnittelu
- Vaihe 4: Asenna Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Vaihe 6: Bluetoothin määrittäminen RPi -laitteellemme
- Vaihe 7: Koko taustaohjelman kirjoittaminen
- Vaihe 8: Käyttöliittymän kirjoittaminen (HTML, CSS ja JavaScript)
- Vaihe 9: Kotelon rakentaminen ja kaiken yhdistäminen
Video: Mood Speaker- tehokas kaiutin mielialan musiikin toistamiseen ympäristön lämpötilan perusteella: 9 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
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
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
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
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
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:
Aktiivisen musiikin juhla -LED -lyhty ja Bluetooth -kaiutin, jossa hehku pimeässä PLA: 7 vaihetta (kuvilla)
Aktiivisen musiikin juhla -LED -lyhty ja Bluetooth -kaiutin, jossa hehku pimeässä PLA: Hei, ja kiitos, että viritit Instructable -ohjelmaan! Joka vuosi teen mielenkiintoisen projektin poikani kanssa, joka on nyt 14. Olemme rakentaneet Quadcopter, Swimming Temple Clock (joka on myös Instructable), CNC -kotelopenkki ja Fidget Spinners
Kuinka käyttää silmukkaa jonon toistamiseen Javassa: 9 vaihetta
How -loopin käyttäminen taulukon toistamiseen Javassa: Tänään näytän sinulle, kuinka voit käyttää Javaa luodaksesi while -silmukan, jota voidaan käyttää toistamaan numero- tai sanaluettelo. Tämä konsepti on tarkoitettu lähtötason ohjelmoijille ja kaikille, jotka haluavat saada nopean harjoituksen Java-silmukoista ja matriiseista
PWM -säädetty tuuletin suorittimen lämpötilan perusteella Raspberry Pi: 4 vaihetta (kuvilla)
PWM -säädetty tuuletin, joka perustuu suorittimen lämpötilaan Raspberry Pi: Monissa Raspberry Pi -koteloissa on pieni 5 V: n tuuletin, joka auttaa jäähdyttämään suorittimen. Nämä tuulettimet ovat kuitenkin yleensä melko meluisia, ja monet ihmiset kytkevät sen 3V3 -nastaan melun vähentämiseksi. Näiden tuulettimien nimellisteho on yleensä 200 mA, mikä on melko hyvä
4 Musiikin reaktiiviset LED -piirit -- MIC/AUX -kaapeli/kaiutin: 3 vaihetta
4 Musiikin reaktiiviset LED -piirit || MIC/AUX-kaapeli/kaiutin: Tämä on piiri, joka reagoi tunnelmaan ja hehkuu LEDit musiikin lyönnillä. Yksi transistori 2. Kaksi transistoria 3. AUX -kaapeli 4. Kaiutin
Bluetooth -kaiutin musiikin visualisoijalla: 10 vaihetta (kuvien kanssa)
Bluetooth -kaiutin musiikin visualisoijalla: Tässä ohjeessa näytän sinulle, kuinka rakennan tämän Bluetooth -kaiuttimen, jonka yläosassa on musiikin visualisoija. Se näyttää todella siistiltä ja tekee kappaleesi kuunteluhetkestä mahtavamman. Voit päättää, haluatko ottaa visualisoijan käyttöön vai et