Sommario:

Raspberry Pi HomeLab e chi è a casa: 11 passaggi
Raspberry Pi HomeLab e chi è a casa: 11 passaggi

Video: Raspberry Pi HomeLab e chi è a casa: 11 passaggi

Video: Raspberry Pi HomeLab e chi è a casa: 11 passaggi
Video: COME CONTROLLARE QUALSIASI PC DA REMOTO CON SOLO UN RASPBERRY PI 2024, Dicembre
Anonim
Raspberry Pi HomeLab e chi è a casa
Raspberry Pi HomeLab e chi è a casa
Raspberry Pi HomeLab e chi è a casa?
Raspberry Pi HomeLab e chi è a casa?
Raspberry Pi HomeLab e chi è a casa?
Raspberry Pi HomeLab e chi è a casa?
Raspberry Pi HomeLab e chi è a casa
Raspberry Pi HomeLab e chi è a casa

Questo è il mio primo indistruttibile, ma questo istruibile ha due aspetti.

faze one: sta configurando un pi per lavorare come un laboratorio domestico per il lavoro IOT per un team di sviluppatori studenti.

faze due: sta usando il sistema per lo sviluppo, implementando una dimostrazione usando il nostro progetto who is home.

alla fine di questo avrai un pi headless accessibile da remoto che può essere utilizzato dalle persone per programmare e lavorare in remoto su dispositivi IOT.

ora ti avverto che aprendo il tuo pi al pubblico senza la dovuta sicurezza ti esponi al rischio che la tua rete domestica venga attaccata.

esamineremo la prima fase nei passaggi seguenti, ma questo è un collegamento ad alcune informazioni sul nostro club e sul progetto Who is home.

github.com/ValenciaRobotics/embeddedclub

Chi èCasa

il progetto Who Is home fa quanto segue: esegue uno script python che controlla gli indirizzi mac dei dispositivi collegati alla rete. usa Nmap per questo. esegue quegli indirizzi contro un elenco di indirizzi e se l'indirizzo elencato è presente invia un carattere a un arduino utilizzando le comunicazioni seriali. l'arduino controlla una striscia LED e quando riceve un carattere ha un colore associato per quel dispositivo e accende i LED per quella persona in base alla sua presenza.

le nostre divisioni sottosito

sites.google.com/view/valencia-robotics

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

il sito dei nostri club

sites.google.com/view/valenciatechclub

lo script Python è stato fornito da: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

lo script Arduino e la procedura guidata e l'installazione del laboratorio domestico sono state eseguite da: Dylan Poll

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

Sono Dylan Poll, sono l'attuale presidente del club tecnologico del nostro college e sono anche il responsabile dei sistemi embedded.

Forniture

un pi

un arduino

Una breadboard

cavi per ponticelli

Una webcam

Striscia LED RGB indirizzabile individualmente

alimentatore per il tuo pi, una tastiera un mouse, un computer per eseguire la configurazione iniziale.

Passaggio 1: download e installazione dei file di installazione iniziale

scarica e installa putty (Windows)

www.putty.org

scarica rufus e installa

rufus.ie

scarica raspbian full buster e software consigliato (.zip)

www.raspberrypi.org/downloads/raspbian/

estrai il contenuto nel file.zip questo sarà il tuo [file immagine].

prendi una scheda micro sd e usa un dock o un dispositivo da microsd a usb e collegalo al tuo computer formatta la tua scheda sd

Passaggio 2: parte due: installare Raspbian utilizzando Rufus

parte seconda: installare Raspbian utilizzando Rufus
parte seconda: installare Raspbian utilizzando Rufus

esegui rufus seleziona la tua scheda sd nel primo campo seleziona il file immagine raspbian per.iso/.img seleziona start e attendi che finisca.

Passaggio 3: parte tre: collegare il Pi

dopo aver fatto ciò, estrai la scheda SD, inseriscila nello slot della scheda SD sul pi, prima collega il cavo HDMI al pi, poi una tastiera e un mouse e infine il cavo di alimentazione. se colleghi prima l'alimentazione, potrebbe non registrare il tuo monitor/tv.

Passaggio 4: parte quarta: configurazione del tuo account

accedi a pi ! fai la prima installazione! non saltarlo! seleziona la tastiera inglese USA o non troverai il tuo simbolo @ in seguito … se non lo fai il tuo simbolo @ è dove si trova il tuo ". accedi al tuo wifi su pi non aggiornare ancora. Ho un motivo. premi il tasto "tastiera Windows " e vai alle preferenze, vai alla configurazione pi. vai alla scheda interfacce.

abilitare VNC…. e tutto il resto non si riavvia.

Passaggio 5: parte quinta: impostare il tuo Pi come senza testa (la cosa migliore di sempre)

Parte quinta: impostare il tuo Pi come senza testa (la cosa migliore di sempre)
Parte quinta: impostare il tuo Pi come senza testa (la cosa migliore di sempre)

guarda in alto a destra dello schermo. vedrai il logo VNC nero e blu. apri quello. premi accedi, crea e account. aggiungere il pi. sul tuo desktop/laptop apri il browser cerca su google VNC viewer download install. Accedi al tuo account. controlla la tua email per il login e autorizzati. connettiti al tuo pi (digita la password pi nel secondo menu di accesso) se funziona spegni il tuo pi. scollega il tuo pi e tutto. metti il pi in un angolo della tua stanza e fai passare solo il cavo di alimentazione. puoi connetterti al pi usando il visualizzatore VNC. ora hai un pi greco "senza testa". puoi anche utilizzarlo tramite SSH. (vedi informazioni SSH nella sezione cose interessanti)

Passaggio 6: parte sei: installazione di tutti gli strumenti principali per lo sviluppo su un Pi

parte sesta: installazione di tutti gli strumenti principali per lo sviluppo su un Pi
parte sesta: installazione di tutti gli strumenti principali per lo sviluppo su un Pi

usando SSH o VNC (o se hai deciso di non essere cool e configurarlo senza testa) procedi come segue. apri terminale (questa parte successiva potrebbe richiedere un po' di tempo…) esegui questi comandi uno alla volta dopo che ognuno è FINITO.

sudo apt-get update; sudo apt-get upgrade installazione di ffmpeg{ sudo apt-get install ffmpeg

Passaggio 7: parte sette: installazione di Adafruit WebIDE

parte settima: installazione di Adafruit WebIDE
parte settima: installazione di Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh apri un browser sul desktop principale. punta l'URL del tuo browser su "https://***.*.*.***:8080" sostituisci "*" con l'indirizzo IP locale del tuo Pi. crea un nome utente e passa. ora hai la configurazione di adafruit webIDE.

Passaggio 8: parte otto: aggiornamento di Node-red e Node.js

update-nodejs-and-nodered il codice successivo farà eseguire nodered all'avvio proprio come il webIDE di adafruit, questo è importante se vuoi sviluppare su queste cose. sudo systemctl enable nodered.service riavvia il Pi

Passaggio 9: parte nove: installazione di Arduino IDE

parte nona: installazione di Arduino IDE
parte nona: installazione di Arduino IDE

puoi farlo tramite riga di comando ma…. non sarà la versione completa.. il che significa che non puoi utilizzare lo strumento di importazione/ricerca della libreria, per installare la versione completa devi andare sul sito Web di arduino e scaricare la versione per il tuo modello pi. sarà l'ARM32bit per il pi3, ottenere la versione stabile. apri terminale. (sostituisci gli * con le informazioni sulla versione) esegui questi comandi.

www.arduino.cc/en/Main/Software

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

Passaggio 10: Parte dieci: Ffmpeg

Parte dieci: Ffmpeg
Parte dieci: Ffmpeg

1x webcam logitech

(i prossimi elementi non includono ciò di cui hai bisogno per eseguire un flusso 24 ore su 24, 7 giorni su 7) 1x breadboard un secondo modello Raspberry pi 3 b (con scheda SD) striscia LED indirizzabile individualmente. Il cavo del ponticello arduino nano abilita il visualizzatore VNC su entrambi i Pi (s)

pi preferenze, abilita vnc crea un account con il visualizzatore VNC IMPORTANTE: sul pi che intendi utilizzare come banco di lavoro pubblico, vai alle impostazioni del server vnc, alle opzioni, alla scheda esperti e imposta il timeout di inattività: 0 secondi, è impostato per chiudere Vnc viewer se inattivo dopo un'ora, questa operazione interromperà la chiusura della finestra a metà del flusso installando il visualizzatore vnc sullo streamer pi nel terminale.

sudo apt-get install vnc-java y

collega la tua webcam e..installa la tua webcam.

sudo apt install fswebcam

install ffmpeg sudo apt-get install ffmpeg y

è qui che entrano in gioco le tue scelte. nel terminale, esegui questo script per aprire una finestra sul desktop del tuo streamer pi per la tua webcam.

ffplay -window_title "pi-cam" /dev/video0 -video_size 1920x1080 -vf crop=400:500:300:50 -framerate 20 ffplay ti permetterà di vederlo in una finestra chiamata pi-cam, la webcam che ti sta mostrando è nella posizione dev/video0 e la sua dimensione originale è 1920x1080. Voglio solo vedere il crop=width:height:topleft_X:topleft_Y e un framerate di 20 è sufficiente per me. il codice successivo verrà trasmesso in streaming su twitch.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -vf scale=1280x720 -c:v h264 -g 24 -b:v 2M -preset ultraveloce -c:a aac -pix_fmt yuv420p -f flv " rtmp://live-lax.twitch.tv/app/(insertyourstreamkeyhere)"

-f x11grab viene utilizzato per catturare lo schermo. la mia risoluzione dello schermo è impostata su 1280x1024 Voglio visualizzarlo nel formato video 1280x720, quindi -vf.

2 m = velocità di caricamento di 2 mgb. -f flv serve a formattare il video in.flv in modo che Twitch possa usarlo.

ora puoi dare al tuo team le tue credenziali VNC al workbench Pi e possono vedere le modifiche alla striscia led dal vivo da remoto. Grida a questo ragazzo~! il suo video mi ha aiutato a mettermi in carreggiata, ma dovevo ancora capire come inserire la mia webcam… e scoprire ffmpeg X/

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NOTA: non sono la persona più informata, funziona semplicemente per le mie esigenze, se qualcuno ha consigli costruttivi mi piacerebbe ascoltarli ma per favore non farlo essere una delle possibili strade per portarlo oltre, sarebbe usare questa meccanica per trasmettere questo, e usare un altro pi e l'estensione di Chrome lightstream per recuperare quel flusso e poi alimentare la webcam in quello o in qualsiasi altro modo. https://www.youtube.com/embed/kb_5_9GkwZc INOLTRE: se vuoi aggiungere dell'audio, come visto nel video youtube dell'uomo, puoi usare questa stringa, non volevo che la mia casa fosse registrata e inviato a twitch, questo è seduto nella mia stanza, quindi non trasmetto alcun audio, aiuta anche a ridurre il carico sul pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $DISPLAY -f alsa -i default -af acompressor=threshold=0.089:ratio=9:attack=200:release=1000 -vf scale=1280x720 -c:v h264 - g 24 -b:v 2M -preset ultraveloce -c:a aac -pix_fmt yuv420p -f flv "rtmp://live-lax.twitch.tv/app/(insertyourstreamkeyhere)"

Passaggio 11:

Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine
Immagine

ora al tratto finale, implementando la comunicazione seriale arduino e pi con python.

---il progetto who is home--- Il progetto utilizza uno script python che esegue nmap nel terminale, copia il contenuto di quello, analizza il testo di cui non abbiamo bisogno e confronta gli indirizzi mac sulla rete con quelli elencati indirizzi mac e se c'è una corrispondenza quella persona è a casa. gli indirizzi mac sono stati trovati effettuando un lavoro investigativo sul router, ma lo strumento nmap fornisce informazioni sui dispositivi nel file di testo generato dal codice. se l'utente è presente, invia un carattere all'arduino, e l'arduino attende che la check list sia terminata e accende i LED corrispondenti ai profili elencati per gli indirizzi mac dei dispositivi presenti. puoi aggiungere altre cose, come fare in modo che i robot discord eseguano comandi su persone che entrano o escono con questo stesso codice utilizzando l'operatore del sottoprocesso per eseguire i comandi del terminale all'interno del tuo script python. quindi prima installiamo nmap sudo apt-get install nmap. successivamente vorrai scaricare i file sui nostri club Git-Hub.

github.com/ValenciaRobotics/embeddedclub

per il codice python, l'installazione di raspbian viene fornita con tutto ciò che è utilizzato in questo codice, quindi non è necessario installare nulla di aggiuntivo. abbiamo usato import re, import subprocess, import time, import serial è importante notare che Python usa l'indentazione per separare i blocchi di codice, quindi tieni presente che se decidi di cambiare il modo in cui il codice è scritto:) il py viene fornito con thonny ide e alcune altre opzioni, trovo che eseguire lo script in thonny sia davvero semplice, se si fa clic sul file e si tenta di eseguirlo, è stato suggerito o si presume che thonny sia ciò che si desidera utilizzare. prima di eseguire il programma, sarà necessario modificare quanto segue. riga 14: i simboli * sono usati per mascherare le informazioni del mio router, dovrai sostituirlo con il tuo IP locale. sarebbe lo stesso di quello che usi per connetterti al tuo router. righe 28, 38, 48, 58: queste usano tutte il simbolo * per mascherare gli indirizzi mac dei dispositivi elencati dalla mia rete, devi cambiarli con gli indirizzi mac dei dispositivi sulla tua rete per rilevare le connessioni. perché indirizzi mac? perché senza riservare posizioni per il tuo dispositivo, sono sicuri che rimarranno gli stessi a meno che qualcuno non stia falsificando. problemi con questo codice, rileverà solo mentre una connessione sta utilizzando attivamente Internet, quindi potrebbe non essere rilevato nonostante la presenza di un utente. nel codice arduino, ti consigliamo di modificare quanto segue. per prima cosa, vorrai andare alla scheda strumenti, selezionare il gestore delle librerie e cercare "fastLED" e installare la libreria per "fastLED". successivamente dovrai caricare il codice.ino "who is home" dalla pagina github e modificare quanto segue come desideri. riga 86: cambia i colori in base a ciò che vuoi che i tuoi utenti abbiano allegato:)

//accendi quello che ti serve

if(d == 1){ led[0] = 0xdd8bff; //led viola[1] = 0xdd8bff;}

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

if(k == 1){ led[4] = CRGB::Rosso; led[5] = CRGB::Rosso; }

if(j == 1){ led[6] = CRGB::Blu; led[7] = CRGB::Blu;}

FastLED.show(); ritardo (30000); //10 secondi di attesa sul caso dello switch una breve spiegazione su come aggiungere più utenti è la seguente

ciclo vuoto(){

if (Serial.available() > 0) {

Serial.println();

persona = Serial.read();

ritardo(1000);

cambio(persona){

caso'D': d = 1;

persona = 'F';

conta=conta+1;

rottura;

caso':

d = 0;

persona = 'F';

conta=conta+1;

rottura;

la D maiuscola è il carattere ricevuto dallo script python, quindi sa che l'utente è presente perché la lettera ricevuta è la D maiuscola, quindi cambia il valore dell'INTERO d in 1, se è un minuscolo di quello che sa sono assenti, quindi INTEGER è impostato su 0. la condizione per l'illuminazione dei led nello script da prima utilizza un'istruzione che IF d è 1 allora accenderà il led, ma se non lo è quel led rimane "nero" che significa spento. questo codice utilizza la libreria "fastLED" e c'è molta documentazione su questo. nota che se cambi i caratteri, aggiungi caratteri o rimuovi caratteri dovrai cambiare lo script python per restituire quelli che hai cambiato anche tu, dovrai anche cambiare la condizione nel ciclo void. if(count == 4){holdup();} } il conteggio dovrà riflettere il numero di dispositivi che stai "tracciando". nel mio caso sono 4, quindi aspetta che siano dichiarati 4 dispositivi presenti o assenti e poi aggiorna la striscia led. nel codice python, le righe 31, 34, 41, 44, 51, 54, 61, 64 hanno la seguente riga ser.write(b'*') #sends carattere convertito come byte su seriale dove * è un carattere è invio all'arduino. cambia questo se cambi il codice nell'arduino o viceversa:)

Ancora una volta, come dichiarazione di chiusura, voglio dare credito al mio compagno di squadra Jon, ha fatto un ottimo lavoro nel recuperare il gioco quando ne avevamo bisogno.

lo script Python è stato fornito da: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/

lo script Arduino e la procedura guidata e l'installazione del laboratorio domestico sono state eseguite da: Dylan Poll

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

Speriamo di vincere almeno una maglietta! Lo aggiornerò con i comandi shell per scaricare automaticamente e installare la maggior parte di questo, il sito Web del nostro club ha effettivamente script di shell scaricabili per eseguire le operazioni ffmpeg.

Questo progetto ha richiesto molto tempo, ho fondato questa divisione del club da zero quindi posso dire con orgoglio che questo momento mi porta molta gioia.:) grazie per il tuo tempo, abbiamo una piattaforma di lavoro da sviluppare ora nel mio club grazie a questo progetto.

Consigliato: