Orodha ya maudhui:

Spika ya Mood- Spika Mzuri wa Muziki wa Mood Uchezwe Kulingana na Joto La Kawaida: Hatua 9
Spika ya Mood- Spika Mzuri wa Muziki wa Mood Uchezwe Kulingana na Joto La Kawaida: Hatua 9

Video: Spika ya Mood- Spika Mzuri wa Muziki wa Mood Uchezwe Kulingana na Joto La Kawaida: Hatua 9

Video: Spika ya Mood- Spika Mzuri wa Muziki wa Mood Uchezwe Kulingana na Joto La Kawaida: Hatua 9
Video: Маленький лисенок вышел к людям за помощью 2024, Julai
Anonim
Spika ya Mood- Spika Mzuri wa Muziki wa Haraka Kuchezwa Kulingana na Joto La kawaida
Spika ya Mood- Spika Mzuri wa Muziki wa Haraka Kuchezwa Kulingana na Joto La kawaida

Haya hapo!

Kwa mradi wangu wa shule huko MCT Howest Kortrijk, nilifanya Spika ya Mood hii ni kifaa kizuri cha spika cha Bluetooth kilicho na sensorer tofauti, LCD na WS2812b ledstrip iliyojumuishwa. Spika inacheza muziki wa nyuma kulingana na hali ya joto lakini pia inaweza kutumika kama bluetooth ya kawaida mzungumzaji. Kila kitu kinaendesha kwenye Raspberry Pi (Hifadhidata, Webserver, Backend).

Kwa hivyo hii ya kufundisha ni hatua kwa hatua mchakato wa jinsi niligundua mradi huu katika wiki 3. Kwa hivyo ikiwa nyinyi mnataka kurudia mradi wangu unaweza kufuata mwongozo

Hii ni ya kwanza kufundishwa ambayo niliandika kwa hivyo ikiwa kuna maswali yoyote, nitajaribu kuwajibu haraka iwezekanavyo!

GitHub yangu:

Hatua ya 1: Vifaa

Raspberry Pi 3B & 16GB Kadi ya SD

Mradi wangu wote unaendesha Raspberry yangu 3B na picha iliyosanidiwa, ambayo nitaelezea katika hatua ya baadaye (Hatua ya 4: Sanidi Raspberry Pi)

Uonyesho wa LCD 16x2

Nilitumia Onyesho la msingi la LCD kuchapisha joto langu, mwangaza na anwani ya IP.

Hati ya data:

Sensor ya Joto la DS18B20

DS18B20 ni sensor ya waya moja ambayo hupima joto, iliyotengenezwa na Maxim Jumuishi. Kuna aina 2 za sensorer za DS18B20, sehemu tu (Ambayo nilitumia) na toleo la kuzuia maji, ambayo ni kubwa zaidi, lakini sio ile niliyohitaji kwa mradi wangu, kwa hivyo nilitumia sehemu hiyo tu. Sensorer inaweza kupima joto katika kiwango cha -55 ° C hadi + 125 ° C (-67 ° F hadi + 257 ° F) na ina usahihi wa 0.5 ° C kutoka -10 ° C hadi + 85 ° C. Pia ina azimio linaloweza kupangwa kutoka kwa bits 9 hadi bits 12.

Hati ya data:

MCP3008

Kusoma data kutoka kwa LDR yangu na sensorer ya PIR nilitumia MCP3008, ambayo ni Analog 8 channel 10 bit analog to digital converter with the SPI interface and is pretty easy to program.

Hati ya data:

Sensor ya mwendo wa PIR

Kuchunguza wakati kuna mtu anayeingia na kutoka kwenye chumba changu, nilitumia kihisi cha infrared infrared sensor sababu ni rahisi kutumia na ni ndogo.

Hati ya data:

LDR

Nilikuwa mpiga picha au LDR (Mwanga Kupunguza Upinzani, au kipingaji kinachotegemea mwanga) kugundua kiwango cha mwangaza wa chumba kilicho ndani. Na pia kuiwasha Ledstrip yangu ikiwa giza.

Spika - 3”Kipenyo - 4 Ohm 3 Watt

Huu ndio koni ya spika niliyochagua baada ya kuhesabu Voltage na Amperes ambayo itahitaji na hii ilikuwa sawa kwa mradi wangu wa Raspberry Pi, uliotengenezwa na Adafruit.

Muhtasari:

MAX98357 I2S Hatari-D Mono Amplifier

Hiki ni kipaza sauti kinachokuja na spika, sio tu ni kipaza sauti, pia ni dijiti ya I2S kwa kibadilishaji cha analog, kwa hivyo pia inafaa kabisa kwa spika yangu na mfumo wa sauti.

Muhtasari:

Hati ya data:

Arduino Uno

Arduino Uno ni bodi ya microcontroller ya chanzo wazi inayotegemea Microchip ATmega328P microcontroller, iliyotengenezwa na Arduino.cc. Bodi ya Uno ina pini 14 za Dijiti, pini 6 za analog na inaweza kupangwa kikamilifu na programu ya Arduino IDE

Muhtasari:

Kiwango cha mabadiliko

Hii ni bodi ndogo ambayo hutunza mawasiliano kati ya Arduino Uno na Raspberry Pi na voltages tofauti, Arduino: 5V & Raspberry Pi: 3.3V. Hii inahitajika kwa sababu ukanda wa kuunganishwa umeunganishwa na Arduino na huendesha huko, wakati vitu vingine vyote vinaendesha kwenye Raspberry Pi.

WS2812B - Ukanda wa taa

Hii ni njia ya kuongoza iliyo na risasi za RGB 60 (unaweza kununua vipande virefu zaidi na viongozo zaidi vya RGB, ikiwa unataka). Ambayo kwa upande wangu imeunganishwa na Arduino Uno, lakini pia inaweza kushikamana na vifaa vingine vingi na ni rahisi kutumia.

Hati ya data:

Sehemu ya T-GPIO, Bodi ya mkate 1 na jumperwires nyingi

Kuunganisha kila kitu nilichohitaji ubao wa mkate na sketi za kuruka, sikutumia sehemu ya GPIO T lakini unaweza kuitumia kujua wazi ni ipi inaenda wapi.

Hatua ya 2: Mpangilio na Wiring

Mpangilio na Wiring
Mpangilio na Wiring
Mpangilio na Wiring
Mpangilio na Wiring

Kwa kutengeneza skimu yangu nilitumia Fritzing, ni programu ambayo unaweza kusanikisha ambayo hukuruhusu kuunda skimu rahisi kwa aina tofauti za maoni. Nilitumia ubao wa mkate na maoni.

Pakua Fritzing:

Hakikisha kila kitu kimeunganishwa kwa usahihi. Nilitumia rangi kuifanya iwe wazi zaidi kujua wapi unganisha waya. Katika kesi yangu nilitumia rangi tofauti kwa waya

Hatua ya 3: Ubunifu wa Hifadhidata

Ubunifu wa Hifadhidata
Ubunifu wa Hifadhidata

Tunakusanya data nyingi kutoka kwa sensorer 3 (Joto kutoka DS18B20, Mwangaza kutoka LDR na Hali kutoka kwa sensorer ya PIR). Kwa hivyo ni bora kuweka data hii yote kwenye hifadhidata. Nitaelezea katika hatua ya baadaye jinsi ya kusanidi hifadhidata (Hatua ya 5: Sambaza Uhandisi Hifadhidata yetu kwa RPi!) Lakini kwanza muundo au ERD (Mchoro wa Uhusiano wa Entity) inapaswa kufanywa. Mgodi ulirekebishwa na 3NF ndiyo sababu tuligawanya vifaa na historia ya vifaa kwenye meza nyingine. Tunatumia hifadhidata ya Muziki kufuatilia nyimbo ambazo zimesikilizwa.

Kwa jumla hii ni muundo wa hifadhidata ya msingi na rahisi kufanya kazi zaidi na.

Hatua ya 4: Sanidi Raspberry Pi

Kwa hivyo sasa kwa kuwa tuna misingi ya mradi uliofanywa. Wacha tuanze na kuanzisha Pi ya Raspberry!

Sehemu ya 1: Kusanidi Kadi ya SD

1) Pakua Programu na Faili Zinazohitajika

Unahitaji kupakua programu 2 na OS 1 yaani Raspbian kwa mchakato huu kamili. Programu ya 1: Programu ya kwanza ni Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

Programu ya 2: Programu ya pili ni Muundo wa Kadi ya SD.

www.sdcard.org/downloads/formatter_4/

Raspbian OS: Huu ndio mfumo kuu wa uendeshaji wa Pi.

www.raspberrypi.org/downloads/raspberry-pi-os/

Toa faili zote kwenye eneo-kazi.

2) Pata Kadi ya SD na Msomaji wa Kadi

Pata kadi ya SD ya kiwango cha chini cha 8GB ya darasa la 10 na msomaji wa kadi. Ingiza kadi hiyo kwenye kisomaji cha kadi na uiunganishe kwenye bandari ya USB.

3) Umbiza Kadi ya SD

Fungua Fomati ya Kadi ya SD na uchague kiendeshi.

Bonyeza kwenye umbizo na usibadilishe chaguzi zingine.

Wakati uundaji umekamilika, bonyeza OK.

4) Andika OS kwenye Kadi ya SD

Fungua win32diskimager.

Vinjari faili ya.img ya OS ya Raspbian ambayo ilitolewa kutoka kwa faili iliyopakuliwa.

Bonyeza kwenye wazi na kisha bonyeza kwenye Andika.

Ikiwa onyo lolote litaibuka basi puuza hizo kwa kubofya sawa. Subiri kukamilika kwa maandishi na inaweza kuchukua dakika kadhaa. Kwa hiyo subira.

n

5) Mara tu hii itakapofanyika, tuko tayari kufanya marekebisho ya mwisho kabla ya kuweka picha kwenye RPi yetu.

Nenda kwenye saraka ya kadi yako ya SD, tafuta faili inayoitwa 'cmdline.txt' na uifungue.

Sasa ongeza 'ip = 169.254.10.1' kwenye mstari huo huo.

Hifadhi faili.

Unda faili inayoitwa 'ssh' bila ugani au yaliyomo. (Njia rahisi ni kuunda faili ya txt na kuondoa.txt baadaye)

Sasa kwa kuwa kila kitu kimewekwa kwenye kadi ya SD unaweza kuiondoa kwa usalama kutoka kwa kompyuta yako na kuiweka kwenye Raspberry Pi BILA kuunganisha nguvu. Mara kadi ya SD ikiingia kwenye RPI, unganisha kebo ya LAN kutoka kwa kompyuta yako hadi bandari ya RPi LAN, mara tu hii ikiunganishwa unaweza kuunganisha nguvu kwa RPi.

Sehemu ya 2: Kusanidi RPi

Putty

Sasa tunataka kusanidi Pi Raspberry yetu, hii imefanywa kupitia Putty.

Programu ya Putty:

Mara baada ya kupakuliwa, fungua Putty na uweke IP '169.254.10.1' na Port '22' na aina ya unganisho: SSH.

Sasa tunaweza hatimaye kufungua kiolesura cha laini ya amri na kuingia na habari ya kuingia ya kuanza -> Mtumiaji: pi & Nenosiri: rasipberry. (Inapendekeza ibadilishwe haraka iwezekanavyo. Hapa kuna mwongozo jinsi:

Raspi-usanidi

Tutalazimika kuwezesha maingiliano tofauti na kufanya hivyo lazima kwanza tuandike nambari ifuatayo:

Sudo raspi-config

Vitu tunavyohitaji kuwezesha viko katika sehemu ya kuingiliana. Tunahitaji kuwezesha miingiliano ifuatayo:

  • Waya moja
  • Serial
  • I2C
  • SPI

Hiyo ndiyo kila kitu tulihitaji kufanya na raspi-config

Inaongeza WIFI yako

Kwanza, lazima uwe mzizi kwa amri ifuatayo ili uwe mizizi

Sudo -i

Ukishakuwa mzizi, tumia amri ifuatayo: (Badilisha SSID na jina lako la mtandao na nywila na nenosiri lako la mtandao)

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

Ikiwa umefanya kitu kibaya, unaweza kuangalia, kusasisha au kufuta mtandao huu kwa kuingiza tu amri ifuatayo:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Kwa hivyo baada ya kuingia mtandao wetu, wacha tuingize kiolesura cha mteja wa WPA

wpa_cli

Chagua kiolesura chako

kiolesura wlan0

Pakia tena faili

kusanidi upya

Na mwishowe unaweza kuona ikiwa umeunganishwa vizuri:

ip a

Sehemu ya 3: Kusasisha programu ya kusakinisha RPi +

Sasa kwa kuwa tumeunganishwa kwenye wavuti, kusasisha vifurushi vilivyowekwa tayari itakuwa hoja nzuri, kwa hivyo wacha tufanye hivyo kwanza kabla ya kusanikisha vifurushi vingine.

Sudo apt-pata sasisho

sasisho la kupata apt

Baada ya kusasisha RPi tutalazimika kusakinisha programu zifuatazo:

Hifadhidata ya MariaDB

Sudo apt-get kufunga mariadb-server

Mtandao wa Apache2

Sudo apt kufunga apache2

Chatu

sasisho-mbadala - kufunga / usr / bin / chatu chatu / usr / bin / python3.7 1 njia mbadala za kusasisha - kufunga / usr / bin / chatu chatu / usr / bin / python3 2

Kifurushi cha chatu

Itabidi usakinishe vifurushi hivi vyote ili kufanya backend ifanye kazi kikamilifu:

  • Chupa
  • Flask-Cors
  • Flask-MySql
  • Flask-SocketIO
  • Maombi ya PyMySQL
  • Python-socketio
  • RPi. GPIO
  • Gevent
  • Gevent-websocket

Maktaba ya Spika

Kwa kutumia spika na kipaza sauti italazimika kusanikisha maktaba yake

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

Kuweka Hifadhidata kwa RPi!
Kuweka Hifadhidata kwa RPi!

Sasa kwa kuwa tumeweka kila kitu tunachohitaji, wacha tuweke Hifadhidata yetu tuliyoiunda kwenye Raspberry Pi yetu!

Kwa kuanzisha hifadhidata itabidi tuunganishe MySql na RPi. Kwa hiyo tutafungua MySQLWorkbench na tutaunganisha mpya. Unapoangalia picha itabidi ubadilishe kubadilisha maelezo kuwa yako.

Ikiwa haujabadilisha chochote bado unaweza kutumia kwa SSH pi na rasipberry, kwa MySQL mysql na mysql.

Wakati kitu kisicho wazi unaweza pia kufuata mafunzo haya:

Kusafirisha hifadhidata yako inapaswa kuwa rahisi kutumia PHPmyAdmin kwa sababu unaweza kupata makosa mengi kuifanya na MySql

Hatua ya 6: Kusanidi Bluetooth kwenye RPi yetu

Tunaunda spika ya Mood, ambayo tunaweza pia kutumia na muziki wetu wenyewe kwa hivyo hii ni rahisi wakati RPi iko

Iliyopatikana kwa Bluetooth nilifuata mafunzo ambayo unaweza kupata hapa:

scribles.net/streaming-bluetooth-audio-fr_

Niliandika kila kitu hapa chini kwa kila mtu ambaye anataka kuibadilisha

Kuondoa bluu zinazoendelea tayari

sudo rm / var / kukimbia / bluealsa / *

Ongeza wasifu wa A2DP Jukumu la kuzama

Sudo bluealsa -p a2dp-kuzama &

Fungua kiolesura cha Bluetooth na uwashe Bluetooth yako

umeme wa bluetoothctl umewashwa

Sanidi wakala wa kuoanisha

wakala kwenye wakala-msingi

Fanya RPi yako igundulike

kugunduliwa tarehe

  • Sasa kutoka kwa kifaa chako cha bluetooth, tafuta RPi na uunganishe nayo.
  • Thibitisha kuoanisha kwenye vifaa vyote viwili, andika 'ndio' kwenye putty yako.
  • Idhinisha huduma ya A2DP, andika 'ndio' tena.
  • Mara tu hii itakapofanyika, tunaweza kuamini kifaa chetu, kwa hivyo sio lazima kupitia hii kila wakati tunataka kuungana

uaminifu XX: XX: XX: XX: XX: XX (Anwani yako ya Bluetooth ya mac kutoka kwa chanzo chetu)

Ikiwa unataka RPi yako iendelee kugundulika, hiyo ni chaguo lako mwenyewe, lakini napendelea kuizima tena, ili watu wasiweze kujaribu kuungana na sanduku lako

kutambuliwa mbali

Basi tunaweza kutoka interface yetu ya bluetooth

Utgång

Na mwishowe njia yetu ya sauti: chanzo chetu cha usambazaji kwa RPi yetu

bluealsa-aplay 00: 00: 00: 00: 00: 00

Sasa kifaa chetu kimeunganishwa na Raspberry yetu na bluetooth na unapaswa kuijaribu kwa kucheza media yoyote kwa mfano Spotify, nk.

Hatua ya 7: Kuandika Kumbukumbu Kamili

Kwa hivyo sasa usanidi umefanywa, mwishowe tunaweza kuanza kuandika programu yetu ya backend!

Nilitumia Nambari ya Studio ya Visual kwa backend yangu yote, unahitaji tu kuhakikisha kuwa mradi wako wa Studio ya Visual umeunganishwa na Raspberry Pi yako, hii inamaanisha kuwa cable yako ya LAN inapaswa kushikamana na RPi yako na kufanya unganisho la SSH. (habari juu ya jinsi ya kuunda unganisho la mbali inaweza kupatikana hapa:

Nilitumia darasa langu mwenyewe na hizi zote pia zimejumuishwa katika GitHub yangu.

Katika faili yangu ya nyuma nilitumia darasa tofauti, kwa hivyo kila kitu kinaweza kutumiwa kando na ili nambari yangu kuu isiwe fujo na nyuzi zote tofauti. Nilikuwa nikitengeneza nyuzi kuendesha darasa zote tofauti mara moja. Na chini ulipata njia zote ili tuweze kupata data kwa urahisi mbele yetu.

Hatua ya 8: Kuandika Frontend (HTML, CSS & JavaScript)

Sasa kwa kuwa backend imefanywa, tunaweza kuanza kuandika mwisho kamili wa mbele.

HTML na CSS zilikuwa ngumu sana kwangu nilijitahidi kuifanya iwe ya rununu kwanza kwa sababu ninaweza kuiunganisha na bluetooth kubadilisha nyimbo na Spotify. Kwa hivyo itakuwa rahisi kudhibiti kutoka kwa dashibodi ya rununu

Unaweza kubuni dashibodi yako kwa njia yoyote unayotaka, nitaacha tu nambari yangu na muundo hapa, unaweza kufanya chochote unachopenda!

Na Javascript haikuwa rahisi kwangu, ilifanya kazi na GET chache kutoka kwa njia zangu za kurudi nyuma, tani za wasikilizaji wa hafla na miundo kadhaa ya socketio kupata data kutoka kwa sensorer zangu.

Hatua ya 9: Kuunda Kesi yangu na Kuiweka Pamoja

Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja
Kujenga Kesi Yangu na Kuiweka Pamoja

Kwanza nilianza kuchora jinsi nilitaka kesi hiyo ionekane, jambo muhimu ni kwamba ilibidi iwe kubwa kwa kutosha kila kitu kutoshea, kwani tulipata mzunguko mkubwa wa kuweka kesi lakini tulilazimika kukaa sawa ili isiweze ' kuchukua nafasi nyingi

Nilitengeneza kesi hiyo kwa kuni, nadhani ni rahisi kufanya kazi nayo wakati hauna uzoefu mwingi na kesi za ujenzi na pia una mambo mengi unayoweza kufanya nayo.

Nilianza kutoka kwa ubao wa zamani ambao nilikuwa nimeweka karibu na kuanza tu kuni. Mara tu nilipokuwa na kesi yangu ya kimsingi, ilibidi tu nichimbe mashimo ndani yake (mengi mbele ya kesi, kama unavyoweza kuona kwenye picha na kuweka misumari ndani yake, ni kesi ya msingi sana, lakini inaonekana nzuri sana na inafaa kabisa. Niliamua pia kuipaka rangi nyeupe ili ionekane nzuri.

Na mara tu kesi hiyo ilipomalizika, ilikuwa wakati wa kuiweka pamoja, kama unaweza kuona kwenye picha ya mwisho! Ni kama fujo ndani ya sanduku, lakini kila kitu kinafanya kazi na sikuwa na nafasi zaidi, kwa hivyo ninakushauri labda utengeneze kesi kubwa ikiwa unarudia mradi wangu.

Ilipendekeza: