Sisukord:

Slimbox - nutikas Bluetooth -kõlar!: 10 sammu (koos piltidega)
Slimbox - nutikas Bluetooth -kõlar!: 10 sammu (koos piltidega)

Video: Slimbox - nutikas Bluetooth -kõlar!: 10 sammu (koos piltidega)

Video: Slimbox - nutikas Bluetooth -kõlar!: 10 sammu (koos piltidega)
Video: Универсальная прошивка для ТВ Боксов на AMLOGIC процессорах SLIMBOX. На примере TANIX TX9S 2024, November
Anonim
Slimbox - nutikas Bluetooth -kõlar!
Slimbox - nutikas Bluetooth -kõlar!

Tere!

Oma kooliprojekti jaoks MCT Howest Kortrijkis valmistasin nutika Bluetooth -kõlariseadme, millel on erinevad andurid, LCD ja RGB NeoPixeli rõngas. Kõik töötab Raspberry Pi -l (andmebaas, veebiserver, taustaprogramm).

Nii et selles juhendatavas näitan teile samm -sammult, kuidas ma selle projekti kolme nädala jooksul tegin, nii et kui keegi teist soovib minu projekti uuesti luua, saate seda hõlpsalt teha!

See on ka minu esimene juhendatav, kui teil on küsimusi, proovin neile võimalikult kiiresti vastata!

Minu GitHub:

Samm: tarvikud

Tarvikud
Tarvikud
Tarvikud
Tarvikud
Tarvikud
Tarvikud

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:

Potentsiomeetri andur

Potentsiomeeter on kolme klemmiga takisti, mida saab käsitsi reguleerida, lihtsalt anduri ülemist osa pöörates. Ülemise osa asend määrab potentsiomeetri väljundpinge.

LSM303 kiirendusmõõtur + kompassi läbimurre

LSM303 purunemisplaat on kombinatsioon kolmeteljelisest kiirendusmõõturist ja magnetomeetrist / kompassist, mille on tootnud Adafruit. Seda kasutatakse koos Raspberry Pi I2C liidesega.

Ülevaade:

Andmeleht:

MCP3008

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

Andmeleht:

Kõlar - 3”läbimõõt - 8 oomi 1 vatt

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 NeoPixeli rõngas on ühendatud Arduinoga ja jookseb seal edasi, samas kui kõik muu kraam jookseb Raspberry Pi peal.

RGB NeoPixel sõrmus

See on väike rõngas, mis on täidetud 12 RGB -valgusdioodiga (soovi korral saate osta suuremaid rõngaid, 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.

Ülevaade:

LCD ekraan 16x2

Kasutasin temperatuuri, helitugevuse ja IP -aadressi printimiseks tavalist LCD -ekraani.

Andmeleht:

Raspberry Pi 3B+ ja 16 GB SD -kaart

Kogu minu projekt töötab minu seadmel Raspberry Pi 3B+ koos konfigureeritud pildiga, mille aitan teil hiljem oma juhendis konfigureerida.

GPIO T-osa, 2 leivalauda ja palju hüppajaid

Kõigi vajalike leivaplaatide ja hüppajajuhtmete ühendamiseks kasutasin GPIO T-osa, nii et mul on rohkem ruumi ja on selge, milline tihvt on kumb.

2. samm: skeem ja juhtmestik

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

Oma skeemi jaoks kasutasin Fritzingit, see on programm, mille saate installida ja mis võimaldab teil luua erinevates vaadetes skeemi.

Laadige Fritzing alla:

Nii et veenduge, et ühendate kõik õigel viisil! Minu puhul pole juhtmete värvid samad, mis skeemil.

3. samm: andmebaasi kujundamine

Andmebaasi kujundus
Andmebaasi kujundus

Kogume 3 ühendatud andurilt palju andmeid, seega vajame andmete ja andurite salvestamiseks andmebaasi. Hiljem vaatame, kuidas Raspberry Pi andmebaasi seadistada ja kuidas sellele andmeid lisada. Kuid kõigepealt tuleb teha andmebaasi kujundus või ERD (olemisuhete skeem) ja ka minu oma normaliseeriti 3NF -iga. Seetõttu jagasime andurid teise tabelisse ja töötame ID -dega.

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

Samm: valmistage Raspberry Pi

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

SD -kaardi konfiguratsioon

Esiteks vajate 16 GB SD -kaarti, kuhu saate oma pildi panna, ja programmi, mis võimaldab SD -kaardile üles laadida alguspildi.

Tarkvara:

Stardipilt:

Nii et kui need on alla laaditud:

  1. Pange oma SD -kaart arvutisse.
  2. Avage äsja alla laaditud Win32.
  3. Valige Raspbiani pildifail, mille samuti alla laadisite.
  4. Klõpsake "kirjuta" oma SD -kaardi asukohta.

Sõltuvalt teie riistvarast võib see aega võtta. Kui see on tehtud, oleme valmis enne pildi RPi lisamist tegema mõningaid viimaseid kohandusi.

  1. Minge oma SD -kaardi kataloogi, otsige faili nimega cmdline.txt ja avage see.
  2. Nüüd lisage samale reale 'ip = 169.254.10.1'.
  3. Salvestage fail.
  4. Looge fail nimega 'ssh' ilma laiendi või sisuta.

Nüüd saate SD -kaardi turvaliselt arvutist välja võtta ja ilma toiteeta Raspberry Pi -sse panna. Kui SD -kaart on RPI -sse ühendatud, ühendage arvutist LAN -kaabel RPi LAN -porti, kui see on ühendatud, saate toite RPi -ga ühendada.

Nüüd tahame oma Raspberry Pi juhtida, 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.

Raspi-config

sudo raspi-config

Selle projekti jaoks on tõesti oluline liideste sektsioon, peame lubama palju erinevaid liideseid, lubama kõik järgmised liidesed:

  • Ühe juhtmega
  • SPI
  • I2C
  • Seriaal

Nüüd, kui oleme raspi-configiga lõpetanud, proovime luua Interneti-ühenduse.

WiFi-ühendus

Esiteks peate järgmiste käskude jaoks olema root

sudo -i

Kui olete root, kasutage järgmist käsku. SSID on teie võrgu nimi ja parool on ilmselgelt parool.

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

Kui tegite vea, saate seda võrku kontrollida, värskendada või kustutada, sisestades selle faili:

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

Värskenda ja uuenda

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

MariaDB andmebaas

Installige MariaDB andmebaasiserver:

sudo apt-get install mariadb-server

Apache2 veebiserver

Installige Apache2 veebiserver:

sudo apt install apache2

Python

Pythoni installimine:

update-alternatives --install/usr/bin/python python /usr/bin/python2.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
  • Ujson
  • Wsaccel

Kõlarite raamatukogu

Installige kõlariteek Adafruitist:

curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | lööma

Aeg taaskäivitada

sudo taaskäivitamine

Samm: edastage meie andmebaas RPi -le

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

Nii et kõigepealt peame oma andmebaasi edasi töötama MySql töölaual, kopeerides samal ajal kogu oma andmebaasi koodi ja kustutades kõik selles nähtavad sõnad. Nii et kui see on kopeeritud, avame uuesti kitt, logige sisse ja tippige:

sudo mysql

ja nüüd olete mysqli liideses, kopeerige sinna oma andmebaasi kood ja vajutage sisestusklahvi.

Nüüd peame lihtsalt kasutaja looma

CREATE USER 'user' IDENTIFIED BY 'user';

ANNA KÕIK PRIILIID ON *. * "Kasutajale";

Nüüd taaskäivitage.

Nii et kõik peaks olema nüüd seadistatud, saate luua ühenduse ka oma Pi ja MySql Workbenchiga, nii et kõiki tabelites olevaid andmeid on lihtsam kontrollida.

Samm: Bluetoothi seadistamine meie RPi -s

Loome Bluetooth -kõlarit, nii et see tähendab, et meedia saadetakse meie allikast Raspberry Pi -le ja seda saab teha üsna lihtsalt, asume kohe asja juurde!

Minu bluetooth-ühenduse allikas:

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

sisse lülitada

Seadistage sidumisagent

agent peal

vaikimisi agent

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 meie Raspberryga täielikult ühendatud ja teil peaks olema võimalik Pi -kõlarist oma allikaseadmest meediat esitada.

Samm: täieliku taustaprogrammi kirjutamine

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

Kasutasin kogu oma taustaprogrammi jaoks PyCharmi, peate lihtsalt veenduma, et teie PyCharmi projekt on teie Raspberry Pi -ga ühendatud, see tähendab, et teie kasutuselevõtu tee on teie seadetes seadistatud ja olete installinud kõik vajalikud paketid, tuleks juba sammus teha 4.

Kasutasin oma tunde ja need on ka kõik minu GitHubi kaasatud. Link on sissejuhatuses juhuks, kui sellest ilma jäite;)

Oma taustafailis kasutasin niiditunde, nii et kõik saab korraga töötada ja see ei katkesta üksteist. 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 -i ja CSS -i tegemine oli üsna lihtne, proovisime kõigepealt võimalikult palju mobiiliga töötada, kuna enamasti ühendame Bluetoothiga mobiilseadmest, oleks seda lihtsam juhtida mobiili juhtpaneelilt.

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 nii raske, töötas mõne GET -iga minu taustaprogrammilt, palju sündmuste kuulajaid ja mõningaid pistikupesa struktuure.

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

Alustasin kõigepealt visanditega selle kohta, kuidas ma tahaksin, et juhtum välja näeks. Oluline oli see, et see peab olema piisavalt suur, et kõik ära mahuks, kuna saime korpuse jaoks suure vooluringi.

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 veinipudelite ümbrisest ja hakkasin lihtsalt puitu saagima. Kui mul oli oma põhikohver olemas, pidin lihtsalt sellesse augud puurima (korpuse esiküljel palju, nagu piltidelt näha: P) ja mõned küüned sinna sisse pandud, see on tõesti elementaarne juhtum, aga näeb päris lahe välja ja sobib ideaalselt.

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.

Samm: mõned probleemid, mis mul tekkisid Slimboxi kõlari loomisel …

Bluetoothi ja bluealsa vead

Iga kord, kui tahtsin muusikat mängida või Bluetoothiga ühenduse luua, sain bluetoothist ja bluealsast tõrkeid. Uurisin seda ja see oli minu probleemi lahendus. Nii et mu bluetooth oli mingil põhjusel pehme blokeeringuga, pole kindel, kas see on tavaline pehme blokeerimine. Saate näha, kas see on nii, kui sisestate oma Putty -sse järgmise käsu.

rfkill nimekiri

Nii et kui see on pehme blokeeringuga, kasutage seda lihtsalt:

rfkill blokeeringu tühistamine

Ja võib -olla soovite pärast seda taaskäivitada, minu allikas:

Probleemid jadaühendusega

Teine suur probleem, mis mul oli, oli see, et ma ei suutnud taseme nihutaja kaudu oma Arduinoga ühendust luua, pärast mõningast otsimist avastasin, et minu '/dev/ttyS0' on kadunud ja põhjuseks võib olla teie RPi värskendamine. Ka sellele leiti lahendus

Peate jadakonsooli raspi-config abil uuesti lubama, taaskäivitama ja seejärel bitti "console = serial0, 115200" käsitsi eemaldama failist '/boot/cmdline.txt'. Veenduge, et "enable_uart = 1" on' /boot/config.txt 'ja taaskäivitage uuesti. See peaks taastama teie ttyS0 pordi ja pehme lingi "/dev/serial0".

Allikas:

Soovitan: