Talaan ng mga Nilalaman:
- Hakbang 1: Mga Panustos
- Hakbang 2: Skematika at Mga Kable
- Hakbang 3: Disenyo ng Database
- Hakbang 4: Paghahanda ng Raspberry Pi
- Hakbang 5: Ipasa ang Inhenyeriyang Ang aming Database sa RPi
- Hakbang 6: Pag-configure ng Bluetooth sa Aming RPi
- Hakbang 7: Pagsulat ng Kumpletong Backend
- Hakbang 8: Pagsulat ng Frontend (HTML, CSS & JavaScript)
- Hakbang 9: Pagbubuo ng Aking Kaso at Pagsasama-sama sa Lahat ng Ito
- Hakbang 10: Ilang Mga Suliraning Nagkaroon Ako sa Aking Kalsada ng Paglikha ng Slimbox Speaker…
Video: Slimbox - isang Smart Bluetooth Speaker !: 10 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Hoy, ikaw!
Para sa aking proyekto sa paaralan sa MCT Howest Kortrijk, gumawa ako ng isang smart Bluetooth speaker device na may iba't ibang mga sensor, kasama ang isang LCD at RGB NeoPixel ring. Tumatakbo ang lahat sa Raspberry Pi (Database, Webserver, Backend).
Kaya sa itinuturo na ito ay ipapakita ko sa iyo kung paano ko nagawa ang proyektong ito sa loob ng 3 linggo, sunud-sunod, kaya't kung may sinuman sa inyo na nais na likhain muli ang aking proyekto, madali mong magagawa!
Ito rin ang aking unang itinuturo, kung mayroon kang anumang mga katanungan, susubukan kong sagutin ang mga ito nang mabilis hangga't maaari!
Aking GitHub:
Hakbang 1: Mga Panustos
DS18B20 Temperatura Sensor
Ang DS18B20 ay isang sensor na may isang wire na sumusukat sa temperatura, na gawa ng Maxim Integrated. Mayroong 2 uri ng mga sensor ng DS18B20, ang sangkap lamang (Na ginamit ko) at ang hindi tinatagusan ng tubig na bersyon, na mas malaki, ngunit hindi iyon ang kailangan ko para sa aking proyekto, kaya ginamit ko lang ang sangkap. Maaaring sukatin ng sensor ang temperatura sa saklaw na -55 ° C hanggang + 125 ° C (-67 ° F hanggang + 257 ° F) at mayroon itong katumpakan na 0.5 ° C mula -10 ° C hanggang + 85 ° C. Mayroon din itong isang programmable na resolusyon mula 9 na piraso hanggang 12 piraso.
Datasheet:
Potentiometer sensor
Ang potensyomiter ay risistor na may tatlong mga terminal na manu-manong maaayos sa pamamagitan lamang ng pag-ikot ng itaas na bahagi ng sensor. Ang posisyon ng itaas na bahagi ay tumutukoy sa output boltahe ng potensyomiter.
LSM303 Accelerometer + Compass Breakout
Ang breakout board ng LSM303 ay isang kumbinasyon ng isang triple-axis accelerometer at isang magnetometer / compass, na ginawa ng Adafruit. Ginagamit ito sa interface ng I2C ng Raspberry Pi.
Pangkalahatang-ideya:
Datasheet:
MCP3008
Upang mabasa ang data mula sa aking potensyomiter ginamit ko ang isang MCP3008, na kung saan ay isang 8 channel na 10 bit na analog sa digital converter sa interface ng SPI at medyo madali itong mai-program.
Datasheet:
Tagapagsalita - 3”Diameter - 8 Ohm 1 Watt
Ito ang pinili kong speaker cone pagkatapos makalkula ang Voltage at Amperes na kakailanganin nito at ito ay isang perpektong akma para sa aking proyekto na Raspberry Pi, na ginawa ng Adafruit.
Pangkalahatang-ideya:
MAX98357 I2S Class-D Mono Amplifier
Ito ang amplifier na kasama ng nagsasalita, hindi lamang ito isang amplifier, isa rin itong I2S digital sa analog converter, kaya perpekto din ito para sa aking speaker at audio system.
Pangkalahatang-ideya:
Datasheet:
Arduino Uno
Ang Arduino Uno ay isang open-source microcontroller board batay sa Microchip ATmega328P microcontroller, na ginawa ng Arduino.cc. Ang Uno board ay mayroong 14 Digital pin, 6 analog pin at ganap na mai-program sa software ng Arduino IDE
Pangkalahatang-ideya:
Levelshifter
Ito ay isang maliit na board na nangangalaga sa komunikasyon sa pagitan ng Arduino Uno at ng Raspberry Pi at ng iba't ibang mga voltages, Arduino: 5V & Raspberry Pi: 3.3V. Kailangan ito dahil ang singsing na NeoPixel ay konektado sa Arduino at tumatakbo doon, habang ang lahat ng iba pang mga bagay ay tumatakbo sa Raspberry Pi.
RGB NeoPixel Ring
Ito ay isang maliit na singsing na puno ng 12 RGB leds (maaari kang bumili ng mas malaking singsing na may mas maraming RGB leds, kung nais mo). Alin ang sa aking kaso na konektado sa Arduino Uno, ngunit maaari ring maiugnay sa maraming iba pang mga aparato at talagang simpleng gamitin.
Pangkalahatang-ideya:
LCD Display 16x2
Gumamit ako ng pangunahing LCD Display upang mai-print ang aking temperatura, dami at IP address.
Datasheet:
Raspberry Pi 3B + & 16GB SD Card
Ang aking buong proyekto ay tumatakbo sa aking Raspberry Pi 3B + na may isang naka-configure na imahe, na tutulong sa iyo na mai-configure sa paglaon sa aking itinuro.
GPIO T-Bahagi, 2 Breadboard at maraming mga jumperwires
Upang ikonekta ang lahat ng kailangan ko ng mga breadboard at jumperwires, ginamit ko ang GPIO T-part kaya't mas marami akong puwang at malinaw kung aling pin ang alin.
Hakbang 2: Skematika at Mga Kable
Para sa aking eskematiko ginamit ko ang Fritzing, ito ay isang programa na maaari mong mai-install na nagbibigay-daan sa iyo upang lumikha ng isang eskematiko talagang madali sa iba't ibang mga uri ng pananaw.
I-download ang Fritzing:
Kaya tiyaking ikinonekta mo ang lahat sa tamang paraan! Sa aking kaso ang mga kulay ng mga wire ay hindi pareho tulad ng sa eskematiko.
Hakbang 3: Disenyo ng Database
Nangongolekta kami ng maraming data mula sa 3 mga sensor na konektado, kaya kailangan namin ng isang database upang maiimbak ang data at mga sensor. Mamaya makikita natin kung paano i-configure ang database sa Raspberry Pi at kung paano magdagdag ng data dito. Ngunit una ang disenyo ng database o ERD (Entity Relationship Diagram) ay dapat gawin at ang akin ay na-normalize din sa 3NF. Iyon ang dahilan kung bakit pinaghiwalay namin ang mga sensor sa isa pang mesa at nagtatrabaho sa mga ID.
Sa pangkalahatan ito ay isang talagang pangunahing at madaling disenyo ng database upang higit na gumana.
Hakbang 4: Paghahanda ng Raspberry Pi
Kaya ngayon na mayroon kaming ilang mga pangunahing kaalaman sa tapos na proyekto. Magsimula tayo sa Raspberry Pi!
Pag-configure ng SD Card
Una, kailangan mo ng isang 16GB SD Card kung saan mailalagay mo ang iyong imahe at isang programa upang mag-upload ng isang panimulang imahe sa SD card.
Software:
Simulan ang imahe:
Kaya kapag na-download na ang mga ito:
- Ilagay ang iyong SD card sa iyong computer.
- Buksan ang Win32 na na-download mo lang.
- Piliin ang file ng imahe ng Raspbian na na-download mo lamang.
- Mag-click sa 'sumulat' sa lokasyon ng iyong SD card.
Maaari itong magtagal, depende sa iyong hardware. Kapag tapos na ito, handa na kaming gumawa ng mga huling pagsasaayos bago ilagay ang imahe sa aming RPi.
- Pumunta sa direktoryo ng iyong SD card, hanapin ang file na pinangalanang 'cmdline.txt' at buksan ito.
- Ngayon idagdag ang 'ip = 169.254.10.1' sa parehong isang linya.
- I-save ang file.
- Lumikha ng isang file na pinangalanang 'ssh' nang walang extension o nilalaman.
Ngayon ay maaari mong ligtas na palabasin ang SD card mula sa iyong computer at ilagay ito sa Raspberry Pi NA WALANG kapangyarihan. Kapag ang SD card ay nasa RPI, ikonekta ang isang LAN cable mula sa iyong computer sa RPi LAN port, sa sandaling nakakonekta ito maaari mong ikonekta ang lakas sa RPi.
Ngayon nais naming kontrolin ang aming Raspberry Pi, ginagawa ito sa pamamagitan ng Putty.
Putty software:
Kapag na-download na, buksan ang Putty at ipasok ang IP '169.254.10.1' at Port '22' at uri ng koneksyon: SSH. Ngayon ay maaari na nating buksan ang aming interface ng command line at mag-login gamit ang impormasyon sa pag-login ng starter -> Gumagamit: pi & Password: raspberry.
Raspi-config
sudo raspi-config
Ang talagang mahalaga para sa proyektong ito ay ang seksyon ng interfacing, kailangan naming paganahin ang maraming iba't ibang mga interface, paganahin ang lahat ng mga sumusunod na interface:
- One-wire
- SPI
- I2C
- Serial
Ngayong tapos na kami sa raspi-config, subukan natin at gumawa ng isang koneksyon sa internet.
Koneksyon sa Wi-Fi
Una, kailangan kang maging ugat para sa mga sumusunod na utos
sudo -i
Kapag nag-ugat ka na, gamitin ang sumusunod na utos. Ang SSID ang iyong pangalan sa network at ang password ay malinaw na password ito.
wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf
Kung sakaling nagkamali ka, maaari mong suriin, i-update o tanggalin ang network na ito sa pamamagitan lamang ng pagpasok sa file na iyon:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Kaya pagkatapos na ipasok ang aming network, ipasok natin ang interface ng WPA client
wpa_cli
Piliin ang iyong interface
interface wlan0
I-reload ang file
muling pag-configure
At sa wakas makikita mo kung nakakonekta ka nang maayos:
ip a
I-update at i-upgrade
Ngayong nakakonekta na tayo sa internet, ang pag-update ng naka-install na mga pakete ay magiging isang matalinong paglipat, kaya gawin muna natin iyon bago mag-install ng iba pang mga pakete.
sudo apt-get update
sudo apt-get upgrade
MariaDB Database
I-install ang MariaDB database server:
sudo apt-get install mariadb-server
Apache2 Webserver
I-install ang Apache2 webserver:
sudo apt i-install ang apache2
Sawa
I-install ang Python:
update-alternatives --install / usr / bin / python python /usr/bin/python2.7 1
update-alternatives --install / usr / bin / python python / usr / bin / python3 2
Pakete ng sawa
Kailangan mong i-install ang lahat ng mga package na ito upang gawing perpekto ang backend:
- Prasko
- Flask-Cors
- Flask-MySql
- Flask-SocketIO
- PyMySQL
- Mga Kahilingan
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- Wsaccel
Speaker library
I-install ang speaker library mula sa Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Oras upang mag-reboot
sudo reboot
Hakbang 5: Ipasa ang Inhenyeriyang Ang aming Database sa RPi
Ngayon na na-install na namin ang lahat ng kailangan namin, ilagay ang aming Database na dinisenyo namin sa aming Raspberry Pi!
Kaya muna kailangan naming ipasa ang engineer ang aming database sa MySql workbench, habang ginagawa iyon, kopyahin ang iyong buong code ng database at tanggalin ang lahat ng mga 'nakikitang' salita dito. Kaya't sa sandaling makopya iyon, hinayaan nating buksan muli ang masilya, mag-log in at mag-type:
sudo MySQL
at ngayon nasa interface ka ng MySQL, kopyahin ang iyong database code dito at pindutin ang enter.
Ngayon kailangan lang naming lumikha ng isang gumagamit
GUMAWA NG USER 'gumagamit' NA NAKILALA NG 'gumagamit';
IBIGAY ANG LAHAT NG PRIVILEGES SA *. * SA 'gumagamit';
Ngayon i-reboot.
Kaya't dapat na naka-set up ang lahat ngayon, maaari ka ring gumawa ng isang koneksyon sa iyong Pi at MySql Workbench, kaya mas madaling suriin ang lahat ng data sa iyong mga talahanayan.
Hakbang 6: Pag-configure ng Bluetooth sa Aming RPi
Lumilikha kami ng isang Bluetooth speaker, kaya't nangangahulugan ito na ang media ay ipinapadala mula sa aming mapagkukunan sa Raspberry Pi at maaari itong magawa medyo madali, tayo mismo!
Ang aking mapagkukunan para sa koneksyon sa bluetooth: https://scribles.net/streaming-blu Bluetooth-audio-fro…
Inaalis ang tumatakbo na bluealsa
sudo rm / var / run / bluealsa / *
Magdagdag ng A2DP profile Sink role
sudo bluealsa -p a2dp-sink &
Buksan ang interface ng Bluetooth at paganahin ang iyong bluetooth
bluetoothctl
kapangyarihan sa
Mag-set up ng isang ahente ng pagpapares
ahente sa
default-ahente
Gawing matuklasan ang iyong RPi
matuklasan sa
- Ngayon mula sa iyong aparatong Bluetooth, hanapin ang RPi at kumonekta dito.
- Kumpirmahin ang pagpapares sa parehong mga aparato, i-type ang 'oo' sa iyong masilya.
- Pahintulutan ang serbisyo ng A2DP, i-type muli ang 'oo'.
- Kapag tapos na ito, mapagkakatiwalaan namin ang aming aparato, kaya hindi na namin ito pinagdadaanan tuwing nais naming kumonekta
tiwala XX: XX: XX: XX: XX: XX (Ang iyong blu mac mac address mula sa aming pinagmulang aparato)
Kung nais mong mapanatili ang pagiging tuklas ng iyong RPi, iyon ang iyong sariling pagpipilian, ngunit mas gusto ko itong patayin muli, upang hindi masubukan ng mga tao na kumonekta sa iyong kahon
matutuklasan
Pagkatapos ay makakalabas kami ng aming interface ng Bluetooth
labasan
At sa wakas ang aming audio routing: ang aming pinagmulang aparato na nagpapasa sa aming RPi
bluealsa-aplay 00: 00: 00: 00: 00: 00
Ngayon ang aming aparato ay ganap na konektado sa aming Raspberry at dapat na makapag-play ng media mula sa iyong pinagmulang aparato sa Pi speaker.
Hakbang 7: Pagsulat ng Kumpletong Backend
Kaya't ngayon ang pag-setup ay tapos na, maaari na nating magsimula sa pagsulat ng aming backend program!
Ginamit ko ang PyCharm para sa aking buong backend, kailangan mo lamang tiyakin na ang iyong proyekto ng PyCharm ay konektado sa iyong Raspberry Pi, nangangahulugan ito na ang iyong landas sa Pag-deploy ay naka-set up sa iyong mga setting at na-install mo ang lahat ng mga pakete na kailangan namin, dapat ay tapos na sa hakbang 4.
Gumamit ako ng sarili kong mga klase at lahat din ito ay kasama sa aking GitHub. Nasa intro ang link kung sakaling napalampas mo ito;)
Sa aking backend file na ginamit ko ang mga klase sa pag-thread, kaya't ang lahat ay maaaring tumakbo nang sabay at hindi ito makagambala. At sa ibaba nakuha mo ang lahat ng mga ruta upang madali kaming makakuha ng data sa aming frontend.
Hakbang 8: Pagsulat ng Frontend (HTML, CSS & JavaScript)
Ngayon na tapos na ang backend, maaari naming simulang isulat ang buong front-end.
Ang HTML & CSS ay tapos na medyo madali, sinubukan muna ang pagtatrabaho mobile hangga't maaari, dahil madalas kaming kumonekta sa Bluetooth mula sa isang mobile device, mas madaling kontrolin mula sa isang mobile dashboard.
Maaari mong idisenyo ang iyong dashboard sa anumang paraan na nais mong, iiwan ko lamang ang aking code at disenyo dito, maaari mong gawin ang nais mo!
At ang Javascript ay hindi ganoon kahirap, nagtrabaho kasama ng ilang mga GET mula sa aking mga ruta sa backend, tone-toneladang tagapakinig ng kaganapan at ilang mga socketio na istraktura.
Hakbang 9: Pagbubuo ng Aking Kaso at Pagsasama-sama sa Lahat ng Ito
Una akong nagsimula sa ilang mga sketch ng kung paano ko nais na tumingin ang kaso, isang bagay na mahalaga ay kailangang sapat na malaki para magkasya ang lahat, dahil nakakuha kami ng isang malaking circuit upang mailagay ang kaso.
Ginawa ko ang kaso sa kahoy, sa palagay ko ito ang pinakamadaling magtrabaho kapag wala kang gaanong karanasan sa mga kaso ng pagbuo at mayroon ka ding maraming mga bagay na magagawa mo dito.
Nagsimula ako mula sa isang kaso para sa mga bote ng alak at nagsimula na lamang akong magbas ng kahoy. Kapag nagkaroon ako ng aking pangunahing kaso, kailangan ko lamang mag-drill ng mga butas dito (maraming sa harap ng kaso, tulad ng nakikita mo sa mga larawan: P) at maglagay ng ilang mga kuko dito, ito ay talagang pangunahing kaso, ngunit ito mukhang medyo cool at akma perpekto.
At sa sandaling tapos na ang kaso, oras na upang pagsamahin ang lahat, tulad ng nakikita mo sa huling larawan! Ito ay isang gulo sa loob ng kahon, ngunit ang lahat ay gumagana at wala akong gaanong mas maraming puwang, kaya pinapayuhan ko kayo na baka lumikha ng isang mas malaking kaso kung muling nililikha mo ang aking proyekto.
Hakbang 10: Ilang Mga Suliraning Nagkaroon Ako sa Aking Kalsada ng Paglikha ng Slimbox Speaker…
Mga error sa Bluetooth at bluealsa
Sa tuwing nais kong maglaro ng musika o kumonekta sa bluetooth, nakatanggap ako ng mga pagkakamali mula sa bluetooth at bluealsa. Gumawa ako ng ilang pagsasaliksik dito at ito ang solusyon sa aking problema. Kaya't sa ilang kadahilanan ang aking bluetooth ay naka-blockblock, hindi sigurado kung ito ay karaniwang soft-block. Maaari mong makita kung ito ay sa pamamagitan ng pag-type ng sumusunod na utos sa iyong Putty.
listahan ng rfkill
Kaya kung softblocked ito, gamitin lamang ito:
rfkill i-block ang bluetooth
At baka gusto mong i-reboot pagkatapos nito, ang aking mapagkukunan:
Mga problema sa serial na koneksyon
Kaya isa pang malaking problema na mayroon ako ay hindi ako makagawa ng anumang koneksyon sa aking Arduino sa pamamagitan ng levelshifter, pagkatapos ng ilang paghahanap ay nalaman ko na ang aking '/ dev / ttyS0' ay nawala at ito ay maaaring dahil sa isang pag-update ng iyong RPi. Nakahanap din ng solusyon dito
Kailangan mong muling paganahin ang serial console na may raspi-config, reboot, at pagkatapos ay manu-manong alisin ang "console = serial0, 115200" na bit mula sa '/boot/cmdline.txt'. Kumpirmahing ang "paganahin ang_uart = 1" ay nasa ' /boot/config.txt ', at muling i-reboot. Iyon ay dapat ibalik ang iyong ttyS0 port, pati na rin ang' / dev / serial0 'soft link dito.
Pinagmulan:
Inirerekumendang:
May-ari ng Larawan Na May Built-in Speaker: 7 Hakbang (na may Mga Larawan)
May-ari ng Larawan Sa Built-in Speaker: Narito ang isang magandang proyekto na isasagawa sa katapusan ng linggo, kung nais mong gumawa ka ng sariling tagapagsalita na maaaring magkaroon ng mga larawan / post card o kahit na listahan ng dapat mong gawin. Bilang bahagi ng pagbuo gagamitin namin ang isang Raspberry Pi Zero W bilang sentro ng proyekto, at isang
Aktibo ng Music Party LED Lantern & Bluetooth Speaker Na May Glow in the Dark PLA: 7 Hakbang (na may Mga Larawan)
Aktibo ng Music Party LED Lantern & Bluetooth Speaker With Glow in the Dark PLA: Kumusta, at salamat sa pag-tune sa aking Instructable! Taun-taon gumagawa ako ng isang kagiliw-giliw na proyekto kasama ang aking anak na ngayon ay 14. Gumawa kami ng isang Quadcopter, Swimming Pace Clock (na isang maituturo din), isang bench ng enclosure ng CNC, at Fidget Spinners.Wi
Napakaliit * Mga High-Fidelity Desktop Speaker (3D Printed): 11 Mga Hakbang (na may Mga Larawan)
Napakaliit * High-Fidelity Desktop Speaker (3D Printed): Gumugugol ako ng maraming oras sa aking mesa. Nangangahulugan ito dati na gumugol ako ng maraming oras sa pakikinig sa aking musika sa pamamagitan ng kakila-kilabot na mga nagsasalita ng tinny na nakapaloob sa aking mga monitor ng computer. Hindi katanggap-tanggap! Gusto ko ng tunay, de-kalidad na tunog na stereo sa isang kaakit-akit na package
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Speaker Sa Mga Nakatagong Mga Istante ng DVD at DVD Player: 11 Mga Hakbang (na may Mga Larawan)
Speaker Sa Mga Nakatagong Mga Istante ng DVD at DVD Player: Gusto ko ng malalaking speaker dahil, aba, ang cool nilang tingnan. Gayunpaman, sa pagkakaroon ng maliliit na satellite speaker, hindi mo na talaga nakikita ang maraming malalaking speaker ng tower. Kamakailan lang ay nakatagpo ako ng isang pares ng mga speaker ng tower na nasunog, ngunit ang iba pa