Innholdsfortegnelse:

Raspberry Pi HomeLab og hvem som er hjemme: 11 trinn
Raspberry Pi HomeLab og hvem som er hjemme: 11 trinn

Video: Raspberry Pi HomeLab og hvem som er hjemme: 11 trinn

Video: Raspberry Pi HomeLab og hvem som er hjemme: 11 trinn
Video: Bygger min test server - Projekt Ny Hjemmeserver (NAS) 2024, November
Anonim
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home
Raspberry Pi HomeLab og Who Is Home

Dette er min første uforgjengelige, men denne instruerbare har to fazes.

faze one: setter opp en pi for å jobbe som hjemmelaboratorium for IOT-arbeid for et team med studentutviklere.

faze to: bruker systemet for utvikling, ved å implementere en demonstrasjon ved hjelp av vårt hvem er hjemme -prosjektet.

ved slutten av dette vil du ha en eksternt tilgjengelig hodeløs pi som kan brukes av folk til å ekstern programmere og arbeide på IOT -enheter.

nå advarer jeg deg om at ved å åpne pi -en din for publikum uten nødvendig sikkerhet, åpner du deg selv for risikoen for å få ditt hjemmenettverk angrepet.

Vi vil gå over den første fazen i de følgende trinnene, men dette er en lenke til litt informasjon om klubben vår og hvem som er hjemmeprosjektet.

github.com/ValenciaRobotics/embeddedclub

Hvem er hjemme

Who Is home -prosjektet gjør følgende: kjører et python -skript som ser etter mac -adressene til enheter som er koblet til nettverket ditt. den bruker Nmap for dette. den kjører disse adressene mot en liste med adresser, og hvis adressen som er oppført, sender den en røyke til en arduino ved å bruke seriell kommunikasjon. arduinoen styrer en LED -stripe, og når den mottar en røye, har den en tilhørende farge for den enheten, og den tenner lysdiodene for den personen basert på at de er tilstede.

våre divisjoner subside

sites.google.com/view/valencia-robotics

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

nettstedet til klubbene våre

sites.google.com/view/valenciatechclub

Python Script ble levert av: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Arduino Script og gå gjennom og oppsett av hjemmelaboratoriet ble utført av: Dylan Poll

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

Jeg er Dylan Poll, jeg er den nåværende presidenten for teknologiklubben på høyskolen vår, og jeg er også den innebygde systemlederen.

Rekvisita

En pi

En arduino

Et brødbrett

jumper ledninger

Et webkamera

individuelt adresserbar RGB LED -stripe

strømforsyning for pi, tastatur, mus, datamaskin for å gjøre det første oppsettet.

Trinn 1: Last ned og installer første oppsettfiler

last ned og installer kitt (windows)

www.putty.org

Last ned rufus og installer

rufus.ie

Last ned raspbian full buster og anbefalt programvare (.zip)

www.raspberrypi.org/downloads/raspbian/

trekk ut innholdet i.zip dette vil være din [bildefil].

ta et micro sd -kort, og bruk en dokkingstasjon eller en microsd til usb -enhet og koble det til datamaskinen din formatere sd -kortet

Trinn 2: del to: Installer Raspbian ved hjelp av Rufus

Del to: Installer Raspbian ved hjelp av Rufus
Del to: Installer Raspbian ved hjelp av Rufus

run rufus velg sd -kortet ditt i det første feltet, velg raspbian -bildefilen for.iso/.img velg start og vent til det er ferdig.

Trinn 3: del tre: Koble til Pi

Etter at det er gjort, trekker du ut sd -kortet, setter det inn i sd -kortsporet på pi -en, den sitter på "nederste" pluggen i HDMI -kabelen til pi først, enn et tastatur og en mus og den siste strømkabelen. Hvis du kobler til strømmen først, kan det hende at du ikke registrerer skjermen/TV -en din.

Trinn 4: del fire: Konfigurere kontoen din

logg inn pi! gjør det første oppsettet! ikke hopp over det! Velg USA engelsk tastatur, eller du vil ikke finne @ -symbolet ditt senere … hvis du ikke gjør det, er @ -symbolet der "er". Logg deg på wifi på pi ikke oppdater enda. Jeg har en grunn. Trykk på "Windows -tastaturet "og gå til preferanser, gå til pi -konfigurasjon. gå til grensesnittfanen.

aktiver VNC…. og alt annet må ikke startes på nytt.

Trinn 5: del fem: Konfigurer Pi -en din som hodeløs (det beste noensinne)

Del fem: Konfigurer Pi -en din som hodeløs (det beste noensinne)
Del fem: Konfigurer Pi -en din som hodeløs (det beste noensinne)

se øverst til høyre på skjermen. du vil se den svarte og blå VNC -logoen. åpne det. trykk logg på, lag og konto. legg til pi. på din stasjonære/bærbare datamaskin åpne nettlesersøk på google VNC viewer nedlasting install. Logg inn på kontoen din. sjekk e -posten din for pålogging og autoriser deg selv. koble til pi -en din (skriv inn pi -passordet i den andre påloggingsmenyen) hvis den fungerer, slå av pi -en. koble fra pi og alt. legg pien i et hjørne på rommet ditt og kjør bare strømkabelen til den. du kan koble til pi ved hjelp av VNC viewer. du har nå en "hodeløs" pi. du kan også SSH til det. (se SSH -informasjon i delen for kule ting)

Trinn 6: del seks: Installere alle kjerneverktøyene for utvikling på en Pi

Del seks: Installere alle kjerneverktøyene for utvikling på en Pi
Del seks: Installere alle kjerneverktøyene for utvikling på en Pi

bruker SSH eller VNC (eller hvis du bestemte deg for ikke å være kul og sette den opp hodeløs) gjør du følgende. åpen terminal (denne neste delen kan ta en stund ….). Kjør disse kommandoene en om gangen etter at hver er fullført.

sudo apt-get oppdatering; sudo apt-get oppgradering installere ffmpeg {sudo apt-get install ffmpeg

Trinn 7: del syv: Installering av Adafruit WebIDE

Del syv: Installering av Adafruit WebIDE
Del syv: Installering av Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh åpne en nettleser på hovedskrivebordet. pek nettleserens URL til "https://***.*.*.***: 8080" erstatt "*" med Pi's lokale IP -adresse. lag et brukernavn og pass. du har nå adafruit webIDE -oppsettet.

Trinn 8: del åtte: Oppdater Node-red og Node.js

update-nodejs-and-nodered den neste koden vil få nodered til å kjøre ved oppstart akkurat som adafruit webIDE, dette er viktig hvis du vil utvikle deg på disse tingene. sudo systemctl enable nodered.service start Pi på nytt

Trinn 9: del ni: Installere Arduino IDE

Del ni: Installere Arduino IDE
Del ni: Installere Arduino IDE

du kan gjøre det via kommandolinjen, men…. det vil ikke være den fullstendige versjonen.. betyr at du ikke kan bruke bibliotekets import/søkeverktøy, for å installere hele versjonen må du gå til arduino -nettstedet og laste ned versjonen for din pi -modell. det vil være ARM32bit for pi3, få den stabile utgivelsen. åpen terminal. (erstatt *-ene med utgivelsesinformasjonen) kjør disse kommandoene.

www.arduino.cc/en/Main/Software

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

Trinn 10: Del ti: Ffmpeg

Del ti: Ffmpeg
Del ti: Ffmpeg

1x webkamera logitech

(de neste elementene inkluderer ikke det du trenger for å kjøre en 24/7 stream) 1x breadboard en andre bringebær pi modell 3 b (med sd -kort) individuelt adresserbar LED -stripe. arduino nano jumper wire aktivere VNC viewer på begge Pi (e)

pi -preferanser, aktiver vnc, lag en konto med VNC viewer VIKTIG: på pi -en du planlegger å bruke som en offentlig arbeidsbenk, gå til vnc -serverinnstillinger, alternativer, ekspertfanen, og gjør inaktiv timeout: 0 sekunder, den er satt til å lukke Vnc visning hvis den er inaktiv etter en time, vil dette stoppe vinduet ditt fra å lukke midtstrømmen installere vnc viewer på streamer pi i terminalen.

sudo apt-get install vnc-java y

plugg inn webkameraet og..installer webkameraet.

sudo apt installere fswebcam

installer ffmpeg sudo apt-get install ffmpeg y

det er her dine egne valg spiller inn. i terminal, kjør dette skriptet for å åpne et vindu på streamer pi -skrivebordet for webkameraet ditt.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay lar deg se dette i et vindu med navnet pi -cam, webkameraet viser deg at location dev/video0 og den opprinnelige størrelsen er 1920x1080. Jeg vil bare se beskjæringen = bredde: høyde: topleft_X: topleft_Y og en framerate på 20 er nok for meg. neste kode vil strømme til rykninger.

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 brukes til å ta tak i skjermen din. skjermoppløsningen min er satt til 1280x1024 Jeg vil vise den i 1280x720 so -vf videoformat.

2m = 2mgb opplastingshastighet. -f flv er å formatere videoen til.flv slik at rykninger kan bruke den.

nå kan du gi teamet ditt din VNC -legitimasjon til arbeidsbenken Pi, og de kan se endringene i LED -stripen eksternt. Rop til denne fyren ~! videoen hans hjalp meg med å komme i gang, jeg måtte fortsatt finne ut hvordan jeg skulle komme inn i webkameraet mitt … og finne ut om ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc MERK: Jeg er ikke den mest informerte personen, dette fungerer ganske enkelt for mine behov, hvis noen har konstruktive råd, vil jeg gjerne høre det, men vær så snill å ikke gjøre det være en av de mulige rutene for å ta dette videre, ville være å bruke denne mekanikeren til å streame dette, og bruke en annen pi og kromforlengelsen lysstrøm for å hente den strømmen og deretter mate webkameraet inn i det eller på annen måte. https://www.youtube.com/embed/kb_5_9GkwZc OGSÅ: hvis du vil legge til lyd, som du kan se i mans youtube -videoen, kan du bruke denne strengen, jeg ønsket ikke at huset mitt skulle spilles inn og sendt for å rykke, dette sitter på rommet mitt, så jeg sender ikke lyd, det hjelper også med å redusere belastningen på pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i standard -af acompressor = terskel = 0,089: ratio = 9: attack = 200: release = 1000 -vf skala = 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)"

Trinn 11:

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

nå til den siste strekningen, implementering av arduino og pi seriell kommunikasjon med python.

--- hvem er hjemmeprosjektet --- Prosjektet bruker et python-script som kjører nmap i terminalen, kopierer innholdet i det, analyserer teksten vi ikke trenger, og sammenligner mac-adressene på nettverket mot de listede mac -adresser, og hvis det er en kamp, er personen hjemme. mac -adressene ble funnet ved å gjøre undersøkelsesarbeid på ruteren, men nmap -verktøyet gir deg informasjon om enhetene i tekstfilen som genereres av koden. hvis brukeren er til stede, sender den et tegn til arduinoen, og arduinoen venter til sjekklisten er ferdig, og lyser lysdioder som tilsvarer profilene som er oppført for mac -adressene til nåværende enheter. du kan legge til andre ting, for eksempel å la discord-bots kjøre kommandoer når folk kommer eller går med den samme koden ved å bruke delprosessoperatøren til å utføre terminalkommandoer i python-skriptet ditt. så først installerer vi nmap sudo apt-get install nmap. neste vil du laste ned filene på våre klubber Git-Hub.

github.com/ValenciaRobotics/embeddedclub

for python -koden, kommer raspbian -installasjonen med alt som brukes i denne koden, så du trenger ikke installere noe ekstra. vi brukte import re, import delprosess, importtid, import serial Det er viktig å merke seg at python bruker innrykk for å skille ut kodeblokker, så vær oppmerksom på det hvis du bestemmer deg for å endre måten koden skrives:) py kommer med thonny ide og et par andre alternativer, jeg finner ut at kjøring av skriptet i thonny er veldig rett frem, hvis du klikker på filen og prøver å utføre den, var det foreslå eller anta at thonny var det du ønsket å bruke. før du kjører programmet, må du redigere følgende. linje 14: * symbolene brukes til å maskere min egen ruterinformasjon, du må erstatte den med din egen lokale ip. det ville være det samme som det du bruker for å koble til ruteren din. linje 28, 38, 48, 58: disse bruker alle * -symbolet for å maskere enhets -mac -adresser som er oppført fra nettverket mitt, du må endre dem til mac -adressene til enhetene i ditt eget nettverk for å oppdage tilkoblinger. hvorfor mac -adresser? fordi uten å reservere steder for enheten din, vil de sikkert forbli de samme med mindre noen forfalsker. problemer med denne koden, vil den bare oppdage mens en tilkobling bruker aktivt internett, så den kan ikke oppdages til tross for at en bruker er tilstede. i arduino -koden, vil du endre følgende. Først vil du gå til verktøyfanen, velge biblioteksbehandling og søke etter "fastLED" og installere biblioteket for "fastLED". neste må du laste "hvem er hjemme".ino -koden fra github -siden og endre følgende etter ønske. linje 86: endre fargene basert på hva du vil at brukerne skal ha vedlagt:)

// slå på det du trenger

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

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

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å bryterhuset En kort forklaring på hvordan du legger til flere brukere er følgende

void loop () {

hvis (Serial.available ()> 0) {

Serial.println ();

person = Serial.read ();

forsinkelse (1000);

bytte (person) {

case'D ': d = 1;

person = 'F';

telle = telle+1;

gå i stykker;

case'd ':

d = 0;

person = 'F';

telle = telle+1;

gå i stykker;

store D er det mottatte tegnet fra python -skriptet, så det vet at brukeren er tilstede fordi den mottatte bokstaven er store D, så det endrer verdien til INTEGER d til 1, hvis det er en liten bokstav enn den vet at de er fraværende, så INTEGER er satt til 0. Betingelsen for LED -belysning i manuset fra før bruker en uttalelse om at IF d er 1 enn det vil lyse LED, men hvis det ikke er det, forblir LED som "svart" som betyr ubelyst. denne koden bruker biblioteket "fastLED", og det er mye dokumentasjon om dette. Vær oppmerksom på at hvis du endrer tegnene, legger til tegn eller fjerner tegn, må du endre python -skriptet for å returnere de du endret dem også, må du også endre tilstanden i tomridsløyfen. if (count == 4) {holdup ();}} tellingen må gjenspeile antall enheter du "sporer". i mitt tilfelle er det 4, så det venter til 4 enheter har blitt erklært som til stede eller fraværende, og deretter oppdaterer den LED -stripen. i pythonkoden har linjene 31, 34, 41, 44, 51, 54, 61, 64 følgende linje ser.write (b ' *') #sender tegn kastet som byte over serie hvor * er et tegn det er sender til arduinoen. endre dette hvis du endrer koden i arduinoen eller omvendt:)

Igjen, som en avsluttende uttalelse, vil jeg gi æren til lagkameraten min Jon, han gjorde en god jobb med å plukke opp slakken når vi trengte den.

Python Script ble levert av: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Arduino Script og gå gjennom og oppsett av hjemmelaboratoriet ble utført av: Dylan Poll

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

Forhåpentligvis vinner vi minst en t-skjorte! Jeg kommer til å oppdatere dette med skallkommandoer for å laste ned og installere det meste av dette, nettstedet til klubbene våre har faktisk nedlastbare skallskript for å utføre ffmpeg -operasjonene.

Dette prosjektet tok mye tid, jeg grunnla denne divisjonen av klubben fra bunnen av, så jeg kan stolt si at dette øyeblikket gir meg mye glede.:) takk for din tid, vi har en arbeidsplattform for å utvikle nå i klubben min på grunn av dette prosjektet.

Anbefalt: