Download - detector de ladrão com laser
![Page 1: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/1.jpg)
Só mais um projeto de detector de ladrão com laser , e algumas ideias...
![Page 2: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/2.jpg)
Quem Sou ?
Antonio Costa aka “Cooler_” , desenvolvedor independente em C,Common Lisp,Perl,PHP... Trabalho como freelancer a 4 anos no meio de Web(e-commerce,web spiders...) e problemas em gerais para unix like, faço parte do grupo de estudo e pesquisa BugSec, sou um dos colaboradores e fundadores da e-zine “Cogumelo Binario”. Estudo microcontroladores(AVR e PIC) ,eletrônica em geral como hobby, também tento colaborar em projetos OpenSource.http://coolerlab.wordpress.com/
“TombPool”simples biblioteca em Linguagem C para trabalhar com piscina de conexões.http://code.google.com/p/tombpool/
“Hyde”Só mais um packet injector usando spoofinghttps://github.com/CoolerVoid/Hyde
“Cactoo CMS”Só mais um CMS em PHPhttp://code.google.com/p/cactoo/
“Beer”Biblioteca com funções diversas em C , para facilitar a vida do pessoal iniciantebem como automatizar tarefas em arquivos,strings,números etc...https://github.com/CoolerVoid/beer/blob/master/beer.c
“BugSec”Grupo que faço parte, no nosso google code colocamos alguns códigos e papers que escrevemos para estudo etc...quem faz parte: Victor Ramos Mello aka “m0nad”, ref: “http://m0nadlabs.wordpress.com/” Tiago Natel aka “IAK”, ref: “http://www.secplus.com.br/site/” Felipe Pena aka “sigsegv” ref: “http://felipe.ath.cx/” Eduardo Bellani aka “ebellani” ref: “https://github.com/ebellani” Sergio Renan “_mlk_” . ref “http://code.google.com/p/lwv/”http://code.google.com/p/bugsec/downloads/list
![Page 3: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/3.jpg)
...The:empire:Strikes:Back....
Já a muito tempo tinha ideia de fazer algo com laser, em circunstâncias anteriores tive algo empírico com detector de ladrão, usando Arduino pro Mini e um PIR (detector de movimento), usava webcam usando api do OpenCV para assim que tiver movimento obter uma foto, logo é enviado como anexo para um determinado e-mail a foto, funcionou bem entretanto não como o esperado então em uma questão de aleatoriedade passava falsos alarmes, nem tudo é perfeito vejamos alguns Ids como snort por exemplo.
Com o passar do tempo, lendo livros da “Evil Genius” achei muito material interessante sobre eletrônica envolvendo segurança, alguns deles compartilhei no meu blog como o “detector de mentira”, algo bem simples para detectar batidas do coração e talvez julgar se é mentira ou não, analisando uma plotagem ou alguns inteiros, andando no meio dessa odisseia encontrei vários sistemas “pega ladrão” entre eles o que vamos estudar aqui sistema com “Laser”, devido a carência de material do mesmo em PT-BR, tive ideia de escrever este paper pois acho que seria a melhor forma de aprender é escrevendo...
![Page 4: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/4.jpg)
Projeto antigo com Arduino com sensor de movimento
![Page 5: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/5.jpg)
Por que Arduino ?
• OpenSource• Facilidade por conta da IDE• Podemos optar em usar
gcc-avr, programar em C,ASM... • prototipagem • Com Arduino podemos fazer gravação
em outros AVR como ATtiny...
![Page 6: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/6.jpg)
www.arduino.cc
![Page 7: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/7.jpg)
O que é Laser ? Um laser é um dispositivo que controla a maneira pela qual átomos energizados liberam fótons(energia luminosa).
Etimologia: Sua sigla de laser significa "Light Amplification by Stimulated Emission of Radiation" ou seja Amplificação da Luz por Emissão Estimulada de Radiação, Albert Einstein deu o primeiro passo, dizendo que a luz é formada por pacotes discretos e bem determinados de energia que hoje é rotulado como fótons,Mais tarde em 1960 Charles Townes registrou a patente do primeiro gerador de raios laser, em Washington.
Charles Townes e Arthur Schawlow
![Page 8: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/8.jpg)
Luz do laser e da lanterna Emissão estimulada não ocorre numa lanterna comum, pois todos os seus átomos liberam seus fótons de forma aleatória. já no laser a emissão de fótons é organizada.
Qual laser trabalhar ? Lasers em geral são classificados em várias classes, temos estes que pessoal da SWAT usa em armas, usam para aumentar a probabilidade de acerto em um conflito armado, geralmente são da classe 3 ou seja "IIIa" que é o que vamos usar, conhecido como laser de díodo,única contra indicação é que se aponte em olhos pois pode causar danos embora tenha só 5mW, digamos ai com adição de elementos óticos pode causar danos, como adicionar uma lente de aumento etc...
![Page 9: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/9.jpg)
![Page 10: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/10.jpg)
Indo para Prática
Requerimentos:
2 Resistor de 10k , R$ 0,30 centavos 1 Fotocélula "sensor de luz" (photocell) R$ 2,00 reais 1 Arduino nano USD 20,00 dollar 1 Cabo para ftdi (para I/O) R$ 6 reais 1 Laser de 5mW R$ 3,50 1 Led qualquer cor R$ 0,15 centavos *alguns jumpers e breadboard
![Page 11: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/11.jpg)
Melhorando a visualização
O LED não esta nesta foto, LED você adiciona no pino que quiser já que é algo opcional , lembrando que GND “negativo” é o fio verde, 5v “positivo” seria o fio vermelho, no caso o laranja seria o do PINO ”2”.
http://fritzing.org/
![Page 12: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/12.jpg)
O que foi feito ? A fotocélula ao ser usada com resistor de 10k vai detectar luz, no caso podemos usar 2 pedaços de cano PVC ou lata, deixar o circuito numa lata com um furo mirando para a fotocélula, segunda lata o laser mirando para o buraco da primeira lata, se alguém passar pelo laser e o laser não chegar na fotocélula logo não mandara a luz, então o microcontrolador irá julgar uma ação, no caso eu mandei "1" via serial caso não tenha luz, nosso código em C ao detectar "1" irá ativar uma função usando OpenCV para tirar foto com webcam, logo seguido de um system() para uso do “mutt”(cliente de e-mail para unix like) para enviar foto com anexo para o e-mail destino...
Diagrama
![Page 13: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/13.jpg)
Note na foto o sistema rodando, repare que o laser mira em sima da fotocélula, e quando isso ocorre acende um LED, obviamente você pode mudar isso,adicionar um buzzer para soar alarme caso o laser não alcance a fotocélula,talvez usar uma placa de GSM com seu SIM card e mandar um SMS por exemplo...
![Page 14: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/14.jpg)
Código do Arduino
int photocellPin = 2; int RedLed = 3; int photocellReading;
void setup(void) { pinMode(RedLed,OUTPUT); Serial.begin(9600); }
void loop(void) { photocellReading = analogRead(photocellPin); // se entrada(fotons) maior que 900 é laser... então if( photocellReading>=900) { digitalWrite(RedLed,HIGH); delay(500); }else { // se o laser nao tiver apontando para fotocelula digitalWrite(RedLed,LOW); // manda 1 via serial assim ativa webcam etc... Serial.println("1"); } photocellReading = 1024 - photocellReading; delay(100); }
![Page 15: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/15.jpg)
O Código em Linguagem C
Este código vai ser compilado e executado e vai ficar no seu computador em esculta, código ficou grande, então não vou mostrar tudo somente os pontos críticos...
baixe aqui !
bugsec.googlecode.com/files/ThiefGet_with_laser.c
![Page 16: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/16.jpg)
Macro de DEBUG
Quase todo código que escrevo uso esta macro, uso para ajudar a depurar o código, evita que eu abra o GDB para tomar uma surra!
setar para 1 ativa debug#define BUGVIEW 1
#define DEBUG(x, s...) do { \ if (!BUGVIEW) { break; } \ time_t t = time(NULL); \ char *d = ctime(&t); \ fprintf(stderr, "[!] %.*s %s[%d] %s(): ", \ (int)strlen(d) - 1, d, __FILE__, \ __LINE__, __FUNCTION__); \ fprintf(stderr, x, ## s); \ } while (0);
Nos retorna tempo, nome do arquivo,linha e função.
Funções
Esta função abrimos a porta serial com a syscall open()e ajustamos o struct do “termios.h” para comunicação padrãoint serialboot(const char* serialport, int baud);
Função para uso da syscall read() no descriptor para pegar input... int serialread(int fd, char* buf, char until);
Esta função tira foto da webcam usando API do OpenCVvoid webcam(const char* file);
![Page 17: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/17.jpg)
Parte lógica
// se receber "1" if(strcmp(buf,"1")>0) { //microsegundos do sleep usleep(500000); puts("MOVEMENT ONLINE"); puts(buf); counter++; OFF=0; } //numero de vezes que achou movimento if(counter==MOVES) { puts("cof cof thief in HOME"); // tira foto da webcam webcam("test.jpg"); // manda e-mail com anexo a webcam :-) ,poderia ser um execl() também... system(CMD); break; counter=0; }
![Page 18: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/18.jpg)
Perguntas ???
![Page 19: detector de ladrão com laser](https://reader031.vdocuments.pub/reader031/viewer/2022012316/558e6a721a28ab78028b4570/html5/thumbnails/19.jpg)
Obrigado pela atenção
Onde podemos conversar ?
irc.freenode.net#cogubin
Thanks:m0nad,Iak,sigsegv,ebellani,_mlk_,
clandestine,eremitah,mentebinaria,kov,f117,syn_ackmarcelomf,zeppelin,muzgo,b4r0n,nibbles,voidpointer
enygmata,crash,SecMentor, __von,twi-john , utroz,sexpistol,_ioutros amigos...