Cuprins:

Raspberry Pi HomeLab și cine este acasă: 11 pași
Raspberry Pi HomeLab și cine este acasă: 11 pași

Video: Raspberry Pi HomeLab și cine este acasă: 11 pași

Video: Raspberry Pi HomeLab și cine este acasă: 11 pași
Video: Automatizari fotovoltaice incepatori Ep.1: Instalare și prezentare Solar Assistant 2024, Iulie
Anonim
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă
Raspberry Pi HomeLab și Cine este acasă

Acesta este primul meu indestructibil, dar acest instructabil are două faze.

faze one: înființează un pi pentru a lucra ca un laborator de acasă pentru munca IOT pentru o echipă de dezvoltatori studenți.

faze two: folosește sistemul pentru dezvoltare, implementând o demonstrație folosind proiectul nostru cine este acasă.

până la sfârșitul acestui lucru, veți avea un pi fără cap accesibil de la distanță, care poate fi folosit de oameni pentru a programa și lucra de la distanță pe dispozitive IOT.

acum avertizez că, deschizându-vă pi-ul către public fără siguranța cuvenită, vă expuneți riscului de a vă ataca rețeaua de domiciliu.

vom trece peste prima faze în pașii următori, dar acesta este un link către câteva informații despre clubul nostru și proiectul cine este acasă.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

proiectul Who Is home face următoarele: rulează un script python care verifică adresele Mac ale dispozitivelor conectate la rețeaua dvs. folosește Nmap pentru aceasta. rulează acele adrese pe o listă de adrese și dacă adresa listată este prezentă, trimite un caracter către un arduino utilizând comunicații seriale. arduino controlează o bandă LED și atunci când primește un caracter are o culoare asociată pentru dispozitivul respectiv și aprinde LED-urile pentru acea persoană pe baza faptului că acestea sunt prezente.

subsite-ul diviziunilor noastre

sites.google.com/view/valencia-robotics

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

site-ul cluburilor noastre

sites.google.com/view/valenciatechclub

Scriptul Python a fost furnizat de: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

Scriptul Arduino și parcurgerea și configurarea laboratorului de acasă au fost realizate de: Dylan Poll

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

Sunt Dylan Poll, sunt actualul președinte al clubului de tehnologie al colegiului nostru și sunt, de asemenea, liderul sistemelor încorporate.

Provizii

Un pi

Un arduino

O placă de măsurare

fire jumper

O cameră web

Benzi LED RGB adresabile individual

sursa de alimentare pentru pi, o tastatură un mouse, computer pentru a face configurarea inițială.

Pasul 1: Descărcarea și instalarea fișierelor de configurare inițiale

descărcați și instalați chitul (Windows)

www.putty.org

descărcați rufus și instalați

rufus.ie

descărcați raspbian full buster și software-ul recomandat (.zip)

www.raspberrypi.org/downloads/raspbian/

extrageți conținutul din.zip acesta va fi [fișierul dvs. imagine].

luați un card micro SD și utilizați un doc sau un microsd pentru a conecta dispozitivul USB și conectați-l la computer în formatul cardului SD

Pasul 2: partea a doua: Instalați Raspbian folosind Rufus

Partea a doua: Instalați Raspbian folosind Rufus
Partea a doua: Instalați Raspbian folosind Rufus

rufus selectați cardul SD în primul câmp selectați fișierul de imagine raspbian pentru.iso /.img select start și așteptați să se termine.

Pasul 3: partea a treia: Conectarea Pi

după ce ați terminat, scoateți cardul SD, puneți-l în slotul pentru card SD de pe pi, conectați cablul HDMI la pi, mai întâi decât tastatura și mouse-ul și ultimul cablu de alimentare. dacă conectați mai întâi alimentarea, este posibil să nu vă înregistrați monitorul / televizorul.

Pasul 4: partea a patra: Configurarea contului dvs

conectați-vă la pi! efectuați prima configurare! nu o săriți! selectați tastatura engleză SUA sau nu veți găsi simbolul dvs. @ mai târziu … dacă nu faceți acest simbol @ este locul în care vă aflați. Conectați-vă la wifi pe pi, nu vă actualizați încă. Am un motiv. apăsați tasta „tastatură Windows și accesați preferințe, accesați configurația pi. accesați fila interfețe.

activați VNC …. și orice altceva nu repornește.

Pasul 5: partea a cincea: Configurarea Pi-ului dvs. fără cap (cel mai bun lucru vreodată)

Partea a cincea: Configurarea Pi-ului tău fără cap (cel mai bun lucru vreodată)
Partea a cincea: Configurarea Pi-ului tău fără cap (cel mai bun lucru vreodată)

uită-te la colțul din dreapta sus al ecranului. veți vedea sigla VNC alb-negru. deschide asta. apăsați conectați-vă, marca și contul. adaugă pi. pe desktop / laptop deschideți căutarea browserului pe Google VNC viewer download instalare. conecteaza-te la contul tau. verificați-vă e-mailul pentru autentificare și autorizați-vă. conectați-vă la pi (introduceți parola pi la al doilea meniu de conectare) dacă funcționează, opriți-vă pi. deconectează-ți pi-ul și orice. puneți pi într-un colț din camera dvs. și rulați doar cablul de alimentare la acesta. vă puteți conecta la pi utilizând vizualizatorul VNC. acum aveți un pi „fără cap”. poți, de asemenea, să-l SSH (vezi informații SSH în secțiunea chestii interesante)

Pasul 6: partea a șasea: Instalarea tuturor instrumentelor de bază pentru dezvoltarea pe un Pi

Partea a șasea: Instalarea tuturor instrumentelor de bază pentru dezvoltarea pe un Pi
Partea a șasea: Instalarea tuturor instrumentelor de bază pentru dezvoltarea pe un Pi

folosind SSH sau VNC (sau dacă ați decis să nu fiți cool și să-l configurați fără cap) faceți următoarele. terminalul deschis (următoarea parte poate dura ceva timp …) rulați aceste comenzi pe rând după ce fiecare este FINALIZATĂ.

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

Pasul 7: partea a șaptea: Instalarea Adafruit WebIDE

Partea a șaptea: Instalarea Adafruit WebIDE
Partea a șaptea: Instalarea Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh deschide un browser pe desktopul principal. indicați adresa URL a browserului spre „https://***.*.*.***: 8080” înlocuiți „*” cu adresa IP locală a Pi. creați un nume de utilizator și treceți. acum aveți configurarea adafruit webIDE.

Pasul 8: partea a opta: Actualizați Node-red și Node.js

update-nodejs-and-nodered următorul cod va face nodered să ruleze la pornire la fel ca adafruit webIDE, acest lucru este important dacă doriți să dezvoltați aceste lucruri. sudo systemctl enable nodered.service reporniți Pi

Pasul 9: partea nouă: Instalarea Arduino IDE

Partea nouă: Instalarea Arduino IDE
Partea nouă: Instalarea Arduino IDE

o puteți face prin linia de comandă, dar … nu va fi versiunea completă.. adică nu puteți folosi instrumentul de import / căutare a bibliotecii, pentru a instala versiunea completă, trebuie să accesați site-ul web arduino și să descărcați versiunea pentru modelul dvs. pi. va fi ARM32bit pentru pi3, obțineți lansarea stabilă. deschideți terminalul (înlocuiți * cu informațiile de lansare) executați aceste comenzi.

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

Pasul 10: Partea a zecea: Ffmpeg

Partea a zecea: Ffmpeg
Partea a zecea: Ffmpeg

1x cameră web logitech

(Următoarele articole nu includ ceea ce aveți nevoie pentru a rula un flux 24/7) 1x panou de testare un al doilea raspberry pi model 3 b (cu card SD) bandă LED adresabilă individual. sârmă jumper arduino nano permite vizualizarea VNC pe ambele piese

preferințe pi, activați vnc faceți un cont cu vizualizatorul VNC IMPORTANT: pe pi pe care intenționați să îl utilizați ca bancă de lucru public, accesați setările serverului vnc, opțiuni, fila expert și efectuați un timeout inactiv: 0 secunde, este setat să închideți Vnc vizualizator dacă este inactiv după o oră, acest lucru va opri fereastra de la închiderea fluxului mediu. Instalați vizualizatorul vnc pe streamer pi în terminal.

sudo apt-get install vnc-java y

conectați camera web și..instalați camera web.

sudo apt instalează fswebcam

instalează ffmpeg sudo apt-get instalează ffmpeg y

aici intervin propriile alegeri. în terminal, rulați acest script pentru a deschide o fereastră pe desktop-ul streamerului pi pentru camera dvs. web.

ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay vă va permite să vedeți acest lucru într-o fereastră numită pi-cam, camera web vă arată la locația dev / video0 și dimensiunea sa originală este 1920x1080. Vreau doar să văd crop = width: height: topleft_X: topleft_Y și o frecvență de 20 este suficientă pentru mine. următorul cod se va transmite în flux.

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/ (insertyourstreamkey here)"

-f x11grab este folosit pentru a vă lua ecranul. rezoluția ecranului meu este setată la 1280x1024 Vreau să o afișez în format video 1280x720 deci -vf.

2m = 2mgb rata de încărcare. -f flv este de a formata videoclipul în.flv, astfel încât Twitch să îl poată folosi.

acum puteți oferi echipei dvs. acreditările dvs. VNC către bancul de lucru Pi și acestea pot vedea modificările la banda LED live de la distanță. Strigă-i tipului ăsta ~! videoclipul lui m-a ajutat să intru pe drumul cel bun, totuși a trebuit să-mi dau seama cum să intru în camera mea web … și să aflu despre ffmpeg X /

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NOTĂ: Nu sunt cea mai informată persoană, asta funcționează pur și simplu pentru nevoile mele, dacă cineva are sfaturi constructive mi-ar plăcea să-l aud, dar vă rog să nu Fii una dintre rutele posibile pentru a duce acest lucru mai departe, ar fi să folosești acest mecanic pentru a transmite acest flux și să folosești un alt pi și extensia de lumină cromată pentru a prelua acel flux și decât să alimentezi camera web în acel sau în orice alt mod. https://www.youtube.com/embed/kb_5_9GkwZc ȘI: dacă doriți să adăugați audio, așa cum se vede în videoclipul mans youtube, puteți utiliza acest șir, nu am vrut ca casa mea să fie înregistrată și trimis la zvâcnire, acesta stă în camera mea, așa că nu transmit niciun sunet, de asemenea, ajută la diminuarea sarcinii pe pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i implicit -af acompressor = prag = 0,089: raport = 9: atac = 200: eliberare = 1000 -vf scala = 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/ (insertyourstreamkey here)"

Pasul 11:

Imagine
Imagine
Imagine
Imagine
Imagine
Imagine
Imagine
Imagine

acum la treapta finală, implementând comunicarea serială arduino și pi cu python.

--- proiectul cine este acasă --- Proiectul folosește un script python care rulează nmap în terminal, copiază conținutul acestuia, analizează textul de care nu avem nevoie și compară adresele Mac din rețea cu cele listate adresele Mac și dacă există o potrivire, acea persoană este acasă. adresele Mac au fost găsite făcând lucrări de investigație pe router, dar instrumentul nmap vă oferă informații despre dispozitivele din fișierul text generat de cod. dacă utilizatorul este prezent, acesta trimite un caracter către arduino, iar arduino așteaptă până când lista de verificare este terminată și aprinde LED-uri corespunzătoare profilurilor listate pentru adresele Mac ale dispozitivelor actuale. puteți adăuga alte lucruri, cum ar fi ca roboții discord să execute comenzi către persoanele care vin sau merg cu același cod folosind operatorul de subproces pentru a executa comenzi de terminal în scriptul dvs. python. deci mai întâi instalăm nmap sudo apt-get install nmap. în continuare veți dori să descărcați fișierele de pe cluburile noastre Git-Hub.

github.com/ValenciaRobotics/embeddedclub

pentru codul python, instalarea raspbian vine cu tot ceea ce este folosit în acest cod, deci nu aveți nevoie de nimic suplimentar instalat. am folosit import re, import subproces, timp de import, import serial, este important să rețineți că python folosește indentare pentru separarea blocurilor de cod, deci fiți conștienți de faptul că, dacă decideți să schimbați modul în care este scris codul:), py vine cu Thonny ide și câteva alte opțiuni, consider că rularea scriptului în Thonny este foarte simplă, dacă faceți clic pe fișier și încercați să-l executați, a fost sugerat sau presupuneți că Thonny este ceea ce doriți să utilizați. înainte de a rula programul, va trebui să editați următoarele. linia 14: simbolurile * sunt folosite pentru a masca propriile informații despre router, va trebui să le înlocuiți cu propriul dvs. IP local. ar fi la fel ca ceea ce utilizați pentru a vă conecta la router. liniile 28, 38, 48, 58: toate folosesc simbolul * pentru a masca adresele MAC ale dispozitivelor listate din rețeaua mea, trebuie să le schimbați la adresele mac ale dispozitivelor din propria rețea pentru a detecta conexiunile. de ce adresele Mac? pentru că, fără a rezerva locații pentru dispozitivul dvs., vor rămâne la fel cu excepția cazului în care cineva falsifică. probleme cu acest cod, acesta va fi detectat numai în timp ce o conexiune utilizează activ internetul, deci este posibil să nu fie detectat în ciuda prezenței unui utilizator. în codul arduino, veți dori să modificați următoarele. mai întâi, veți dori să accesați fila Instrumente, să selectați managerul de biblioteci și să căutați „fastLED” și să instalați biblioteca pentru „fastLED”. apoi va trebui să încărcați codul.ino "cine este acasă" din pagina github și să schimbați următoarele după cum doriți. linia 86: modificați culorile în funcție de ceea ce doriți să atașeze utilizatorii dvs.:)

// pornește ceea ce ai nevoie

if (d == 1) {leds [0] = 0xdd8bff; // leduri violete [1] = 0xdd8bff;}

if (l == 1) {leds [2] = CRGB:: Green; leduri [3] = CRGB:: Verde;}

if (k == 1) {leds [4] = CRGB:: Red; leduri [5] = CRGB:: Roșu; }

if (j == 1) {leds [6] = CRGB:: Blue; leduri [7] = CRGB:: Albastru;}

FastLED.show (); întârziere (30000); // 10 secunde așteptați pe comutator, o scurtă explicație pentru cum să adăugați mai mulți utilizatori este următoarea

bucla nulă () {

if (Serial.available ()> 0) {

Serial.println ();

persoana = Serial.read ();

întârziere (1000);

comuta (persoană) {

cazul „D”: d = 1;

persoana = 'F';

număr = număr + 1;

pauză;

cu majuscule:

d = 0;

persoana = 'F';

număr = număr + 1;

pauză;

majuscula D este caracterul primit din scriptul python, deci știe că utilizatorul este prezent deoarece litera primită este majuscula D, deci schimbă valoarea INTEGERului d la 1, dacă este o minusculă decât știe că sunt absente, astfel încât INTEGER-ul este setat la 0. condiția pentru iluminarea led-urilor în scriptul dinainte folosește o afirmație că IF d este 1 decât va aprinde ledul, dar dacă nu este acel led rămâne „negru”, adică neluminat. acest cod folosește biblioteca „fastLED” și există o mulțime de documentații despre asta. rețineți că, dacă schimbați caracterele, adăugați caractere sau eliminați caractere, va trebui să schimbați scriptul python pentru a le returna și pe cele pe care le-ați schimbat, va trebui, de asemenea, să schimbați condiția din bucla de gol. if (count == 4) {holdup ();}} count va trebui să reflecte numărul de dispozitive pe care le „urmăriți”. în cazul meu este 4, așa că așteaptă până când 4 dispozitive au fost declarate prezente sau absente și apoi actualizează banda LED. în codul python, liniile 31, 34, 41, 44, 51, 54, 61, 64 au următoarea linie ser.write (b '*') # trimite caracter lansat ca octet peste serial unde * este un caracter este trimiterea la arduino. schimbați acest lucru dacă modificați codul din arduino sau invers:)

Din nou, ca o declarație de încheiere, vreau să-i dau credit colegului meu de echipă Jon, el a făcut o treabă minunată când a avut nevoie de ea.

Scriptul Python a fost furnizat de: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

Scriptul Arduino și parcurgerea și configurarea laboratorului de acasă au fost realizate de: Dylan Poll

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

Sperăm că vom câștiga cel puțin un tricou! Voi actualiza acest lucru cu comenzi shell pentru a descărca și instala automat cele mai multe dintre acestea, site-ul nostru al cluburilor are de fapt scripturi shell descărcabile pentru a efectua operațiile ffmpeg.

Acest proiect a durat mult, am fondat această divizie a clubului de la bază, așa că pot spune cu mândrie că acest moment îmi aduce multă bucurie.:) Mulțumesc pentru timpul acordat, avem o platformă de lucru de dezvoltat acum în clubul meu datorită acestui proiect.

Recomandat: