Orodha ya maudhui:

Slimbox - Spika ya Smart Smart !: Hatua 10 (na Picha)
Slimbox - Spika ya Smart Smart !: Hatua 10 (na Picha)

Video: Slimbox - Spika ya Smart Smart !: Hatua 10 (na Picha)

Video: Slimbox - Spika ya Smart Smart !: Hatua 10 (na Picha)
Video: Универсальная прошивка для ТВ Боксов на AMLOGIC процессорах SLIMBOX. На примере TANIX TX9S 2024, Novemba
Anonim
Slimbox - Spika ya Smart Smart!
Slimbox - Spika ya Smart Smart!

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

Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
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

Mpangilio na Wiring
Mpangilio na Wiring
Mpangilio na Wiring
Mpangilio na Wiring
Mpangilio na Wiring
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

Ubunifu wa Hifadhidata
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:

  1. Weka kadi yako ya SD kwenye kompyuta yako.
  2. Fungua Win32 ambayo umepakua tu.
  3. Chagua faili ya picha ya Raspbian ambayo pia umepakua.
  4. 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.

  1. Nenda kwenye saraka ya kadi yako ya SD, tafuta faili inayoitwa 'cmdline.txt' na uifungue.
  2. Sasa ongeza 'ip = 169.254.10.1' kwenye mstari huo huo.
  3. Hifadhi faili.
  4. 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

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 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: