Sadržaj:

Raspberry Pi HomeLab i Ko je kod kuće: 11 koraka
Raspberry Pi HomeLab i Ko je kod kuće: 11 koraka

Video: Raspberry Pi HomeLab i Ko je kod kuće: 11 koraka

Video: Raspberry Pi HomeLab i Ko je kod kuće: 11 koraka
Video: Подробный обзор набора «Малина» v4 Raspberry Pi 4 2024, Novembar
Anonim
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home
Raspberry Pi HomeLab i Who Is Home

Ovo je moje prvo neuništivo, ali ovo uputstvo ima dvije faze.

prva faza: postavljanje pi-ja za rad kao kućna laboratorija za IOT rad za tim studenata programera.

druga faza: koristi sistem za razvoj, implementacijom demonstracije pomoću našeg projekta koji je doma.

do kraja ovoga imat ćete daljinski dostupan pi bez glave koji ljudi mogu koristiti za daljinsko programiranje i rad na IOT uređajima.

upozoravam vas da se otvaranjem vašeg pi -a javnosti bez dužne sigurnosti otvarate riziku od napada na vašu kućnu mrežu.

u sljedećim koracima ćemo proći prvu fazu, ali ovo je veza do nekih informacija o našem klubu i projektu tko je kod kuće.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

projekat Who Is home radi sljedeće: pokreće python skriptu koja provjerava mac adrese uređaja povezanih na vašu mrežu. za to koristi Nmap. pokreće te adrese prema popisu adresa, a ako je navedena adresa prisutna, šalje char arduinu pomoću serijske komunikacije. arduino kontrolira LED traku i kad primi znak ima povezanu boju za taj uređaj i pali LED diode za tu osobu na temelju njihove prisutnosti.

naše podjele su podsajt

sites.google.com/view/valencia-robotics

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

stranicama naših klubova

sites.google.com/view/valenciatechclub

Python skriptu dao je: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Arduino skriptu, prolazak i postavljanje kućne laboratorije uradio je: Dylan Poll

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

Ja sam Dylan Poll, trenutni sam predsjednik tehnološkog kluba našeg fakulteta, a također sam i voditelj ugrađenih sistema.

Supplies

A pi

Arduino

Matična ploča

kratkospojne žice

Web kamera

individualno adresabilna RGB LED traka

napajanje za vaš pi, tastatura miš, računar za početno podešavanje.

Korak 1: Preuzimanje i instaliranje datoteka početnog postavljanja

preuzmite i instalirajte kit (windows)

www.putty.org

preuzmite rufus i instalirajte

rufus.ie

preuzmite raspbian full buster i preporučeni softver (.zip)

www.raspberrypi.org/downloads/raspbian/

izdvojite sadržaj u.zip ovo će biti vaša [slikovna datoteka].

uzmite micro sd karticu, a zatim pomoću priključne stanice ili microsd -a usb uređaj i priključite u računalo formatirajte svoju sd karticu

Korak 2: drugi dio: Instalirajte Raspbian pomoću Rufusa

Drugi dio: Instalirajte Raspbian pomoću Rufusa
Drugi dio: Instalirajte Raspbian pomoću Rufusa

pokrenite rufus odaberite svoju SD karticu u prvom polju odaberite datoteku slike Raspbian za.iso/.img odaberite početak i pričekajte da se završi.

Korak 3: treći dio: Uključivanje Pi -a

nakon što to učinite, izvucite SD karticu, umetnite je u utor za SD karticu na pi, prvo na "donjem" priključku HDMI kabela do pi, zatim tipkovnicu i miša i posljednji kabel za napajanje. ako prvo uključite napajanje, možda neće registrirati vaš monitor/TV.

Korak 4: četvrti dio: Postavljanje računa

prijavite se na pi! izvršite prvo pokretanje! nemojte to preskočiti! odaberite američku englesku tastaturu ili kasnije nećete pronaći svoj simbol @ … ako to ne učinite, vaš simbol @ je mjesto gdje se nalazi ". prijavite se na svoj WiFi na pi još se ne ažurirate. Imam razlog. pritisnite tipku na Windows tipkovnici" "i idite na postavke, idite na konfiguraciju pi. idite na karticu sučelja.

omogući VNC…. i sve ostalo se ne restartuje.

Korak 5: peti dio: Postavljanje vašeg Pi -a bez glave (najbolja stvar ikad)

Dio peti: Postavljanje vašeg Pi -a bez glave (najbolja stvar ikad)
Dio peti: Postavljanje vašeg Pi -a bez glave (najbolja stvar ikad)

pogledajte u gornjem desnom uglu ekrana. vidjet ćete crno -plavi VNC logotip. otvori to. pritisnite prijavite se, napravite i račun. dodaj pi. na radnoj površini/prijenosnom računaru otvorite pretraživanje pretraživača na google VNC viewer preuzmite instalaciju. prijavite se na svoj račun. provjerite svoju e -poštu za prijavu i autorizirajte se. spojite se na svoj pi (upišite pi lozinku na drugom izborniku za prijavu) ako radi isključite svoj pi. iskljuci pi i sve. stavite pi u ugao svoje sobe i provucite samo kabel za napajanje do njega. možete se povezati na pi pomoću VNC preglednika. sada imate "bez glave" pi. možete mu dodati i SSH. (pogledajte SSH informacije u odjeljku cool stvari)

Korak 6: dio šest: Instaliranje svih osnovnih alata za razvoj na Pi -u

Dio šesti: Instaliranje svih osnovnih alata za razvoj na Pi -u
Dio šesti: Instaliranje svih osnovnih alata za razvoj na Pi -u

pomoću SSH -a ili VNC -a (ili ako ste odlučili da nije kul i postavite ga bez glave) učinite sljedeće. otvoreni terminal (ovaj sljedeći dio može potrajati …) pokrenite ove naredbe jednu po jednu nakon što se svaka ZAVRŠI.

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

Korak 7: sedmi dio: Instaliranje Adafruit WebIDE

Dio sedmi: Instaliranje Adafruit WebIDE
Dio sedmi: Instaliranje Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh otvorite preglednik na glavnoj radnoj površini. postavite URL vašeg preglednika na "https://***.*.*.***: 8080" zamijenite "*" lokalnom IP adresom vašeg Pi. napraviti korisničko ime i proći. sada imate adafruit webIDE postavku.

Korak 8: dio osam: Ažurirajte Node-red i Node.js

update-nodejs-and-nodered sljedeći kod će učiniti da se nodered pokreće pri pokretanju, baš kao i adafruit webIDE, ovo je važno ako želite da se razvijate na tim stvarima. sudo systemctl enable nodered.service ponovo pokrenite Pi

Korak 9: Deveti dio: Instaliranje Arduino IDE -a

Deveti dio: Instaliranje Arduino IDE -a
Deveti dio: Instaliranje Arduino IDE -a

možete to učiniti putem komandne linije, ali…. to neće biti puna verzija.. što znači da ne možete koristiti alat za uvoz/pretraživanje biblioteke, da biste instalirali punu verziju, morate otići na arduino web stranicu i preuzeti verziju za svoj pi model. to će biti ARM32bit za pi3, dobiti stabilno izdanje. otvorite terminal. (zamijenite *s podacima o izdanju) pokrenite ove naredbe.

www.arduino.cc/en/Main/Software

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

Korak 10: Deo 10: Ffmpeg

Deo deo: Ffmpeg
Deo deo: Ffmpeg

1x logitech web kamera

(sljedeće stavke ne uključuju ono što vam je potrebno za pokretanje 24/7 streama) 1x matična ploča druge maline pi model 3 b (sa SD karticom) pojedinačno adresirana LED traka. arduino nano kratkospojnik omogućuje VNC preglednik na oba Pi -a

pi postavke, omogućite vnc napravite račun pomoću VNC prikazivača VAŽNO: na pi -ju koji planirate koristiti kao javni radni sto, idite na postavke vnc servera, opcije, karticu stručnjaka i postavite vrijeme mirovanja: 0 sekundi, postavljeno je za zatvaranje Vnc -a Viewer ako je neaktivan nakon sat vremena, ovo će spriječiti zatvaranje prozora u sredini toka, instalirajte vnc viewer na streamer pi u terminalu.

sudo apt-get install vnc-java y

priključite web kameru i..instalirajte web kameru.

sudo apt install fswebcam

install ffmpeg sudo apt-get install ffmpeg y

tu nastupaju vaši izbori. u terminalu pokrenite ovu skriptu da otvorite prozor na radnoj površini streamer pi za vašu web kameru.

ffplay -window_title "pi -cam" /dev /video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay će vam omogućiti da vidite ovo u prozoru po imenu pi -cam, web kamera koju prikazuje vam je na lokaciji dev/video0 i originalna veličina je 1920x1080. Želim samo vidjeti crop = width: height: topleft_X: topleft_Y i brzina kadra od 20 mi je dovoljna. sljedeći kod će se slijediti kako bi se trzao.

ffmpeg -f x11grab -video_veličina 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -vf ljestvica = 1280x720 -c: v h264 -g 24 -b: v 2M -preset ultrabrzi -c: a aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (umetnite svoj tok ključa ovdje)"

-f x11grab se koristi za hvatanje vašeg ekrana. moja rezolucija ekrana je postavljena na 1280x1024 Želim to prikazati u 1280x720 dakle -vf video formatu.

2m = 2mgb brzina otpremanja. -f flv služi za formatiranje videozapisa u.flv kako bi ga twitch mogao koristiti.

sada možete svom timu predati svoje VNC vjerodajnice radnom stolu Pi i oni mogu daljinski vidjeti promjene LED trake uživo. Vikni ovom momku ~! njegov video mi je pomogao da dođem na pravi put, ipak sam morao smisliti kako ubaciti web kameru … i saznati o ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NAPOMENA: Nisam najinformiranija osoba, ovo jednostavno funkcionira za moje potrebe, ako netko ima konstruktivan savjet volio bih ga čuti, ali molim vas nemojte Jedan od mogućih puteva za dalje kretanje bio bi korištenje ovog mehaničara za prijenos, te korištenje drugog pi i svjetlosnog toka s proširenjem kroma za dohvaćanje tog prijenosa i zatim ubacivanje web kamere u to ili na bilo koji drugi način. https://www.youtube.com/embed/kb_5_9GkwZc TAKOĐER: ako želite dodati zvuk, kao što se vidi u mansovom YouTube videu, možete koristiti ovaj niz, nisam želio da se moja kuća snima i poslano na twitch, ovo sjedi u mojoj sobi pa ne emitiram nikakav zvuk, također pomaže smanjiti opterećenje pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i zadano -af kompresor = prag = 0,089: ratio = 9: attack = 200: release = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -namjenski ultrabrzi -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (umetnite svoj tok ključa ovdje")

Korak 11:

Image
Image
Image
Image
Image
Image
Image
Image

sada do posljednjeg dijela, implementacijom arduino i pi serijske komunikacije s pythonom.

--- projekt who is home --- Projekt koristi python skriptu koja pokreće nmap u terminalu, kopira njegov sadržaj, raščlanjuje tekst koji nam ne treba i uspoređuje mac adrese na mreži s navedenim mac adrese i ako postoji podudaranje ta osoba je kod kuće. mac adrese su pronađene istražnim radom na usmjerivaču, ali nmap alat vam daje informacije o uređajima u tekstualnoj datoteci koju generira kôd. ako je korisnik prisutan, šalje znak arduinu, a arduino čeka dok se kontrolna lista ne završi i pali LED diode koje odgovaraju profilima navedenim za mac adrese sadašnjih uređaja. možete dodati i druge stvari, na primjer da discord botovi pokreću naredbe nad ljudima koji dolaze ili odlaze s istim kodom pomoću operatora podprocesa za izvršavanje naredbi terminala u vašoj python skripti. pa prvo instaliramo nmap sudo apt-get install nmap. zatim ćete htjeti preuzeti datoteke na našim klubovima Git-Hub.

github.com/ValenciaRobotics/embeddedclub

za python kod, instalacija raspbian dolazi sa svime što se koristi u ovom kodu, tako da vam ne treba ništa dodatno instalirati. koristili smo import re, import subprocess, time import, import serial. Važno je napomenuti da python koristi uvlačenje za odvajanje blokova koda, stoga imajte na umu da ako odlučite promijeniti način pisanja koda:) py dolazi sa thonny ide i nekoliko drugih opcija, smatram da je pokretanje skripte u thonnyju vrlo jednostavno, ako kliknete na datoteku i pokušate je izvršiti, bilo je to sugestija ili pretpostavka da je thonny ono što ste htjeli koristiti. prije nego pokrenete program, morat ćete urediti sljedeće. red 14: simboli * koriste se za maskiranje vlastitih podataka o usmjerivaču, morat ćete to zamijeniti vlastitim lokalnim ip -om. to bi bilo isto kao i ono što koristite za povezivanje s usmjerivačem. redovi 28, 38, 48, 58: svi oni koriste simbol * za maskiranje mac adresa uređaja navedenih u mojoj mreži, morate ih promijeniti na mac adrese uređaja na vlastitoj mreži da biste otkrili veze. zasto mac adrese? jer bez rezervacije lokacija za vaš uređaj, oni će zasigurno ostati isti ako netko ne lažira. problema s ovim kodom, otkrit će se samo dok veza aktivno koristi internet, pa se možda neće otkriti unatoč prisutnosti korisnika. u arduino kodu želite promijeniti sljedeće. prvo ćete htjeti otići na karticu alati, odabrati upravitelja biblioteka, potražiti "fastLED" i instalirati biblioteku za "fastLED". zatim ćete morati učitati "who is home".ino kod sa stranice github i promijeniti sljedeće kako želite. linija 86: promijenite boje na osnovu onoga što želite da vaši korisnici prilože:)

// uključite ono što vam je potrebno

if (d == 1) {leds [0] = 0xdd8bff; // ljubičaste LED diode [1] = 0xdd8bff;}

if (l == 1) {leds [2] = CRGB:: Zeleno; LED diode [3] = CRGB:: Zelena;}

if (k == 1) {leds [4] = CRGB:: Crveno; LED diode [5] = CRGB:: Crveno; }

if (j == 1) {leds [6] = CRGB:: Plavo; LED diode [7] = CRGB:: Plava;}

FastLED.show (); kašnjenje (30000); // 10 sekundi čekanja na prekidaču Kratko objašnjenje kako dodati više korisnika je sljedeće

void loop () {{100} {101}

if (Serial.available ()> 0) {

Serial.println ();

person = Serial.read ();

kašnjenje (1000);

prekidač (osoba) {

slučaj 'D': d = 1;

person = 'F';

count = count+1;

break;

slučaj ':

d = 0;

person = 'F';

count = count+1;

break;

veliko D je primljeni znak iz python skripte, pa zna da je korisnik prisutan jer je primljeno slovo veliko D, pa mijenja vrijednost INTEGER d na 1, ako je malo slovo nego što zna su odsutni pa je INTEGER postavljen na 0. uvjet za osvjetljenje LED dioda u skripti od ranije koristi izjavu da je IF d 1 tada će zasvijetliti LED diodu, ali ako nije, ta LED dioda ostaje "crna" što znači neosvijetljeno. ovaj kôd koristi biblioteku "fastLED" i postoji mnogo dokumentacije o tome. imajte na umu da ako promijenite znakove, dodate znakove ili uklonite znakove, morat ćete promijeniti python skriptu da biste vratili one koje ste i vi promijenili, također ćete morati promijeniti stanje u void petlji. if (count == 4) {holdup ();}} broj će morati odražavati broj uređaja koje "pratite". u mom slučaju to je 4, pa čeka dok se 4 uređaja ne proglase prisutnima ili odsutnima, a zatim ažurira LED traku. u python kodu, redovi 31, 34, 41, 44, 51, 54, 61, 64 imaju sljedeću liniju ser.write (b ' *') #šalje znak baciran kao bajt preko serije gdje je * znak koji je slanje na arduino. promijenite ovo ako promijenite kôd u arduinu ili obrnuto:)

Opet, kao završnu riječ, želim odati priznanje svom saigraču Jonu, koji je odlično odradio posao kada je trebao kad je trebalo.

Python skriptu dao je: Jonathan De La Cruzhttttps: //www.linkedin.com/in/jonathandelacruz96/

Arduino skriptu, prolazak i postavljanje kućne laboratorije uradio je: Dylan Poll

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

Nadajmo se da ćemo osvojiti barem majicu! Ažurirat ću ovo naredbama ljuske za automatsko preuzimanje i instaliranje većine ovoga, web stranica naših klubova zapravo ima ljuske skripte koje se mogu preuzeti za obavljanje ffmpeg operacija.

Ovaj projekt mi je oduzeo puno vremena, osnovao sam ovu diviziju kluba od temelja pa s ponosom mogu reći da mi ovaj trenutak donosi mnogo radosti.:) hvala na vašem vremenu, zbog ovog projekta imamo radnu platformu za razvoj u mom klubu.

Preporučuje se: