Tabla de contenido:

HomeLab de Raspberry Pi y quién es el hogar: 11 pasos
HomeLab de Raspberry Pi y quién es el hogar: 11 pasos

Video: HomeLab de Raspberry Pi y quién es el hogar: 11 pasos

Video: HomeLab de Raspberry Pi y quién es el hogar: 11 pasos
Video: Todas las aplicaciones que corro en mi SERVERS 2024, Mes de julio
Anonim
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa
HomeLab de Raspberry Pi y quién está en casa

Este es mi primer indestructible, pero este instructable tiene dos fazes.

faze one: está configurando un pi para que funcione como un laboratorio en casa para el trabajo de IOT para un equipo de estudiantes desarrolladores.

faze two: está utilizando el sistema para el desarrollo, mediante la implementación de una demostración utilizando nuestro proyecto who is home.

al final de esto, tendrá un pi sin cabeza accesible de forma remota que las personas pueden usar para programar y trabajar de forma remota en dispositivos IOT.

ahora le advierto, que al abrir su pi al público sin la debida seguridad, se expone al riesgo de que su red doméstica sea atacada.

repasaremos el primer faze en los siguientes pasos, pero este es un enlace a información sobre nuestro club y el proyecto de quién es el hogar.

github.com/ValenciaRobotics/embeddedclub

WhoIsHome

El proyecto Who Is Home hace lo siguiente: ejecuta un script de Python que busca las direcciones MAC de los dispositivos conectados a su red. usa Nmap para esto. ejecuta esas direcciones en una lista de direcciones y, si la dirección enumerada está presente, envía un char a un arduino mediante comunicaciones en serie. el arduino controla una tira de LED y cuando recibe un char tiene un color asociado para ese dispositivo y enciende los LED de esa persona en función de que estén presentes.

nuestro subsitio de divisiones

sites.google.com/view/valencia-robotics

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

nuestro sitio de clubes

sites.google.com/view/valenciatechclub

el script de Python fue proporcionado por: Jonathan De La Cruz

www.linkedin.com/in/jonathandelacruz96/

el script de Arduino y el recorrido y la configuración del laboratorio doméstico fue realizado por: Dylan Poll

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

Soy Dylan Poll, soy el actual presidente del club tecnológico de nuestra universidad y también soy el líder de sistemas integrados.

Suministros

Un pi

Un arduino

Una placa de pruebas

cables de puente

Una webcam

Tira de LED RGB direccionable individualmente

fuente de alimentación para su pi, un teclado, un mouse, computadora para hacer la configuración inicial.

Paso 1: descarga e instalación de archivos de configuración inicial

descargar e instalar masilla (windows)

www.putty.org

descargar rufus e instalar

rufus.ie

descargar raspbian full buster y el software recomendado (.zip)

www.raspberrypi.org/downloads/raspbian/

extraiga el contenido en el.zip este será su [archivo de imagen].

tome una tarjeta micro sd y use una base o un dispositivo microsd a usb y conéctelo a su computadora formatee su tarjeta sd

Paso 2: segunda parte: Instale Raspbian usando Rufus

Parte dos: instalar Raspbian usando Rufus
Parte dos: instalar Raspbian usando Rufus

ejecutar rufus seleccione su tarjeta sd en el primer campo seleccione el archivo de imagen raspbian para el.iso /.img seleccione inicio y espere a que termine.

Paso 3: tercera parte: Conectando el Pi

Una vez hecho esto, extraiga la tarjeta sd, colóquela en la ranura para tarjetas sd del pi, en la parte inferior, conecte el cable HDMI al pi primero, luego al teclado y al mouse y, por último, al cable de alimentación. Si conecta la alimentación primero, es posible que no registre su monitor / televisor.

Paso 4: cuarta parte: configuración de su cuenta

iniciar sesión en pi! hacer la primera configuración de ejecución! ¡no te lo saltes! seleccione el teclado en inglés de EE. UU. o no encontrará su símbolo @ más tarde … si no lo hace, su símbolo @ es donde está su ". inicie sesión en su wifi en pi no actualice todavía. Tengo una razón. presione la tecla" del teclado de Windows "y vaya a las preferencias, vaya a la configuración de pi. vaya a la pestaña de interfaces.

habilitar VNC…. y todo lo demás no se reinicia.

Paso 5: quinta parte: configurar su Pi como sin cabeza (lo mejor de la historia)

Quinta parte: configurar su pi como sin cabeza (lo mejor de la historia)
Quinta parte: configurar su pi como sin cabeza (lo mejor de la historia)

mira la parte superior derecha de tu pantalla. verá el logotipo de VNC negro y azul. abre eso. Pulsa iniciar sesión, marca y cuenta. agregue el pi. en su computadora de escritorio / computadora portátil, abra la búsqueda del navegador en google VNC viewer descargar instalar. Ingrese a su cuenta. revise su correo electrónico para el inicio de sesión y autorícese. conéctese a su pi (escriba la contraseña de pi en el segundo menú de inicio de sesión) si funciona, apague su pi. desenchufe su pi y todo. coloque el pi en una esquina de su habitación y coloque solo el cable de alimentación hacia él. puede conectarse al pi usando el visor VNC. ahora tienes un pi "sin cabeza". también puede usar SSH (consulte la información de SSH en la sección de cosas interesantes)

Paso 6: sexta parte: Instalación de todas las herramientas básicas para desarrollar en una Pi

Sexta parte: Instalación de todas las herramientas básicas para desarrollar en una Pi
Sexta parte: Instalación de todas las herramientas básicas para desarrollar en una Pi

usando SSH o VNC (o si decidió no ser genial y configurarlo sin cabeza) haga lo siguiente. terminal abierto (esta siguiente parte puede tomar un tiempo….) ejecute estos comandos uno a la vez después de que cada uno esté TERMINADO.

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

Paso 7: parte siete: instalación de Adafruit WebIDE

Séptima parte: Instalación de Adafruit WebIDE
Séptima parte: Instalación de Adafruit WebIDE

curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh abre un navegador en tu escritorio principal. apunte la URL de su navegador a "https://***.*.*.***: 8080" reemplace el "*" con la dirección IP local de su Pi. haga un nombre de usuario y pase. ahora tiene la configuración de adafruit webIDE.

Paso 8: parte ocho: actualice Node-red y Node.js

update-nodejs-and-nodered el siguiente código hará que nodered se ejecute en el inicio al igual que adafruit webIDE, esto es importante si desea desarrollar estas cosas. sudo systemctl enable nodered.service reinicia el Pi

Paso 9: parte nueve: instalación de Arduino IDE

Parte nueve: instalación de Arduino IDE
Parte nueve: instalación de Arduino IDE

puede hacerlo a través de la línea de comandos, pero…. no será la versión completa … lo que significa que no puede usar la herramienta de importación / búsqueda de la biblioteca, para instalar la versión completa debe ir al sitio web de arduino y descargar la versión para su modelo pi. será el ARM32bit para el pi3, obtenga la versión estable. terminal abierto. (reemplace los * con la información de la versión) ejecute estos comandos.

www.arduino.cc/en/Main/Software

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

Paso 10: Parte Diez: Ffmpeg

Parte Diez: Ffmpeg
Parte Diez: Ffmpeg

1x cámara web logitech

(los siguientes elementos no incluyen lo que necesita para ejecutar una transmisión 24/7) 1x placa de pruebas una segunda frambuesa pi modelo 3 b (con tarjeta sd) tira de LED direccionable individualmente. El cable de puente arduino nano habilita el visor VNC en ambos Pi (s)

preferencias de pi, habilite vnc cree una cuenta con el visor de VNC IMPORTANTE: en el pi que planea usar como banco de trabajo público, vaya a la configuración del servidor vnc, opciones, pestaña de experto y haga el tiempo de espera inactivo: 0 segundos, está configurado para cerrar Vnc viewer si está inactivo después de una hora, hacer esto evitará que su ventana se cierre en la mitad de la transmisión instale vnc viewer en streamer pi en la terminal.

sudo apt-get install vnc-java y

conecte su cámara web e instale su cámara web.

sudo apt instalar fswebcam

instalar ffmpeg sudo apt-get install ffmpeg y

aquí es donde entran en juego sus propias decisiones. en la terminal, ejecute este script para abrir una ventana en el escritorio de su streamer pi para su cámara web.

ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay te permitirá ver esto en una ventana llamada pi-cam, la cámara web que te muestra es en la ubicación dev / video0 y su tamaño original es 1920 x 1080. Solo quiero ver crop = width: height: topleft_X: topleft_Y y una velocidad de fotogramas de 20 es suficiente para mí. el siguiente código se transmitirá a 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 ultrafast -c: a aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

-f x11grab se utiliza para capturar su pantalla. mi resolución de pantalla está configurada en 1280x1024 Quiero mostrar eso en formato de video 1280x720 so -vf.

2 m = tasa de carga de 2 mgb. -f flv es formatear el video en.flv para que twitch pueda usarlo.

ahora puede darle a su equipo sus credenciales VNC al banco de trabajo Pi y ellos pueden ver los cambios en la tira de led en vivo de forma remota. ¡Saludos a este chico ~! su video me ayudó a encaminarme, pero aún tenía que averiguar cómo colocar mi cámara web … y averiguar sobre ffmpeg X /

Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NOTA: No soy la persona más informada, esto simplemente funciona para mis necesidades, si alguien tiene un consejo constructivo, me encantaría escucharlo, pero no lo haga. Ser una de las posibles rutas para llevar esto más allá, sería usar esta mecánica para transmitir esto, y usar otro pi y la extensión de Chrome Lightstream para buscar esa transmisión y luego alimentar la cámara web en eso o de cualquier otra manera. https://www.youtube.com/embed/kb_5_9GkwZc TAMBIÉN: si desea agregar audio, como se ve en el video de youtube del hombre, puede usar esta cadena, no quería que se grabara mi casa y enviado a twitch, esto está sentado en mi habitación, por lo que no transmito ningún audio, también ayuda a disminuir la carga en el pi.

ffmpeg -f x11grab -video_size 1280x1024 -framerate 24 -i $ DISPLAY -f alsa -i predeterminado -af acompressor = umbral = 0.089: ratio = 9: ataque = 200: liberación = 1000 -vf scale = 1280x720 -c: v h264 - g 24 -b: v 2M -preset ultrarrápido -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"

Paso 11:

Imagen
Imagen
Imagen
Imagen
Imagen
Imagen
Imagen
Imagen

ahora al tramo final, implementando la comunicación serial arduino y pi con python.

--- el proyecto who is home --- El proyecto usa un script de Python que ejecuta nmap en la terminal, copia el contenido de eso, analiza el texto que no necesitamos y compara las direcciones mac en la red con las enumeradas direcciones mac y si hay una coincidencia, esa persona está en casa. las direcciones mac se encontraron realizando un trabajo de investigación en el enrutador, pero la herramienta nmap le brinda información sobre los dispositivos en el archivo de texto generado por el código. si el usuario está presente, envía un carácter al arduino, y el arduino espera hasta que finaliza la lista de verificación y enciende los LED correspondientes a los perfiles enumerados para las direcciones mac de los dispositivos presentes. puede agregar otras cosas, como hacer que los bots de discordia ejecuten comandos sobre las personas que van o vienen con este mismo código utilizando el operador de subproceso para ejecutar comandos de terminal dentro de su script de Python. así que primero instalamos nmap sudo apt-get install nmap. a continuación, querrá descargar los archivos en nuestros clubes Git-Hub.

github.com/ValenciaRobotics/embeddedclub

para el código python, la instalación raspbian viene con todo lo que se usa en este código, por lo que no necesita nada adicional instalado. utilizamos import re, import subprocess, import time, import serial, es importante tener en cuenta que Python usa sangría para separar bloques de código, así que tenga en cuenta que si decide cambiar la forma en que se escribe el código:) el py viene con thonny ide y algunas otras opciones, encuentro que ejecutar el script en thonny es realmente sencillo, si haces clic en el archivo e intentas ejecutarlo, se sugiere o asume que thonny es lo que querías usar. antes de ejecutar el programa, deberá editar lo siguiente. línea 14: los símbolos * se utilizan para enmascarar la información de mi propio enrutador, tendrá que reemplazarlo con su propia IP local. sería el mismo que usa para conectarse a su enrutador. líneas 28, 38, 48, 58: todas usan el símbolo * para enmascarar las direcciones mac del dispositivo enumeradas en mi red, debe cambiarlas por las direcciones mac de los dispositivos en su propia red para detectar conexiones. ¿Por qué direcciones mac? porque sin reservar ubicaciones para su dispositivo, seguramente permanecerán iguales a menos que alguien esté falsificando. problemas con este código, solo lo detectará mientras una conexión esté usando Internet de forma activa, por lo que es posible que no se detecte a pesar de que haya un usuario presente. en el código arduino, querrá cambiar lo siguiente. Primero, querrá ir a la pestaña de herramientas, seleccionar el administrador de bibliotecas, buscar "fastLED" e instalar la biblioteca de "fastLED". a continuación, deberá cargar el código.ino "quién está en casa" de la página de github y cambiar lo siguiente como desee. línea 86: cambie los colores según lo que desea que sus usuarios adjunten:)

// enciende lo que necesitas

si (d == 1) {leds [0] = 0xdd8bff; // leds morados [1] = 0xdd8bff;}

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

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

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

FastLED.show (); retraso (30000); // Espera 10 segundos en el caso del conmutador, una breve explicación de cómo agregar más usuarios es la siguiente

bucle vacío () {

if (Serial.available ()> 0) {

Serial.println ();

persona = Serial.read ();

retraso (1000);

cambiar (persona) {

caso 'D': d = 1;

persona = 'F';

cuenta = cuenta + 1;

rotura;

case'd ':

d = 0;

persona = 'F';

cuenta = cuenta + 1;

rotura;

la D mayúscula es el carácter recibido del script de Python, por lo que sabe que el usuario está presente porque la letra recibida es la D mayúscula, por lo que cambia el valor del INTEGER d a 1, si es una minúscula que sabe que están ausentes por lo que el INTEGER se establece en 0. la condición para la iluminación de leds en el script de antes usa una declaración de que si d es 1, encenderá el led, pero si no es así, el led permanece como "negro", es decir, apagado. este código usa la biblioteca "fastLED" y hay mucha documentación sobre esto. tenga en cuenta que si cambia los caracteres, agrega caracteres o elimina caracteres, tendrá que cambiar el script de Python para devolver los que también los cambió, también tendrá que cambiar la condición en el bucle vacío. if (count == 4) {holdup ();}} el conteo tendrá que reflejar el número de dispositivos que está "rastreando". en mi caso es 4, por lo que espera a que 4 dispositivos hayan sido declarados como presentes o ausentes y luego actualiza la tira de LED. en el código de Python, las líneas 31, 34, 41, 44, 51, 54, 61, 64 tienen la siguiente línea ser.write (b '*') # envía carácter emitido como byte sobre serial donde * es un carácter es enviando al arduino. cambie esto si cambia el código en el arduino o viceversa:)

Una vez más, como declaración final, quiero dar crédito a mi compañero de equipo Jon, hizo un gran trabajo al tomar el relevo cuando lo necesitábamos.

El guión de Python fue proporcionado por: Jonathan De La Cruz

el script de Arduino y el recorrido y la configuración del laboratorio doméstico fue realizado por: Dylan Poll

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

¡Ojalá ganemos al menos una camiseta! Actualizaré esto con comandos de shell para descargar e instalar automáticamente la mayor parte de esto, el sitio web de nuestro club tiene scripts de shell descargables para realizar las operaciones de ffmpeg.

Este proyecto tomó mucho tiempo, fundé esta división del club desde cero, así que puedo decir con orgullo que este momento me trae mucha alegría.:) gracias por su tiempo, tenemos una plataforma de trabajo para desarrollar ahora en mi club debido a este proyecto.

Recomendado: