Taula de continguts:

Raspberry Pi HomeLab i Who Is Home: 11 passos
Raspberry Pi HomeLab i Who Is Home: 11 passos

Vídeo: Raspberry Pi HomeLab i Who Is Home: 11 passos

Vídeo: Raspberry Pi HomeLab i Who Is Home: 11 passos
Vídeo: Upgrade your Raspberry Pi to a Homelab (instead of a Raspberry Pi 5) 2024, Desembre
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

Aquest és el meu primer indestructible, però aquest instructiu té dues fases.

faze one: està configurant un pi per treballar com a laboratori casolà de treballs IOT per a un equip de desenvolupadors d'estudiants.

faze two: utilitza el sistema per al desenvolupament, implementant una demostració amb el nostre projecte de qui és casa.

al final, tindreu un pi sense cap accessible de manera remota que la gent pot utilitzar per programar i treballar remotament en dispositius IOT.

ara adverteixo que, en obrir el vostre pi al públic sense la seguretat deguda, us obriu al risc de tenir atacada la vostra xarxa domèstica.

repassarem el primer faze en els següents passos, però aquest és un enllaç a informació sobre el nostre club i el projecte de qui és casa.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

el projecte Who Is home fa el següent: executa un script python que comprova les adreces mac dels dispositius connectats a la vostra xarxa. utilitza Nmap per a això. executa aquestes adreces contra una llista d'adreces i, si l'adreça indicada és present, envia un caràcter a un arduino mitjançant comunicacions en sèrie. l'arduino controla una tira de LED i, quan rep un caràcter, té un color associat per a aquest dispositiu i il·lumina els LED de la persona en funció que estiguin presents.

el nostre lloc web de divisions

sites.google.com/view/valencia-robotics

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

el lloc dels nostres clubs

sites.google.com/view/valenciatechclub

l’escriptura Python va ser proporcionada per: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

l’escriptura Arduino i el recorregut i configuració del laboratori casolà els va fer: Dylan Poll

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

Sóc Dylan Poll, sóc l'actual president del club tecnològic de la nostra universitat i també sóc el líder de sistemes incrustats.

Subministraments

Un pi

Un arduino

Una pissarra

cables de pont

Una càmera web

tira LED RGB adreçable individualment

font d'alimentació del vostre pi, un teclat i un ratolí, ordinador per fer la configuració inicial.

Pas 1: descarregar i instal·lar fitxers de configuració inicial

descarregar i instal·lar massilla (Windows)

www.putty.org

descarregueu rufus i instal·leu-lo

rufus.ie

descarregueu raspbian full buster i el programari recomanat (.zip)

www.raspberrypi.org/downloads/raspbian/

extreu el contingut al fitxer.zip, aquest serà el vostre [fitxer d'imatge].

agafeu una targeta micro SD i utilitzeu un moll o un dispositiu micro per connectar-lo al vostre ordinador formatant la targeta SD

Pas 2: segona part: instal·leu Raspbian mitjançant Rufus

Segona part: Instal·leu Raspbian mitjançant Rufus
Segona part: Instal·leu Raspbian mitjançant Rufus

executeu rufus seleccioneu la vostra targeta sd al primer camp, seleccioneu el fitxer d'imatge raspbian per a.iso /.img select start i espereu que acabi.

Pas 3: tercera part: endollar el Pi

Un cop fet això, traieu la targeta sd, poseu-la a la ranura de la targeta sd del pi, en primer lloc el connector "HDMI" del cable HDMI que el teclat i el ratolí i l'últim cable d'alimentació. si primer connecteu l’alimentació, pot ser que no registri el vostre monitor / televisor.

Pas 4: quarta part: configuració del vostre compte

inicieu la sessió a pi! feu la primera configuració d'execució! no ho salteu! seleccioneu el teclat anglès dels EUA o no trobareu el vostre símbol @ més endavant … si no el vostre símbol @ és on es troba ". Inicieu sessió al vostre wifi a pi encara no actualitzeu. Tinc un motiu. Premeu la tecla del teclat de Windows "i aneu a les preferències, aneu a la configuració pi. aneu a la pestanya interfícies.

activa VNC …. i la resta no es reinicien.

Pas 5: cinquena part: configurar el Pi com sense cap (el millor de la història)

Cinquena part: configurar el vostre Pi com sense cap (el millor de la història)
Cinquena part: configurar el vostre Pi com sense cap (el millor de la història)

mireu la part superior dreta de la pantalla. veureu el logotip VNC en negre i blau. obriu això. premeu inici de sessió, marca i compte. afegir el pi. al vostre escriptori / portàtil obriu la cerca del navegador a Google VNC viewer instal·leu la descàrrega. inicieu sessió al vostre compte. comproveu el vostre correu electrònic per iniciar la sessió i autoritzeu-vos. connecteu-vos al vostre pi (escriviu la contrasenya pi al segon menú d’inici de sessió) si funciona, desactiveu el vostre pi. desconnecteu el pi i tot. col·loqueu el pi en una cantonada de la vostra habitació i poseu-hi només el cable d'alimentació. podeu connectar-vos al pi mitjançant el visualitzador VNC. ara teniu un pi "sense cap". també hi podeu SSH (consulteu la informació SSH a la secció de coses interessants)

Pas 6: sisena part: instal·lació de totes les eines bàsiques per desenvolupar en un Pi

Part sisena: Instal·lació de totes les eines bàsiques per al desenvolupament en un Pi
Part sisena: Instal·lació de totes les eines bàsiques per al desenvolupament en un Pi

fent servir SSH o VNC (o si heu decidit no estar bé i configurar-lo sense cap) feu el següent. terminal obert (aquesta part següent pot trigar una estona …) a executar aquestes ordres una a la vegada després que cadascuna hagi acabat.

sudo apt-get update; sudo apt-get upgrade instal·lant ffmpeg {sudo apt-get install ffmpeg

Pas 7: setena part: Instal·lació d'Adafruit WebIDE

Part set: Instal·lació d'Adafruit WebIDE
Part set: Instal·lació d'Adafruit WebIDE

rínxol https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh obriu un navegador a l'escriptori principal. apunteu l'URL del navegador a "https://***.*.*.***: 8080" substituïu el "*" per l'adreça IP local del vostre Pi. fes un nom d'usuari i passa. ara teniu la configuració d’AdAFruit webIDE.

Pas 8: vuitena part: actualitzeu Node-red i Node.js

update-nodejs-and-nodered el següent codi farà que nodered s'executi a l'inici igual que l'adafruit webIDE, això és important si voleu desenvolupar-vos sobre aquestes coses. sudo systemctl enable nodered.service reinicieu el Pi

Pas 9: part nou: instal·lar Arduino IDE

Part Nine: Instal·lació d'IDE Arduino
Part Nine: Instal·lació d'IDE Arduino

ho podeu fer mitjançant la línia d'ordres però …. no serà la versió completa.. és a dir, no podeu utilitzar l'eina d'importació / cerca de la biblioteca, per instal·lar la versió completa heu d'anar al lloc web arduino i descarregar la versió del vostre model pi. serà el ARM32bit per al pi3, obtingueu la versió estable. terminal obert. (substituïu el * per la informació de la versió) executeu aquestes ordres.

www.arduino.cc/ca/Main/Software

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

Pas 10: deu part: Ffmpeg

Part deu: Ffmpeg
Part deu: Ffmpeg

1 càmera web logitech

(Els elements següents no inclouen el que necessiteu per executar un flux 24/7) 1x tauleta de pa un segon raspberry pi model 3 b (amb targeta sd) tira LED dirigible individualment. el cable de jumper nano arduino habilita el visor VNC en ambdós Pi (s)

preferències pi, activeu vnc, feu un compte amb el visualitzador VNC IMPORTANT: al pi teniu previst utilitzar-lo com a banc de treball públic, aneu a la configuració del servidor vnc, a les opcions, a la pestanya expert i feu un temps d'espera inactiu: 0 segons, està definit per tancar Vnc visualitzador si està inactiu al cap d'una hora, fent això, la finestra deixarà de tancar el flux mitjà. Instal·leu el visualitzador vnc al streamer pi al terminal.

sudo apt-get install vnc-java y

connecteu la vostra càmera web i..instal·leu-la.

sudo apt install fswebcam

instal·la ffmpeg sudo apt-get instal·la ffmpeg y

aquí és on entren en joc les vostres pròpies opcions. al terminal, executeu aquest script per obrir una finestra a l'escriptori del vostre streamer pi per a la vostra càmera web.

ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay us permetrà veure això en una finestra anomenada pi-cam, la càmera web que us mostra és a la ubicació dev / video0 i la seva mida original és 1920x1080. Només vull veure el crop = width: height: topleft_X: topleft_Y i un fotograma de 20 és suficient per a mi. el següent codi es transmetrà a contracció.

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: aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

-f x11grab s’utilitza per agafar la pantalla. la resolució de la meva pantalla està definida a 1280x1024. Vull mostrar-la en format de vídeo 1280x720 per tant -vf.

2 m = 2 mg de velocitat de càrrega. -f flv consisteix a formatar el vídeo a.flv perquè twitch el pugui utilitzar.

ara podeu proporcionar al vostre equip les vostres credencials VNC al banc de treball Pi i podran veure els canvis de la tira LED en directe. Crida a aquest noi ~! el seu vídeo em va ajudar a començar el camí, tot i així, havia de descobrir com aparèixer a la meva càmera web … i informar-me sobre ffmpeg X /

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NOTA: No sóc la persona més informada, simplement funciona per a les meves necessitats. Si algú té consells constructius, m'encantaria escoltar-lo, però si us plau no ho faci. ser una de les rutes possibles per portar-ho més enllà, seria utilitzar aquesta mecànica per transmetre-ho, i utilitzar un altre pi i l'extensió de llum cromada per obtenir aquest flux i alimentar la càmera web d'aquesta manera o de qualsevol altra manera. https://www.youtube.com/embed/kb_5_9GkwZc TAMBÉ: si voleu afegir àudio, tal com es veu al vídeo de youtube mans, podeu utilitzar aquesta cadena, no volia que la meva casa es gravés i enviat a contracció, està assegut a la meva habitació, de manera que no emet cap àudio, també ajuda a disminuir la càrrega del 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 ultrafast -c: aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

Pas 11:

Imatge
Imatge
Imatge
Imatge
Imatge
Imatge
Imatge
Imatge

ara a la recta final, implementant la comunicació serial arduino i pi amb python.

--- el projecte who is home --- El projecte utilitza un script python que executa nmap al terminal, copia el contingut, analitza el text que no necessitem i compara les adreces mac de la xarxa amb les llistades adreces Mac i, si hi ha coincidències, aquesta persona és a casa. les adreces mac es van trobar fent una investigació al router, però l'eina nmap us proporciona informació sobre els dispositius del fitxer de text generat pel codi. si l’usuari hi és present, envia un caràcter a l’arduino i l’arduino espera fins que es faci la llista de comprovació i il·lumina els LED corresponents als perfils llistats per a les adreces mac dels dispositius actuals. podeu afegir altres coses, com fer que els bots de discòrdia executin ordres a persones que vinguin o vagin amb aquest mateix codi mitjançant l'operador de subprocés per executar ordres de terminal dins del vostre script python. primer, doncs, instal·lem nmap sudo apt-get install nmap. a continuació, voldreu descarregar els fitxers als nostres clubs Git-Hub.

github.com/ValenciaRobotics/embeddedclub

per al codi python, la instal·lació raspbian inclou tot el que s'utilitza en aquest codi, de manera que no necessiteu res addicional instal·lat. hem utilitzat la importació re, la importació de subprocessos, el temps d’importació, la importació de sèries, és important tenir en compte que python utilitza sagnat per separar blocs de codi, així que tingueu en compte que si decidiu canviar la forma d’escriure el codi:) el py ve amb thonny ide i algunes opcions més, trobo que executar l'script a thonny és realment senzill, si feu clic al fitxer i intenteu executar-lo, és suggerir o suposar que thonny és el que volíeu utilitzar. abans d'executar el programa, haureu d'editar el següent. línia 14: els símbols * s'utilitzen per emmascarar la informació del meu propi enrutador, hauràs de substituir-la pel teu propi IP local. seria el mateix que utilitzeu per connectar-vos al router. línies 28, 38, 48, 58: totes utilitzen el símbol * per emmascarar les adreces mac del dispositiu que apareixen a la meva xarxa; heu de canviar-les a les adreces mac dels dispositius de la vostra pròpia xarxa per detectar connexions. per què les adreces Mac? perquè sense reservar ubicacions per al vostre dispositiu, segur que es mantindran iguals tret que algú estigui fent falsificacions. problemes amb aquest codi, només es detectarà mentre una connexió utilitza Internet activament, de manera que és possible que no es detecti tot i que hi hagi un usuari. al codi arduino, voldreu canviar el següent. primer, voldreu anar a la pestanya d'eines, seleccionar el gestor de biblioteques i cercar "fastLED" i instal·lar la biblioteca per a "fastLED". a continuació, haureu de carregar el codi.ino "qui és a casa" de la pàgina de github i canviar el següent com vulgueu. línia 86: canvieu els colors en funció del que vulgueu que adjuntin els vostres usuaris:)

// activa el que necessites

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

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

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

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

FastLED.show (); retard (30000); // 10 segons d'espera a la minúscula: una breu explicació de com afegir més usuaris és la següent

bucle buit () {

if (Serial.available ()> 0) {

Serial.println ();

persona = Serial.read ();

retard (1000);

canviar (persona) {

cas "D": d = 1;

persona = 'F';

comptar = comptar + 1;

trencar;

en majúscules:

d = 0;

persona = 'F';

comptar = comptar + 1;

trencar;

la majúscula D és el caràcter rebut de l’escriptura python, de manera que sap que l’usuari és present perquè la lletra rebuda és la majúscula D, de manera que canvia el valor de l’INTEGER d a 1, si és una minúscula del que sap que estan absents, de manera que l’INTEGER està establert a 0. la condició d’il·luminació dels leds a l’escriptura anterior utilitza una afirmació que IF d és 1 del que il·luminarà el led, però si no és així, el led es manté tan "negre", és a dir, il·luminat. aquest codi utilitza la biblioteca "fastLED" i hi ha molta documentació sobre això. Tingueu en compte que si canvieu els caràcters, afegiu caràcters o elimineu caràcters, haureu de canviar l'script de python per tornar els que també els heu canviat, també haureu de canviar la condició del bucle buit. if (count == 4) {holdup ();}}, el recompte haurà de reflectir el nombre de dispositius que esteu "seguint". en el meu cas és 4, de manera que espera fins que s'hagi declarat que hi ha 4 dispositius com a presents o absents i, a continuació, actualitza la tira LED. al codi python, les línies 31, 34, 41, 44, 51, 54, 61, 64 tenen la següent línia ser.write (b '*') # envia caràcter emès com a byte sobre sèrie on * és un caràcter que és enviant a l'arduino. canvieu això si canvieu el codi a l'arduino o viceversa:)

Una vegada més, com a declaració final, vull donar crèdit al meu company d’equip Jon, que va fer una gran feina a l’hora d’agafar el descans quan ho necessitàvem.

L'escriptura Python va ser proporcionada per: Jonathan De La Cruz

l’escriptura Arduino i el recorregut i configuració del laboratori casolà els va fer: Dylan Poll

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

Tant de bo guanyem almenys una samarreta! Actualitzaré això amb les ordres de l'intèrpret d'ordres per descarregar i instal·lar automàticament la major part d'això, el nostre lloc web de clubs en realitat té scripts d'intèrprets descarregables per fer les operacions ffmpeg.

Aquest projecte va trigar molt de temps, vaig fundar aquesta divisió del club des de la base i, per tant, puc dir amb orgull que aquest moment em porta molta alegria.:) Gràcies pel vostre temps, tenim una plataforma de treball a desenvolupar ara al meu club a causa d'aquest projecte.

Recomanat: