Sisällysluettelo:
- Vaihe 1: Tarvikkeet
- Vaihe 2: Kaavio ja johdotus
- Vaihe 3: Tietokannan suunnittelu
- Vaihe 4: Valmista Raspberry Pi
- Vaihe 5: Suunnittele tietokantamme eteenpäin RPi: lle
- 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
- Vaihe 10: Jotkut ongelmat, joita minulla oli Slimbox -kaiuttimen luomisessa…
Video: Slimbox - älykäs Bluetooth -kaiutin!: 10 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Hei siellä!
Kouluprojektiini MCT Howest Kortrijkissa tein älykkään Bluetooth -kaiutinlaitteen, jossa on eri anturit, LCD -näyttö ja RGB -NeoPixel -rengas. Kaikki toimii Raspberry Pi: llä (tietokanta, verkkopalvelin, taustajärjestelmä).
Joten tässä ohjeessa näytän sinulle, kuinka tein tämän projektin 3 viikossa, askel askeleelta, joten jos joku teistä haluaa luoda projektini uudelleen, voit helposti tehdä sen!
Tämä on myös ensimmäinen ohjeeni, jos sinulla on kysyttävää, yritän vastata niihin mahdollisimman nopeasti!
Oma GitHub:
Vaihe 1: Tarvikkeet
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:
Potentiometrin anturi
Potentiometri on vastus, jossa on kolme liitintä ja joka on manuaalisesti säädettävissä vain kiertämällä anturin yläosaa. Yläosan asento määrittää potentiometrin lähtöjännitteen.
LSM303 Kiihtyvyysmittari + kompassi
LSM303-katkaisulauta on yhdistelmä kolmoisakselista kiihtyvyysanturia ja magnetometriä / kompassia, valmistaja Adafruit. Sitä käytetään Raspberry Pi: n I2C -käyttöliittymän kanssa.
Yleiskatsaus:
Tietolomake:
MCP3008
Potentiometrin tietojen lukemiseen käytin MCP3008: a, joka on 8 -kanavainen 10 -bittinen analoginen digitaalimuunnin SPI -liitännällä ja on melko helppo ohjelmoida.
Tietolomake:
Kaiutin - halkaisija 3” - 8 ohmia 1 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ämä on tarpeen, koska NeoPixel -rengas on kytketty Arduinoon ja toimii siellä, kun taas kaikki muu tavara kulkee Raspberry Pi -laitteella.
RGB NeoPixel -rengas
Tämä on pieni rengas, joka on täynnä 12 RGB -lediä (voit halutessasi ostaa isompia renkaita, 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.
Yleiskatsaus:
LCD -näyttö 16x2
Tulostin lämpötilan, äänenvoimakkuuden ja IP -osoitteen perusnäytöllä.
Tietolomake:
Raspberry Pi 3B+ ja 16 Gt: n SD -kortti
Koko projektini toimii Raspberry Pi 3B+ -laitteellani, jossa on määritetty kuva, jonka autan sinua määrittämään myöhemmin ohjeeni.
GPIO T-Part, 2 Breadboards ja paljon hyppylankoja
Liittääkseni kaiken tarvitsemani leipälevyt ja hyppyjohdot käytin GPIO T-osaa, joten minulla on enemmän tilaa ja on selvää, mikä nasta on mikä.
Vaihe 2: Kaavio ja johdotus
Kaaviossa käytin Fritzingia, se on ohjelma, jonka voit asentaa ja jonka avulla voit luoda kaavion todella helposti erilaisissa näkymissä.
Lataa Fritzing:
Varmista siis, että liität kaiken oikein! Minun tapauksessani johtojen värit eivät ole samat kuin kaaviossa.
Vaihe 3: Tietokannan suunnittelu
Keräämme paljon dataa kolmesta yhdistetystä anturista, joten tarvitsemme tietokannan tietojen ja antureiden tallentamiseen. Myöhemmin näemme, miten tietokanta määritetään Raspberry Pi -laitteella ja miten siihen lisätään tietoja. Mutta ensin on tehtävä tietokannan suunnittelu tai ERD (entiteettisuhdekaavio), ja myös omani normalisoitiin 3NF: llä. Siksi jaamme anturit toiseen taulukkoon ja käytämme tunnisteita.
Kaiken kaikkiaan tämä on todella yksinkertainen ja helppo tietokantasuunnittelu, jota voidaan jatkaa työskentelemällä.
Vaihe 4: Valmista Raspberry Pi
Joten nyt, kun meillä on joitain perusasioita projektista. Aloitetaan Raspberry Pi: n kanssa!
SD -kortin kokoonpano
Ensinnäkin tarvitset 16 Gt: n SD -kortin, johon voit laittaa kuvan, ja ohjelman, jolla voit ladata aloituskuvan SD -kortille.
Ohjelmisto:
Aloituskuva:
Joten kun nämä on ladattu:
- Aseta SD -kortti tietokoneeseen.
- Avaa juuri lataamasi Win32.
- Valitse juuri lataamasi Raspbian -kuvatiedosto.
- Napsauta 'kirjoita' SD -kortin sijaintiin.
Tämä voi kestää jonkin aikaa laitteistosta riippuen. Kun tämä on tehty, olemme valmiita tekemään joitain lopullisia 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öä.
Nyt voit poistaa SD -kortin 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.
Nyt haluamme hallita Raspberry Pi: tämme, 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.
Raspi-config
sudo raspi-config
Tässä projektissa todella tärkeä on liitäntäosa, meidän on otettava käyttöön paljon erilaisia rajapintoja, otettava käyttöön kaikki seuraavat rajapinnat:
- Yksijohtiminen
- SPI
- I2C
- Sarja
Nyt kun raspi-config on valmis, yritetään muodostaa yhteys Internetiin.
Wi-Fi-yhteys
Ensin sinun on oltava root seuraaville komennoille
sudo -i
Kun olet root, käytä seuraavaa komentoa. SSID on verkkosi nimi ja salasana on ilmeisesti sen salasana.
wpa_passphrase "ssid" "salasana" >> /etc/wpa_supplicant/wpa_supplicant.conf
Jos teit virheen, voit tarkistaa, päivittää tai poistaa tämän verkon kirjoittamalla vain tiedoston:
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
Päivitä ja päivitä
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
MariaDB -tietokanta
Asenna MariaDB -tietokantapalvelin:
sudo apt-get install mariadb-server
Apache2 -verkkopalvelin
Asenna Apache2 -verkkopalvelin:
sudo apt asentaa apache2
Python
Asenna Python:
update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1
update-alternatives --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
- Ujson
- Wsaccel
Kaiutinkirjasto
Asenna kaiutinkirjasto Adafruitista:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | lyödä
Aika käynnistää uudelleen
sudo uudelleenkäynnistys
Vaihe 5: Suunnittele tietokantamme eteenpäin RPi: lle
Nyt kun olemme asentaneet kaiken tarvitsemamme, laitetaan suunnittelemamme tietokanta Raspberry Pi -laitteeseemme!
Joten meidän on ensin suunniteltava tietokantamme MySql -työpöydälle ja kopioitava koko tietokantakoodisi ja poistettava kaikki siinä näkyvät sanat. Joten kun se on kopioitu, avaa kitti uudelleen, kirjaudu sisään ja kirjoita:
sudo mysql
ja nyt olet mysql -käyttöliittymässä, kopioi tietokantasi koodi siihen ja paina enter.
Nyt meidän on vain luotava käyttäjä
LUO KÄYTTÄJÄ "käyttäjä" TUNNISTETTU "käyttäjällä";
ANNA KAIKKI OIKEUDET *. * "Käyttäjälle";
Käynnistä nyt uudelleen.
Joten kaiken pitäisi olla asennettuna nyt, voit myös muodostaa yhteyden Pi- ja MySql -työpöydällesi, joten on helpompi tarkistaa kaikki taulukoidesi tiedot.
Vaihe 6: Bluetoothin määrittäminen RPi -laitteellemme
Luomme Bluetooth -kaiutinta, joten tämä tarkoittaa, että media lähetetään lähteestämme Raspberry Pi: hen, ja tämä voidaan tehdä melko helposti, mennään heti asiaan!
Lähteeni bluetooth-yhteydelle:
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äälle
Määritä pariliitosagentti
agentti päällä
oletusagentti
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 täysin yhdistetty Vadelma -tuotteeseemme ja sinun pitäisi pystyä toistamaan mediaa lähdelaitteestasi Pi -kaiuttimella.
Vaihe 7: Koko taustaohjelman kirjoittaminen
Joten nyt asennus on valmis, voimme vihdoin alkaa kirjoittaa taustaohjelmaamme!
Käytin PyCharmia koko taustajärjestelmässäni, sinun on vain varmistettava, että PyCharm -projektisi on kytketty Raspberry Pi -laitteeseesi, mikä tarkoittaa, että käyttöönottopolku on määritetty asetuksissasi ja olet asentanut kaikki tarvitsemamme paketit, pitäisi tehdä jo vaiheessa 4.
Käytin omia kurssejani, ja nämä kaikki sisältyvät myös GitHubiini. Linkki on introssa, jos olet unohtanut sen;)
Taustatiedostossani käytin kierteitysluokkia, joten kaikki voi toimia samanaikaisesti, eikä se keskeytä toisiaan. 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 tehtiin melko helposti, yritettiin ensin käyttää mobiililaitteita mahdollisimman paljon, koska useimmiten muodostamme yhteyden Bluetoothiin mobiililaitteesta, 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 niin kova, työskenteli muutaman GET: n kanssa taustareiteiltäni, tonnia tapahtumakuuntelijoita ja joitain socketio -rakenteita.
Vaihe 9: Kotelon rakentaminen ja kaiken yhdistäminen
Aloitin ensin muutamalla luonnoksella siitä, miten halusin näyttää kotelon. Yksi tärkeä asia oli, että sen piti olla riittävän suuri, jotta kaikki mahtuu, koska saimme suuren piirin koteloon.
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 viinipullojen kotelosta ja aloin juuri sahata puuta. Kun minulla oli peruskotelo, minun piti vain porata siihen reikiä (paljon kotelon etuosaan, kuten kuvista näkyy: P) ja laittaa siihen nauloja, se on todella perustapaus, mutta se näyttää aika siistiltä ja sopii täydellisesti.
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.
Vaihe 10: Jotkut ongelmat, joita minulla oli Slimbox -kaiuttimen luomisessa…
Bluetooth- ja bluealsa -virheet
Aina kun halusin soittaa musiikkia tai muodostaa yhteyden Bluetoothiin, sain virheitä Bluetoothilta ja bluealsalta. Tutkin asiaa ja tämä oli ratkaisu ongelmaan. Joten jostain syystä bluetoothini oli pehmeästi estetty, en ole varma, onko tämä vakiona pehmeästi estetty. Näet, onko se, kirjoittamalla Putty -komentoon seuraava komento.
rfkill lista
Joten jos se on pehmeästi estetty, käytä tätä:
rfkill poista Bluetoothin esto
Ja haluat ehkä käynnistää uudelleen tämän jälkeen, lähde:
Sarjayhteysongelmat
Toinen suuri ongelmani oli, että en voinut muodostaa yhteyttä Arduinooni tasonsiirtimen kautta, jonkin haun jälkeen huomasin, että '/dev/ttyS0' oli poissa ja tämä saattaa johtua RPi -päivityksestäsi. Tähänkin löytyi ratkaisu
Sinun on otettava sarjakonsoli uudelleen käyttöön raspi-config-toiminnolla, käynnistettävä uudelleen ja poistettava sitten "console = serial0, 115200" -bitti manuaalisesti tiedostosta '/boot/cmdline.txt'. Vahvista, että "enable_uart = 1" on /boot/config.txt ', ja käynnistä uudelleen.
Lähde:
Suositeltava:
Kannettava Bluetooth 2.1 Boombox: 16 vaihetta (kuvilla)
Kannettava Bluetooth 2.1 Boombox: Hei kaikki! Tässä rakenteessa päätin keksiä kannettavan Bluetooth -boomboxin, jossa olisi ladattava akku ja erinomainen suorituskyky. Tämä kaiutin perustuu Paul Carmodyn Isetta -kaiutinrakenteeseen, jonka olen muokannut hieman mukautumaan
Vanhan kaiuttimen muuntaminen Bluetooth Boomboxiksi: 8 vaihetta (kuvilla)
Vanhan kaiuttimen muuntaminen Bluetooth Boomboxiksi: HI kaikille! Paljon kiitoksia siitä, että kuulit kanssani tätä rakennetta! Ennen kuin ryhdymme yksityiskohtiin, harkitse tämän Instructable -ohjelman äänestämistä kilpailun alareunassa. Tukea arvostetaan suuresti! Aloittamisesta on kulunut muutama vuosi
DIY Arduino Bluetooth -ohjattu auto: 6 vaihetta (kuvilla)
DIY Arduino Bluetooth -ohjattu auto: Hei ystävät! Nimeni on Nikolas, olen 15 -vuotias ja asun Ateenassa, Kreikassa. Tänään näytän sinulle, kuinka tehdä 2-pyöräinen Bluetooth-ohjattu auto Arduino Nano -laitteen, 3D-tulostimen ja joidenkin yksinkertaisten elektronisten komponenttien avulla! Muista katsoa
Arduino Bluetooth RC Auto W/ elektroninen jarrujärjestelmä: 4 vaihetta (kuvilla)
Arduino Bluetooth RC Car W/ elektroninen jarrujärjestelmä: Näin teet RC -auton noin 40 dollarilla (27 dollaria w/ uno klooni)
Muunna Bluetooth -kuulokkeet langallisiksi Bluetooth -kuulokkeiksi: 5 vaihetta (kuvilla)
Muunna Bluetooth -kuulokkeet langallisiksi Bluetooth -kuulokkeiksi: Tänään kerron sinulle, miten voit tehdä tai muuntaa omat langalliset Bluetooth -kuulokkeet