Sommario:
- Forniture
- Passaggio 1: download e installazione dei file di installazione iniziale
- Passaggio 2: parte due: installare Raspbian utilizzando Rufus
- Passaggio 3: parte tre: collegare il Pi
- Passaggio 4: parte quarta: configurazione del tuo account
- Passaggio 5: parte quinta: impostare il tuo Pi come senza testa (la cosa migliore di sempre)
- Passaggio 6: parte sei: installazione di tutti gli strumenti principali per lo sviluppo su un Pi
- Passaggio 7: parte sette: installazione di Adafruit WebIDE
- Passaggio 8: parte otto: aggiornamento di Node-red e Node.js
- Passaggio 9: parte nove: installazione di Arduino IDE
- Passaggio 10: Parte dieci: Ffmpeg
- Passaggio 11:
Video: Raspberry Pi HomeLab e chi è a casa: 11 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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
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)
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
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
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
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
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:
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:
[15min] Orologio Weasley/Indicatore chi è a casa - Basato su TR-064 (beta): 4 passaggi (con immagini)
[15min] Indicatore orologio Weasley/Chi è a casa - Basato su TR-064 (beta): AGGIORNAMENTO: vedere il passaggio 3. Storia lunga (TL; DR sotto): Qualche tempo fa ho scritto un piccolo script bash sul mio computer che sarebbe scansiona la rete alla ricerca di dispositivi registrati e confronta i loro nomi host con un elenco con i nomi associati. Ogni volta che un dispositivo registra
Google Glass/Aiuto per chi ha la vista a tunnel: 5 passaggi (con immagini)
Google Glass/Aiuto per chi ha una visione a tunnel del povero uomo: Riassunto: questo progetto trasmette video in diretta da una telecamera fish-eye su un display head-up indossabile. Il risultato è un campo visivo più ampio all'interno di un'area più piccola (il display è paragonabile a uno schermo da 4" a 12" di distanza dall'occhio e le uscite a 720
Corsa leggera! Chi ha la luce più veloce!?: 3 passaggi
Corsa leggera! Chi ha la luce più veloce!?: Giocare a qualsiasi gioco è bello e divertente, ma quando puoi crearlo da solo è decisamente meglio! Quindi sono abituato a giocare con arduino e ledstrip, quindi ho fatto una gara leggera con esso. Spieghiamo come divertirsi e giocare non importa la tua età perché
Tagliare e ricollegare le strisce luminose Phillips Hue (per chi non è molto abile con la saldatura): 6 passaggi
Tagliare e ricollegare le strisce luminose Phillips Hue (per quelli di noi non troppo esperti con la saldatura): se sei abile con la saldatura, qui c'è un buon post di "ruedli" su come farlo senza tagliare a metà i pad di saldatura .Questi passaggi sono per quelli di noi che hanno familiarità, ma non sono molto abili con la saldatura. Ho fatto vendita di base
Chi c'è alla porta, un sistema di telecamere attivato da Alexa: 3 passaggi
Chi è alla porta, un sistema di telecamere attivato da Alexa: a volte mentre guardi la TV non vuoi rispondere alla porta a meno che non sia importante. Questo progetto ti consente di visualizzare la persona alla porta semplicemente dicendo al dispositivo Echo di Amazon "Alexa, accendi il monitor della porta". Controlla chi appare