
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48



Այս հրահանգում ես պատրաստել եմ wifi- ով միացված LED հաղորդագրությունների տախտակ ՝ օգտագործելով Raspberry Pi (RPi): Օգտագործողները կմիանան Raspberry Pi- ի վեբ սերվերին ՝ օգտագործելով իրենց դիտարկիչները ՝ կարճ հաղորդագրություններ ներկայացնելու համար, որոնք կցուցադրվեն 8x8 LED էկրանին: Քանի որ Python- ում MAX7219 վարորդի հետ 8x8 LED մատրիցի հետ կապը լավ փաստագրված է ինտերնետում, այս նախագիծը կենտրոնանում է վեբ սերվերի ինտերֆեյսի ստեղծման և մուտքային հաղորդագրությունները կառավարելու համար ZeroMQ Messaging- ի վրա:
Թարմացում. Ահա հետագա նախագիծը IoT տասնորդական/տասնվեցական 8x8 LED մատրիցի գծագրման տախտակ
(Ես ակումբի միջնորդ եմ Girls Who Code Club- ի համար և ես հանդես եկա այս պարզ նախագծով ՝ ուսանողներին սովորեցնելու վեբ ինտերֆեյսի ձևավորում և հաղորդագրությունների փոխանցում):
Քայլ 1: Սարքավորման կարգավորում


Այս նախագիծը պահանջում է հետևյալ սարքավորումները.
- Ազնվամորի Պի
- USB էներգիայի աղբյուր, ինչպիսին է Anker- ը կարճ USB- ից MicroUSB մալուխով
- MAX7219 կետային մատրիցային մոդուլ ՝ ժապավենային մալուխով (Aliexpress- ը 2 դոլարից պակաս գնով)
- Պարիսպ (ես պատրաստեցի ստվարաթղթե տուփից և սև ներկված լակիով)
Սարքավորումների տեղադրումը հեշտ մասն է: Պարզապես միացրեք 5 մետաղալար ժապավենի մալուխը LED մատրիցից RPi մեկ MAX7219 գրադարանի փաստաթղթին:
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23
Ես օգտագործեցի երկկողմանի փրփուր ժապավեն `LED միավորը RPi պատյանին ամրացնելու համար: Այնուհետև ստվարաթղթե տուփից պատրաստեցի պատյան ՝ ինչպես RPi, այնպես էլ մարտկոց պահելու համար:
Քայլ 2: Softwareրագրաշարի տեղադրում




RPi- ն պետք է ունենա հետևյալ ծրագրակազմը.
- Պիթոն 3
- Apache 2 վեբ սերվեր
- Max7219 վարորդ Python- ի համար
- ZeroMQ հաղորդագրություններ
Պիթոն 3
RPi- ում պետք է Python 3-ն արդեն նախապես տեղադրված լինի: Մինչ իմ կոդը գրված է Python 3 -ի համար, Python 2 -ը պետք է աշխատի մի քանի չնչին փոփոխություններով:
Ապաչի 2
Կարգավորեք Apache- ը և միացրեք Python CGI սկրիպտը: Ստորև բերված են Apache RPi- ով տեղադրելու մի քանի հիանալի ռեսուրսներ, այնպես որ ես այստեղ չեմ կրկնի: Պարզապես հետևեք ստորև ներկայացված ձեռնարկներին ՝ Apache և CGI- ն կարգավորելու համար: Համոզվեք, որ *.py սցենարները գործարկելի են դիտարկիչից:
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Max 7291 վարորդ
Տեղադրեք Max7219 վարորդը ՝ հետևելով վերջին տեղադրման ուղեցույցին.
https://max7219.readthedocs.io/hy/latest/install.html
Տեղադրվելուց հետո գործարկեք օրինակ կոդը ՝ matrix_test.py, մեկ տեղադրման ուղեցույց ՝ LED մատրիցի վրա «Hello World» ցուցադրելու համար: Սա պետք է աշխատի մինչև հաջորդ քայլին անցնելը:
ZeroMQ հաղորդագրություններ
Ինչու՞ մեզ պետք է Հաղորդագրություն: Փորձեք գործարկել վերը նշված օրինակի կոդը ՝ matrix_test.py, միաժամանակ երկու տերմինալային էկրանների վրա: Համակարգը թույլ կտա մի քանի կոդ միաժամանակ գործարկել, բայց կտեսնեք, որ հաղորդագրությունները համընկնում են, ինչը ցանկալի չէ: Մեկ օգտագործողի միջավայրում դա կարող է խնդիր չլինել, քանի որ կարող եք համոզվել, որ միաժամանակ կարող է գործարկվել միայն մեկ ծրագիր: Համացանցի նման բազմաբնույթ միջավայրում համակարգը պետք է ստեղծի FIFO (Առաջին-Առաջին-Ելք) հերթ ՝ համոզվելու համար, որ միայն մեկ անձ կարող է կատարել ծածկագիրը, իսկ մյուսները սպասում են: Թեև դրան հասնելու այլ լուծումներ կարող են լինել, ես որոշեցի օգտագործել ZeroMQ- ը ՝ FIFO- ի հերթը կառավարելու համար: ZeroMQ սերվերի ծածկագիրը պարունակում է ֆունկցիայի իրական կանչ ՝ LED մատրիցի վրա հաղորդագրություն ցուցադրելու միաժամանակ, իսկ վեբ սերվերը հանդես է գալիս որպես ZeroMQ հաճախորդ ՝ ZeroMQ սերվերին հաղորդագրություններ հարցնելու և ներկայացնելու համար: Այս կերպ, մինչդեռ մի քանի օգտվողներ կարող էին միաժամանակ ուղարկել հաղորդագրություններ վեբ էջի միջոցով, ZeroMQ սերվերը միաժամանակ կցուցադրի միայն մեկ հաղորդագրություն:
Այս նախագծի համար մենք պարզապես կտեղադրենք Python փաթեթը pyzmq և ոչ թե ամբողջ ZeroMQ փաթեթը:
վազել:
sudo pip3 տեղադրել pyzmq
Կարդացեք ZeroMQ ուղեցույցը https://zguide.zeromq.org կայքում և փորձեք Python- ի ողջույնի սերվերի և հաճախորդի օրինակը: Պատճենեք Python- ի օրինակի ծածկագիրը և՛ սերվերի, և՛ հաճախորդի համար RPi- ում և համոզվեք, որ դրանք աշխատում են մինչև հաջորդ քայլին անցնելը:
Քայլ 3: Վեբ էջի կարգավորում
Վեբ էջում ես օգտագործել եմ bootstrap css/js շրջանակը, որպեսզի էջը գեղեցիկ տեսք ունենա: Սա բոլորովին ընտրովի չէ:
Ներբեռնեք կցված led_msg.tar.gz ֆայլը Apache- ի արմատին կամ ենթատիրակին: Gzip'd tar ֆայլը հեռացնելու համար գործարկեք.
tar -xzvf led_msg.tar.gz
Սա ստեղծում է հետևյալ ֆայլերը.
msg.py (հիմնական ծրագիր)
templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150-j.webp
Ընտրովի, տեղադրեք bootstrap css/js շրջանակը ստատիկ գրացուցակի տակ:
Մուտքագրեք msg.py- ն ձեր դիտարկիչի համար և համոզվեք, որ վեբ էջը հայտնվում է: Դեռ հաղորդագրություն մի ուղարկեք !!!
Մինչ հաղորդագրությունները ներկայացնելը, ZeroMQ սերվերը պետք է սկսել ընդունել կայքի հաճախորդի հաղորդագրությունները և դրանք ցուցադրել LED մատրիցով: Ոչինչ չի ցուցադրվի էկրանին, եթե ZeroMQ սերվերը չի աշխատում:
Ներբեռնեք կցված max7219_server.py ծածկագիրը ձեր տնային գրացուցակում, այլ ոչ թե Apache- ի արմատային դիրքում, որտեղ այն կարող է կատարվել վեբ օգտագործողների կողմից: Գործարկեք այն որպես արմատ.
sudo python max7219_server.py
Այժմ ZeroMQ սերվերը պատրաստ է հաղորդագրություններ ստանալ վեբ էջից: Մուտքագրեք և ներկայացրեք մի պարզ հաղորդագրություն վեբ էջից: Եթե ամեն ինչ ճիշտ է կազմված, ապա այդ հաղորդագրությունը կտեսնեք ZeroMQ սերվերի էկրանին, ինչպես նաև LED մատրիցին:
Եթե ցանկանում եք անջատել սերվերը, պարզապես կատարեք Control-C ՝ սերվերի էկրանից դուրս գալու համար:
Վերջ Հուսով եմ, որ դուք նույնպես կվայելեք այս նախագիծը, ինչպես և ես:
Ընդլայնումը, որը կարող եք կատարել, սերվերի և հաճախորդների միջև ZeroMQ հաղորդակցությունն ասինխրոն դարձնելն է, որպեսզի վեբ էջը չսպասի մինչ այլ հաղորդագրությունների ցուցադրումը: Բացի այդ, դուք կարող եք կցել լրացուցիչ LED մատրիցա կասկադի ռեժիմում: Ես դա թողնում եմ ձեզ:
Խորհուրդ ենք տալիս:
LED շերտի հաղորդագրությունների տախտակ `3 քայլ

LED Strip Հաղորդագրությունների տախտակ. Այս հրահանգը կուղեկցի ձեզ անհատական հասցեավորվող NeoPixel LED շերտերից հաղորդագրությունների տախտակ ստեղծելու գործընթացին: Այս նախագիծը oshոշ Լևինի կողմից պատրաստված նշանի հարմարեցված տարբերակն է, որը կարելի է գտնել https://github.com/bigjo
Ինչպես պատրաստել հաղորդագրությունների տուփ Windows- ում ՝ 4 քայլ

Ինչպես պատրաստել հաղորդագրությունների տուփ Windows- ում. Ես սովորեցի, թե ինչպես դա անել մի քանի տարի առաջ և մտածեցի, որ կարող եմ ցույց տալ ձեզ: Այն տևում է ընդամենը 5 րոպե և իսկապես զվարճալի է դա անել
Ինչպես կատարել հաղորդագրությունների տախտակի կայք ՝ օգտագործելով PHP և MYSQL: 5 քայլ

Ինչպես պատրաստել հաղորդագրությունների տախտակ ՝ օգտագործելով PHP և MYSQL: Եթե դուք վեբ զարգացման նորեկ եք, մի անհանգստացեք, մանրամասն բացատրություններ և անալոգիաներ կլինեն, որպեսզի ավելի լավ հասկանաք հասկացությունները: Գորգ
Տեքստային հաղորդագրությունների հաշվիչ `6 քայլ

Տեքստային հաղորդագրությունների հաշվիչ. Այժմ ապրանք: http://www.rubydevices.com.au/productSelect/RubyCalculator Էլեկտրատեխնիկայի մագիստրոսի կոչում ավարտելը մի փոքր ծանր աշխատանք տևեց: Դա երկար ճանապարհ էր, որը տևեց հինգ տարի, որից ես լիովին վայելեցի: 2015 -ի վերջին ավարտեցի համալսարանը
LED հաղորդագրությունների համակարգ Strida ծալովի հեծանիվի անիվի վրա `7 քայլ

LED հաղորդագրությունների համակարգ Strida ծալովի հեծանիվի անիվի վրա. Այն բանից հետո, երբ ես գնեցի իմ strida ծալովի հեծանիվը, առաջին բաներից մեկը, որ ես արեցի, ստուգել structa.com- ին strida- ի հետ կապված ցանկացած նախագծի համար: Եվ բավականին ապշած ՝ տեսնելով, որ չկա: Այսպիսով, ես պլանավորել եմ պատրաստել մի ուսանելի, որը կարող է