piątek, 13 marca 2020

Podsłuch na nieograniczony zasięg światowy oparty o arduino i moduł SIM800L

Projekt, który wam przedstawię jest bardzo prosty w budowie, wymaga jedynie 4 elementów ale funkcjonalność jest naprawdę przydatna. Chodzi o podsłuch oparty o sieć GSM, dzwonimy na dany numer, który automatycznie odbiera nam połączenie i podsłuchujemy okolicę przez telefon.





Do tego zastosowania polecam kartę SIM w sieci Play, ze względu na to że nadal działa tam roaming kilku sieci, a więc zasięg jest naprawdę spory a korzystając z taryfy odNOWA mamy darmowe połączenia w sieci bez ograniczeń, jedynie musimy wykonać raz na miesiąc jakieś połączenie nawet za 1 grosz, aby nie pobrało nam 2 zł "kary". Ewentualnie możemy ponosić koszt 2 zł na miesiąc a doładowywać kartę "w podsłuchu" zdalnie na odległość np. w aplikacji Play24. A więc maksymalny koszt podsłuchu to 2 zł na miesiąc a minimalnie 1 grosz 😂





Co potrzebujemy?

Oczywiście to co w naszych pozostałych projektach czyli standardowo:

  • moduł ATMEGA 2560 (klon)
https://nowyelektronik.pl/index.php?id_product=89227&controller=product


A ponadto:


  • moduł GSM SIM800L (najtańszy tego typu modem na rynku do 30 zł)

  • mikrofon pojemnościowy (jakikolwiek)

  • konwerter poziomów logicznych (do zamiany napięć pinów modemu z 3.3 volt na 5 arduino)






Uwaga jeśli chcemy bardzo czuły podsłuch wyłapujący wszelkie szepty, to możemy zastosować wzmacniacz mikrofonowy lecz o niewielkiej mocy aby nie przesterować wejścia modułu lecz lekko go tylko zwiększyć.

Projekt taki został omówiony w tym temacie:









Modem mieści kartę micro SIM:




Do modemu zalecam dołączoną do zestawu antenę na kabelku:






Schemat połączeń






Program do wgrania
pamiętaj by zmienić linijki kodu gdzie ma być twój numer telefonu
    mySerial.print(phone_number+"\",+48TWÓJNUMERTELEFONU");           

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);   //rx - tx   (TX GSM DO 2 / RX GSM DO 3)
boolean stringComplete = false;
String inputString = "";
String fromGSM="";
void setup()
{
  Serial.begin(9600);
  Serial.println("Serial Connected");
  mySerial.begin(9600);

  //reserve some buffer space
  inputString.reserve(200);
  fromGSM.reserve(200);

  //Turn off echo from GSM
  mySerial.print("ATE0");
  mySerial.print("\r");
  delay(300);

  //set to auto answer after 1 ring, [1-255]
  mySerial.print("ATS0=1");
  mySerial.print("\r");
  delay(300);

}
void sendSMS(String& phone_number, char message[] ){
    mySerial.print("AT+CMGF=1");
    mySerial.print("\r");
    delay(500);
 
    mySerial.print("AT+CMGS=\"");

    mySerial.print(phone_number+"\",+48TWÓJNUMERTELEFONU");                                       
    mySerial.print("\r");
    delay(300);

    // mySerial.print("T4D);
    mySerial.print(message);
    mySerial.write(0x1A);
    delay(500);
}
void loop() // run over and over
{
  if (mySerial.available()){
   char inChar = mySerial.read();
 
    if (inChar == '\n') {
   
       if(fromGSM == "OK\r"){
          Serial.println("---------DZIALA-------");
        }
        else if(fromGSM == "RING\r"){
          Serial.println("---------DZWONI-------");
        }
        else if(fromGSM == "ERROR\r"){
          Serial.println("---------NIE DZIALA-------");
        }
        else if(fromGSM == "NO CARRIER\r"){
          Serial.println("---------KONIEC POLACZENIA-------");
          String myNumber = "+48TWÓJNUMERTELEFONU"; // <------ zmien numer
          char myMessage[] = "DZIEKUJEMY ZA POLACZENIE";
          sendSMS(myNumber, myMessage);
        }
     
     
      Serial.println(fromGSM);
      fromGSM = "";
     
    }else {
         fromGSM+=inChar;
    }
    delay(20);
    }
 
    if (stringComplete) {
      mySerial.print(inputString);
      inputString = "";
      stringComplete = false;
    }

}
void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}







Schemat wyjść modułu GSM:



Gotowy efekt:















1 komentarz:

  1. Wszystko rozrysowane i wytłumaczone dla laika wielkie dzięki. Kupiłem ten moduł GSM jednak nie mogłem sobie z nim poradzić.

    OdpowiedzUsuń

Uwaga: tylko uczestnik tego bloga może przesyłać komentarze.

Whatsapp Button works on Mobile Device only

Wpisz czego szukasz i kliknij w ikonkę lupy