Go Down

Topic: has anyone tried this? Sony ericsson arduino hack (Read 1 time) previous topic - next topic

selwynberja

here is the video www.youtube.com/watch?v=5tHlJLQvE1Y


here is the code  http://www.kokoras.com/GSM/arduinogsm.htm

Code: [Select]
#include <SoftwareSerial.h> //Software Serial Port
#define RxD 7
#define TxD 8

#define pinOUT1 2



SoftwareSerial ericssonSerial(RxD,TxD);

String phonenum="XYXYXYXYXY";
String phonePDU="YXYXYXYXYX";

String OUT1ON="0C31D98C067A56A931D0D309";
String OUT1OFF="0D31D98C067A56A931D0D36804";
String OUT1FAIL="09CF2A35063206934C";
String OUT1ONOK="0ACF2A35067A3A41CF25";
String OUT1OFFOK="0BCF2A35067A1A8DA0E712";

void setup()
{
Serial.begin(9600);


pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
pinMode(pinOUT1, OUTPUT);

ericssonSerial.begin(9600);

delay(500);

Init();

}


void Init(){
 
   while (send_command("AT&F",500) != "&F\r\r\nOK\r\n") {
     delay(1000);
   }
   Serial.println("Modem reset...");
   
   while (send_command("ATE=0",500) != "E=0\r\r\nOK\r\n") {
     delay(1000);
   }
   Serial.println("Echo Off...");
   
   while (send_command("AT+CLIP=1",500) != "\r\nOK\r\n") {
     delay(1000);
   }
   Serial.println("Caller ID enabled...");
   
   while (send_command("AT+CPMS=\"ME\"",500).indexOf("CPMS")==0) {
     delay(1000);
   }
   Serial.println("Phone Memory Selected for SMS...");
   
   while (send_command("AT+CNMI=,1",500) != "\r\nOK\r\n") {
     delay(1000);
   }
   Serial.println("New SMS Indication Activated...");
   
   Serial.println("Ready...");
}


String send_command(String at_cmd, int dly){

  String msg;
  char incomingByte;

  ericssonSerial.println(at_cmd);
  delay(dly);
  while (ericssonSerial.available() > 0)
  {
    incomingByte = (ericssonSerial.read());
    msg = msg + incomingByte;
  } 
  //delay(1000);

  return msg;
}

void sendSMS(String num,String txt){
  String pduTxt;
  int pduLength;
 
 
   pduTxt="0011000C9103"+num+"0000AA"+txt; 
   pduLength=(pduTxt.length()-2)/2;
   //Serial.println(pduTxt);
   //Serial.println(pduLength);
   ericssonSerial.print("AT+CMGS="+String(pduLength)+"\r");
   delay(5000);
   ericssonSerial.print(pduTxt);
   delay(5000);
   ericssonSerial.write(26);
   delay(1000);

}

void loop()
{
char recvChar;
String recvStr;
int ringCount=0;
String incSMS=0;

while(1){
   recvStr=0;

   while (ericssonSerial.available()>0){
     recvChar = ericssonSerial.read();
     recvStr=recvStr+recvChar;
     //Serial.print(recvChar);
   }


   if (recvStr.indexOf("CLIP")>0){

     if (recvStr.indexOf(phonenum)>0) {
   
       Serial.println(phonenum+" is calling...");
       ringCount=ringCount+1;
       recvStr=0;
       //Serial.println(ringCount);
     }else{
        while (send_command("AT+CHUP",700) != "\r\nOK\r\n"){
        delay(1000);
        }
        Serial.println("Unauthorized caller..");
     }
   }
   
   if (ringCount==2){
       while (send_command("AT+CHUP",700) != "\r\nOK\r\n"){
         delay(1000);
       }
       digitalWrite(pinOUT1,HIGH);
       Serial.println("OUT1 ON...");
       //delay(5000);
       //digitalWrite(pinOUT1,LOW);
       //Serial.println("LED OFF...");
       ringCount=0;
       Serial.println("Sending SMS <OUT1 ON OK>.....");
       sendSMS(phonePDU, OUT1ONOK);
   } 
   
   if (recvStr.indexOf("CMTI")>0){
     Serial.println("SMS Received...");
     ericssonSerial.println("AT+CMGR=1");
     //delay(500);
   }
   
   if (recvStr.indexOf(phonePDU)>0){
     //Serial.print(recvStr);
     if (recvStr.indexOf(OUT1ON)>0){
       digitalWrite(pinOUT1,HIGH);
       Serial.println("OUT1 ON...");
       delay(1000);
       ericssonSerial.println("AT+CMGD=1");
       delay(1000);
       Serial.println("Sending SMS <OUT1 ON OK>.....");
       sendSMS(phonePDU,OUT1ONOK);
     } else if (recvStr.indexOf(OUT1OFF)>0){
       digitalWrite(pinOUT1,LOW);
       Serial.println("OUT1 OFF...");
       delay(1000);
       ericssonSerial.println("AT+CMGD=1");
       delay(1000);
       Serial.println("Sending SMS <OUT1 OFF OK>.....");
       sendSMS(phonePDU,OUT1OFFOK);
     } else {
         Serial.println("Invalid SMS...");
         delay(1000);
         ericssonSerial.println("AT+CMGD=1");
         delay(1000);
     }
   }
   
   if (recvStr.indexOf("CMGS")>0){
     Serial.println("Message Sent...");
   }
     
   while (Serial.available()){
     recvChar = Serial.read();
     ericssonSerial.print(recvChar);
   }
}
}



i have uploaded that sketch into my arduino, and i also  connected the rx and tx and correctly  but the problem is nothing appears on the serial monitor i have also tried  on hyper terminal  but still doesnt work =(.please help me

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy