- Instalando e configurando o 'Motion' para obter feed de vídeo:
- Configuração do frasco no Raspberry Pi para controlar o robô por meio da página da Web:
- Código HTML para página da web:
- Robô de Vigilância
- Diagrama de circuito e configuração:
- Como operar:
Nesta sessão faça você mesmo, estamos construindo um carro robótico de vigilância controlado pela web usando raspberry pi e uma webcam. Esta pode ser uma ferramenta útil e barata de segurança e espionagem, que tem muitas opções configuráveis e pode ser construída em poucas horas. Neste projeto de IoT, estamos usando principalmente Raspberry Pi, câmera da web USB e dois motores DC com chassis de robô para construir este carro robótico.
Ele tem uma câmera web montada sobre ele, através da qual obteremos feed de vídeo ao vivo e a parte interessante aqui é que podemos controlar e mover este robô de um navegador da web pela internet. Como pode ser controlado através da página web, significa que também pode ser controlado através da página web no Mobile. Construímos uma página web em HTML que possui links Esquerda, Direita, Avançar, Voltar, clicando nos quais podemos mover o robô em qualquer direção. Aqui, usamos "Motion" para obter feed de vídeo ao vivo da câmera USB e "Flask" para enviar comandos da página da web para Raspberry Pi usando pythonpara mover o robô, que são explicados em detalhes na parte subsequente deste tutorial. Temos Raspbian Jessie OS instalado em nossa placa Raspberry Pi. Você pode verificar este artigo para instalar o Raspbian OS e começar a usar o Raspberry Pi.
Instalando e configurando o 'Motion' para obter feed de vídeo:
O Motion (Surveillance Software) é um software CCTV de detecção de movimento de código aberto gratuito, desenvolvido para Linux. Ele detecta o movimento e começa a gravar o vídeo. Com o 'Motion' instalado em seu Raspberry Pi, você pode transformar seu Raspberry Pi em uma câmera de segurança magicamente. É usado para obter feed de vídeo ao vivo, fazer vídeos de lapso de tempo e tirar fotos em intervalos regulares. Ele grava e salva o vídeo sempre que detecta movimento ou qualquer perturbação na área de visualização. O feed de vídeo ao vivo pode ser assistido no navegador da web digitando o endereço IP de Pi junto com a porta.
Criamos um tutorial detalhado sobre como usar o movimento com Raspberry Pi e câmera USB, aqui estamos explicando brevemente sua instalação no Raspberry pi para que nosso robô envie streaming de vídeo ao vivo para a página da web.
Aqui, você precisa executar apenas alguns comandos para começar a obter seu primeiro feed de vídeo pela rede. Antes disso, verifique se o Raspberry Pi está conectado à Internet, seja por LAN ou Wi-Fi, e siga as etapas abaixo:
Etapa 1: primeiro execute o comando abaixo para atualizar o Raspbian OS no Raspberry Pi:
sudo apt-get update
Etapa 2: Em seguida, instale a Biblioteca 'Motion' usando o comando abaixo:
sudo apt-get install motion
Etapa 3: Agora defina o Motion daemon como yes editando o arquivo: / etc / default / motion para que esteja sempre em execução. Edite este arquivo usando o editor 'nano' com 'sudo' como mostrado abaixo:
sudo nano / etc / default / motion
Em seguida, salve o arquivo pressionando 'CTRL + X', depois 'Y' e Enter.
Etapa 4: agora precisamos definir a permissão para o diretório de destino (/ var / lib / motion /), no qual o Motion salva todas as gravações de vídeo e arquivos de imagem. Precisamos definir 'Motion' como proprietário deste diretório, emitindo o comando abaixo:
sudo chown motion: motion / var / lib / motion /
Essa permissão é necessária, caso contrário, você obterá um erro ao verificar o Status do serviço Motion.
Você pode verificar o status do serviço usando este comando: sudo service motion status
Etapa 5: Agora estamos quase terminando, apenas precisamos alterar uma opção de configuração no arquivo de configuração do Motion (/etc/motion/motion.conf ) que está stream_localhost desativado. Temos que desligar esse streaming de host local, caso contrário, não poderemos acessar o feed de vídeo em nossa rede e ele só será acessível a partir do próprio Raspberry Pi. Para fazer isso, edite o arquivo de configuração de movimento com o editor 'nano' e desligue-o, conforme mostrado abaixo:
sudo nano /etc/motion/motion.conf
Agora estamos prontos para obter nossa transmissão ao vivo da câmera da web USB conectada ao Pi. Basta iniciar (ou reiniciar) o serviço Motion usando o comando abaixo e abrir o IP do seu Raspberry Pi, com a porta 8081, em seu navegador (como 192.168.43.199:8081). Neste projeto, incorporamos esse IP em nosso código HTML na tag img src .
sudo /etc/init.d/motion restart
E você verá a transmissão ao vivo de sua câmera da web. Aqui, usamos uma câmera da web USB de baixo custo que funcionou perfeitamente com o Raspberry Pi, mas você pode usar uma câmera de boa qualidade para uma resolução melhor. Como será mostrado no navegador, você pode usar qualquer dispositivo, para assistir ao feed, que suporte navegador da web como celular, tablet etc.
Tente reiniciar o Raspberry Pi como uma etapa de solução de problemas quando necessário:
sudo reboot
Trata-se de usar o Motion para o nosso robô de vigilância, além disso, ele possui várias opções de configuração que já discutimos em nosso tutorial anterior.
Nota: Se você for um modelo Raspberry Pi abaixo da versão 3, pode ser necessário um dongle Wi-Fi para conectar o Raspberry Pi sem fio ao roteador.
Configuração do frasco no Raspberry Pi para controlar o robô por meio da página da Web:
Aqui, criamos um servidor da web usando o Flask, que fornece uma maneira de enviar os comandos da página da web para o Raspberry Pi para controlar o robô pela rede. O Flask nos permite executar nossos scripts python por meio de uma página da web e podemos enviar e receber dados do Raspberry Pi para o navegador da web e vice-versa. Flask é um microframework para Python. Esta ferramenta é baseada em Unicode com servidor de desenvolvimento e depurador embutidos, suporte para teste de unidade integrado, suporte para cookies seguros e é fácil de usar, o que a torna útil para o amador.
Instale um pacote de suporte de frasco no Raspberry Pi usando o comando fornecido:
$ pip install Flask
Então podemos usar o Flask apenas importando-o em nosso programa, como importamos os seguintes pacotes de flask para este projeto:
from flask importar Flask from flask importar Flask, render_template, request
Você pode aprender mais sobre a programação usando o Flask aqui, também verifique nossos projetos anteriores onde usamos o Flask para enviar a mensagem da página da Web para o Raspberry Pi e enviar o valor do peso para o Raspberry Pi no Smart Container.
Código HTML para página da web:
Criamos uma página da web usando a linguagem HTML para exibir links de controle (esquerda, direita, frente, para trás) para mover o robô do navegador da web. Usamos o script jQuery para chamar as funções em nosso programa Python. Existem cinco funções no código Python para mover o robô para a esquerda, direita, para frente, para trás e pará-lo. O código Python completo foi fornecido no final. Essas funções serão executadas clicando nos Links de Controle na página da web e os motores se moverão dependendo do link clicado. Aqui nós escrevemos o código de forma que o Robot se mova em certa direção enquanto clica e segura o link, e assim que soltarmos o botão do mouse o Robot irá parar. Abaixo está o código HTML para a página da web, incluindo o jQuery:
Aqui você pode ver que incorporamos o endereço IP, no qual o vídeo está sendo transmitido, na página da web usando a tag src img . Altere o endereço IP de acordo com seu Raspberry Pi, mas mantenha a mesma porta.
O usuário precisa copiar e colar o código HTML fornecido acima em algum editor de texto (bloco de notas) e salvar o arquivo com a extensão.HTML (robot.html). Em seguida, coloque esse arquivo HTML na pasta / templates em relação ao local do seu script Python. Significa que você precisa criar uma pasta chamada templates, onde você colocou seu arquivo de código Python para este Raspberry Surveillance Robot e, em seguida, colocou o arquivo robot.html nesta pasta de templates. Esta etapa é importante, caso contrário nosso projeto não funcionará. Você pode abrir diretamente o arquivo robot.html clicando duas vezes nele para ver como ficarão os links de controle. Verifique mais a fundo todo o processo no Vídeo de Demonstração no fim. Depois de terminar a programação e tudo mais, podemos apenas executar o código Python no Raspberry Pi e abrir o IP_address_of_your_Pi: 5010 no navegador da web (como
Você pode verificar o endereço IP do seu Raspberry Pi usando o comando ifconfig :
ifconfig
Diagrama de circuito e configuração:
Depois de testar o feed de vídeo ao vivo e o código HTML, precisamos construir um robô usando chassis, rodas e parafusos de porca feitos à mão ou feitos à mão. Em seguida, coloque o banco de energia sobre ele para alimentar o Raspberry pi e, em seguida, coloque o Raspberry Pi e a webcam sobre o banco de energia e fixe a configuração usando fita adesiva para violoncelo ou tiras de borracha, conecte a câmera USB com Raspberry Pi.
Neste projeto de IoT, não precisamos fazer muitas conexões, só precisamos conectar alguns fios para o Motor Driver IC L293D e os motores CC. As conexões são mostradas no diagrama de circuito abaixo. Aqui, usamos uma placa de circuito impresso de uso geral para montar o L293D IC para reduzir o espaço, mas você também pode usar uma pequena placa de ensaio para conectar motores CC com o L293D.
Como operar:
Operar e operar este robô de vigilância é muito fácil. Crie um arquivo python (extensão.py) e copie o código abaixo nele e salve-o em seu Raspberry Pi. Em seguida, coloque o arquivo HTML na pasta de modelos conforme explicado acima. Não se esqueça de alterar o endereço IP no arquivo HTML.
Em seguida, execute o código Python digitando o comando abaixo:
python name_of_file.py
Em seguida, abra seu endereço IP do Raspberry Pi com a porta 5010 como http://192.168.43.199:5010 (substitua novamente o endereço IP pelo seu endereço). Agora você verá a página da web com quatro links de controle do robô e vídeo de streaming ao vivo. O usuário pode controlar o robô clicando e segurando os links. Se o usuário clicar e segurar os links, o robô se moverá de acordo com o link clicado e, quando o usuário liberar o link, o robô para automaticamente.
O código Python completo é fornecido abaixo, onde escrevemos várias funções para controlar o robô ao clicar nos links na página da web. Você pode entendê-los facilmente ou, se for um iniciante, verifique nossos Tutoriais anteriores do Raspberry Pi. Visite também nossa seção de robótica para robôs mais interessantes e fáceis de construir.