Índice:
- Suprimentos
- Etapa 1: Baixar e instalar os arquivos de configuração inicial
- Etapa 2: parte dois: instalar o Raspbian usando Rufus
- Etapa 3: parte três: conectando o Pi
- Etapa 4: parte quatro: Configurando sua conta
- Etapa 5: parte cinco: Configurando seu Pi como sem cabeça (a melhor coisa de todos os tempos)
- Etapa 6: parte seis: instalando todas as ferramentas essenciais para desenvolver em um Pi
- Etapa 7: parte sete: instalando o Adafruit WebIDE
- Etapa 8: parte oito: atualizar Node-red e Node.js
- Etapa 9: parte nove: instalando o IDE do Arduino
- Etapa 10: Parte Dez: Ffmpeg
- Etapa 11:
Vídeo: Raspberry Pi HomeLab e quem está em casa: 11 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Este é meu primeiro indestrutível, mas este instrutível tem duas fases.
fase um: é configurar um pi para funcionar como um laboratório doméstico para o trabalho de IOT para uma equipe de alunos desenvolvedores.
fase dois: está usando o sistema para desenvolvimento, implementando uma demonstração usando nosso projeto who is home.
ao final disso, você terá um pi sem cabeça acessível remotamente que pode ser usado por pessoas para programar e trabalhar remotamente em dispositivos IOT.
agora aviso, que ao abrir o seu pi ao público sem a devida segurança você se expõe ao risco de ter sua rede doméstica atacada.
passaremos pela primeira fase nas etapas a seguir, mas este é um link para algumas informações sobre o nosso clube e o projeto de quem é a casa.
github.com/ValenciaRobotics/embeddedclub
WhoIsHome
o projeto Who Is home faz o seguinte: executa um script python que verifica os endereços mac dos dispositivos conectados à sua rede. ele usa o Nmap para isso. ele executa esses endereços em uma lista de endereços e, se o endereço listado estiver presente, ele envia um char para um arduino usando comunicações seriais. o arduino controla uma faixa de LED e quando recebe um char tem uma cor associada para aquele dispositivo e acende os LEDs dessa pessoa com base na presença deles.
nosso subsite de divisões
sites.google.com/view/valencia-robotics
sites.google.com/view/valencia-robotics/cl…
nosso site de clubes
sites.google.com/view/valenciatechclub
o script Python foi fornecido por: Jonathan De La Cruz
www.linkedin.com/in/jonathandelacruz96/
o script do Arduino e o acompanhamento e a configuração do laboratório doméstico foram feitos por: Dylan Poll
www.linkedin.com/in/dylan-poll-4a324a1a2/
Eu sou Dylan Poll, sou o atual presidente do clube de tecnologia da nossa faculdade e também sou o líder de sistemas embarcados.
Suprimentos
Um pi
Um arduino
Uma placa de ensaio
fios de ligação
Uma webcam
Faixa LED RGB individualmente endereçável
fonte de alimentação para seu pi, um teclado um mouse, computador para fazer a configuração inicial.
Etapa 1: Baixar e instalar os arquivos de configuração inicial
baixe e instale o putty (windows)
www.putty.org
baixe o rufus e instale
rufus.ie
baixe raspbian full buster e software recomendado (.zip)
www.raspberrypi.org/downloads/raspbian/
extraia o conteúdo do.zip este será o seu [arquivo de imagem].
pegue um cartão micro SD e use um dock ou um dispositivo microsd para usb e conecte-o ao computador formate o cartão SD
Etapa 2: parte dois: instalar o Raspbian usando Rufus
execute rufus selecione seu cartão SD no primeiro campo selecione o arquivo de imagem raspbian para o.iso /.img selecione iniciar e espere que ele termine.
Etapa 3: parte três: conectando o Pi
depois de fazer isso, retire o cartão SD, coloque-o no slot para cartão SD no pi, é no "fundo", conecte o cabo HDMI ao pi primeiro, do que um teclado e mouse e, por último, o cabo de alimentação. se você conectar a energia primeiro, ele pode não registrar seu monitor / tv.
Etapa 4: parte quatro: Configurando sua conta
faça login no pi! faça a configuração da primeira execução! não pule! selecione o teclado inglês dos EUA ou você não encontrará o símbolo @ mais tarde … se não o fizer, o símbolo @ é onde está o seu ". faça login no wi-fi no pi ainda não atualize. Tenho um motivo. pressione a tecla" do teclado do windows "e vá para preferências, vá para configuração pi. vá para a guia interfaces.
habilitar VNC…. e todo o resto não reinicia.
Etapa 5: parte cinco: Configurando seu Pi como sem cabeça (a melhor coisa de todos os tempos)
olhe para o canto superior direito da tela. você verá o logotipo preto e azul do VNC. abra isso. clique em entrar, criar e conta. adicione o pi. no seu desktop / laptop abra a pesquisa do navegador no google VNC viewer download install. Faça login na sua conta. verifique seu e-mail para o login e autorize-se. conecte-se ao seu pi (digite a senha do pi no segundo menu de login) se funcionar, desligue o seu pi. desligue seu pi e tudo. coloque o pi em um canto do seu quarto e conecte-o apenas com o cabo de alimentação. você pode se conectar ao pi usando o visualizador VNC. agora você tem um pi "sem cabeça". você também pode usar o SSH para ele. (consulte as informações de SSH na seção de coisas legais)
Etapa 6: parte seis: instalando todas as ferramentas essenciais para desenvolver em um Pi
usando SSH ou VNC (ou se você decidiu não ser legal e configurá-lo sem cabeça), faça o seguinte. Abra o terminal (esta próxima parte pode demorar um pouco …) execute esses comandos um de cada vez depois que cada um for CONCLUÍDO.
sudo apt-get update; sudo apt-get upgrade instalando ffmpeg {sudo apt-get install ffmpeg
Etapa 7: parte sete: instalando o Adafruit WebIDE
curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/master/scripts/install.sh | sudo sh abre um navegador em sua área de trabalho principal. aponte o URL do seu navegador para "https://***.*.*.***: 8080" substitua o "*" pelo endereço IP local do seu Pi. faça um nome de usuário e passe. agora você tem a configuração do adafruit webIDE.
Etapa 8: parte oito: atualizar Node-red e Node.js
update-nodejs-and-nodered o próximo código fará com que o nodered seja executado na inicialização, assim como o adafruit webIDE, isso é importante se você deseja desenvolver essas coisas. sudo systemctl enable nodered.service restart the Pi
Etapa 9: parte nove: instalando o IDE do Arduino
você pode fazer isso via linha de comando, mas…. não será a versão completa.. significando que você não pode usar a ferramenta de importação / pesquisa da biblioteca, para instalar a versão completa você precisa ir ao site do arduino e baixar a versão para o seu modelo pi. será o ARM32bit para o pi3, obtenha a versão estável. abra o terminal. (substitua os * pelas informações de versão) execute esses comandos.
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
Etapa 10: Parte Dez: Ffmpeg
1x webcam logitech
(os próximos itens não incluem o que você precisa para executar um fluxo 24 horas por dia, 7 dias por semana) 1x protoboard uma segunda tira de LED framboesa pi modelo 3 b (com cartão SD) individualmente endereçável. Arduino nano jumper wire habilita VNC viewer em ambos Pi (s)
preferências pi, habilitar vnc fazer uma conta com visualizador VNC IMPORTANTE: no pi que você planeja usar como uma bancada de trabalho público, vá para as configurações do servidor vnc, opções, guia especialista e faça o tempo limite inativo: 0 segundos, está definido para fechar Vnc se o visualizador ficar inativo após uma hora, isso impedirá que sua janela feche no meio do fluxo, instale o visualizador vnc no streamer pi no terminal.
sudo apt-get install vnc-java y
conecte sua webcam e … instale sua webcam.
sudo apt install fswebcam
instalar ffmpeg sudo apt-get install ffmpeg y
é aqui que suas próprias escolhas entram em jogo. no terminal, execute este script para abrir uma janela na área de trabalho do seu streamer pi para a sua webcam.
ffplay -window_title "pi-cam" / dev / video0 -video_size 1920x1080 -vf crop = 400: 500: 300: 50 -framerate 20 ffplay permitirá que você veja isso em uma janela chamada pi-cam, a webcam que está mostrando a você no local dev / video0 e seu tamanho original é 1920x1080. Eu só quero ver o crop = width: height: topleft_X: topleft_Y e uma taxa de quadros de 20 é o suficiente para mim. o próximo código será transmitido para 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 ultrarrápido -c: a aac -pix_fmt yuv420p -f flv " rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyhere)"
-f x11grab é usado para capturar sua tela. a resolução da minha tela está definida para 1280x1024. Quero exibi-la no formato de vídeo 1280x720, portanto, -vf.
2m = taxa de upload de 2 mgb. -f flv é para formatar o vídeo em.flv para que o twitch possa usá-lo.
agora você pode fornecer à sua equipe suas credenciais VNC para o ambiente de trabalho Pi e eles podem ver as mudanças na faixa de led remotamente. Grite para esse cara ~! o vídeo dele me ajudou a entrar no caminho, mas eu ainda tinha que descobrir como abrir minha webcam … e descobrir mais sobre o ffmpeg X /
Arthur Reeder https://www.youtube.com/embed/kb_5_9GkwZc NOTA: Não sou a pessoa mais informada, isso simplesmente funciona para minhas necessidades, se alguém tiver conselhos construtivos, eu adoraria ouvir, mas por favor, não ser um dos caminhos possíveis para levar isso adiante, seria usar esse mecânico para transmitir isso e usar outro pi e o feixe de luz de extensão cromada para buscar esse fluxo e, em seguida, alimentar a webcam naquele ou de qualquer outra maneira. https://www.youtube.com/embed/kb_5_9GkwZc TAMBÉM: se quiser adicionar áudio, como visto no vídeo do youtube do homem, pode usar esta string, não queria que minha casa fosse gravada e enviado para twitch, fica na minha sala, então eu não transmito nenhum áudio, também ajuda a diminuir a carga no 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 ultra-rápido -c: a aac -pix_fmt yuv420p -f flv "rtmp: //live-lax.twitch.tv/app/ (insertyourstreamkeyaqui)"
Etapa 11:
agora para a reta final, implementando comunicação serial arduino e pi com python.
--- o projeto who is home --- O projeto usa um script python que executa o nmap no terminal, copia o conteúdo dele, analisa o texto que não precisamos e compara os endereços mac na rede com os listados endereços mac e se houver correspondência, essa pessoa está em casa. os endereços mac foram encontrados por meio de um trabalho investigativo no roteador, mas a ferramenta nmap fornece informações sobre os dispositivos no arquivo de texto gerado pelo código. se o usuário estiver presente, ele envia um caractere para o arduino, e o arduino espera até que a lista de verificação seja concluída e acende LEDs correspondentes aos perfis listados para os endereços mac dos dispositivos presentes. você pode adicionar outras coisas, como fazer com que os bots do discord executem comandos sobre as pessoas que entram ou saem com esse mesmo código, usando o operador de subprocesso para executar comandos de terminal em seu script Python. então primeiro instalamos o nmap sudo apt-get install nmap. em seguida, você vai querer baixar os arquivos em nossos clubes Git-Hub.
github.com/ValenciaRobotics/embeddedclub
para o código python, a instalação raspbian vem com tudo usado neste código, então você não precisa de nada adicional instalado. usamos import re, import subprocess, import time, import serial. É importante notar que python usa indentação para separar blocos de código, então esteja ciente de que se você decidir mudar a forma como o código é escrito:) o py vem com thonny ide e algumas outras opções, acho que rodar o script no thonny é realmente simples, se você clicar no arquivo e tentar executá-lo, foi sugerir ou assumir que thonny é o que você queria usar. antes de executar o programa, você precisará editar o seguinte. linha 14: os símbolos * são usados para mascarar as informações do meu próprio roteador, você terá que substituí-los por seu próprio ip local. seria igual ao que você usa para se conectar ao roteador. linhas 28, 38, 48, 58: todas usam o símbolo * para mascarar os endereços mac dos dispositivos listados na minha rede, você deve alterá-los para os endereços mac dos dispositivos da sua própria rede para detectar as conexões. por que endereços mac? porque, sem reservar locais para o seu dispositivo, eles com certeza permanecerão os mesmos, a menos que alguém esteja falsificando. problemas com esse código, ele só detectará enquanto uma conexão estiver ativamente usando a Internet, portanto, pode não ser detectado apesar da presença de um usuário. no código do arduino, você desejará alterar o seguinte. primeiro, você vai querer ir para a guia de ferramentas, selecionar o gerenciador de bibliotecas, pesquisar por "fastLED" e instalar a biblioteca por "fastLED". em seguida, você precisará carregar o código "quem está em casa".ino da página do github e alterar o seguinte conforme desejar. linha 86: mude as cores com base no que você deseja que seus usuários anexem:)
// ligue o que você precisa
if (d == 1) {leds [0] = 0xdd8bff; // leds roxos [1] = 0xdd8bff;}
if (l == 1) {leds [2] = CRGB:: Verde; leds [3] = CRGB:: Verde;}
if (k == 1) {leds [4] = CRGB:: Vermelho; leds [5] = CRGB:: Vermelho; }
if (j == 1) {leds [6] = CRGB:: Azul; leds [7] = CRGB:: Azul;}
FastLED.show (); atraso (30000); // 10 segundos de espera na caixa de troca, uma breve explicação sobre como adicionar mais usuários é a seguinte
void loop () {
if (Serial.available ()> 0) {
Serial.println ();
pessoa = Serial.read ();
atraso (1000);
switch (pessoa) {
caso 'D': d = 1;
pessoa = 'F';
contagem = contagem + 1;
pausa;
case'd ':
d = 0;
pessoa = 'F';
contagem = contagem + 1;
pausa;
o D maiúsculo é o caractere recebido do script python, então ele sabe que o usuário está presente porque a letra recebida é o D maiúsculo, então ele muda o valor do INTEGER d para 1, se for minúsculo então ele sabe que eles estão ausentes, portanto o INTEGER é definido como 0. a condição para a iluminação dos leds no script anterior usa uma declaração de que IF d é 1 então acenderá o led, mas se não for esse led permanece "preto", o que significa apagado. este código usa a biblioteca "fastLED" e há muita documentação sobre isso. note que se você alterar os caracteres, adicionar ou remover caracteres, terá que alterar o script python para retornar aqueles que você alterou também, você também terá que alterar a condição no loop void. if (count == 4) {holdup ();}} a contagem terá que refletir o número de dispositivos que você está "rastreando". no meu caso é 4, então ele espera até que 4 dispositivos sejam declarados como presentes ou ausentes e então atualiza a faixa de LED. no código python, as linhas 31, 34, 41, 44, 51, 54, 61, 64 têm a seguinte linha ser.write (b '*') #sends caractere convertido como byte sobre serial onde * é um caractere que é enviando para o arduino. altere isso se você alterar o código no arduino ou vice-versa:)
Mais uma vez, como declaração final, quero dar crédito ao meu companheiro de equipe Jon, ele fez um ótimo trabalho em compensar a folga quando precisávamos.
O script Python foi fornecido por: Jonathan De La Cruzhttps://www.linkedin.com/in/jonathandelacruz96/
o Arduino Script e o acompanhamento e a configuração do laboratório doméstico foram feitos por: Dylan Poll
www.linkedin.com/in/dylan-poll-4a324a1a2/
Tomara que ganhemos pelo menos uma camiseta! Estarei atualizando isso com comandos shell para fazer o download automático e instalar a maior parte disso, o site de nossos clubes tem scripts shell para download para fazer as operações do ffmpeg.
Esse projeto demorou muito, eu fundei essa divisão do clube do zero, então posso dizer com orgulho que esse momento me traz muita alegria.:) obrigado pelo seu tempo, temos uma plataforma de trabalho a desenvolver agora no meu clube por causa deste projeto.
Recomendado:
[15min] Relógio Weasley / Indicador de quem está em casa - baseado em TR-064 (beta): 4 etapas (com imagens)
[15min] Indicador Weasley Clock / Who Is Home - Baseado em TR-064 (beta): ATUALIZAÇÃO: Veja a etapa 3. Longa história (TL; DR abaixo): Algum tempo atrás eu escrevi um pequeno script bash no meu computador que iria faça uma varredura na rede em busca de dispositivos registrados e compare seus nomes de host com uma lista de nomes associados. Cada vez que um dispositivo registraria
Light Rush! Quem tem a luz mais rápida!?: 3 etapas
Light Rush! Quem tem a luz mais rápida!?: Jogar qualquer jogo é legal e divertido, mas quando você pode criá-lo sozinho, é definitivamente melhor! Estou acostumado a brincar com arduino e ledstrip, então fiz uma corrida leve com eles. Vamos explicar como se divertir e brincar, não importa a sua idade, porque
Quem está na porta, um sistema de câmera com acionamento Alexa: 3 etapas
Quem está na porta, um sistema de câmera com acionamento Alexa: Às vezes, enquanto assiste à TV, você não quer atender a porta, a menos que seja importante. Este projeto permite que você visualize a pessoa na porta simplesmente dizendo ao dispositivo Echo da Amazon " Alexa, ligue o monitor da porta ". Você verifica quem aparece
Quem está à minha porta? Projeto de sensor de movimento / sensor de alcance PIR: 5 etapas
Quem está à minha porta? Projeto Sensor de Movimento PIR / Sensor de Alcance: Nosso projeto tem como objetivo detectar movimento via PIR e sensores de distância. O código do Arduino produzirá um sinal visual e de áudio para informar ao usuário que alguém está por perto. O código MATLAB enviará um sinal de e-mail para alertar o usuário de que alguém está por perto. Este dispositivo
Caixa de luz dobrável para quem tem pouco espaço e dinheiro: 12 etapas (com fotos)
Caixa de luz dobrável para quem tem pouco espaço e dinheiro: decidi aceitar o desafio de criar uma caixa de luz dobrável e acessível para pessoas que podem ter pouco espaço e dinheiro. O problema que encontrei com muitas das caixas de luz de núcleo de espuma acessíveis é que toda vez que você quiser fazer