Arduino UNO como Sniffer Telefónico

  • 0 Respuestas
  • 6530 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5739
  • Actividad:
    100%
  • Country: ar
  • Reputación 42
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Arduino UNO como Sniffer Telefónico

  • en: Diciembre 29, 2013, 05:44:13 pm
El circuito receptor DTMF para monitorear los tonos que se transmiten por la línea telefónica es el siguiente:


You are not allowed to view links. Register or Login

La conexión de los pines de salida del HT9170B/D a la placa Arduino UNO es la siguiente:

HT9170B/D --> Arduino UNO
D0(Pin 11) --> Arduino UNO (Pin 2)
D1(Pin 12) --> Arduino UNO (Pin 3)
D2(Pin 13) --> Arduino UNO (Pin 4)
D3(Pin 14) --> Arduino UNO (Pin 5)
DV(Pin 15) --> Arduino UNO (Pin 6)

El terminal con la etiqueta "Tone" se conecta directamente a un terminal de la línea telefónica y el otro terminal de la línea telefónica se conecta a GND.

La alimentación para este circuito se obtiene directamente de la placa Arduino UNO. Existe en dicha placa un terminal que provee 5V.


El circuito para conectar una tarjeta Micro SD a la placa Arduino UNO es el siguiente:


Los pines 10, 11, 12 y 13 corresponden a los pines de la placa Arduino UNO.
La alimentación para este circuito se obtiene directamente de la placa Arduino UNO. Existe en dicha placa un terminal que provee 3.3V.
Este circuito lo construí sobre un adaptador Micro SD a SD como se puede observar en la siguiente imagen.


Con ambos circuitos armados procedemos a interconectar las tres placas como se observa en la siguiente imagen.


Habiendo interconectado exitosamente las tres placas procedemos a escribir el programa cuya función será leer el estado de las 5 entradas (Pin 2 a Pin 6) y almacenar el valor obtenido a un archivo de texto en la tarjeta Micro SD.

Antes de continuar la lectura recomiendo ver la Tabla de Códigos DTMF


Código: (c) You are not allowed to view links. Register or Login
#include <SD.h>

File myFile;
byte digit;

void setup()
{
    pinMode(2, INPUT); //D0
    pinMode(3, INPUT); //D1
    pinMode(4, INPUT); //D2
    pinMode(5, INPUT); //D3
    pinMode(6, INPUT); //DV
    pinMode(10, OUTPUT); //SD Card SS
   
    if (!SD.begin(10))
    {
        return;
    }
}

void loop()
{
    while(digitalRead(6) == LOW)
    {
        ;
    }
   
    digit = 0;
   
    if (digitalRead(2) == HIGH)
    {
        digit = digit + 1;
    }
    if (digitalRead(3) == HIGH)
    {
        digit = digit + 2;
    }
    if (digitalRead(4) == HIGH)
    {
        digit = digit + 4;
    }
    if (digitalRead(5) == HIGH)
    {
        digit = digit + 8;
    }
   
    myFile = SD.open("log.txt", FILE_WRITE);
   
    if(myFile)
    {
        myFile.print(digit);
        myFile.print("-");
        myFile.close();
    }
   
    while(digitalRead(6) == HIGH)
    {
        ;
    }
}

Lógicamente es perfectible y cada uno puede adaptarlo a sus necesidades particulares.

Autor: Hardrive9000
« Última modificación: Noviembre 11, 2014, 06:19:45 pm por ANTRAX »