Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2: Mpangilio na Wiring
- Hatua ya 3: Ubunifu wa Hifadhidata
- Hatua ya 4: Kuandaa Raspberry Pi
- Hatua ya 5: Sambaza Uhandisi Hifadhidata yetu kwa RPi
- Hatua ya 6: Kusanidi Bluetooth kwenye RPi yetu
- Hatua ya 7: Kuandika Kumbukumbu Kamili
- Hatua ya 8: Kuandika Frontend (HTML, CSS & JavaScript)
- Hatua ya 9: Kuunda Kesi yangu na Kuiweka Pamoja
- Hatua ya 10: Shida zingine nilizokuwa nazo kwenye Njia Yangu ya Kuunda Spika ya Slimbox…
Video: Slimbox - Spika ya Smart Smart !: Hatua 10 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Haya hapo!
Kwa mradi wangu wa shule huko MCT Howest Kortrijk, nilitengeneza kifaa kizuri cha spika cha Bluetooth na sensorer tofauti, pete ya LCD na RGB NeoPixel imejumuishwa. Kila kitu kinaendesha kwenye Raspberry Pi (Hifadhidata, Webserver, Backend).
Kwa hivyo katika mafunzo haya nitakuonyesha jinsi nilivyotengeneza mradi huu kwa wiki 3, hatua kwa hatua, kwa hivyo ikiwa mtu yeyote kati yenu anataka kurudia mradi wangu, unaweza kufanya kwa urahisi!
Hii pia ni ya kwanza kufundishwa, ikiwa una maswali yoyote, nitajaribu kuyajibu haraka iwezekanavyo!
GitHub yangu:
Hatua ya 1: Vifaa
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:
Sensor ya Potentiometer
Potentiometer ni kontena na vituo vitatu ambavyo vinaweza kubadilishwa kwa mikono kwa kuzungusha tu sehemu ya juu ya sensa. Msimamo wa sehemu ya juu huamua voltage ya pato ya potentiometer.
LSM303 Accelerometer + Kuzuka kwa Dira
Bodi ya kuzuka kwa LSM303 ni mchanganyiko wa kiharusi cha axis tatu na magnetometer / dira, iliyotengenezwa na Adafruit. Inatumika na kiolesura cha I2C cha Raspberry Pi.
Maelezo ya jumla:
Hati ya data:
MCP3008
Kusoma data kutoka kwa potentiometer yangu nilitumia MCP3008, ambayo ni kituo 8 cha analog kidogo kwa kibadilishaji cha dijiti na kiolesura cha SPI na ni rahisi sana kupanga.
Hati ya data:
Spika - 3”Kipenyo - 8 Ohm 1 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 pete ya NeoPixel imeunganishwa na Arduino na inaendesha huko, wakati vitu vingine vyote vinaendesha kwenye Raspberry Pi.
Gonga la NeoPixel la RGB
Hii ni pete ndogo iliyojazwa na viwambo 12 vya RGB (unaweza kununua pete kubwa 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.
Muhtasari:
Uonyesho wa LCD 16x2
Nilitumia Onyesho la msingi la LCD kuchapisha anwani yangu ya joto, sauti na IP.
Hati ya data:
Raspberry Pi 3B + & 16GB Kadi ya SD
Mradi wangu wote unatekelezwa kwenye Raspberry Pi 3B + yangu na picha iliyosanidiwa, ambayo nitakusaidia kusanidi baadaye katika maelezo yangu.
Sehemu ya TP ya GPIO, Bao 2 za mikate na jumperwires nyingi
Kuunganisha kila kitu nilichohitaji ubao wa mkate na sketi za kuruka, nilitumia sehemu ya GPIO T kwa hivyo nina nafasi zaidi na ni wazi ni pini ipi.
Hatua ya 2: Mpangilio na Wiring
Kwa skimu yangu nilitumia Fritzing, ni programu ambayo unaweza kusanikisha ambayo hukuruhusu kuunda skimu rahisi kwa aina tofauti za maoni.
Pakua Fritzing:
Kwa hivyo hakikisha unaunganisha kila kitu kwa njia sahihi! Kwa upande wangu rangi za waya hazifanani kama kwenye skimu.
Hatua ya 3: Ubunifu wa Hifadhidata
Tunakusanya data nyingi kutoka kwa sensorer 3 zilizounganishwa, kwa hivyo tunahitaji hifadhidata kuhifadhi data na sensorer. Baadaye tutaona jinsi ya kusanidi hifadhidata kwenye Raspberry Pi na jinsi ya kuongeza data kwake. Lakini kwanza muundo wa hifadhidata au ERD (Mchoro wa Uhusiano wa Entity) inapaswa kufanywa na yangu pia ilisawazishwa na 3NF. Ndiyo sababu tuligawanya sensorer kwenye meza nyingine na kufanya kazi na vitambulisho.
Kwa jumla hii ni muundo wa hifadhidata ya msingi na rahisi kufanya kazi zaidi na.
Hatua ya 4: Kuandaa Raspberry Pi
Kwa hivyo sasa kwa kuwa tuna misingi ya mradi uliofanywa. Wacha tuanze na Raspberry Pi!
Usanidi wa Kadi ya SD
Kwanza, unahitaji Kadi ya SD ya 16GB ambapo unaweza kuweka picha yako na programu ya kupakia picha ya kuanza kwenye kadi ya SD.
Programu:
Anza picha:
Kwa hivyo hizi zinapopakuliwa:
- Weka kadi yako ya SD kwenye kompyuta yako.
- Fungua Win32 ambayo umepakua tu.
- Chagua faili ya picha ya Raspbian ambayo pia umepakua.
- Bonyeza 'andika' kwa eneo la kadi yako ya SD.
Hii inaweza kuchukua muda, kulingana na vifaa vyako. 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.
Sasa unaweza SALAMA kwa usalama kutoka kwa kompyuta yako na uweke kwenye Raspberry Pi BILA 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.
Sasa tunataka kudhibiti Raspberry Pi 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.
Raspi-usanidi
Sudo raspi-config
Kilicho muhimu sana kwa mradi huu ni sehemu ya kuingiliana, tunapaswa kuwezesha miingiliano tofauti, kuwezesha miingiliano yote ifuatayo:
- Waya moja
- SPI
- I2C
- Serial
Sasa kwa kuwa tumemaliza raspi-config, wacha tujaribu na unganisha na mtandao.
Muunganisho wa Wi-Fi
Kwanza, lazima uwe mzizi kwa amri zifuatazo
Sudo -i
Ukishakuwa mzizi, tumia amri ifuatayo. SSID ni jina lako la mtandao na nywila ni wazi ni nywila.
wpa_passphrase "ssid" "nywila" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ikiwa umekosea, unaweza kuangalia, kusasisha au kufuta mtandao huu kwa kuingia tu faili hiyo:
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
Sasisha na usasishe
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
Hifadhidata ya MariaDB
Sakinisha seva ya hifadhidata ya MariaDB:
Sudo apt-get kufunga mariadb-server
Mtandao wa Apache2
Sakinisha seva ya wavuti ya Apache2:
Sudo apt kufunga apache2
Chatu
Sakinisha Python:
sasisho-mbadala - kufunga / usr / bin / chatu chatu / usr / bin / python2.7 1
sasisho-mbadala - 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
- PyMySQL
- Maombi
- Python-socketio
- RPi. GPIO
- Gevent
- Gevent-websocket
- Ujson
- Wsaccel
Maktaba ya Spika
Sakinisha maktaba ya spika kutoka Adafruit:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Wakati wa kuwasha upya
Sudo reboot
Hatua ya 5: Sambaza Uhandisi Hifadhidata yetu kwa RPi
Sasa kwa kuwa tumeweka kila kitu tunachohitaji, wacha tuweke Hifadhidata yetu tuliyoiunda kwenye Raspberry Pi yetu!
Kwa hivyo kwanza tunahitaji kusambaza mhandisi hifadhidata yetu kwenye Workbench ya MySql, wakati tunafanya hivyo, nakili nambari yako kamili ya hifadhidata na ufute maneno yote 'yanayoonekana' ndani yake. Kwa hivyo ikisha kunakiliwa, acha kufungua putty tena, ingia na andika:
Sudo mysql
na sasa uko katika kiolesura cha mysql, nakili nambari yako ya hifadhidata ndani yake na bonyeza ingiza.
Sasa tunahitaji tu kuunda mtumiaji
Unda Mtumiaji wa mtumiaji anayetambuliwa na 'mtumiaji';
TOA MAHAKAMA YOTE KWENYE *. * KWA 'mtumiaji';
Sasa reboot.
Kwa hivyo kila kitu kinapaswa kusanidiwa sasa, unaweza pia kufanya unganisho na Pi na MySql Workbench yako, kwa hivyo ni rahisi kuangalia data zote kwenye meza zako.
Hatua ya 6: Kusanidi Bluetooth kwenye RPi yetu
Tunaunda spika ya Bluetooth, kwa hivyo hii inamaanisha kuwa vyombo vya habari vinatumwa kutoka kwa chanzo chetu kwenda kwa Raspberry Pi na hii inaweza kufanywa kuwa rahisi sana, wacha tuingie ndani!
Chanzo changu cha unganisho la Bluetooth:
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
bluetoothctl
kuwasha
Sanidi wakala wa kuoanisha
wakala juu
default-wakala
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 kikamilifu na Raspberry yetu na unapaswa kucheza media kutoka kwa chanzo chako kwenye spika ya Pi.
Hatua ya 7: Kuandika Kumbukumbu Kamili
Kwa hivyo sasa usanidi umefanywa, mwishowe tunaweza kuanza kuandika programu yetu ya backend!
Nilitumia PyCharm kwa backend yangu yote, unahitaji tu kuhakikisha kuwa mradi wako wa PyCharm umeunganishwa na Raspberry Pi yako, hii inamaanisha njia yako ya Upelekaji imewekwa katika mipangilio yako na umeweka vifurushi vyote tunavyohitaji, inapaswa kufanywa tayari kwa hatua 4.
Nilitumia darasa langu mwenyewe na hizi zote pia zimejumuishwa katika GitHub yangu. Kiungo kiko kwenye utangulizi ikiwa umekosa;)
Katika faili yangu ya nyuma nilitumia madarasa ya utaftaji, kwa hivyo kila kitu kinaweza kukimbia kwa wakati mmoja na haitaingiliana. 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 & CSS ilifanywa rahisi sana, ilijaribu kufanya kazi ya rununu kwanza iwezekanavyo, kwani mara nyingi tunaunganisha na Bluetooth kutoka kwa kifaa cha rununu, 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 ngumu sana, ilifanya kazi na GET chache kutoka kwa njia zangu za kurudi nyuma, tani za wasikilizaji wa hafla na miundo kadhaa ya socketio.
Hatua ya 9: Kuunda Kesi yangu na Kuiweka Pamoja
Kwanza nilianza na michoro ya jinsi nilitaka kesi hiyo ionekane, jambo muhimu ni kwamba ilibidi iwe kubwa kwa kutosha kila kitu kutoshea, kwani tulipata mzunguko mkubwa wa kuweka kesi hiyo.
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 kesi ya chupa za divai na nikaanza tu kuni. Mara tu nilipokuwa na kesi yangu ya msingi, ilibidi nichimbe mashimo ndani yake (mengi mbele ya kesi, kama unaweza kuona kwenye picha: P) na kuweka misumari ndani yake, ni kesi ya msingi sana, lakini inaonekana nzuri na inafaa kabisa.
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.
Hatua ya 10: Shida zingine nilizokuwa nazo kwenye Njia Yangu ya Kuunda Spika ya Slimbox…
Makosa ya Bluetooth & bluealsa
Kila wakati nilitaka kucheza muziki au kuungana na bluetooth, nilipokea makosa kutoka kwa bluetooth na bluealsa. Nilifanya utafiti juu yake na hii ndiyo suluhisho la shida yangu. Kwa hivyo kwa sababu fulani bluetooth yangu ilizuiliwa laini, bila hakika ikiwa hii imefungwa laini. Unaweza kuona ikiwa ni kwa kuandika amri ifuatayo katika Putty yako.
orodha ya rfkill
Kwa hivyo ikiwa imezuiwa laini, tumia tu hii:
rfkill unblock bluetooth
Na unaweza kutaka kuwasha tena baada ya hii, chanzo changu:
Shida za unganisho la serial
Kwa hivyo shida nyingine kubwa niliyokuwa nayo ni kwamba sikuweza kufanya uhusiano wowote na Arduino yangu kupitia kiwango cha juu, baada ya utaftaji nilipata kwamba '/ dev / ttyS0' yangu ilikuwa imeenda na hii inaweza kuwa ni kwa sababu ya sasisho la RPi yako. Pia kupatikana suluhisho juu ya hii
Utalazimika kuwezesha tena dashibodi ya serial na raspi-config, kuwasha upya, na kisha uondoe mwenyewe "console = serial0, 115200" kidogo kutoka '/boot/cmdline.txt'Thibitisha kwamba "enable_uart = 1" iko katika' / boot/config.txt ', na uwashe tena. Hiyo inapaswa kurudisha bandari yako ya ttyS0, pamoja na kiunga laini cha' / dev / serial0 'kwake.
Chanzo:
Ilipendekeza:
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) na Rpi-picha na Picha: Hatua 7 (na Picha)
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) Na picha ya Rpi na Picha: Ninapanga kutumia Rapsberry PI hii kwenye rundo la miradi ya kufurahisha nyuma kwenye blogi yangu. Jisikie huru kuiangalia. Nilitaka kurudi kutumia Raspberry PI yangu lakini sikuwa na Kinanda au Panya katika eneo langu jipya. Ilikuwa ni muda tangu nilipoweka Raspberry
Uso wa Kujua Picha ya Picha ya OSD: Hatua 11 (na Picha)
Uso wa Kujua Picha ya Picha ya OSD: Maagizo haya yanaonyesha jinsi ya kutengeneza fremu ya picha na utambuzi wa uso kwenye Onyesho la Skrini (OSD). OSD inaweza kuonyesha wakati, hali ya hewa au habari nyingine ya mtandao unayotaka
Utengenezaji wa Picha / Picha ya Picha: 4 Hatua
Picha-based Modeling / Photogrammetry Portraiture: Halo kila mtu, Katika hii inayoweza kuelekezwa, nitakuonyesha mchakato wa jinsi ya kuunda vielelezo vya 3D kwa kutumia picha za dijiti. Mchakato huo unaitwa Photogrammetry, pia inajulikana kama Modeling-Image Modeling (IBM). Hasa, aina ya mchakato huu hutumiwa
Hawk ya Ishara: Roboti Iliyodhibitiwa na Ishara ya Mkono Kutumia Picha ya Usindikaji wa Picha: Hatua 13 (na Picha)
Hawk ya Ishara: Robot Iliyodhibitiwa na Ishara ya Mkono Kutumia Picha ya Usindikaji wa Picha: Hawk ya Ishara ilionyeshwa katika TechEvince 4.0 kama muundo rahisi wa picha ya msingi wa mashine ya kibinadamu. Huduma yake iko katika ukweli kwamba hakuna sensorer za ziada au za kuvaliwa isipokuwa glavu inahitajika kudhibiti gari ya roboti inayoendesha tofauti
Picha ya Picha ya Dijitali, Wifi Imeunganishwa - Raspberry Pi: Hatua 4 (na Picha)
Picha ya Picha ya Dijitali, Wifi Imeunganishwa - Raspberry Pi: Hii ni njia rahisi na ya gharama nafuu kwa fremu ya picha ya dijiti - na faida ya kuongeza / kuondoa picha kwenye WiFi kupitia 'bonyeza na buruta' kwa kutumia (bure) mpango wa kuhamisha faili . Inaweza kutumiwa na Pauni Zero ndogo ya Pauni 4.50. Unaweza pia kuhamisha