Orodha ya maudhui:

IoT RPi Bodi ya Ujumbe wa LED: Hatua 3 (na Picha)
IoT RPi Bodi ya Ujumbe wa LED: Hatua 3 (na Picha)

Video: IoT RPi Bodi ya Ujumbe wa LED: Hatua 3 (na Picha)

Video: IoT RPi Bodi ya Ujumbe wa LED: Hatua 3 (na Picha)
Video: Йога для начинающих дома с Алиной Anandee #3. Здоровое гибкое тело за 40 минут. Продвинутый уровень. 2024, Desemba
Anonim
Image
Image
Usanidi wa Vifaa
Usanidi wa Vifaa

Katika hii Inayoweza kufundishwa, nimeunda bodi ya ujumbe iliyounganishwa na wifi kwa kutumia Raspberry Pi (RPi). Watumiaji wataunganisha kwenye seva ya wavuti ya Raspberry Pi wakitumia vivinjari vyao kuwasilisha ujumbe mfupi ambao utaonekana kwenye onyesho la 8x8 LED. Kwa kuwa kuingiliana kwa tumbo la 8x8 la LED na dereva wa MAX7219 huko Python imeandikwa vizuri na wengine kwenye mtandao, mradi huu unazingatia kujenga kiolesura cha webserver na kutumia Ujumbe wa ZeroMQ kudhibiti ujumbe unaoingia.

Sasisha: Hapa kuna mradi wa ufuatiliaji IoT Decimal / Hexadecimal 8x8 LED Matrix Drawing Board

(Mimi ni mwezeshaji wa kilabu cha Wasichana Who Code Club na nilikuja na mradi huu rahisi kufundisha wanafunzi juu ya muundo wa wavuti na ujumbe.)

Hatua ya 1: Usanidi wa vifaa

Usanidi wa Vifaa
Usanidi wa Vifaa
Usanidi wa Vifaa
Usanidi wa Vifaa

Mradi huu unahitaji vifaa vifuatavyo:

  • Pi ya Raspberry
  • Chanzo cha umeme cha USB kama Anker na USB fupi kwa kebo ya MicroUSB
  • Moduli ya tumbo ya MAX7219 ya dot na kebo ya utepe (Aliexpress kwa chini ya $ 2)
  • Ufungaji (nilitengeneza moja kutoka kwenye sanduku la kadibodi na dawa ya kupaka rangi nyeusi)

Usanidi wa vifaa ni sehemu rahisi. Unganisha tu kebo ya waya 5 kutoka kwa tumbo la LED hadi RPi kwa hati ya maktaba ya MAX7219.

LED-> RPi ======== VCC-> GPIO Pin # 2 (5v) GND-> GPIO Pin # 6 (GND) DIN-> GPIO Pin # 19CS -> GPIO Pin # 24CLK-> GPIO Pin # 23

Nilitumia mkanda wa povu wenye pande mbili kubandika kitengo cha LED kwenye kesi ya RPi. Kisha, nilitengeneza kizuizi kutoka kwenye sanduku la kadibodi ili kuweka RPi na betri.

Hatua ya 2: Usanidi wa Programu

Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu
Usanidi wa Programu

RPi inapaswa kuwa na programu ifuatayo:

  • Python 3
  • Mtaftaji wa wavuti wa Apache 2
  • Dereva wa Max7219 wa chatu
  • Ujumbe wa ZeroMQ

Python 3

RPi inapaswa kuwa na Python 3 tayari iliyowekwa tayari. Wakati nambari yangu imeandikwa kwa Python 3, Python 2 inapaswa kufanya kazi na mabadiliko kadhaa madogo.

Apache 2

Sanidi Apache na uwezeshe Python CGI scripting. Chini ni rasilimali kubwa kadhaa za kuanzisha Apache kwenye RPi kwa hivyo sitarudia hapa. Fuata tu mafunzo hapa chini ili kusanidi Apache na CGI. Hakikisha hati za.py zinatekelezwa kutoka kwa kivinjari.

  • https://raspberrywebserver.com/cgiscripting/
  • https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/

Dereva wa Max7291

Sakinisha dereva wa Max7219 kwa kufuata mwongozo wa hivi karibuni wa kusakinisha:

https://max7219.readthedocs.io/en/latest/install.html

Baada ya kusakinisha, endesha nambari ya mfano, matrix_test.py, kwa mwongozo wa kusanikisha kuonyesha "Hello World" kwenye Matrix ya LED. Hii inapaswa kufanya kazi kabla ya kwenda hatua inayofuata.

Ujumbe wa ZeroMQ

Kwa nini tunahitaji Ujumbe? Jaribu kutumia nambari ya mfano hapo juu, matrix_test.py, kwenye skrini mbili za terminal wakati huo huo. Mfumo huo utaruhusu nambari kadhaa za simu kuendesha wakati huo huo lakini utaona ujumbe ukipishana ambao hauhitajiki. Katika mazingira moja ya mtumiaji, hii inaweza kuwa sio shida kwani unaweza kuhakikisha kuwa programu moja tu inaweza kuendesha kwa wakati mmoja. Katika mazingira ya watumiaji anuwai kama wavuti, mfumo lazima uunde FIFO (Kwanza-Kwanza-Kwanza-Kati) foleni ili kuhakikisha ni mtu mmoja tu anayeweza kutekeleza nambari wakati wengine wanangoja. Wakati kunaweza kuwa na suluhisho zingine kufanikisha hili, niliamua kutumia ZeroMQ kusimamia foleni ya FIFO. Nambari ya seva ya ZeroMQ ina simu halisi ya kazi ili kuonyesha ujumbe kwenye tumbo la LED moja kwa wakati wakati seva ya wavuti hufanya kama mteja wa ZeroMQ kuuliza na kuwasilisha ujumbe kwa seva ya ZeroMQ. Kwa njia hii, wakati watumiaji wengi wangeweza kuwasilisha ujumbe kupitia ukurasa wa wavuti wakati huo huo, seva ya ZeroMQ itaonyesha ujumbe mmoja tu kwa wakati mmoja.

Kwa mradi huu, tutaweka tu kifurushi cha Python pyzmq na sio kifurushi chote cha ZeroMQ.

kukimbia:

sudo pip3 kufunga pyzmq

Soma mwongozo wa ZeroMQ kwenye https://zguide.zeromq.org na ujaribu seva ya ulimwengu ya hello na mfano wa mteja katika Python. Nakili msimbo wa mfano wa Python kwa seva na mteja kwa RPi na uhakikishe wanafanya kazi kabla ya kwenda hatua inayofuata.

Hatua ya 3: Usanidi wa Ukurasa wa Wavuti

Katika ukurasa wa wavuti, nilitumia mfumo wa bootstrap css / js kufanya ukurasa uonekane mzuri. Hii ni hiari kabisa.

Pakua faili iliyoongozwa ya led_msg.tar.gz kwenye mzizi wa Apache au saraka ndogo. Ili kufungua faili ya gzip'd tar, endesha:

tar -xzvf inayoongozwa_msg.tar.gz

Hii inaunda faili zifuatazo:

msg.py (programu kuu)

templates / interstitial.

Kwa hiari, sakinisha bootstrap css / js mfumo chini ya saraka ya tuli.

Ingiza URL ya msg.py kivinjari chako na uhakikishe ukurasa wa wavuti unakuja. Usiwasilishe ujumbe bado !!!

Kabla ya ujumbe kuwasilishwa, seva ya ZeroMQ lazima ianzishwe kupokea ujumbe kutoka kwa mteja wa ukurasa wa wavuti na kuonyeshwa kwenye tumbo la LED. Hakuna chochote kitaonyesha kwenye skrini ikiwa seva ya ZeroMQ haifanyi kazi.

Pakua nambari iliyoambatishwa max7219_server.py kwenye saraka yako ya nyumbani, sio kwenye mizizi ya Apache ambapo inaweza kutekelezwa na watumiaji wa wavuti. Endesha kama mzizi:

sudo chatu max7219_server.py

Sasa seva ya ZeroMQ iko tayari kupokea ujumbe kutoka kwa ukurasa wa wavuti. Ingiza na uwasilishe ujumbe rahisi kutoka kwa ukurasa wa wavuti. Ikiwa kila kitu kimewekwa kwa usahihi, utaona ujumbe huo kwenye skrini ya seva ya ZeroMQ na pia kwenye Matrix ya LED.

Ikiwa unataka kuzima seva, fanya tu Udhibiti-C ili kutoka skrini ya seva.

Hiyo tu. Natumahi utafurahiya mradi huu kama vile nilivyofanya.

Kuboresha moja unayoweza kufanya ni kufanya mawasiliano ya ZeroMQ kati ya seva na wateja kuwa sawa ili ukurasa wa wavuti usisubiri wakati ujumbe mwingine unaonyeshwa. Pia, unaweza kushikamana na matrix ya ziada ya LED katika hali ya kuteleza. Nitakuachia hiyo.

Ilipendekeza: