Sisällysluettelo:

Slimbox - älykäs Bluetooth -kaiutin!: 10 vaihetta (kuvilla)
Slimbox - älykäs Bluetooth -kaiutin!: 10 vaihetta (kuvilla)

Video: Slimbox - älykäs Bluetooth -kaiutin!: 10 vaihetta (kuvilla)

Video: Slimbox - älykäs Bluetooth -kaiutin!: 10 vaihetta (kuvilla)
Video: Универсальная прошивка для ТВ Боксов на AMLOGIC процессорах SLIMBOX. На примере TANIX TX9S 2024, Marraskuu
Anonim
Slimbox - älykäs Bluetooth -kaiutin!
Slimbox - älykäs Bluetooth -kaiutin!

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

Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet
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

Kaavio ja johdotus
Kaavio ja johdotus
Kaavio ja johdotus
Kaavio ja johdotus
Kaavio ja johdotus
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

Tietokannan suunnittelu
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:

  1. Aseta SD -kortti tietokoneeseen.
  2. Avaa juuri lataamasi Win32.
  3. Valitse juuri lataamasi Raspbian -kuvatiedosto.
  4. 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.

  1. Siirry SD -kortin hakemistoon, etsi tiedosto nimeltä 'cmdline.txt' ja avaa se.
  2. Lisää nyt 'ip = 169.254.10.1' samalla rivillä.
  3. Tallenna tiedosto.
  4. 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

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 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: