Talaan ng mga Nilalaman:
- Hakbang 1: Mga Panustos
- Hakbang 2: Skematika at Mga Kable
- Hakbang 3: Disenyo ng Database
- Hakbang 4: I-setup ang Raspberry Pi
- Step 5: Setting Up the Database to the 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
Video: Mood Speaker- isang Napakahusay na Tagapagsalita para sa Musika ng Mood na Patugtugin Batay sa Saklaw na Temperatura: 9 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Hoy, ikaw!
Para sa aking proyekto sa paaralan sa MCT Howest Kortrijk, gumawa ako ng Mood Speaker ito ay isang matalinong aparato ng Bluetooth speaker na may iba't ibang mga sensor, kasama ang isang LCD at WS2812b ledstrip. Ang nagsasalita ay nagpe-play ng musikang background batay sa temperatura ngunit maaari ding magamit bilang isang regular na Bluetooth tagapagsalita Tumatakbo ang lahat sa Raspberry Pi (Database, Webserver, Backend).
Kaya't ang itinuturo na ito ay isang hakbang-hakbang na proseso kung paano ko napagtanto ang proyektong ito sa 3 linggo. Kaya't kung nais mong likhain muli ang aking proyekto maaari mong sundin ang gabay
Ang itinuturo na ito ay ang aking una na isinulat ko kaya kung mayroong anumang mga reyna, Susubukan kong sagutin ang mga ito nang mabilis hangga't makakaya ko!
Aking GitHub:
Hakbang 1: Mga Panustos
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 ipapaliwanag ko sa isang susunod na hakbang (Hakbang 4: I-setup ang Raspberry Pi)
LCD Display 16x2
Gumamit ako ng pangunahing LCD Display upang mai-print ang aking temperatura, ningning at IP address.
Datasheet:
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:
MCP3008
Upang mabasa ang data mula sa aking LDR at PIR-sensor Gumamit ako ng isang MCP3008, na kung saan ay isang 8 channel 10 bit analog sa digital converter sa interface ng SPI at medyo madali itong mai-program.
Datasheet:
Sensor ng paggalaw ng PIR
Upang matukoy kung may taong pumapasok at umalis sa aking silid, gumamit ako ng isang passive infrared sensor na bacuse madali silang gamitin at maliit.
Datasheet:
LDR
Gumamit ako ng isang photoresistor o LDR (Banayad na Pagbabawas ng Paglaban, o risistor na umaasa sa ilaw) upang makita ang antas ng liwanag ng silid na papasok dito. At upang buksan din ang aking Ledstrip kapag ito ay madilim.
Speaker - 3”Diameter - 4 Ohm 3 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 ledstrip ay konektado sa Arduino at tumatakbo doon, habang ang lahat ng iba pang mga bagay ay tumatakbo sa Raspberry Pi.
WS2812B - Ledstrip
Ito ay isang ledstrip na may 60 RGB leds (maaari kang bumili ng mas mahahabang piraso ng 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.
Datasheet:
GPIO T-Bahagi, 1 Breadboard at maraming mga jumperwires
Upang ikonekta ang lahat ng kailangan ko ng mga breadboard at jumperwires, hindi ko ginamit ang GPIO T-part ngunit maaari mo itong magamit upang malinaw na malaman kung aling bin ang pupunta kung saan.
Hakbang 2: Skematika at Mga Kable
Para sa paggawa ng 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. Ginamit ko ang view ng breadboard at eskematiko.
I-download ang Fritzing:
Siguraduhin na ang lahat ay konektado nang tama. Gumamit ako ng mga kulay upang gawing mas malinaw ito upang malaman kung saan ikonekta ang mga wire. Sa aking kaso gumamit ako ng iba't ibang mga kulay para sa mga wire
Hakbang 3: Disenyo ng Database
Nangongolekta kami ng maraming data mula sa 3 sensor (Temperatura mula sa DS18B20, Liwanag mula sa LDR at Katayuan mula sa PIR-sensor). Kaya't pinakamahusay na itago ang lahat ng data na ito sa isang database. Ipapaliwanag ko sa isang susunod na hakbang kung paano i-configure ang database (Hakbang 5: Ipasa ang Inhenyeriyang Ang aming Database sa RPi!) Ngunit una ang disenyo o ERD (Entity Relasyon ng Diagram) ay dapat gawin. Ang minahan ay na-normalize sa 3NF kaya nga pinaghiwalay namin ang mga bahagi at ang kasaysayan ng mga sangkap sa isa pang mesa. Ginagamit namin ang database ng Musika upang subaybayan ang mga kanta na napakinggan.
Sa pangkalahatan ito ay isang talagang pangunahing at madaling disenyo ng database upang higit na gumana.
Hakbang 4: I-setup ang Raspberry Pi
Kaya ngayon na mayroon kaming ilang mga pangunahing kaalaman sa tapos na proyekto. Magsimula tayo sa pag-set up ng Raspberry Pi!
Bahagi 1: Pag-configure ng SD Card
1) I-download ang Kinakailangan na Software at Mga File
Kailangan mong mag-download ng 2 software at 1 OS ibig sabihin, Raspbian para sa kumpletong proseso na ito.1st software: Ang unang software ay Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
Ika-2 software: Pangalawang software ay ang SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Ito ang Pangunahing operating system ng Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
I-extract ang lahat ng mga file sa desktop.
2) Kunin ang SD Card at ang Reader ng Card
Kumuha ng isang minimum na 8GB class 10 SD card na may isang card reader. Ipasok ang card na iyon sa card reader at isaksak iyon sa USB port.
3) I-format ang SD Card
Buksan ang SD Card Formatter at piliin ang drive.
Mag-click sa format at huwag baguhin ang anumang iba pang mga pagpipilian.
Kapag nakumpleto ang pag-format, mag-click sa OK.
4) Isulat ang OS sa SD Card
Buksan ang win32diskimager.
I-browse ang.img file ng Raspbian OS na nakuha mula sa na-download na file.
Mag-click sa bukas at pagkatapos ay mag-click sa Isulat.
Kung may anumang babala na pop up pagkatapos ay huwag pansinin ang mga sa pamamagitan ng pag-click sa OK. Hintaying makumpleto ang pagsulat at maaaring magtagal ng ilang minuto. Kaya maging matiyaga.
n
5) 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. (Pinakamadaling paraan ay upang lumikha ng isang txt file at alisin ang.txt pagkatapos)
Ngayon na ang lahat ay naka-install sa SD card maaari mo itong ligtas na palabasin mula sa iyong computer at ilagay ito sa Raspberry Pi TANANG ikonekta ang lakas. 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.
Bahagi 2: Pag-configure ng RPi
Putty
Ngayon nais naming i-configure 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. (Inirerekumenda nito na baguhin ito nang mabilis hangga't maaari. Narito ang isang gabay kung paano:
Raspi-config
Kailangan naming paganahin ang iba't ibang mga interface at upang gawin iyon kailangan muna naming i-type ang sumusunod na code:
sudo raspi-config
Ang mga bagay na kailangan naming paganahin ay nasa seksyon ng interfacing. Kailangan naming paganahin ang mga sumusunod na interface:
- One-wire
- Serial
- I2C
- SPI
Iyon ang lahat ng kailangan naming gawin sa raspi-config
Pagdaragdag ng iyong WIFI
Una, kailangan mong maging ugat para sa sumusunod na utos na maging ugat
sudo -i
Kapag nag-ugat ka na, gamitin ang sumusunod na utos: (Palitan ang SSID ng iyong pangalan ng network at password ng iyong password sa network)
wpa_passphrase "ssid" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf
Kung sakaling may nagawa kang mali, maaari mong suriin, i-update o tanggalin ang network na ito sa pamamagitan lamang ng pagpasok ng sumusunod na utos:
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
Bahagi 3: Ina-update ang RPi + pag-install ng software
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
Matapos i-update ang RPi kailangan naming i-install ang sumusunod na software:
MariaDB Database
sudo apt-get install mariadb-server
Apache2 Webserver
sudo apt i-install ang apache2
Sawa
update-alternatives --install / usr / bin / python python /usr/bin/python3.7 1 mga alternatibong pag-update - 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
- Mga Kahilingan sa PyMySQL
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
Speaker library
Para sa paggamit ng tagapagsalita na may amplifier kailangan naming mag-install ng isang silid-aklatan para dito
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
Ngayon na na-install na namin ang lahat ng kailangan namin, ilagay ang aming Database na dinisenyo namin sa aming Raspberry Pi!
Para sa pag-set up ng database magkakaroon kami upang ikonekta ang MySql at RPi. Para doon bubuksan namin ang MySQLWorkbench at gagawa ng isang bagong koneksyon. Kapag tinitingnan ang imahe kailangan mong baguhin upang baguhin ang impormasyon sa iyo.
Kung hindi mo pa nababago ang anumang maaari mong gamitin para sa SSH pi at raspberry, para sa MySQL MySQL at MySQL.
Kapag may isang bagay na hindi malinaw maaari mo ring sundin ang tutorial na ito:
Upang mai-export ang iyong database dapat itong mas madali gamit ang PHPmyAdmin dahil maaari kang makakuha ng maraming mga error sa paggawa nito sa MySql
Hakbang 6: Pag-configure ng Bluetooth sa Aming RPi
Lumilikha kami ng isang Mood speaker, na maaari din naming magamit sa aming sariling musika kaya't mas madali ito kapag ang RPi
conected sa bluetooth Sinundan ko ang isang tutorial para dito na maaari mong makita dito:
scribles.net/streaming-blusung-audio-fr…
Sinulat ko ang lahat dito pati na rin para sa lahat na nais na muling likhain ito
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
Bluetooth power on
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 konektado sa aming Raspberry na may bluetooth at dapat mong masubukan ito sa pamamagitan ng pag-play ng anumang media halimbawa ng Spotify, atbp.
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 Visual Studio Code para sa aking buong backend, kailangan mo lamang tiyakin na ang iyong proyekto sa Visual Studio ay konektado sa iyong Raspberry Pi, nangangahulugan ito na ang iyong LAN cabel ay dapat na konektado sa iyong RPi at upang makagawa ng isang koneksyon sa SSH. (Ang impormasyon sa kung paano lumikha ng isang malayuang koneksyon ay matatagpuan dito:
Gumamit ako ng sarili kong mga klase at lahat din ito ay kasama sa aking GitHub.
Sa aking backend file na ginamit ko ang iba't ibang mga klase, sa gayon ang lahat ay maaaring magamit nang hiwalay at upang ang aking pangunahing code ay hindi gulo sa lahat ng magkakaibang mga thread. Ginamit ko ang threading upang patakbuhin ang lahat ng magkakaibang mga klase nang sabay-sabay. 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 at CSS ay medyo mahirap para sa akin ginawa ko ang aking makakaya upang gawin itong mobile muna dahil maaari akong kumonekta dito sa Bluetooth upang baguhin ang mga kanta sa Spotify. Kaya 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 madali para sa akin, nagtrabaho kasama ang ilang mga GET mula sa aking mga ruta sa backend, tone-toneladang tagapakinig ng kaganapan at ilang mga socketio na istraktura upang makuha ang data mula sa aking mga sensor.
Hakbang 9: Pagbubuo ng Aking Kaso at Pagsasama-sama sa Lahat ng Ito
Sinimulan ko muna ang pag-sketch kung paano ko nais na tingnan ang kaso, isang bagay na mahalaga ay dapat sapat na malaki para sa lahat upang magkasya, dahil nakakuha kami ng isang malaking circuit upang ilagay sa kaso ngunit kailangang manatiling compact upang hindi ito ' t kumuha ng maraming espasyo
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 matandang tabla na inilatag ko at nagsimula na lang 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 at naglagay ng ilang mga kuko dito, ito ay talagang pangunahing kaso, ngunit mukhang cool ito at ganap na magkasya. Napagpasyahan ko din na pintahan ito ng puti upang ito ay magmukhang maganda.
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.
Inirerekumendang:
Pinakamalaking Holdies: Nag-hack ako ng Lumang Telepono upang Patugtugin ang Greatest Hold Music .: 13 Mga Hakbang (na may Mga Larawan)
Greatest Holdies: Na-hack ko ang isang Lumang Telepono upang Patugtugin ang Greatest Hold Music .: https: //youtu.be/Ma4QnfQ7DxoWell … Sigurado ako na hindi mo nais ang isang telepono na nagpapatugtog lamang ng musika … Ngunit may hindi mabilang na iba pang mga kapanapanabik na proyekto na maaari mong gawin gamit ang napaka pangunahing pag-hack ng mga ito na madaling magagamit " desk " mga telepono
Patugtugin ang mga CD na Walang CD Player, Paggamit ng AI at YouTube: 10 Hakbang (na may Mga Larawan)
Patugtugin ang mga CD na Walang CD Player, Paggamit ng AI at YouTube: Nais mong i-play ang iyong mga CD ngunit wala nang CD player? Walang oras upang gupitin ang iyong mga CD? Nakuha ang mga ito ngunit ang mga file ay hindi magagamit kung kinakailangan? Walang problema. Hayaan ang AI (artipisyal na katalinuhan) na kilalanin ang iyong CD, at patugtugin ito ng YouTube! Sumulat ako ng isang Android app doin
Patugtugin ang Parehong Musika sa Maramihang Mga Silid: 3 Hakbang
Patugtugin ang Parehong Musika sa Maramihang Mga Silid: Kumusta ang lahat, hindi ko alam ang tungkol sa iyo ngunit nais kong magkaroon ng parehong musika sa lahat ng aking apartment nang hindi pa masyadong malakas ang tunog. Kaya pagkatapos ng kaunting pagsasaliksik tungkol sa problemang ito, nagpasya akong magtayo ng maraming mga speaker na lahat ay konektado sa pamamagitan ng wifi sa pareho
Light Up Flower Crown Headband para sa Mga Pista ng Musika sa Tag-init, Mga Kasalan, Mga Espesyal na okasyon: 8 Hakbang (na may Mga Larawan)
Light Up Flower Crown Headband para sa Mga Pista ng Musika sa Tag-init, Mga Kasalan, Mga Espesyal na okasyon: Liwanagin ang gabi sa isang magandang floral LED headband! Perpekto para sa anumang kasal, festival ng musika, prom, costume at espesyal na okasyon! Mga kit na may lahat ng kailangan mo upang makagawa ng iyong sariling ang light up headband ay magagamit na ngayon sa Wearables Workshop sto
Mga Istante ng Tagapagsalita W / ipod Dock (Bahagi I - Mga Speaker Box): 7 Mga Hakbang
Mga Istante ng Tagapagsalita W / ipod Dock (Bahagi I - Mga Kahon ng Tagapagsalita): Nakuha ko ang isang ipod nano noong Nobyembre at dahil ginusto ko ang isang kaakit-akit na sistema ng speaker para dito. Sa trabaho isang araw napansin ko na ang mga computer speaker na ginagamit ko ay gumana nang maayos, kaya't nagtungo ako sa Goodwill kalaunan at nakakita ng isang pare ng ok na mga computer speaker sa halagang $