Upgrade to Pro — share decks privately, control downloads, hide ads and more …

detector de ladrao com laser

Cooler_ mad coder
May 24, 2012
180

detector de ladrao com laser

como fazer detector de ladrao com laser

Cooler_ mad coder

May 24, 2012
Tweet

Transcript

  1. 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 spoofing https://github.com/CoolerVoid/Hyde “Cactoo CMS” Só mais um CMS em PHP http://code.google.com/p/cactoo/ “Beer” Biblioteca com funções diversas em C , para facilitar a vida do pessoal iniciante bem 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
  2. ...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...
  3. 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...
  4. 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
  5. 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...
  6. 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
  7. 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/
  8. 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
  9. 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...
  10. 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); }
  11. 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
  12. 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ão int 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 OpenCV void webcam(const char* file);
  13. 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; }
  14. Obrigado pela atenção Onde podemos conversar ? irc.freenode.net #cogubin [email protected]

    Thanks: m0nad,Iak,sigsegv,ebellani,_mlk_, clandestine,eremitah,mentebinaria,kov,f117,syn_ack marcelomf,zeppelin,muzgo,b4r0n,nibbles,voidpointer enygmata,crash,SecMentor, __von,twi-john , utroz,sexpistol,_i outros amigos...