Բովանդակություն:

Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi: 6 քայլ
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi: 6 քայլ

Video: Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi: 6 քայլ

Video: Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi: 6 քայլ
Video: Ձեր Raspberry Pi Pico-ն վերածելով Mitsubishi FX1N PLC-ի 2024, Հուլիսի
Anonim
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi
Ինչպես վերահսկել վարդակները ՝ օգտագործելով Raspberry Pi

Այս Ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես ստեղծել վեբ ինտերֆեյս ՝ ձեր տանը վարդակներ վերահսկելու համար ՝ օգտագործելով Raspberry Pi: Ես որոշեցի գրել այս նախագիծը, երբ տեսա «Սենսորներ» մրցույթը, և քանի որ այս նախագիծը ներառում է սենսորի օգտագործումը `ձեր գնած վարդակների հետ տրամադրված հեռակառավարման վահանակի կոդերը կարդալու համար, ես կարծում էի, որ այս նախագիծը կատարյալ կլինի:

Ես կաշխատեմ, որ դա հնարավորինս բարձր մակարդակի վրա պահեմ և ծածկագիր տրամադրեմ, որպեսզի այս ամենը աշխատի: Ձեզանից յուրաքանչյուրի համար կապիկ կոդեր կան, ազատ զգացեք կոդի մեջ փորփրել և մեկնաբանություններում ինձ մանրազնին ուսումնասիրել: Ես միշտ ձգտում եմ կատարելագործվել: Դրանում շատ բան է կատարվում, այնպես որ, եթե որևէ քայլի վերաբերյալ հարցեր ունեք, խնդրում ենք թողնել մեկնաբանություն, որպեսզի ես կարողանամ թարմացնել Instructable- ը անհրաժեշտ մանրամասներով:

Այս նախագիծը օգտագործում է ռադիոհաճախականության վերահսկվող վարդակներ 433 ՄՀց հաճախականությամբ `զուգորդված ձեր ազնվամորու pi- ին միացված ՌԴ հաղորդիչի հետ: Ելքներն ունեն հեռակառավարման վահանակներ, որոնք կարող են միացնել/անջատել վարդակները, բայց դա զվարճալի չէ: Փոխարենը մենք կօգտագործենք ազնվամորու pi- ով աշխատող վեբ սերվեր, որը թույլ է տալիս ցանցին միացած բոլորին միացնել կամ անջատել որոշակի վարդակներ: Այս նախագծի վեբ ճակատը իդեալական է, քանի որ ձեր ցանցի ցանկացած վեբ միացված սարք կարող է օգտագործվել որպես հեռակառավարիչ:

Սա այն նախագիծն է, որի մասին ես երազել եմ տարիներ շարունակ ավարտել, և չնայած դեռ ավելացումների տեղ կա, բայց հետևյալ կերպ նկարագրված նախագիծը ֆունկցիոնալ համակարգ է:

Պարագաներ

  • Raspberry Pi (ես օգտագործել եմ RPi 3 մոդել B+)
  • 433 ՄՀց հաղորդիչ և ընդունիչ (ես օգտագործել եմ սա)
  • 433 ՄՀց վարդակներ (ես դա օգտագործել եմ)
  • Կանանցից թռչկոտիչներ (ես գնել եմ այս փունջը)
  • Համակարգիչ կամ ձեռքի սարք, որը կարող է մուտք գործել ինտերնետ

Քայլ 1: Կարգավորեք ձեր ազնվամորի Pi- ն

Ստեղծեք ձեր ազնվամորի Pi- ն
Ստեղծեք ձեր ազնվամորի Pi- ն

Սկսեք ՝ տեղադրելով Raspbian- ի վերջին տարբերակը ձեր նոր Raspberry Pi- ի վրա: Եթե նախատեսում եք օգտագործել գոյություն ունեցող Pi- ն (ինչը կարող եք լիովին անել), այն ամենը, ինչ ձեզ հարկավոր է, համոզվելն է, որ ձեր Pi- ում Python 3 ունեք, քանի որ դա այն է, ինչում գրված է իմ տրամադրած բոլոր կոդերը: Դա անելու համար, տիպ

պիթոն 3

հրամանի տողում: Եթե ունեք Python 3, ապա պետք է տեսնեք, որ python տերմինալը բաց է: Դուրս եկեք տերմինալից ՝ փակելով կամ մուտքագրելով

ելք ()

Սա հաստատելուց հետո դուք պետք է տեղադրեք կոլբա ձեր Pi- ի վրա: Flask- ը թույլ է տալիս մեզ ստեղծել մեր վեբ սերվերը: Pi հրամանի տողից մուտքագրեք

sudo pip3 տեղադրեք շիշ

Այն դեպքում, երբ ձեր Pi- ի վրա տեղադրված չէ pip, ապա ձեզ հարկավոր է մուտքագրել

sudo apt-get տեղադրել python3-pip

Ես նախընտրում եմ զարգանալ իմ Raspberry Pi- ի վրա `իմ աշխատասեղանի համակարգչի հարմարավետությունից: Եթե դուք նույնպես նախընտրում եք այս տարբերակը, ապա պետք է ինչ -որ միջավայր տեղադրել SSH- ի համար Pi- ում: PuTTY- ը կաշխատի, բայց ես նախընտրում եմ ունենալ GUI (գրաֆիկական ինտերֆեյս), ինչը թվում է, թե դուք ուղղակիորեն Pi- ի վրա եք: GUI տարբերակի համար դուք կցանկանաք տեղադրել VNC Viewer այն համակարգչին, որի վրա նախատեսում եք աշխատել: Կան նաև կարգավորումներ, որոնք դուք պետք է կարգավորեք ձեր Pi- ով: Կարգավորումների փոփոխման հրահանգները կարող եք գտնել այստեղ:

Քայլ 2: Միացրեք ձեր սարքավորումները

Միացնել ձեր սարքավորումները
Միացնել ձեր սարքավորումները

Այս պահին ժամանակն է կատարել բոլոր այն ֆիզիկական կապերը, որոնք դուք պետք է անեք այս նախագծի աղբյուրի կոդի ստեղծման նախապատրաստման համար: Դուք կապելու եք հաղորդիչի և ստացողի կապում ձեր Pi- ի GPIO կապումներին: Դուք կցանկանաք կրոնականորեն վկայակոչել GPIO կապումների pinout դիագրամը: Դա անելու համար բացեք ձեր Pi- ի տերմինալը և մուտքագրեք

քորոց

Ստորև բերված են իմ կապերը: Դուք կարող եք ունենալ այլ կոնֆիգուրացիա, եթե ձեռք եք բերել այլ հաղորդիչ/ընդունիչ սարքավորում, քան ես ներկայացրել եմ ներածությունում: Եթե որոշեք ընտրել տարբեր կապի համարներ, քան ես ցույց եմ տալիս ստորև, մի՛ վախեցեք: Երբ ներբեռնում եք աղբյուրի կոդը, պարզապես անհրաժեշտության դեպքում փոփոխեք PIN համարները RxTx.py ֆայլում:

Ստացող (մեծ չիպ):

  • GND - designանկացած նշանակված գրունտի քորոց
  • ՏՎՅԱԼՆԵՐ - PIN 11
  • DER - Միացված չէ
  • +5V - designանկացած նշանակված +5V քորոց
  • ------
  • +5V - designանկացած նշանակված +5V քորոց
  • GND - designանկացած նշանակված գրունտի քորոց
  • GND - Միացված չէ
  • ANT - Միացված չէ

Նշում. Դուք կարող եք անհրաժեշտության դեպքում միացնել ալեհավաք, բայց ես գտա, որ դրա կարիքը չունեմ: Այս փոքրիկ չիպը զարմանալիորեն զգայուն էր և հավատարմորեն հայտնաբերում էր ազդանշաններ, որոնք գտնվում էին նստած տեղից և առնվազն երկու պատի միջով:

Հաղորդիչ:

  • P - 3.3V քորոց
  • DA - կապ 7
  • G - designանկացած նշանակված գրունտի քորոց
  • AN - միացված չէ

Նշում. Կրկին, անհրաժեշտության դեպքում, կարող եք միացնել ալեհավաք հաղորդիչին, բայց ես գտա, որ դրա կարիքը չունեմ: Միջակայքը ավելի քան բավարար է (50+ոտնաչափ):

Քայլ 3: Ավելացնել կոդը:

Սա այն հատվածն է, որի վրա ես ծախսել եմ իմ ժամանակի մեծ մասը, երբ զարգացնում էի այս նախագիծը: Ես փորձում եմ հնարավորինս մեկնաբանել, բայց ես, ամենայն հավանականությամբ, թողել եմ բացեր, որոնք կարող են բացատրություն պահանջել, եթե ձեզանից որևէ մեկը ժամանակ է ծախսում հասկանալու համար: Եթե դա ձեզ հետ պատահի, խնդրում ենք թողնել մեկնաբանություն:

Այստեղ ներգրավված լեզուներն են.

  • Պիթոն
  • CSS
  • Javascript
  • HTML
  • JQuery/Այաքս

Python- ը օգտագործվում է flask սերվերում և

RxTx.py

ֆայլ, որը վարում է ծածկագրի փոխանցումը և ստացումը: CSS- ն օգտագործվում է վեբ էջի ոճը ստեղծելու համար: Ո՞վ է ուզում ձանձրալի կայք: Javascript- ը օգտագործվում է իրադարձությունների ցանկացած մշակման մեջ (կոճակ սեղմել և այլն): HTML- ը վեբ էջի հիմնական շինանյութն է: Ի վերջո, JQuery/Ajax- ն օգտագործվում է վեբ էջի և Python- ի հենակետի միջև հաղորդակցվելու համար:

Եթե այս բոլոր լեզուները վախեցնող են թվում, մի անհանգստացեք: Ես միայն գիտեի, որ Python- ը գնում է այս նախագծի մեջ, որը, ըստ երևույթին, այն լեզուն էր, որն ամենաքիչն էր պարունակում կոդավորում: Եթե չես ուզում, պետք չէ՛:

Ստորև բերված է գրացուցակի կառուցվածքը, որը ես ընտրեցի օգտագործել այս վեբ էջի համար: Այս քայլին կցված սեղմված թղթապանակը պարունակում է հետևյալ կառուցվածքի բոլոր աղբյուրի ծածկագիրը:

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> վեբ էջ-ստատիկ ----- favicon.ico ----- style.css-- կաղապարներ ----- index.html ----- գրաֆիկ. html-- app.py-- data.file

Դուք կարող եք տեղադրել Outlet Switch թղթապանակը ձեր Pi- ի ցանկացած վայրում: Երբ պատրաստ լինեք գործարկել ձեր վեբ սերվերը, բացեք ձեր Pi- ի տերմինալը և

CD

(փոխել գրացուցակը) դեպի վեբ էջի գրացուցակ: Այնուհետեւ մուտքագրեք

python3 app.py

տերմինալի մեջ: Եթե որևէ սխալ չլիներ, պետք է լավ գնալ:

Պ. Ս. Խնդրում ենք համբերատար լինել, եթե բախվեք որևէ սխալի: Ես փորձեցի բոլորին ճզմել նախքան վերբեռնելը:

Քայլ 4: Նկարահանեք այն:

Տվեք այն կրակոց
Տվեք այն կրակոց

Այժմ, երբ գործարկում եք կոդը, ձեր մատների վրա կարող եք զգալ վեբ ինտերֆեյսը: Համակարգի վերահսկումը շատ պարզ է.

  • Վեբ ինտերֆեյսի միջոցով կարող եք ավելացնել այնքան վարդակներ, որքան ցանկանում եք:
  • Նջումը նույնքան պարզ է, որքան սեղմելով խմբագրել, ընտրել վարդակներ, որոնք ցանկանում եք ջնջել և սեղմել ջնջել:

YouTube- ի վերոնշյալ տեսանյութը ցույց է տալիս, թե ինչպես իրականում շարունակել ձեր ցուցակին նոր վարդակ ավելացնելը: Ամփոփելու համար, թե ինչ է այն ցույց տալիս.

  • Նախ վերնագրի դաշտում մուտքագրեք վարդակի վերնագիրը
  • Կտտացրեք կամ հպեք Վերնագրի դաշտից դուրս ՝ ծրագրին թույլ տալու համար ստուգել, որ վերնագիրն արդեն գոյություն չունի: Դուք չեք կարող նույն անունով կոչումներ ունենալ
  • Հաստատվելուց հետո ON կոդն ու OFF ծածկագիրը կոճակները միացված են:
  • Սեղմեք և պահեք ձեր տրամադրած հեռակառավարման վահանակի ON կոճակը և արագ սեղմեք ինտերֆեյսի ON կոդի կոճակը: Պահեք հեռակառավարման վահանակի կոճակը, մինչև ձեր երկուական ծածկագիրը չլրացնի հարակից դաշտը:
  • Կրկնեք OFF ծածկագրի նախորդ քայլը:
  • Կտտացրեք OK, և այժմ պատրաստ եք միացնել այս վարդակից:

Ինչպես նշվեց ներածության մեջ, նախագիծը 100% -ով ամբողջական չէ իմ սեփական օգտագործման համար: Ամենամեծ բաղադրիչը, որը դեռ պետք է ավարտեմ և իրագործեմ, պլանավորման հնարավորությունն է: Ես նախատեսում եմ թույլ տալ օգտվողին կառուցել ժամանակացույց, որը թույլ կտա վարդակները ինքնաբերաբար միացնել և անջատել նշված ժամերին:

Քայլ 5. Կարգաբերում և RxTx.py ֆայլ

Սխալների շտկում և RxTx.py ֆայլ
Սխալների շտկում և RxTx.py ֆայլ
Սխալների շտկում և RxTx.py ֆայլ
Սխալների շտկում և RxTx.py ֆայլ
Վրիպազերծում և RxTx.py ֆայլ
Վրիպազերծում և RxTx.py ֆայլ
Սխալների շտկում և RxTx.py ֆայլ
Սխալների շտկում և RxTx.py ֆայլ

Համակարգի միակ հայտնի սահմանափակումն այն է, որ անհամատեղելիության հնարավորություն կա տարբեր վաճառողների վաճառակետերի միջև: Միացված և անջատված կոդային հաղորդագրություններն իմ համակարգի համար կազմում են 25 բիթ, և եթե համակարգն ունի հաղորդագրության այլ երկարություն, այն անմիջապես համատեղելի չէ այս նախագծի հետ: Եթե դուք ճշգրիտ հետևում եք հրահանգներին և դեռ խնդիրներ ունեք դրա գործարկման հետ, հետևյալը կլինի խնդիրը կարգաբերելու լավագույն միջոցը:

  • Համոզվեք, որ matplotlib- ը տեղադրված է ձեր Pi- ում: Դուք կարող եք դա անել ՝ Pi- ի տերմինալում մուտքագրելով հետևյալը.

    • պիթոն 3

    • ներմուծել matplotlib

    • Եթե սխալ եք ստանում, ապա ձեզ հարկավոր է տեղադրել matplotlib:
    • Դուրս եկեք python shell- ից ՝ օգտագործելով

      ելք ()

  • Matplotlib- ը տեղադրելու համար մուտքագրեք

    sudo pip3 տեղադրել matplotlib

  • տերմինալի մեջ
  • Ներբեռնեք կից test.py ֆայլը և տեղադրեք այն RxTx.py ֆայլի կողքին ձեր Pi- ում
  • Բացեք python տերմինալը և գրացուցակը փոխեք comm թղթապանակի մեջ:
  • Տիպ

    python3 test.py

  • Երբ գրված է «** Սկսվել է ձայնագրումը **», սեղմեք և պահեք ձեր ON կամ OFF կոճակը հեռակառավարման վահանակում մինչև ձայնագրության ավարտը:
  • Theրագիրը կբեռնի matplotlib գործիչ, որը նման է վերը նշվածին: Մեծացրեք, մինչև չտեսնեք կրկնվող ազդանշանը, ինչպես ցույց է տրված վերևի լուսանկարներում:
  • Յուրաքանչյուր հաղորդագրության համար հաշվարկեք ընդհանուր տրամաբանական 1 -ը և տրամաբանական 0 -ը, որտեղ հաղորդագրությունը վերը նշված կրկնվող ազդանշանի մեկ կրկնությունն է: Եթե ընդհանուր թիվը 25 է, ապա RxTx.py ֆայլը, ամենայն հավանականությամբ, մեղավոր չէ: Եթե 25-ից տարբեր բանի հանդիպեք, համոզվեք, որ մեկնաբանեք ստորև, և ես կվերամշակեմ RxTx.py ֆայլը ՝ ավելի բաց լինելու համար (կամ ազատ զգացեք ձեր ուժերը դրանում):

Իսկ եթե չտեսնե՞մ կրկնվող ազդանշան:

Եթե չես տեսնում կրկնվող ազդանշան, երկու բաներից մեկը սխալ է: Նախ, ստուգեք, որ ձեր ցատկող մետաղալարերի բոլոր կապերը պատշաճ կերպով կատարված են: Եթե ամեն ինչ լավ է թվում, կարող եք ունենալ վատ ընդունիչ: Դուք գնեցի՞ք իմ առաջարկածը: Երբ ես գնեցի իմ առաջին ընդունիչ չիպը, այն շատ աղմկոտ էր: Այնքան աղմկոտ, ես չկարողացա հստակ ազդանշան ստանալ: Հետո ես վերադարձա այդ չիպը և վերցրի այն, որին կապեցի, և այն ավելի լավ չէր կարող աշխատել:

Քայլ 6: Վայելեք:

Դուք գիտեք, որ հնարավորություն ունեք միացնել/անջատել վարդակներ ձեր հեռախոսից, պլանշետից, համակարգչից կամ վեբ միացված այլ սարքից: Թույլ տվեք իմանալ, թե ինչ եք կարծում մեկնաբանություններում:

Խորհուրդ ենք տալիս: