Indholdsfortegnelse:

Raspberry Pi HomeLab og hvem der er hjemme: 11 trin
Raspberry Pi HomeLab og hvem der er hjemme: 11 trin

Video: Raspberry Pi HomeLab og hvem der er hjemme: 11 trin

Video: Raspberry Pi HomeLab og hvem der er hjemme: 11 trin
Video: Revolutionize Windows System Repair: Using SFC/DISM" 2024, November
Anonim
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme
Raspberry Pi HomeLab og hvem der er hjemme

Dette er min første uforgængelige, men denne instruerbare har to faser.

faze one: opretter en pi til at arbejde som hjemmelab til IOT-arbejde for et team af studerende udviklere.

faze to: bruger systemet til udvikling ved at implementere en demonstration ved hjælp af vores hvem er hjemme -projektet.

ved slutningen af dette vil du have en eksternt tilgængelig hovedløs pi, der kan bruges af folk til eksternt at programmere og arbejde på IOT -enheder.

nu advarer jeg, at ved at åbne din pi for offentligheden uden behørig sikkerhed åbner du dig selv for risikoen for at få dit hjemmenetværk angrebet.

vi vil gå over den første faze i de følgende trin, men dette er et link til nogle oplysninger om vores klub og hvem der er hjemmeprojektet.

github.com/ValenciaRobotics/embeddedclub

Hvem er hjemme

Who Who -hjemmeprojektet gør følgende: kører et python -script, der kontrollerer mac -adresserne på enheder, der er forbundet til dit netværk. det bruger Nmap til dette. den kører disse adresser mod en liste over adresser, og hvis den angivne adresse er til stede, sender den en char til en arduino ved hjælp af seriel kommunikation. arduino styrer en LED -strimmel, og når den modtager en kul, har den en tilhørende farve til den pågældende enhed, og den tænder lysdioderne for den person baseret på, at de er til stede.

vores divisioner undersider

sites.google.com/view/valencia-robotics

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

vores klubs websted

sites.google.com/view/valenciatechclub

Python Script blev leveret af: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Arduino Script og gennemgang og opsætning af hjemmelaboratoriet blev udført af: Dylan Poll

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

Jeg er Dylan Poll, jeg er den nuværende formand for tech -klubben på vores college, og jeg er også den integrerede systemleder.

Forbrugsvarer

Et pi

En arduino

Et brødbræt

jumper ledninger

Et webcam

individuelt adresserbar RGB LED Strip

strømforsyning til din pi, et tastatur en mus, computer til at foretage den første opsætning.

Trin 1: Downloading og installation af første installationsfiler

download og installer kit (Windows)

www.putty.org

download rufus og installer

rufus.ie

download raspbian full buster og anbefalet software (.zip)

www.raspberrypi.org/downloads/raspbian/

uddrag indholdet i.zip dette vil være din [billedfil].

tag et micro sd -kort, og brug en dock eller en microsd til usb -enhed og tilslut det til din computer, formater dit sd -kort

Trin 2: del to: Installer Raspbian ved hjælp af Rufus

Del to: Installer Raspbian ved hjælp af Rufus
Del to: Installer Raspbian ved hjælp af Rufus

kør rufus vælg dit sd -kort i det første felt, vælg raspbian -billedfilen til.iso/.img vælg start, og vent på, at det er færdigt.

Trin 3: del tre: Tilslutning af Pi

efter det er gjort, skal du trække sd -kortet ud, sætte det i sd -kortstikket på pi'en, det er på "bunden" stikket i HDMI -ledningen til pi først, end et tastatur og en mus, og det sidste strømkabel. Hvis du først tilslutter strøm, registrerer det muligvis ikke din skærm/tv.

Trin 4: del fire: Opsætning af din konto

log ind pi! lav den første kørselsopsætning! spring ikke over det! vælg USA engelsk tastatur, eller du finder ikke dit @ -symbol senere … hvis du ikke gør dit @ -symbol, er dit dit ". "og gå til præferencer, gå til pi -konfiguration. gå til fanen Interfaces.

aktiver VNC…. og alt andet genstart ikke.

Trin 5: del fem: Opsætning af din Pi som hovedløs (det bedste nogensinde)

Del fem: Opsætning af din Pi som hovedløs (det bedste nogensinde)
Del fem: Opsætning af din Pi som hovedløs (det bedste nogensinde)

se øverst til højre på din skærm. du vil se det sorte og blå VNC -logo. åbn det. hit log ind, lav og konto. tilføj pi. på din stationære/bærbare computer, åbn browsersøgning på google VNC viewer download install. log ind på din konto. tjek din e -mail for at logge ind, og godkend dig selv. oprette forbindelse til din pi (indtast pi -adgangskoden i den anden login -menu), hvis den virker, skal du slukke for din pi. tag stikket ud af din pi og alt. Sæt pi'en i et hjørne i dit værelse, og kør kun strømkablet til den. du kan oprette forbindelse til pi'en ved hjælp af VNC viewer. du har nu en "hovedløs" pi. du kan også SSH til det. (se SSH -info i afsnittet om fede ting)

Trin 6: del seks: Installation af alle kerneværktøjer til udvikling på en Pi

Del seks: Installation af alle kerneværktøjer til udvikling på en Pi
Del seks: Installation af alle kerneværktøjer til udvikling på en Pi

ved hjælp af SSH eller VNC (eller hvis du besluttede dig for ikke at være cool og konfigurere den uden hoved) gør følgende. åben terminal (denne næste del kan tage et stykke tid….) Kør disse kommandoer en ad gangen efter hver en er færdig.

sudo apt-get opdatering; sudo apt-get opgradering ved at installere ffmpeg {sudo apt-get install ffmpeg

Trin 7: del syv: Installation af Adafruit WebIDE

Del syv: Installation af Adafruit WebIDE
Del syv: Installation af Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh åbne en browser på dit hoved skrivebord. peg din browser URL til "https://***.*.*.***: 8080" erstat "*" med din Pi's lokale IP -adresse. lav et brugernavn og pas. du har nu opsætningen af adafruit webIDE.

Trin 8: del otte: Opdater Node-red og Node.js

update-nodejs-and-nodered den næste kode vil få nodered til at køre ved opstart ligesom adafruit webIDE, dette er vigtigt, hvis du vil udvikle på disse ting. sudo systemctl enable nodered.service genstart Pi

Trin 9: del ni: Installation af Arduino IDE

Del ni: Installation af Arduino IDE
Del ni: Installation af Arduino IDE

du kan gøre det via kommandolinjen, men…. det vil ikke være den fulde version.. hvilket betyder, at du ikke kan bruge bibliotekets import/søgeværktøj, for at installere den fulde version skal du gå til arduino -webstedet og downloade versionen til din pi -model. det vil være ARM32bit til pi3, få den stabile udgivelse. åben terminal. (udskift *'erne med udgivelsesoplysningerne) kør disse kommandoer.

www.arduino.cc/en/Main/Software

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

Trin 10: Del ti: Ffmpeg

Del ti: Ffmpeg
Del ti: Ffmpeg

1x webcam logitech

(de næste varer indeholder ikke, hvad du har brug for for at køre en 24/7 stream) 1x breadboard en anden hindbær pi model 3 b (med sd -kort) individuelt adresserbar LED -strip. arduino nano jumper wire aktivere VNC viewer på begge Pi (er)

pi -præferencer, aktiver vnc lav en konto med VNC viewer VIGTIGT: på den pi, du planlægger at bruge som en offentlig arbejdsbænk, skal du gå til vnc -serverindstillinger, muligheder, fanen ekspert og lave inaktiv timeout: 0 sekunder, det er indstillet til at lukke Vnc fremviser hvis den er inaktiv efter en time, vil dette forhindre dit vindue i at lukke midtstrømmen installere vnc viewer på streamer pi i terminalen.

sudo apt-get install vnc-java y

tilslut dit webcam og..installer dit webcam.

sudo apt installere fswebcam

installer ffmpeg sudo apt-get install ffmpeg y

det er her dine egne valg spiller ind. i terminal, kør dette script for at åbne et vindue på din streamer pi's skrivebord til dit webcam.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay giver dig mulighed for at se dette i et vindue med navnet pi -cam, webkameraet viser dig at location dev/video0 og dens originale størrelse er 1920x1080. Jeg vil kun se afgrøden = bredde: højde: topleft_X: topleft_Y og en framerate på 20 er nok for mig. den næste kode vil streame for at rykke.

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: a aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

-f x11grab bruges til at få fat i din skærm. min skærmopløsning er sat til 1280x1024 Jeg vil vise det i 1280x720 så -vf videoformat.

2m = 2mgb uploadrate. -f flv er at formatere videoen til.flv, så twitch kan bruge den.

nu kan du give dit team dine VNC -legitimationsoplysninger til arbejdsbordet Pi, og de kan se ændringerne af LED -strimlen eksternt. Råb til denne fyr ~! hans video hjalp mig med at komme på sporet, jeg var stadig nødt til at finde ud af, hvordan jeg skulle komme ind i mit webcam … og finde ud af om ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc BEMÆRK: Jeg er ikke den mest informerede person, dette virker simpelthen til mine behov, hvis nogen har konstruktive råd, vil jeg meget gerne høre det, men lad være med at gøre det være ensbetydende med en af de mulige ruter til at tage dette videre, ville være at bruge denne mekaniker til at streame dette og bruge en anden pi og kromforlængelses -lysstrømmen til at hente den strøm og derefter fodre webkameraet i den eller på anden måde. https://www.youtube.com/embed/kb_5_9GkwZc OGSÅ: hvis du vil tilføje lyd, som det ses i mans youtube -video, kan du bruge denne streng, jeg ville ikke have mit hus optaget og sendt for at rykke, dette sidder i mit værelse, så jeg streamer ikke nogen lyd, det hjælper også med at reducere belastningen på pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i standard -af acompressor = tærskel = 0,089: ratio = 9: angreb = 200: release = 1000 -vf skala = 1280x720 -c: v h264 - g 24 -b: v 2M -forudindstilling ultrahurtig -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

Trin 11:

Billede
Billede
Billede
Billede
Billede
Billede
Billede
Billede

nu til den sidste strækning, implementering af arduino og pi seriel kommunikation med python.

--- hvem er hjemmeprojektet --- Projektet bruger et python-script, der kører nmap i terminal, kopierer indholdet i det, analyserer den tekst, vi ikke har brug for, og sammenligner mac-adresserne på netværket med de anførte mac -adresser, og hvis der er et match, er personen hjemme. mac -adresserne blev fundet ved at udføre undersøgelsesarbejde på routeren, men nmap -værktøjet giver dig oplysninger om enhederne i tekstfilen, der genereres af koden. hvis brugeren er til stede, sender den et tegn til arduinoen, og arduinoen venter, indtil tjeklisten er udført, og lyser LED'er, der svarer til de profiler, der er angivet for mac -adresserne på nuværende enheder. du kan tilføje andre ting, f.eks. at lade discord-bots køre kommandoer, når folk kommer eller går med den samme kode ved at bruge subprocessoperatøren til at udføre terminalkommandoer i dit python-script. så først installerer vi nmap sudo apt-get install nmap. næste vil du gerne downloade filerne på vores klubber Git-Hub.

github.com/ValenciaRobotics/embeddedclub

for python -koden følger den raspbian -installation med alt, der bruges i denne kode, så du ikke har brug for noget ekstra installeret. vi brugte import re, import delproces, importtid, import seriel det er vigtigt at bemærke, at python bruger indrykning til at adskille kodeblokke, så vær opmærksom på det, hvis du beslutter dig for at ændre måden, koden skrives på:) py'en kommer med thonny ide og et par andre muligheder, jeg finder ud af, at kørsel af scriptet i thonny er virkelig ligetil, hvis du klikker på filen og forsøger at udføre den, var det foreslå eller antage, at thonny var det, du ville bruge. før du kører programmet, skal du redigere følgende. linje 14: * symbolerne bruges til at maskere mine egne routeroplysninger, du bliver nødt til at erstatte det med din egen lokale ip. det ville være det samme som det, du bruger til at oprette forbindelse til din router. linje 28, 38, 48, 58: disse bruger alle symbolet * til at maskere enheds -mac -adresser, der er angivet fra mit netværk, du skal ændre dem til mac -adresserne på enhederne på dit eget netværk for at registrere forbindelser. hvorfor mac adresser? fordi uden at reservere placeringer til din enhed, vil de helt sikkert forblive de samme, medmindre nogen spoofer. problemer med denne kode, registreres den kun, mens en forbindelse aktivt bruger internettet, så den muligvis ikke registreres på trods af, at en bruger er til stede. i arduino -koden, vil du gerne ændre følgende. Først vil du gå til fanen Værktøjer, vælge bibliotekshåndtering og søge efter "fastLED" og installere biblioteket for "fastLED". næste skal du indlæse "hvem er hjemme".ino -koden fra github -siden og ændre følgende, som du ønsker. linje 86: ændre farverne baseret på, hvad du vil have dine brugere vedhæftet:)

// tænd for det, du har brug for

hvis (d == 1) {leds [0] = 0xdd8bff; // lilla lysdioder [1] = 0xdd8bff;}

hvis (l == 1) {leds [2] = CRGB:: Grøn; leds [3] = CRGB:: Grøn;}

hvis (k == 1) {leds [4] = CRGB:: Rød; leds [5] = CRGB:: Rød; }

hvis (j == 1) {leds [6] = CRGB:: Blå; leds [7] = CRGB:: Blå;}

FastLED.show (); forsinkelse (30000); // 10 sekunders ventetid på switch -sagen en kort forklaring på, hvordan man tilføjer flere brugere, er følgende

void loop () {

hvis (Serial.available ()> 0) {

Serial.println ();

person = Serial.read ();

forsinkelse (1000);

switch (person) {

case'D ': d = 1;

person = 'F';

count = count+1;

pause;

case'd ':

d = 0;

person = 'F';

count = count+1;

pause;

den store bogstav D er det modtagne tegn fra python -scriptet, så det ved, at brugeren er til stede, fordi det modtagne bogstav er store D, så det ændrer værdien af INTEGER d til 1, hvis det er en lille bogstav, end den ved, at de er fraværende, så INTEGER er indstillet til 0. betingelsen for LED -belysning i scriptet fra før bruger en erklæring om, at IF d er 1, end det vil tænde LED'en, men hvis det ikke er det, forbliver LED som "sort", hvilket betyder ubelyst. denne kode bruger biblioteket "fastLED", og der er meget dokumentation om dette. Bemærk, at hvis du ændrer tegnene, tilføjer tegn eller fjerner tegn, skal du ændre python -scriptet for at returnere dem, du også har ændret dem, du bliver også nødt til at ændre betingelsen i tomrumsløkken. if (count == 4) {holdup ();}} tællingen skal afspejle antallet af enheder, du "sporer". i mit tilfælde er det 4, så det venter, indtil 4 enheder er blevet erklæret som til stede eller fraværende, og derefter opdaterer det LED -strimlen. i python -koden har linjerne 31, 34, 41, 44, 51, 54, 61, 64 følgende linje ser.write (b ' *') #sender karakterkast som byte over seriel, hvor * er et tegn, det er sender til arduinoen. ændre dette, hvis du ændrer koden i arduino eller omvendt:)

Igen, som en afsluttende erklæring, vil jeg give æren til min holdkammerat Jon, han gjorde et godt stykke arbejde med at opfange slapheden, når vi havde brug for det.

han Python Script blev leveret af: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Arduino Script og gennemgang og opsætning af hjemmelaboratoriet blev udført af: Dylan Poll

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

Forhåbentlig vinder vi mindst en t-shirt! Jeg vil opdatere dette med shell -kommandoer til automatisk download og installation af det meste, vores klubs websted har faktisk shell -scripts, der kan downloades til at udføre ffmpeg -operationerne.

Dette projekt tog meget tid, jeg grundlagde denne afdeling af klubben fra bunden, så jeg kan med stolthed sige, at dette øjeblik giver mig en masse glæde.:) tak for din tid, vi har en arbejdsplatform til at udvikle nu i min klub på grund af dette projekt.

Anbefalede: