Kazalo:
- 1. korak: Zaloge
- 2. korak: Shema in ožičenje
- 3. korak: Oblikovanje baze podatkov
- 4. korak: Priprava Raspberry Pi
- 5. korak: Posredujte inženiring naše baze podatkov v RPi
- 6. korak: Konfiguriranje Bluetootha na naših RPi
- 7. korak: Pisanje celotnega ozadja
- 8. korak: Pisanje vmesnika (HTML, CSS in JavaScript)
- 9. korak: Zgraditi svoj primer in ga združiti
- 10. korak: Nekatere težave, ki sem jih imel na poti ustvarjanja zvočnika Slimbox …
Video: Slimbox - pameten zvočnik Bluetooth!: 10 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Živijo!
Za svoj šolski projekt v MCT Howest Kortrijk sem izdelal pametno zvočniško napravo Bluetooth z različnimi senzorji, vključno z obročem LCD in RGB NeoPixel. Vse deluje na Raspberry Pi (baza podatkov, spletni strežnik, zaledje).
V tem navodilu vam bom po korakih pokazal, kako sem naredil ta projekt v treh tednih, tako da, če kdo od vas želi poustvariti moj projekt, lahko to preprosto storite!
To je tudi moj prvi pouk, če imate kakršna koli vprašanja, vam bom poskušal čim prej odgovoriti!
Moj GitHub:
1. korak: Zaloge
Temperaturni senzor DS18B20
DS18B20 je enožični senzor za merjenje temperature, ki ga proizvaja Maxim Integrated. Obstajata dve vrsti senzorjev DS18B20, samo sestavni del (ki sem ga uporabil) in vodotesna različica, ki je veliko večja, vendar to ni tisto, kar sem potreboval za svoj projekt, zato sem uporabil samo komponento. Senzor lahko meri temperaturo v območju od -55 ° C do +125 ° C (-67 ° F do +257 ° F) in ima natančnost 0,5 ° C od -10 ° C do +85 ° C. Ima tudi programabilno ločljivost od 9 do 12 bitov.
Podatkovni list:
Senzor potenciometra
Potenciometer je upor s tremi sponkami, ki ga lahko ročno nastavite tako, da zavrtite zgornji del senzorja. Položaj zgornjega dela določa izhodno napetost potenciometra.
Merilnik pospeška LSM303 + prelom kompasa
Odklopna plošča LSM303 je kombinacija troosnega merilnika pospeška in magnetometra / kompasa proizvajalca Adafruit. Uporablja se z vmesnikom I2C Raspberry Pi.
Pregled:
Podatkovni list:
MCP3008
Za branje podatkov s potenciometra sem uporabil MCP3008, ki je 8 -kanalni 10 -bitni analogno -digitalni pretvornik z vmesnikom SPI in ga je zelo enostavno programirati.
Podatkovni list:
Zvočnik - 3”premer - 8 ohmov 1 vat
To je zvočniški stožec, ki sem ga izbral po izračunu napetosti in amperov, ki bi jih potreboval, in to je bilo odlično za moj projekt Raspberry Pi, ki ga je izdelal Adafruit.
Pregled:
MAX98357 I2S Mono ojačevalnik razreda D
To je ojačevalnik, ki je priložen zvočniku, ne samo, da je ojačevalnik, je tudi digitalno -analogni pretvornik I2S, zato je tudi popolnoma primeren za moj zvočnik in avdio sistem.
Pregled:
Podatkovni list:
Arduino Uno
Arduino Uno je odprtokodna mikrokrmilna plošča, ki temelji na mikrokrmilniku Microchip ATmega328P, proizvajalca Arduino.cc. Plošča Uno ima 14 digitalnih zatičev, 6 analognih zatičev in je popolnoma programirana s programsko opremo Arduino IDE
Pregled:
Preklopnik ravni
To je majhna plošča, ki skrbi za komunikacijo med Arduino Uno in Raspberry Pi ter različnimi napetostmi, Arduino: 5V in Raspberry Pi: 3.3V. To je potrebno, ker je obroč NeoPixel povezan z Arduinom in tam deluje, medtem ko vse ostale stvari delujejo na Raspberry Pi.
RGB prstan NeoPixel
To je majhen prstan, napolnjen z 12 RGB LED diodami (če želite, lahko kupite večje obroče z več RGB LED). Kar je v mojem primeru povezano z Arduino Uno, lahko pa ga povežem tudi s številnimi drugimi napravami in je zelo preprosto za uporabo.
Pregled:
LCD zaslon 16x2
Za tiskanje temperature, glasnosti in naslova IP sem uporabil osnovni LCD zaslon.
Podatkovni list:
Kartica SD Raspberry Pi 3B+ in 16 GB
Celoten projekt teče na mojem Raspberry Pi 3B+ s konfigurirano sliko, ki vam jo bom kasneje pomagal konfigurirati v mojem navodilu.
GPIO T-del, 2 ploščice in veliko mostičnih žic
Za povezavo vsega, kar sem potreboval, so bile plošče in mostični kabli, ki sem jih uporabil, da sem imel več prostora in je jasno, kateri pin je kateri.
2. korak: Shema in ožičenje
Za svojo shemo sem uporabil Fritzing, to je program, ki ga lahko namestite in vam omogoča, da preprosto ustvarite shemo v različnih pogledih.
Prenesite Fritzing:
Zato poskrbite, da boste vse povezali na pravi način! V mojem primeru barve žic niso enake kot na shemi.
3. korak: Oblikovanje baze podatkov
Zbiramo veliko podatkov s povezanih treh senzorjev, zato potrebujemo bazo podatkov za shranjevanje podatkov in senzorjev. Kasneje bomo videli, kako konfigurirati bazo podatkov na Raspberry Pi in kako ji dodati podatke. Najprej pa je treba izdelati zasnovo baze podatkov ali ERD (Entity Relationship Diagram), moj pa je bil normaliziran tudi s 3NF. Zato smo senzorje razdelili v drugo mizo in sodelovali z ID -ji.
Na splošno je to res osnovna in enostavna zasnova baze podatkov za nadaljnje delo.
4. korak: Priprava Raspberry Pi
Zdaj, ko smo naredili nekaj osnov projekta. Začnimo z Raspberry Pi!
Konfiguracija kartice SD
Najprej potrebujete kartico SD velikosti 16 GB, na katero lahko vstavite svojo sliko, in program za nalaganje začetne slike na kartico SD.
Programska oprema:
Začetna slika:
Torej, ko jih naložite:
- Vstavite kartico SD v računalnik.
- Odprite Win32, ki ste ga pravkar prenesli.
- Izberite slikovno datoteko Raspbian, ki ste jo pravkar prenesli.
- Kliknite »napiši« na mesto svoje kartice SD.
To lahko traja nekaj časa, odvisno od vaše strojne opreme. Ko to naredimo, smo pripravljeni narediti nekaj zadnjih prilagoditev, preden sliko vstavimo v RPi.
- Pojdite v imenik kartice SD, poiščite datoteko z imenom 'cmdline.txt' in jo odprite.
- Zdaj dodajte "ip = 169.254.10.1" v isto vrstico.
- Shranite datoteko.
- Ustvarite datoteko z imenom 'ssh' brez razširitve ali vsebine.
Zdaj lahko VARNO izvlečete kartico SD iz računalnika in jo vstavite v Raspberry Pi BREZ napajanja. Ko je kartica SD v RPI, priključite kabel LAN iz računalnika na vrata RPi LAN, ko je ta priključen, lahko priključite napajanje na RPi.
Zdaj želimo nadzorovati naš Raspberry Pi, to se naredi prek Puttyja.
Programska oprema za kiti:
Ko naložite, odprite Putty in vstavite IP '169.254.10.1' in vrata '22' ter vrsto povezave: SSH. Zdaj lahko končno odpremo vmesnik ukazne vrstice in se prijavimo z začetnimi podatki za prijavo -> Uporabnik: pi & Geslo: malina.
Raspi-config
sudo raspi-config
Za ta projekt je resnično pomemben odsek vmesnikov, omogočiti moramo veliko različnih vmesnikov, omogočiti vse naslednje vmesnike:
- Enožilni
- SPI
- I2C
- Serijski
Zdaj, ko smo končali z raspi-config, poskusimo vzpostaviti povezavo z internetom.
Povezava Wi-Fi
Najprej morate biti root za naslednje ukaze
sudo -i
Ko ste root, uporabite naslednji ukaz. SSID je ime vašega omrežja in geslo je očitno geslo.
wpa_passphrase "ssid" "geslo" >> /etc/wpa_supplicant/wpa_supplicant.conf
Če ste naredili napako, lahko to omrežje preverite, posodobite ali izbrišete tako, da preprosto vnesete to datoteko:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Torej, ko smo vstopili v naše omrežje, vstopimo v odjemalski vmesnik WPA
wpa_cli
Izberite svoj vmesnik
vmesnik wlan0
Znova naložite datoteko
ponovno konfigurirati
In končno lahko vidite, ali ste dobro povezani:
ip a
Posodobi in nadgradi
Zdaj, ko smo povezani z internetom, bi bila posodobitev že nameščenih paketov pametna poteza, zato naredimo to najprej, preden namestimo druge pakete.
sudo apt-get posodobitev
sudo apt-get nadgradnja
Baza podatkov MariaDB
Namestite strežnik zbirke podatkov MariaDB:
sudo apt-get install mariadb-server
Spletni strežnik Apache2
Namestite spletni strežnik Apache2:
sudo apt namestite apache2
Python
Namestite Python:
posodobitvene alternative --install/usr/bin/python python /usr/bin/python2.7 1
posodobitvene alternative --install/usr/bin/python python/usr/bin/python3 2
Paket Python
Za popolno delovanje zaledja boste morali namestiti vse te pakete:
- Bučka
- Bučke
- Flask-MySql
- Vtičnica za bučkoIO
- PyMySQL
- Zahteve
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- Wsaccel
Knjižnica zvočnikov
Namestite knjižnico zvočnikov iz Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Čas je za ponovni zagon
sudo ponovni zagon
5. korak: Posredujte inženiring naše baze podatkov v RPi
Zdaj, ko smo namestili vse, kar potrebujemo, postavimo našo bazo podatkov, ki smo jo oblikovali, na naš Raspberry Pi!
Zato moramo najprej posredovati našo bazo podatkov v delovni mizi MySql, pri tem pa kopirati celotno kodo zbirke podatkov in izbrisati vse 'vidne' besede v njej. Torej, ko je to kopirano, znova odprite kit, se prijavite in vnesite:
sudo mysql
in zdaj ste v vmesniku mysql, vanj kopirajte kodo baze podatkov in pritisnite enter.
Zdaj moramo samo ustvariti uporabnika
CREATE USER 'user' IDENTIFIED BY 'user';
DAJTE VSE PRIVILEGIJE NA *. * 'Uporabniku';
Zdaj znova zaženite.
Zato bi bilo treba zdaj vse nastaviti, vzpostavite lahko tudi povezavo s svojim Pi in MySql Workbench, da boste lažje preverili vse podatke v tabelah.
6. korak: Konfiguriranje Bluetootha na naših RPi
Ustvarjamo zvočnik Bluetooth, zato to pomeni, da se mediji pošiljajo iz našega vira v Raspberry Pi in to je mogoče storiti precej enostavno, pojdimo takoj!
Moj vir povezave bluetooth:
Odstranitev že delujoče bluealse
sudo rm/var/run/bluealsa/*
Dodaj vlogo A2DP profila Umivalnik
sudo bluealsa -p a2dp -umivalnik &
Odprite vmesnik bluetooth in vklopite bluetooth
bluetoothctl
vklop
Nastavite agenta za seznanjanje
agent vklopljen
default-agent
Naj bo vaš RPi odkrit
odkriti na
- Zdaj v napravi Bluetooth poiščite RPi in se povežite z njim.
- Potrdite seznanjanje na obeh napravah, v svoj kiti vnesite "da".
- Pooblastite storitev A2DP, znova vnesite "da".
- Ko to storimo, lahko zaupamo svoji napravi, zato nam ni treba iti skozi vse to vsakič, ko se želimo povezati
zaupajte XX: XX: XX: XX: XX: XX (vaš Mac -naslov bluetooth iz naše izvorne naprave)
Če želite, da je vaš RPi še vedno odkrit, je to vaša lastna izbira, vendar ga raje znova izklopim, da se ljudje ne bodo mogli povezati z vašim ohišjem
odkrito izključeno
Nato lahko zapustimo vmesnik bluetooth
izhod
In končno naše usmerjanje zvoka: naša izvorna naprava, ki posreduje v naš RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Zdaj je naša naprava v celoti povezana z našo malino in na zvočniku Pi bi morali predvajati predstavnost iz izvorne naprave.
7. korak: Pisanje celotnega ozadja
Zdaj je nastavitev končana, končno lahko začnemo pisati naš zaledni program!
PyCharm sem uporabljal za celotno zaledje, le prepričati se morate, da je vaš projekt PyCharm povezan z vašo Raspberry Pi, to pomeni, da je vaša pot razmestitve nastavljena v vaših nastavitvah in ste namestili vse potrebne pakete, to bi morali narediti že v koraku 4.
Uporabljal sem svoje razrede in vsi so vključeni tudi v moj GitHub. Link je v uvodu, če ste ga zamudili;)
V svoji zaledni datoteki sem uporabljal razrede niti, tako da lahko vse teče hkrati in se ne bo motilo. Na dnu pa imate vse poti, da lahko enostavno dobimo podatke na naši strani.
8. korak: Pisanje vmesnika (HTML, CSS in JavaScript)
Zdaj, ko je zaledje končano, lahko začnemo pisati celoten sprednji del.
HTML in CSS sta bila narejena precej preprosto, najprej smo poskusili delovati z mobilnimi telefoni, saj se večinoma povežemo prek Bluetootha z mobilne naprave, bi bilo to lažje upravljati z mobilne nadzorne plošče.
Armaturno ploščo lahko oblikujete na kakršen koli način, svojo kodo in oblikovanje bom pustil tukaj, lahko delate kar želite!
In Javascript ni bil tako trd, delal je z nekaj GET -i iz mojih zalednih poti, na tone poslušalcev dogodkov in nekaj socketio struktur.
9. korak: Zgraditi svoj primer in ga združiti
Najprej sem začel z nekaj skicami o tem, kako želim, da zadeva izgleda, nekaj pomembnega pa je bilo, da mora biti dovolj velika, da se vse prilega, saj imamo v ohišju veliko vezje.
Ohišje sem naredil iz lesa, mislim, da je z njim najlažje delati, ko nimaš toliko izkušenj z gradnjo etuijev in imaš tudi veliko stvari, ki jih lahko narediš z njim.
Začel sem s kovčkom za steklenice vina in šele začel žagati les. Ko sem imel svoj osnovni etui, sem moral v njem izvrtati luknje (veliko na sprednji strani ohišja, kot lahko vidite na slikah: P) in vanj vstaviti nekaj žebljev, to je res osnovni kovček, ampak izgleda zelo kul in se odlično prilega.
In ko je bil primer končan, je bil čas, da vse skupaj sestavite, kot vidite na zadnji sliki! V škatli je nekakšen nered, vendar vse deluje in nisem imel toliko več prostora, zato vam svetujem, da morda ustvarite večji primer, če na novo ustvarjate moj projekt.
10. korak: Nekatere težave, ki sem jih imel na poti ustvarjanja zvočnika Slimbox …
Napake Bluetooth in bluealsa
Vsakič, ko sem hotel predvajati glasbo ali se povezati z bluetoothom, sem od bluetootha in bluealse prejemal napake. Naredil sem nekaj raziskav o tem in to je bila rešitev mojega problema. Torej je bil moj bluetooth iz nekega razloga mehko blokiran, nisem prepričan, ali je to standardno mehko blokiran. Ali je tako, lahko preverite tako, da v svoj Putty vnesete naslednji ukaz.
rfkill seznam
Če je torej mehka, uporabite samo to:
rfkill odblokiraj bluetooth
Po tem boste morda želeli znova zagnati, moj vir:
Težave pri serijski povezavi
Druga velika težava, ki sem jo imel, je bila ta, da prek menjalnika nivojev nisem mogel vzpostaviti nobene povezave z mojim Arduinom, po nekaj iskanju sem ugotovil, da mojega '/dev/ttyS0' ni več, kar je lahko posledica posodobitve vašega RPi -ja. Tudi za to sem našel rešitev
Serijsko konzolo boste morali znova omogočiti z raspi-config, znova zagnati in nato ročno odstraniti bit "console = serial0, 115200" iz '/boot/cmdline.txt'. Potrdite, da je "enable_uart = 1" v ' /boot/config.txt "in znova zaženite. To bi moralo vrniti vrata ttyS0 in mehko povezavo '/dev/serial0" do njega.
Vir:
Priporočena:
Prenosni Bluetooth zvočnik - Komplet MKBoom DIY: 5 korakov (s slikami)
Prenosni Bluetooth zvočnik | MKBoom DIY Kit: Pozdravljeni vsi! Tako dobro, da sem se po dolgem premoru vrnil s še enim projektom zvočnikov. Ker večina mojih zgradb zahteva kar nekaj orodij za dokončanje, sem se tokrat odločil za izdelavo prenosnega zvočnika s kompletom, ki ga lahko enostavno kupite. Zdelo se mi je
Poljubljanje žabe V2.0 - zvočnik Bluetooth s hrbtnim rogom v celoti za tiskanje: 5 korakov (s slikami)
Poljubljanje žabe V2.0 - zvočnik Bluetooth s hrbtnim rogom v celoti za tiskanje: Uvod Naj začnem z malo ozadja. Kaj je torej zvočnik s hupo nazaj naložen? Pomislite na to kot na obrnjen megafon ali gramofon. Megafon (v osnovi zvočnik s sprednjim rogom) uporablja zvočni trub za povečanje splošne učinkovitosti
Kako pretvoriti kateri koli zvočnik v zvočnik BLUETOOTH: 5 korakov
Kako pretvoriti kateri koli zvočnik v zvočnik BLUETOOTH: Če imate star sistem za domači kino, kot sem jaz, ste v vašem sistemu našli zelo priljubljeno možnost povezovanja, imenovano Bluetooth. Brez te možnosti se morate soočiti z žično zmešnjavo običajne AUX povezave in seveda, če
Bluetooth Mache Paper Bluetooth zvočnik: 23 korakov (s slikami)
Paper Mache Bluetooth zvočnik: Od kod ta ideja? Večina nas ima vsaj en kos stare nedelujoče elektronike, ki leži nekje v hiši ali lopi. Pred kratkim sem našel staro nedelujočo CRT televizijo, prva odločitev je preprosto zavreči ta del zgodovine, toda
Pretvorite kateri koli zvočnik v zvočnik Bluetooth: 4 koraki
Pretvorite kateri koli zvočnik v zvočnik Bluetooth: Pred nekaj leti je bilo običajno, da imajo prenosni zvočniki 3,5 -milimetrski priključek in da jih napajajo baterije AA. Po današnjih standardih je nekoliko zastarela, še posebej baterija, saj ima danes vsak pripomoček baterijo za ponovno polnjenje. Avdio vtičnica je st