Kazalo:
- 1. korak: Zaloge
- 2. korak: Shema in ožičenje
- 3. korak: Oblikovanje baze podatkov
- 4. korak: Namestite Raspberry Pi
- Step 5: Setting Up the Database to the 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
Video: Mood Speaker- zmogljiv zvočnik za predvajanje glasbe glede na temperaturo okolice: 9 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Živijo!
Za moj šolski projekt v MCT Howest Kortrijk sem izdelal Mood Speaker, to je pametna zvočniška naprava Bluetooth z različnimi senzorji, vključenimi LCD in WS2812b led trakovi. Zvočnik predvaja glasbo v ozadju glede na temperaturo, lahko pa jo uporabljamo tudi kot navaden bluetooth zvočnik. Vse deluje na Raspberry Pi (baza podatkov, spletni strežnik, zaledje).
Tako je ta pouk korak po korak, kako sem v treh tednih uresničil ta projekt. Torej, če želite ponovno ustvariti moj projekt, lahko sledite vodniku
To navodilo je moje prvo, ki sem ga napisal, zato, če obstajajo kakršna koli vprašanja, bom nanje poskušal odgovoriti čim hitreje!
Moj GitHub:
1. korak: Zaloge
Kartica SD Raspberry Pi 3B in 16 GB
Celoten projekt teče na mojem Raspberry Pi 3B s konfigurirano sliko, ki jo bom razložil v naslednjem koraku (4. korak: Namestitev Raspberry Pi)
LCD zaslon 16x2
Za tiskanje temperature, svetlosti in naslova IP sem uporabil osnovni LCD zaslon.
Podatkovni list:
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:
MCP3008
Za branje podatkov iz senzorja LDR in PIR sem uporabil MCP3008, ki je 8-kanalni 10-bitni analogno-digitalni pretvornik z vmesnikom SPI in ga je zelo enostavno programirati.
Podatkovni list:
PIR senzor gibanja
Za odkrivanje, kdaj kdo vstopi in zapusti mojo sobo, sem uporabil pasivni infrardeči senzor, ker so enostavni za uporabo in majhni.
Podatkovni list:
LDR
Uporabil sem fotorezistor ali LDR (odpornost proti zmanjšanju svetlobe ali upor, odvisen od svetlobe), da sem odkril stopnjo svetlosti prostora, v katerem je. In tudi, da vklopim LED trak, ko je temno.
Zvočnik - 3”premer - 4 Ohm 3 Watt
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 led trak povezan z Arduinom in teče naprej, medtem ko vse ostale stvari tečejo na Raspberry Pi.
WS2812B - Ledstrip
To je trak s 60 RGB LED diodami (če želite, lahko kupite daljše trakove 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.
Podatkovni list:
GPIO T-del, 1 plošča in veliko mostičnih žic
Za povezavo vsega, kar sem potreboval, so bile plošče in mostični kabli, nisem uporabil GPIO T-dela, lahko pa z njim jasno veste, katera posoda kam gre.
2. korak: Shema in ožičenje
Za izdelavo sheme sem uporabil program Fritzing, ki ga lahko namestite in vam omogoča enostavno ustvarjanje sheme v različnih pogledih. Uporabil sem osnovo in shematski pogled.
Prenesite Fritzing:
Prepričajte se, da je vse pravilno povezano. Uporabil sem barve, da bi bilo nekoliko jasneje vedeti, kje priključiti žice. V mojem primeru sem za žice uporabil različne barve
3. korak: Oblikovanje baze podatkov
Zbiramo veliko podatkov iz treh senzorjev (Temperatura iz DS18B20, Svetlost iz LDR in Status iz PIR-senzorja). Zato je najbolje, da vse te podatke hranite v bazi podatkov. V naslednjem koraku bom razložil, kako konfigurirati bazo podatkov (5. korak: Posredovanje naše baze podatkov v RPi!) Najprej pa je treba izdelati zasnovo ali ERD (Entity Relationship Diagram). Moj je bil normaliziran s 3NF, zato smo komponente in zgodovino komponent razdelili v drugo tabelo. Z zbirko podatkov Glasba spremljamo pesmi, ki so bile poslušane.
Na splošno je to res osnovna in enostavna zasnova baze podatkov za nadaljnje delo.
4. korak: Namestite Raspberry Pi
Zdaj, ko smo naredili nekaj osnov projekta. Začnimo z nastavitvijo Raspberry Pi!
1. del: Konfiguriranje kartice SD
1) Prenesite potrebno programsko opremo in datoteke
Za ta celoten postopek morate prenesti 2 programsko opremo in 1 OS, tj. Raspbian. 1. programska oprema: Prva programska oprema je Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2. programska oprema: Druga programska oprema je SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: To je glavni operacijski sistem Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Izvlecite vse datoteke na namizje.
2) Vzemite kartico SD in bralnik kartic
Pridobite najmanj 8 GB SD kartice razreda 10 z bralnikom kartic. Kartico vstavite v bralnik kartic in jo priključite v vrata USB.
3) Formatirajte kartico SD
Odprite SD SD Formatter in izberite pogon.
Kliknite na obliko in ne spreminjajte drugih možnosti.
Ko je oblikovanje končano, kliknite V redu.
4) Zapišite operacijski sistem na kartico SD
Odprite win32diskimager.
Prebrskajte datoteko.img OS Raspbian, ki je bila izvlečena iz prenesene datoteke.
Kliknite na odpri in nato na Napiši.
Če se pojavi kakšno opozorilo, ga prezrite s klikom na V redu. Počakajte, da se pisanje zaključi in lahko traja nekaj minut. Zato bodite potrpežljivi.
n
5) Ko to naredimo, smo pripravljeni narediti nekaj končnih 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. (Najlažji način je, da ustvarite datoteko txt in nato odstranite datoteko.txt)
Zdaj, ko je vse nameščeno na kartici SD, jo lahko VARNO odstranite iz računalnika in jo vstavite v Raspberry Pi BREZ priključitve na napajanje. 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.
2. del: Konfiguriranje RPi
Kiti
Zdaj želimo konfigurirati 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. (Priporočamo, da ga čim prej spremenite. Tukaj je vodnik, kako:
Raspi-config
Omogočiti bomo morali različne vmesnike, za to pa moramo najprej vnesti naslednjo kodo:
sudo raspi-config
Stvari, ki jih moramo omogočiti, so v razdelku vmesnik. Omogočiti moramo naslednje vmesnike:
- Enožilni
- Serijski
- I2C
- SPI
To je bilo vse, kar smo morali narediti z raspi-config
Dodajanje vašega WIFI
Najprej morate biti root, da naslednji ukaz postane root
sudo -i
Ko ste root, uporabite naslednji ukaz: (SSID zamenjajte z omrežnim imenom in geslom z geslom za omrežje)
wpa_passphrase "ssid" "geslo" >> /etc/wpa_supplicant/wpa_supplicant.conf
Če ste storili kaj narobe, lahko preverite, posodobite ali izbrišete to omrežje tako, da vnesete naslednji ukaz:
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
3. del: Posodobitev programske opreme RPi +
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
Po posodobitvi RPi bomo morali namestiti naslednjo programsko opremo:
Baza podatkov MariaDB
sudo apt-get install mariadb-server
Spletni strežnik Apache2
sudo apt namestite apache2
Python
posodobitve-alternative --install/usr/bin/python python /usr/bin/python3.7 1 alternative-posodobitve --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
- Zahteve PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Knjižnica zvočnikov
Za uporabo zvočnika z ojačevalnikom bomo morali zanj namestiti knjižnico
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
Zdaj, ko smo namestili vse, kar potrebujemo, postavimo našo bazo podatkov, ki smo jo oblikovali, na naš Raspberry Pi!
Za nastavitev baze podatkov bomo morali povezati MySql in RPi. Za to bomo odprli MySQLWorkbench in vzpostavili novo povezavo. Ko gledate sliko, se morate spremeniti, da spremenite podatke v svoje.
Če še niste ničesar spremenili, lahko uporabite za SSH pi in malino, za MySQL mysql in mysql.
Če vam nekaj ni jasno, lahko sledite tudi tej vadnici:
Če želite izvoziti svojo bazo podatkov, bi bilo z uporabo PHPmyAdmin lažje, ker lahko z MySqlom dobite veliko napak
6. korak: Konfiguriranje Bluetootha na naših RPi
Ustvarjamo zvočnik Mood, ki ga lahko uporabljamo tudi z lastno glasbo, tako da je to lažje, ko je RPi
povezano z bluetoothom sem sledil vadnici zanj, ki jo najdete tukaj:
scribles.net/streaming-bluetooth-audio-fr…
Tu sem zapisal tudi vse za vse, ki bi radi to poustvarili
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 vklopljen
Nastavite agenta za seznanjanje
agent on 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 povezana z našo Raspberry z bluetoothom, zato bi jo morali preizkusiti tako, da predvajate kateri koli medij, na primer Spotify itd.
7. korak: Pisanje celotnega ozadja
Zdaj je nastavitev končana, končno lahko začnemo pisati naš zaledni program!
Kodo Visual Studio sem uporabil za celotno ozadje, le prepričati se morate, da je vaš projekt Visual Studio povezan z vašo Raspberry Pi, kar pomeni, da mora biti vaš LAN kabel priključen na vaš RPi in vzpostaviti povezavo SSH. (informacije o tem, kako ustvariti oddaljeno povezavo, najdete tukaj:
Uporabljal sem svoje razrede in vsi so vključeni tudi v moj GitHub.
V svoji zaledni datoteki sem uporabljal različne razrede, zato se lahko vse uporablja ločeno in tako, da moja glavna koda ni nered z vsemi različnimi nitmi. Uporabil sem nit za izvajanje vseh različnih razredov hkrati. 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 zame precej težka. Potrudil sem se, da bi bil najprej mobilni, ker se lahko povežem z njim prek Bluetootha, da spremenim pesmi s Spotifyjem. Tako bi bilo 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 mi ni bil lažji, delal sem z nekaj GET -i iz mojih zalednih poti, na tone poslušalcev dogodkov in nekaj socketio struktur, da bi dobil podatke iz mojih senzorjev.
9. korak: Zgraditi svoj primer in ga združiti
Najprej sem začel skicirati, kako želim videti zadeva, nekaj pomembnega je bilo, da mora biti dovolj velika, da se vse prilega, saj smo imeli v ohišje veliko vezje, vendar smo morali ostati kompaktni, da se ni ne zavzame veliko prostora
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 iz stare deske, ki sem jo imel naokoli, in šele začel žagati les. Ko sem imel osnovno ohišje, sem moral v njem izvrtati luknje (veliko na sprednji strani ohišja, kot lahko vidite na slikah in vanj vstavite nekaj žebljev, to je res osnovni kovček, vendar izgleda precej kul Odlično sem se odločil, da ga pobarvam v belo, da bo videti dobro.
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.
Priporočena:
Višinomer (višinski meter) glede na atmosferski tlak: 7 korakov (s slikami)
Višinomer (višinski meter) na podlagi atmosferskega tlaka: [uredi]; Glejte različico 2 v koraku 6 z ročnim vnosom osnovne črte. To je opis stavbe višinomera (merilnika nadmorske višine), ki temelji na Arduino Nano in senzorju atmosferskega tlaka Bosch BMP180. Zasnova je preprosta, vendar meritve
RGB LED krmilnik Bluetooth V3 + Sinhronizacija glasbe + Nadzor okolice: 6 korakov (s slikami)
RGB Led Strip Bluetooth Controller V3 + Music Sync + Ambient Light Control: Ta projekt uporablja arduino za nadzor RGB LED traku s telefonom prek bluetootha. Lahko spremenite barvo, sinhronizirate luči z glasbo ali pa jih samodejno prilagodite glede na osvetlitev okolice
PWM reguliran ventilator glede na temperaturo procesorja za Raspberry Pi: 4 koraki (s slikami)
PWM reguliran ventilator, ki temelji na temperaturi CPU -ja za Raspberry Pi: Številni kovčki za Raspberry Pi so opremljeni z majhnim ventilatorjem 5V, ki pomaga pri hlajenju procesorja. Vendar so ti ventilatorji običajno precej hrupni in mnogi jih priklopijo na pin 3V3, da zmanjšajo hrup. Ti ventilatorji so običajno ocenjeni na 200 mA, kar je precej h
Albumi z oznakami NFC za samodejno predvajanje glasbe Spotify v Chromecastu: 5 korakov
Albumi z oznakami NFC za samodejno predvajanje glasbe Spotify v Chromecastu: Ta projekt se je začel z idejo, da bi na Spotifyju naredil kolaž albumov mojih najbolj predvajanih izvajalcev. Po nekaj igranju z API -jem Spotify v Pythonu se mi je zdelo dobro, da povežem te naslovnice albumov z URI -jem Spotify in začnem predvajati
Pogovorni Arduino - Predvajanje MP3 z Arduinom brez modula - Predvajanje datoteke MP3 iz Arduina z uporabo PCM: 6 korakov
Pogovorni Arduino | Predvajanje MP3 z Arduinom brez modula | Predvajanje datoteke MP3 iz Arduina z uporabo PCM: V tem navodilu se bomo naučili predvajati datoteko mp3 z arduinom brez uporabe zvočnega modula, tukaj bomo uporabili knjižnico PCM za Arduino, ki predvaja 16 -bitni PCM s frekvenco 8 kHz, zato naredimo to