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

Raspberry Pi HomeLab և ով է տանը. 11 քայլ
Raspberry Pi HomeLab և ով է տանը. 11 քայլ

Video: Raspberry Pi HomeLab և ով է տանը. 11 քայլ

Video: Raspberry Pi HomeLab և ով է տանը. 11 քայլ
Video: OpenSSH for Windows: The IT Admin's Key to Remote Management 2024, Հուլիսի
Anonim
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը
Raspberry Pi HomeLab և ով է տանը

Սա իմ առաջին անխորտակելի է, բայց այս ուսանելին ունի երկու փուլ:

փուլ առաջին. ստեղծում է պի ՝ որպես տնային լաբորատորիա աշխատելու IOT աշխատանքի համար ՝ ուսանող ծրագրավորողների թիմի համար:

փուլ երկրորդ. համակարգն օգտագործում է զարգացման համար ՝ ցուցադրելով մեր «Ով տուն է» նախագիծը:

մինչև այս վերջը դուք կունենաք հեռակա հասանելի անգլուխ pi, որը մարդկանց կողմից կարող է օգտագործվել հեռահար ծրագրավորման և IOT սարքերի վրա աշխատելու համար:

Այժմ ես զգուշացնում եմ, որ բացելով ձեր pi- ն հանրության համար ՝ առանց համապատասխան անվտանգության, դուք ինքներդ ձեզ բացում եք ձեր տան ցանցի վրա հարձակման ենթարկվելու վտանգի առջև:

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

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

ով է տունը նախագիծը կատարում է հետևյալը. գործարկում է պիթոնի սցենար, որը ստուգում է ձեր ցանցին միացված սարքերի Mac հասցեները: դրա համար օգտագործում է Nmap- ը: այն հասցեները հասցեագրում է հասցեների ցանկին, և եթե նշված հասցեն առկա է, սերիական հաղորդակցության միջոցով նշան է ուղարկում arduino- ին: arduino- ն վերահսկում է LED շերտը, և երբ այն ստանում է կրիչ, այն ունի համապատասխան գույն այդ սարքի համար և այն լուսավորում է այդ անձի LED- ները `դրանց առկայության հիման վրա:

մեր ստորաբաժանումները ենթակայ են

sites.google.com/view/valencia-robotics

sites.google.com/view/valencia-robotics/cl…

մեր ակումբների կայքը

sites.google.com/view/valenciatechclub

Python Script- ը տրամադրեց ՝ onatոնաթան Դե Լա Կրուզը

www.linkedin.com/in/jonathandelacruz96/

Arduino Script- ը և տան լաբորատորիայի միջով անցնելը և կարգավորումը կատարել է ՝ Dylan Poll- ը

www.linkedin.com/in/dylan-poll-4a324a1a2/

Ես Դիլան Փոլն եմ, ես մեր քոլեջի տեխնոլոգիական ակումբի ներկայիս նախագահն եմ և նաև ներդրված համակարգերի առաջատարն եմ:

Պարագաներ

Ա պի

Արդուինո

Հացաթուղթ

jumper լարերը

Վեբ -տեսախցիկ

անհատական հասցեավորվող RGB LED ժապավեն

էներգիայի մատակարարում ձեր pi- ի համար, ստեղնաշար `մկնիկ, համակարգիչ` նախնական կարգավորումը կատարելու համար:

Քայլ 1: Ներբեռնեք և տեղադրեք սկզբնական տեղադրման ֆայլերը

ներբեռնեք և տեղադրեք ծեփամածիկ (պատուհաններ)

www.putty.org

ներբեռնեք rufus- ը և տեղադրեք

rufus.ie

ներբեռնեք raspbian- ի ամբողջական buster և առաջարկվող ծրագրակազմ (.zip)

www.raspberrypi.org/downloads/raspbian/

հանեք բովանդակությունը.zip- ում, սա կլինի ձեր [պատկերի ֆայլը]:

վերցրեք միկրո SD քարտ և օգտագործեք նավահանգիստ կամ միկրոսդ USB սարք և միացրեք այն ձեր համակարգչի ձևաչափին ՝ ձեր SD քարտը

Քայլ 2. մաս երկրորդ. Տեղադրեք Raspbian- ը ՝ օգտագործելով Rufus- ը

Մաս երկրորդ. Տեղադրեք Raspbian- ը ՝ օգտագործելով Rufus- ը
Մաս երկրորդ. Տեղադրեք Raspbian- ը ՝ օգտագործելով Rufus- ը

run rufus ընտրեք ձեր sd քարտը առաջին դաշտում ընտրեք raspbian պատկերի ֆայլը.iso/.img ընտրեք սկիզբը և սպասեք, որ այն ավարտվի:

Քայլ 3. մաս երրորդ. Միացում Pi- ին

Դա անելուց հետո հանեք sd քարտը, դրեք այն SD քարտի անցքի մեջ pi- ի վրա, այն առաջին հերթին դեպի pi- ի HDMI լարը «ներքևի» վարդակից, քան ստեղնաշարն ու մկնիկը և վերջին հոսանքի մալուխը: եթե նախ միացնեք հոսանքը, դա կարող է չգրանցել ձեր մոնիտորը/հեռուստացույցը:

Քայլ 4: Մաս չորրորդ. Կարգավորեք ձեր հաշիվը

մուտք գործեք pi! կատարեք առաջին գործարկումը: մի բաց թողեք այն: ընտրեք ԱՄՆ անգլերեն ստեղնաշար, այլապես ձեր @ խորհրդանիշը չեք գտնի … եթե չեք @ ձեր խորհրդանիշն այնտեղ է, որտեղ ձեր "-ն է: մուտք գործեք ձեր WiFi- ով pi- ով դեռ մի թարմացեք: Ես պատճառ ունեմ: հարվածեք" windows ստեղնաշարի ստեղնին "և գնացեք նախապատվություններ, գնացեք pi կազմաձևում: անցեք ինտերֆեյսերի ներդիրին:

միացնել VNC… և մնացած բոլորը մի վերագործարկեք:

Քայլ 5: Հինգերորդ մաս. Ձեր Pi- ի ստեղծումը որպես անգլուխ (երբևէ ամենալավ բանը)

Մաս հինգերորդ. Ձեր Pi- ի ստեղծումը որպես անգլուխ (երբևէ ամենալավ բանը)
Մաս հինգերորդ. Ձեր Pi- ի ստեղծումը որպես անգլուխ (երբևէ ամենալավ բանը)

նայեք ձեր էկրանի վերին աջ կողմին: կտեսնեք VNC- ի սև և կապույտ պատկերանշանը: բացիր դա: հարվածել մուտք գործել, կատարել և հաշիվ: ավելացնել pi- ն: ձեր աշխատասեղանի/նոութբուքի միջոցով բացեք դիտարկիչը google VNC դիտիչի ներբեռնման տեղադրում: մուտք գործեք ձեր հաշիվ: մուտքագրեք ձեր էլ. փոստը և ինքներդ ձեզ լիազորեք: միացեք ձեր pi- ին (մուտքագրեք pi- ի գաղտնաբառը երկրորդ մուտքի ընտրացանկում), եթե այն աշխատում է, անջատեք ձեր pi- ն: անջատեք ձեր pi- ն և ամեն ինչ: դրեք pi- ն ձեր սենյակի անկյունում և դրան միացրեք միայն հոսանքի մալուխը: կարող եք միանալ pi- ին ՝ օգտագործելով VNC դիտիչ: դուք այժմ ունեք «անգլուխ» պի: կարող եք նաև դրան SSH տալ (տե՛ս SSH տեղեկատվությունը զովացուցիչ նյութերի բաժնում)

Քայլ 6. մաս վեցերորդ. Pi- ի վրա զարգացնելու համար բոլոր հիմնական գործիքների տեղադրում

Մաս վեցերորդ. Pi- ի վրա զարգացնելու համար բոլոր հիմնական գործիքների տեղադրում
Մաս վեցերորդ. Pi- ի վրա զարգացնելու համար բոլոր հիմնական գործիքների տեղադրում

օգտագործելով SSH կամ VNC (կամ եթե որոշեցիք հոյակապ չլինել և կարգավորել այն առանց գլխի) կատարեք հետևյալը. բաց տերմինալ (այս հաջորդ մասը կարող է որոշ ժամանակ տևել …

sudo apt-get թարմացում; sudo apt-get upgrade տեղադրելով ffmpeg {sudo apt-get տեղադրել ffmpeg

Քայլ 7: մաս յոթերորդ. Adafruit WebIDE- ի տեղադրում

Մաս յոթերորդ. Adafruit WebIDE- ի տեղադրում
Մաս յոթերորդ. Adafruit WebIDE- ի տեղադրում

ոլորել https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh բացեք զննարկիչը ձեր հիմնական աշխատասեղանին: նշեք ձեր դիտարկիչի URL հասցեն դեպի «https://***.*.*.***: 8080», փոխարինեք «*» - ը ձեր Pi- ի տեղական IP հասցեով: կազմեք օգտվողի անուն և փոխանցեք: Դուք այժմ ունեք adafruit webIDE կարգավորումը:

Քայլ 8. մաս ութերորդ. Թարմացրեք Node-red և Node.js

update-nodejs-and-nodered հաջորդ կոդը կդարձնի nodered գործարկումը գործարկման ժամանակ, ինչպես adafruit webIDE- ը, սա կարևոր է, եթե ցանկանում եք զարգանալ այս բաների վրա: sudo systemctl միացնել nodered.service վերագործարկեք Pi- ը

Քայլ 9: մաս ինը. Arduino IDE- ի տեղադրում

Մաս ինը. Arduino IDE- ի տեղադրում
Մաս ինը. Arduino IDE- ի տեղադրում

Դուք կարող եք դա անել հրամանի տողի միջոցով, բայց… դա ամբողջական տարբերակ չի լինի.. այսինքն ՝ չեք կարող օգտագործել գրադարանի ներմուծման/որոնման գործիքը, ամբողջական տարբերակը տեղադրելու համար անհրաժեշտ է գնալ arduino կայք և ներբեռնել ձեր pi մոդելի տարբերակը: դա կլինի ARM32bit- ը pi3- ի համար, ստացեք կայուն թողարկում: բաց տերմինալ: (*-երը փոխարինեք թողարկման տեղեկատվությամբ) գործարկեք այս հրամանները:

www.arduino.cc/hy/Main/Software

cd Ներլցումներ/tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.*/opt sudo /opt/arduino-1.*.*/install.sh

Քայլ 10: Մաս տասը. Ffmpeg

Մաս տասը. Ffmpeg
Մաս տասը. Ffmpeg

1x վեբ -տեսախցիկ logitech

(հաջորդ տարրերը չեն ներառում այն, ինչ ձեզ հարկավոր է 24/7 հոսք գործարկելու համար) 1x տախտակ երկրորդ ազնվամորի pi մոդել 3 բ (sd քարտով) առանձին հասցեավորվող LED շերտով: arduino nano jumper մետաղալարը միացնում է VNC դիտիչը երկու Pi- ներում

pi նախապատվություններ, միացրեք vnc հաշիվ ստեղծեք VNC դիտողի հետ ԿԱՐԵՎՈՐ. pi- ում, որը նախատեսում եք օգտագործել որպես հանրային աշխատանքային նստարան, անցեք vnc սերվերի կարգավորումներ, ընտրանքներ, փորձագետների ներդիր և պարապ ժամանակ տրամադրեք. 0 վայրկյան, այն փակված է դիտողը, եթե անգործուն մնա մեկ ժամ անց, դա անելը կդադարեցնի ձեր պատուհանի փակումը միջին հոսքի տեղադրում vnc դիտիչ տերմինալում streamer pi- ում:

sudo apt-get տեղադրել vnc-java y

միացրեք ձեր տեսախցիկը և տեղադրեք ձեր տեսախցիկը:

sudo apt տեղադրել fswebcam

տեղադրել ffmpeg sudo apt-get տեղադրել ffmpeg y

այստեղ է, որ ձեր սեփական ընտրությունները գալիս են խաղալու: տերմինալում գործարկեք այս սցենարը ՝ ձեր վիդեոխցիկի համար ձեր streamer pi- ի աշխատասեղանին պատուհան բացելու համար:

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay- ը թույլ կտա ձեզ դա տեսնել pi -cam անունով պատուհանում, որի տեսախցիկը ձեզ ցույց է տալիս dev/video0 վայրում և դրա սկզբնական չափը 1920x1080 է: Ես միայն ուզում եմ տեսնել բերքը = լայնությունը. Բարձրությունը. Topleft_X: topleft_Y և 20 -ի շրջանակը բավական է ինձ համար: հաջորդ կոդը կհեռարձակվի ՝ թրթռալու համար:

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -vf scale = 1280x720 -c: v h264 -g 24 -b: v 2M -preset ultrafast -c: aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

-f x11grab- ը օգտագործվում է ձեր էկրանը գրավելու համար: իմ էկրանի թույլատրելիությունը սահմանվել է 1280x1024: Ես ուզում եմ ցուցադրել այն 1280x720 այնքան -vf վիդեո ձևաչափով:

2 մ = 2 մգ բեռնման արագություն: -f flv- ն պետք է ձևակերպի տեսանյութը.flv- ի, այնպես որ twitch- ը կարող է օգտագործել այն:

Այժմ դուք կարող եք ձեր թիմին տալ ձեր VNC հավատարմագրերը Pi workbench- ին և նրանք կարող են հեռակա հեռարձակմամբ տեսնել led շերտի փոփոխությունները: Աղաղակեք այս տղային ~ նրա տեսահոլովակն ինձ օգնեց ուղու վրա կանգնել, ես դեռ պետք է հասկանայի, թե ինչպես հայտնվել իմ տեսախցիկում, չնայած… և իմանալ ffmpeg X/ - ի մասին:

Արթուր Ռիդեր https://www.youtube.com/embed/kb_5_9GkwZc ՆՇՈՄ. Այս ճանապարհը շարունակելու հնարավոր ուղիներից մեկը կլինի օգտագործել այս մեխանիկը ՝ այն հոսելու համար, և օգտագործել մեկ այլ pi և քրոմի ընդլայնման թեթև հոսք ՝ այդ հոսքը բերելու և վեբ -տեսախցիկը այդ կամ որևէ այլ կերպ կերակրելու համար: https://www.youtube.com/embed/kb_5_9GkwZc ՆԱԵՎ. Եթե ցանկանում եք ավելացնել աուդիո, ինչպես երևում է youtube- ի տեսանյութում, կարող եք օգտագործել այս տողը, ես չէի ուզում, որ իմ տունը ձայնագրվի և ուղարկված է twitch, սա նստած է իմ սենյակում, այնպես որ ես ոչ մի ձայն չեմ հեռարձակում, դա նաև օգնում է նվազեցնել Pi- ի բեռը:

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i default -af acompressor = threshold = 0.089: ratio = 9: attack = 200: release = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -preset ultrafast -c: aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

Քայլ 11:

Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր
Պատկեր

այժմ մինչև վերջնական փուլ ՝ իրականացնելով arduino և pi սերիական հաղորդակցություններ python- ի հետ:

--- ով է տունը նախագիծը mac հասցեները, և եթե համընկնում կա, այդ մարդը տանը է: mac հասցեները հայտնաբերվել են երթուղիչի վրա հետաքննական աշխատանք կատարելով, սակայն nmap գործիքը ձեզ տալիս է տեղեկություններ ծածկագրով ստեղծված տեքստային ֆայլում գտնվող սարքերի մասին: եթե օգտագործողը ներկա է, այն arduino- ին է ուղարկում բնույթ, և arduino- ն սպասում է մինչև ստուգման ցուցակի ավարտը և լուսավորում է համապատասխան սարքերի mac հասցեների համար նշված պրոֆիլներին համապատասխանող LED- ները: Դուք կարող եք այլ բաներ ավելացնել, օրինակ ՝ անհամաձայնության բոտերին հրամաններ գործարկել այն մարդկանց վրա, ովքեր գալիս կամ գնում են այս նույն ծածկագրով ՝ օգտագործելով ենթամշակման օպերատորը ՝ ձեր python սցենարի տերմինալային հրամաններ կատարելու համար: Այսպիսով, նախ մենք տեղադրում ենք nmap sudo apt-get install nmap: հաջորդը դուք կցանկանաք ներբեռնել ֆայլերը մեր ակումբների Git-Hub- ում:

github.com/ValenciaRobotics/embeddedclub

python կոդի համար raspbian տեղադրումը գալիս է այս ծածկագրում օգտագործված ամեն ինչով, այնպես որ ձեզ լրացուցիչ տեղադրման կարիք չկա: մենք օգտագործել ենք import re, import subprocess, import time, import serial Կարևոր է նշել, որ python- ն օգտագործում է ներդիր կոդերի բլոկներն առանձնացնելու համար, ուստի տեղյակ եղեք, որ եթե որոշեք փոխել ծածկագրի գրման եղանակը:) py- ն գալիս է thonny ide և մի քանի այլ տարբերակներ, ես գտնում եմ, որ thonny- ում սցենարը գործելը իսկապես ուղիղ է, եթե կտտացնում եք ֆայլը և փորձում եք այն կատարել, առաջարկվում էր կամ ենթադրվում էր, որ thonny- ն այն է, ինչ ցանկանում էիք օգտագործել: նախքան ծրագիրը գործարկելը, ձեզ հարկավոր է խմբագրել հետևյալը. տող 14. * նշանները օգտագործվում են իմ սեփական երթուղղիչի մասին տեղեկությունները քողարկելու համար, դուք պետք է դրանք փոխարինեք ձեր տեղական ip- ով: դա նույնը կլինի, ինչ օգտագործում եք ձեր երթուղիչին միանալու համար: տողեր 28, 38, 48, 58. սրանք բոլորը օգտագործում են * խորհրդանիշը ՝ իմ ցանցից թվարկված սարքի mac հասցեները քողարկելու համար, կապերը հայտնաբերելու համար դրանք պետք է փոխեք ձեր սեփական ցանցի սարքերի mac հասցեների: ինչու mac հասցեներ քանի որ առանց ձեր սարքի տեղերը վերապահելու, նրանք անպայման կմնան նույնը, եթե ինչ -որ մեկը կեղծիք չի անում: այս ծածկագրի հետ կապված խնդիրներ, այն կբացահայտի միայն այն դեպքում, երբ կապն ակտիվորեն օգտագործում է ինտերնետը, ուստի այն կարող է չբացահայտվել ՝ չնայած օգտվողի առկայությանը: arduino կոդի մեջ կցանկանաք փոխել հետևյալը. նախ, դուք կցանկանաք գնալ գործիքների ներդիրին, ընտրել գրադարանների կառավարիչ և որոնել «fastLED» և տեղադրել գրադարանը «fastLED» - ի համար: Հաջորդը, ձեզ հարկավոր է բեռնել «ով է տանը».ino կոդը github էջից և փոխել հետևյալը, ինչպես ցանկանում եք: տող 86 ՝ փոխեք գույները ՝ հիմնվելով այն բանի վրա, ինչ ցանկանում եք, որ ձեր օգտվողները կցեն:)

// միացրեք այն, ինչ ձեզ հարկավոր է

եթե (d == 1) {leds [0] = 0xdd8bff; // մանուշակագույն լեդեր [1] = 0xdd8bff;}

if (l == 1) {leds [2] = CRGB:: Կանաչ; leds [3] = CRGB:: Կանաչ;}

if (k == 1) {leds [4] = CRGB:: Կարմիր; leds [5] = CRGB:: Կարմիր; }

if (j == 1) {leds [6] = CRGB:: Կապույտ; leds [7] = CRGB:: Կապույտ;}

FastLED.show (); ուշացում (30000); // Անջատիչի պատյանում 10 վայրկյան սպասելը կարճ բացատրությունն է, թե ինչպես ավելացնել ավելի շատ օգտվողներ

դատարկ շրջան () {

եթե (Serial.available ()> 0) {

Serial.println ();

անձ = Serial.read ();

ուշացում (1000);

անջատիչ (անձ) {

գործ 'D': d = 1;

անձ = 'F';

հաշվել = հաշվել+1;

ընդմիջում;

case'd ':

d = 0;

անձ = 'F';

հաշվել = հաշվել+1;

ընդմիջում;

մեծատառ D- ն Python սցենարից ստացված նիշն է, այնպես որ նա գիտի, որ օգտվողը ներկա է, քանի որ ստացված տառը D մեծատառ է, ուստի այն INTEGER d- ի արժեքը փոխում է 1 -ի, եթե այն փոքրատառ է, քան ինքը գիտի բացակայում են, ուստի INTEGER- ը սահմանվում է 0 -ի դեպքում: այս կոդը օգտագործում է «fastLED» գրադարանը, և դրա վերաբերյալ շատ փաստաթղթեր կան: նկատի ունեցեք, որ եթե փոխեք նիշերը, ավելացնեք նիշեր կամ հեռացնեք նիշերը, դուք ստիպված կլինեք փոխել python- ի սցենարը `դրանք փոխածները վերադարձնելու համար, դուք նույնպես պետք է փոխեք պայմանը դատարկ օղակում: if (count == 4) {holdup ();}} հաշվարկը պետք է արտացոլի այն սարքերի թիվը, որոնց «հետևում եք»: իմ դեպքում դա 4 է, այնպես որ այն սպասում է, մինչև 4 սարքեր հայտարարվեն որպես ներկա կամ բացակա, այնուհետև թարմացնի LED ժապավենը: պիթոնի ծածկագրում 31, 34, 41, 44, 51, 54, 61, 64 տողերում կա հետևյալ տողը ` ուղարկելով arduino- ին: փոխեք սա, եթե arduino- ում փոխեք կոդը կամ հակառակը:)

Կրկին, որպես եզրափակիչ խոսք, ես ուզում եմ արժանին մատուցել իմ թիմակից onոնին: Նա հիանալի աշխատանք կատարեց ՝ մեր խնդիրը լուծելու ժամանակ, երբ դա մեզ պետք էր:

նա Python Script- ը տրամադրեց ՝ onatոնաթան Դե Լա Կրուզը

Arduino Script- ը և տան լաբորատորիայի միջով անցնելը և կարգավորումը կատարել է ՝ Dylan Poll- ը

www.linkedin.com/in/dylan-poll-4a324a1a2/

Հուսանք, որ մենք գոնե մի շապիկ կնվաճենք: Ես դա կթարմացնեմ shell հրահանգներով ՝ դրա մեծ մասն ինքնաբերաբար ներբեռնելու և տեղադրելու համար, մեր ակումբների կայքը իրականում ունի ներբեռնվող shell հրահանգներ ՝ ffmpeg գործողությունները կատարելու համար:

Այս նախագիծը շատ ժամանակ տևեց, ես հիմնեցի ակումբի այս բաժանումը սկզբից, այնպես որ կարող եմ հպարտությամբ ասել, որ այս պահը ինձ շատ ուրախություն է պարգևում::) շնորհակալություն ձեր ժամանակի համար, մենք ունենք աշխատանքային հարթակ, որը պետք է զարգանա այժմ իմ ակումբում այս նախագծի պատճառով:

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