Kazalo:

Raspberry Pi HomeLab in kdo je doma: 11 korakov
Raspberry Pi HomeLab in kdo je doma: 11 korakov

Video: Raspberry Pi HomeLab in kdo je doma: 11 korakov

Video: Raspberry Pi HomeLab in kdo je doma: 11 korakov
Video: OpenSSH for Windows: The IT Admin's Key to Remote Management 2024, December
Anonim
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma
Raspberry Pi HomeLab in Kdo je doma

To je moj prvi neuničljiv, vendar ima ta pouk dve fazi.

prva faza: nastavitev pi za delo kot domači laboratorij za delo IOT za skupino študentov.

druga faza: uporablja sistem za razvoj z izvedbo predstavitve z uporabo našega projekta kdo je doma.

do konca tega boste imeli daljinsko dostopno pi brez glave, ki jo lahko ljudje uporabljajo za daljinsko programiranje in delo na napravah IOT.

zdaj pa opozarjam, da se z odpiranjem svojega pi za javnost brez ustrezne varnosti odprete tveganju napada vašega domačega omrežja.

v naslednjih korakih bomo obravnavali prvo fazo, vendar je to povezava do nekaterih informacij o našem klubu in projektu kdo je doma.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

projekt Who Is home naredi naslednje: zažene skript python, ki preveri naslove mac naprav, povezanih z vašim omrežjem. za to uporablja Nmap. te naslove vodi proti seznamu naslovov in če je naveden naslov, pošlje znak arduinu z uporabo serijske komunikacije. arduino nadzoruje LED trak in ko prejme znak, ima za to napravo povezano barvo in prižge LED za to osebo glede na njihovo prisotnost.

naši oddelki se nahajajo pod

sites.google.com/view/valencia-robotics

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

spletno mesto naših klubov

sites.google.com/view/valenciatechclub

Python Script je zagotovil: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Arduino Script, sprehod in nastavitev domačega laboratorija je opravil: Dylan Poll

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

Jaz sem Dylan Poll, sem trenutni predsednik tehnološkega kluba naše fakultete in sem tudi vodja vgrajenih sistemov.

Zaloge

Pi

Arduino

Tla

mostične žice

Spletna kamera

individualno naslovljiv RGB LED trak

napajanje za vaš pi, tipkovnica miška, računalnik za prvo nastavitev.

1. korak: Prenos in namestitev začetnih nastavitvenih datotek

prenesite in namestite kit (windows)

www.putty.org

Prenesite rufus in ga namestite

rufus.ie

prenesite celotno zbirko raspbian in priporočeno programsko opremo (.zip)

www.raspberrypi.org/downloads/raspbian/

izvlecite vsebino v.zip, to bo vaša [slikovna datoteka].

vzemite kartico micro sd in uporabite priklopno postajo ali kartico microsd za usb napravo in jo priključite v računalnik in formatirajte svojo SD kartico

2. korak: drugi del: Namestite Raspbian z uporabo Rufusa

Drugi del: Namestite Raspbian z uporabo Rufusa
Drugi del: Namestite Raspbian z uporabo Rufusa

run rufus izberite svojo sd kartico v prvem polju izberite slikovno datoteko raspbian za.iso/.img select start in počakajte, da se konča.

3. korak: tretji del: Priključite Pi

po tem izvlecite SD kartico, jo vstavite v režo za SD kartico na pi, najprej na spodnjem vtiču kabla HDMI do pi, nato tipkovnico in miško ter zadnji napajalni kabel. če najprej priključite napajanje, morda ne bo registriral vašega monitorja/televizije.

4. korak: četrti del: Nastavitev računa

prijavite se v pi! naredite prvo nastavitev zagona! ne preskočite! izberite ameriško angleško tipkovnico ali pozneje ne boste našli svojega simbola @ … če tega ne storite, je vaš simbol @ tam. prijavite se v svoj wifi na pi se še ne posodabljate. Imam razlog. pritisnite tipko na tipkovnici windows in pojdite na nastavitve, pojdite na konfiguracijo pi. pojdite na zavihek vmesniki.

omogoči VNC … in vse ostalo se ne zažene znova.

5. korak: peti del: nastavite svoj Pi kot brez glave (najboljša stvar doslej)

Peti del: Nastavitev vašega Pi -ja brez glave (najboljša stvar doslej)
Peti del: Nastavitev vašega Pi -ja brez glave (najboljša stvar doslej)

poglejte v zgornjem desnem kotu zaslona. videli boste črno -modri logotip VNC. odpri to. hit prijavite se, ustvarite in ustvarite račun. dodaj pi. na namizju/prenosnem računalniku odprite iskanje brskalnika v google VNC viewer download install. prijavite se v svoj račun. preverite svojo e -pošto za prijavo in se pooblastite. povežite se s pi (vnesite geslo pi v drugem meniju za prijavo), če deluje, izklopite pi. odklopi pi in vse. postavite pi v kot v svoji sobi in do njega pripeljite samo napajalni kabel. s pi se lahko povežete s pregledovalnikom VNC. zdaj imaš "brez glave" pi. vanj lahko uporabite tudi SSH (glejte informacije o SSH v razdelku kul stvari)

6. korak: šesti del: Namestitev vseh osnovnih orodij za razvoj na Pi

Del šesti: Namestitev vseh osnovnih orodij za razvoj na Pi
Del šesti: Namestitev vseh osnovnih orodij za razvoj na Pi

z uporabo SSH ali VNC (ali če ste se odločili, da ne boste kul in ga nastavite brez glave) naredite naslednje. odprti terminal (ta naslednji del lahko traja nekaj časa …) te ukaze izvajajte enega za drugim, potem ko je vsak zaključen.

sudo apt-get update; sudo apt-get upgrade namestitev ffmpeg {sudo apt-get install ffmpeg

7. korak: Sedmi del: Namestitev Adafruit WebIDE

Del sedmi: Namestitev Adafruit WebIDE
Del sedmi: Namestitev Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh odprite brskalnik na svojem glavnem namizju. URL brskalnika usmerite na "https://***.*.*.***: 8080" zamenjajte "*" z lokalnim naslovom IP vašega Pi. naredite uporabniško ime in ga posredujte. zdaj imate nastavitev adafruit webIDE.

8. korak: osmi del: Posodobite Node-red in Node.js

update-nodejs-and-nodered bo naslednja koda omogočila zagon vozlišča ob zagonu tako kot adafruit webIDE, kar je pomembno, če se želite razvijati na teh stvareh. sudo systemctl enable nodered.service znova zaženite Pi

9. korak: del devet: Namestitev Arduino IDE

Del devet: Namestitev Arduino IDE
Del devet: Namestitev Arduino IDE

to lahko storite prek ukazne vrstice, vendar…. to ne bo polna različica.. kar pomeni, da ne morete uporabljati orodja za uvoz/iskanje knjižnice, če želite namestiti celotno različico, pojdite na spletno mesto arduino in prenesite različico za svoj model pi. to bo ARM32bit za pi3, dobite stabilno izdajo. odprite terminal. (nadomestite *z informacijami o izdaji) zaženite te ukaze.

www.arduino.cc/en/Main/Software

cd prenosi/tar -xf arduino-1.*.*-linuxarm.tar.xz sudo mv arduino-1.*.*/opt sudo /opt/arduino-1.*.*/install.sh

10. korak: deseti del: Ffmpeg

Del 10: Ffmpeg
Del 10: Ffmpeg

1x logitech za spletno kamero

(Naslednji elementi ne vključujejo tistega, kar potrebujete za zagon 24 -urnega pretoka) 1x matrica druge maline pi model 3 b (s SD kartico) posamično naslovljiv LED trak. arduino nano skakalna žica omogoči pregledovalnik VNC na obeh Pi (-ih)

nastavitve pi, omogočite vnc ustvarjanje računa s pregledovalnikom VNC POMEMBNO: na pi, ki ga nameravate uporabiti kot javno delovno mizo, pojdite na nastavitve strežnika vnc, možnosti, zavihek strokovnjak in nastavite čas mirovanja: 0 sekund, nastavljeno je, da zaprete Vnc pregledovalnik, če po eni uri miruje, s tem preprečite, da bi se okno zaprlo sredi toka, namestite vnc viewer na streamer pi v terminalu.

sudo apt-get install vnc-java y

priključite spletno kamero in.. namestite spletno kamero.

sudo apt namestite fswebcam

namestite ffmpeg sudo apt-get namestite ffmpeg y

tu pridejo v poštev vaše lastne izbire. v terminalu zaženite ta skript, da odprete okno na namizju strežnika pi za vašo spletno kamero.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay vam bo to omogočil v oknu z imenom pi -cam, spletna kamera, ki vam jo prikazuje, je na lokaciji dev/video0 in njegova prvotna velikost je 1920x1080. Želim samo videti obrezovanje = širina: višina: topleft_X: topleft_Y in hitrost sličic 20 mi je dovolj. naslednja koda se bo pretakala v trzanje.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -vf lestvica = 1280x720 -c: v h264 -g 24 -b: v 2M -nastavljena ultra hitra -c: a aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (vstavite vaš tok tukaj)"

-f x11grab se uporablja za prijemanje zaslona. moja ločljivost zaslona je nastavljena na 1280x1024 To želim prikazati v 1280x720 torej -vf video formatu.

2m = 2mgb hitrost nalaganja. -f flv je formatiranje videoposnetka v.flv, da ga lahko twitch uporabi.

zdaj lahko svoji ekipi predate poverilnice za VNC delovni mizi Pi in ti lahko na daljavo v živo vidijo spremembe LED traku. Pokliči tega fanta ~! njegov video mi je pomagal priti na pot, še vedno sem moral ugotoviti, kako vstaviti spletno kamero … in izvedeti o ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc OPOMBA: Nisem najbolj obveščena oseba, to preprosto deluje za moje potrebe, če ima kdo konstruktiven nasvet, bi ga rad slišal, vendar prosim ne Ena od možnih poti za nadaljevanje tega bi bila uporaba tega mehanika za pretočno predvajanje in uporaba drugega pi in svetlobnega toka razširitve krom za prenos tega toka in nato v to ali kako drugače napajanje spletne kamere. https://www.youtube.com/embed/kb_5_9GkwZc TUDI: če želite dodati zvok, kot je razvidno iz videa mans youtube, lahko uporabite ta niz, nisem želel, da bi bila moja hiša posneta in poslano na trzanje, to sedi v moji sobi, zato ne pretakam nobenega zvoka, prav tako pomaga zmanjšati obremenitev pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i privzeto -af kompresor = prag = 0,089: razmerje = 9: napad = 200: sprostitev = 1000 -vf lestvica = 1280x720 -c: v h264 - g 24 -b: v 2M -nastavljen ultra hiter -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (vstavite vaš tok tukaj)"

11. korak:

Slika
Slika
Slika
Slika
Slika
Slika
Slika
Slika

zdaj do zadnjega dela, ki izvaja arduino in pi serijsko komunikacijo s pythonom.

--- projekt kdo je doma --- Projekt uporablja skript python, ki v terminalu izvaja nmap, kopira njegovo vsebino, razčlenjuje besedilo, ki ga ne potrebujemo, in naslove mac v omrežju primerja z navedenimi mac naslovi in če se ujema, je ta oseba doma. naslovi mac so bili najdeni s preiskovalnim delom na usmerjevalniku, vendar vam orodje nmap poda informacije o napravah v besedilni datoteki, ki jo ustvari koda. če je uporabnik prisoten, pošlje znak na arduino, arduino pa počaka, da je kontrolni seznam končan, in prižge LED, ki ustrezajo profilom, navedenim za naslove mac sedanjih naprav. lahko dodate še druge stvari, na primer, če imate discord bote, ki izvajajo ukaze za ljudi, ki prihajajo ali gredo s to isto kodo, z operaterjem podprocesa za izvajanje terminalskih ukazov v vašem skriptu python. zato najprej namestimo nmap sudo apt-get install nmap. nato boste želeli prenesti datoteke v naše klube Git-Hub.

github.com/ValenciaRobotics/embeddedclub

za kodo python je v namestitvi raspbian vse, kar je v tej kodi uporabljeno, zato ne potrebujete ničesar dodatno nameščenega. uporabili smo uvoz re, uvozni podproces, čas uvoza, uvoz serijsko, pomembno je omeniti, da python uporablja zamik za ločevanje kodnih blokov, zato se zavedajte, da če se odločite spremeniti način zapisa kode:) py prihaja z thonny ide in nekaj drugih možnosti, se mi zdi, da je izvajanje skripta v thonnyju res naravnost, če kliknete datoteko in jo poskusite izvesti, je bilo predlagano ali predpostavljeno, da je thonny tisto, kar ste želeli uporabiti. preden zaženete program, boste morali urediti naslednje. vrstica 14: simboli * se uporabljajo za prikrivanje mojih podatkov o usmerjevalniku, to boste morali zamenjati z lastnim lokalnim ip. bi bilo enako kot tisto, kar uporabljate za povezavo z usmerjevalnikom. vrstice 28, 38, 48, 58: vse te oznake uporabljajo simbol * za prikrivanje naslovov mac naprav, navedenih v mojem omrežju, zato jih morate spremeniti v naslove mac naprav v svojem omrežju, da odkrijete povezave. zakaj mac naslovi? ker brez rezervacije lokacij za vašo napravo zagotovo ostanejo enaki, razen če nekdo ponareja. težave s to kodo, bo zaznala le, ko povezava aktivno uporablja internet, zato je morda ne bo zaznala kljub prisotnosti uporabnika. v kodi arduino boste želeli spremeniti naslednje. najprej pojdite na zavihek orodja, izberite upravitelja knjižnic in poiščite »fastLED« ter knjižnico namestite za »fastLED«. nato boste morali naložiti kodo "ino, ki je doma ".ino s strani github in po želji spremeniti naslednje. vrstica 86: spremenite barve glede na to, kaj želite, da bodo vaši uporabniki priložili:)

// vklopite tisto, kar potrebujete

če (d == 1) {leds [0] = 0xdd8bff; // vijolične svetleče diode [1] = 0xdd8bff;}

če (l == 1) {leds [2] = CRGB:: Zelena; LED [3] = CRGB:: Zelena;}

če (k == 1) {leds [4] = CRGB:: Rdeča; LED [5] = CRGB:: Rdeča; }

če (j == 1) {leds [6] = CRGB:: Modra; LED [7] = CRGB:: Modra;}

FastLED.show (); zamuda (30000); // 10 sekund čakanja na stikalo Kratka razlaga, kako dodati več uporabnikov, je naslednja

void loop () {

if (Serial.available ()> 0) {

Serial.println ();

person = Serial.read ();

zamuda (1000);

switch (oseba) {

primer 'D': d = 1;

person = 'F';

count = count+1;

zlom;

zadeva ':

d = 0;

person = 'F';

count = count+1;

zlom;

velika črka D je prejeti znak iz skripta python, zato ve, da je uporabnik prisoten, ker je prejeta črka velika črka D, zato spremeni vrednost INTEGER d na 1, če gre za male črke, kot ve, da manjkajo, zato je INTEGER nastavljen na 0. pogoj za osvetlitev LED v skriptu od prej uporablja stavek, da je IF d 1, potem bo osvetlil LED, če pa ni, ta ostane "črna", kar pomeni, da ni osvetljena. ta koda uporablja knjižnico "fastLED" in o tem je veliko dokumentacije. Upoštevajte, da boste morali, če spremenite znake, dodate znake ali odstranite znake, spremeniti skript python, da vrnete tiste, ki ste jih spremenili, boste morali spremeniti tudi pogoj v zanki void. if (count == 4) {holdup ();}} bo moralo število odražati število naprav, ki jim »sledite«. v mojem primeru je 4, zato počaka, da se 4 naprave razglasijo za prisotne ali odsotne, nato pa posodobi LED trak. v kodi python imajo vrstice 31, 34, 41, 44, 51, 54, 61, 64 naslednjo vrstico: pošiljanje na arduino. spremenite to, če spremenite kodo v arduinu ali obratno:)

Še enkrat, kot zaključno besedo želim priznati mojemu soigralcu Jonu, ki se je odlično odrezal, ko je to potreboval.

Skript Python je zagotovil: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Arduino Script, sprehod in nastavitev domačega laboratorija je opravil: Dylan Poll

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

Upajmo, da bomo osvojili vsaj majico! To bom posodobil z ukazi lupine za samodejni prenos in namestitev večine tega, na našem spletnem mestu klubov so dejansko na voljo skripti lupine, ki jih je mogoče prenesti za operacije ffmpeg.

Ta projekt je vzel veliko časa, to divizijo kluba sem ustanovil od začetka, zato lahko s ponosom rečem, da mi ta trenutek prinaša veliko veselja.:) hvala za vaš čas, zaradi tega projekta imamo zdaj v svojem klubu delovno platformo za razvoj.

Priporočena: