Σελίδα 1 από 3 1 2 3 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 24

Θέμα: Arduino GSM remote control with an old mobile phone Ericsson T65

  1. #1
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2012
    Περιοχή
    Ηγουμενίτσα
    Μηνύματα
    32

    Προεπιλογή Arduino GSM remote control with an old mobile phone Ericsson T65




    Σύνδεσα σειριακά ένα παλιό Ericsson T65 με το Arduino

    http://pinouts.ru/CellularPhones-P-W...8_pinout.shtml

    T65 ------------------------Arduino
    Pin4(Rx)--------22K-------Pin8(Tx)
    Pin5(Tx)------------------- Pin7(Rx)
    Pin10(Gnd)
    Pin11(Vcc +5V)

    και μέσω ATCommands
    Όταν δέχετε κλήση από συγκεκριμένο νούμερο μετά από 2 χτυπήματα (rings) κλείνει την γραμμή και δίνει HIGH στο pin2 όπου είναι συνδεμμένο ένα relay.
    Στη συνέχεια στέλνει ένα SMS επιβαιβέωσης ότι η OUT1 είναι ON
    Επίσης δέχεται SMS απο συγκεκριμένο νούμερο πάλι. Αν το μύνημα λέει OUT1 ON τότε δίνει HIGH στο pin2, αν λέει OUT1 OFF τότε δίνει LOW.
    Στη συνέχεια στέλνει ένα SMS επιβαιβέωσης ότι η OUT1 είναι ON ή OFF ανάλογα.

    Το πρόβλημα είναι ότι το T65 έχει μόνο PDU mode για τα SMS.

    Δείτε τη σειριακή κονσόλα του Arduino
    Κώδικας:
    Modem reset...
    Echo Off...
    Caller ID enabled...
    Phone Memory Selected for SMS...
    New SMS Indication Activated...
    Ready...
    xxxxxxxxxx is calling...
    xxxxxxxxxx is calling...
    OUT1 ON...
    Sending SMS <OUT1 ON OK>.....
    Message Sent...
    SMS Received...
    OUT1 OFF...
    Sending SMS <OUT1 OFF OK>.....
    Message Sent...
    SMS Received...
    OUT1 ON...
    Sending SMS <OUT1 ON OK>.....
    Message Sent...
    SMS Received...
    OUT1 OFF...
    Sending SMS <OUT1 OFF OK>.....
    Message Sent...
    Δείτε τον κώδικα του Arduino
    Κώδικας:
    #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);
       }
     }
    }
    Παρακαλώ ελεύθερα ότι θέλετε να ρωτήσετε ή να προτείνετε.
    Ευχαριστώ
    Κώστας Κόκορας

    5 Not allowed! Not allowed!

  2. 5 μέλη ευχαρίστησαν τον guscokes για αυτό το χρήσιμο μήνυμα:

    αλπινιστης (07-05-13), aktis (04-05-13), GeorgeVita (12-05-13), manolena (03-05-13), spiroscfu (03-05-13)

  3. #2
    Μέλος Το avatar του χρήστη dalai
    Όνομα
    Νίκος
    Εγγραφή
    Mar 2004
    Περιοχή
    Ξανθη
    Μηνύματα
    1.309

    Προεπιλογή

    Εχει ποσο καιρο ψαχνω για παλιο κινητο να κανω το ιδιο . Βρηκα ενα αλλα εχει αυτο το ηλίθιο πρωτοκολλο για τον τροπο γραφης των sms . Οταν τελικα βρηκα ενα νοκια 1100 ,απο την βιασινη μου ξεκολησα ενα πιν και του χαλασα το μοdem. Αντε να δουμε....\

    1 Not allowed! Not allowed!
    "Αν εισαι ηλεκτρονικος, μπορεις να κανεις τα παντα!!"

  4. Ένα μέλος ευχαρίστησε τον dalai για αυτό το χρήσιμο μήνυμα:

    aris285 (08-05-13)

  5. #3
    Νέο Μέλος Το avatar του χρήστη neck82
    Όνομα
    Νεκτάριος
    Εγγραφή
    May 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    10

    Προεπιλογή

    Καλημέρα παιδιά και χρόνια πολλά με υγεία και χαρά!! Ήθελα να σας κάνω μια ερώτηση εσάς που ασχολείστε με Arduino.
    Θέλω να κάνω μια κατασκευή, αλλά δεν έχω γνώσεις προγραμματισμού και ήθελα να ρωτήσω εαν υπάρχουν κάποια έτοιμα προγράμματα ή προγραμματισμένες πλακιέτες στο ιντερνετ ή θα πρέπει να μου το προγραμματίσει κάποιος??

    Ευχαριστώ πολύ!!

    0 Not allowed! Not allowed!

  6. #4
    Μέλος
    Όνομα
    Παναγιωτης
    Εγγραφή
    Aug 2009
    Περιοχή
    Αιγαλεω
    Μηνύματα
    146

    Προεπιλογή

    Φιλε κωστα συνχαρητηρια για την κατασκευη σου....!!!!.Αυτο που θελω εγω να σε ρωτησω ειναι που βρηκες τις εντολες για το συσκεκριμενο τηλεφωνο? Με ενδιαφερει να βρω και εγω τι εντολες για ενα παλιο Νοκια που εχω...

    Ευχαριστω!

    0 Not allowed! Not allowed!

  7. #5
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2012
    Περιοχή
    Ηγουμενίτσα
    Μηνύματα
    32

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από dalai Εμφάνιση μηνυμάτων
    Εχει ποσο καιρο ψαχνω για παλιο κινητο να κανω το ιδιο . Βρηκα ενα αλλα εχει αυτο το ηλίθιο πρωτοκολλο για τον τροπο γραφης των sms . Οταν τελικα βρηκα ενα νοκια 1100 ,απο την βιασινη μου ξεκολησα ενα πιν και του χαλασα το μοdem. Αντε να δουμε....\
    Έχω την εντύπωση ότι για κάποια Nokia εκτός το πρόβλημα με τα SMS μπορεί να έχεις και πρόβλημα με την σειριακή επικοινωνία, δλδ έχω δει ότι χρησιμοποιούν κάποιο bus που το λένε Fbus ή Mbus.

    0 Not allowed! Not allowed!

  8. #6
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2012
    Περιοχή
    Ηγουμενίτσα
    Μηνύματα
    32

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από neck82 Εμφάνιση μηνυμάτων
    Καλημέρα παιδιά και χρόνια πολλά με υγεία και χαρά!! Ήθελα να σας κάνω μια ερώτηση εσάς που ασχολείστε με Arduino.
    Θέλω να κάνω μια κατασκευή, αλλά δεν έχω γνώσεις προγραμματισμού και ήθελα να ρωτήσω εαν υπάρχουν κάποια έτοιμα προγράμματα ή προγραμματισμένες πλακιέτες στο ιντερνετ ή θα πρέπει να μου το προγραμματίσει κάποιος??

    Ευχαριστώ πολύ!!
    Έτοιμα προγραμματισμένα δεν νομίζω, αλλά μπορείς να βρείς το πρόγραμμα και να το φορτώσεις εσύ εφόσον έχεις το Arduino συνδεδεμενο με τον υπολογιστή σου και τρέχεις το IDE του Arduino. Αν πρόσεξες στο αρχικό μου post έχω συμπεριλάβει όλο τον κώδικα για το Arduino.

    0 Not allowed! Not allowed!

  9. #7
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2012
    Περιοχή
    Ηγουμενίτσα
    Μηνύματα
    32

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από _pike Εμφάνιση μηνυμάτων
    Φιλε κωστα συνχαρητηρια για την κατασκευη σου....!!!!.Αυτο που θελω εγω να σε ρωτησω ειναι που βρηκες τις εντολες για το συσκεκριμενο τηλεφωνο? Με ενδιαφερει να βρω και εγω τι εντολες για ενα παλιο Νοκια που εχω...

    Ευχαριστω!
    Ευχαριστώ, οι εντολές είναι AT Commands για GSM Modem, κάνε μια αναζήτηση στο Google και θα βρεις ότι θέλεις, αλλιώς πές μου να σου στείλω. Άλλα μιας και αναφέρεσε σε Nokia δες λίγο την απάντηση μου στον dalai.

    0 Not allowed! Not allowed!

  10. #8
    Banned Το avatar του χρήστη Samios60
    Όνομα
    Πλούταρχος
    Εγγραφή
    Jul 2011
    Περιοχή
    Σάμος
    Μηνύματα
    588

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από guscokes Εμφάνιση μηνυμάτων



    Σύνδεσα σειριακά ένα παλιό Ericsson T65 με το Arduino

    http://pinouts.ru/CellularPhones-P-W...8_pinout.shtml

    T65 ------------------------Arduino
    Pin4(Rx)--------22K-------Pin8(Tx)
    Pin5(Tx)------------------- Pin7(Rx)
    Pin10(Gnd)
    Pin11(Vcc +5V)

    και μέσω ATCommands
    Όταν δέχετε κλήση από συγκεκριμένο νούμερο μετά από 2 χτυπήματα (rings) κλείνει την γραμμή και δίνει HIGH στο pin2 όπου είναι συνδεμμένο ένα relay.
    Στη συνέχεια στέλνει ένα SMS επιβαιβέωσης ότι η OUT1 είναι ON
    Επίσης δέχεται SMS απο συγκεκριμένο νούμερο πάλι. Αν το μύνημα λέει OUT1 ON τότε δίνει HIGH στο pin2, αν λέει OUT1 OFF τότε δίνει LOW.
    Στη συνέχεια στέλνει ένα SMS επιβαιβέωσης ότι η OUT1 είναι ON ή OFF ανάλογα.

    Το πρόβλημα είναι ότι το T65 έχει μόνο PDU mode για τα SMS.

    Δείτε τη σειριακή κονσόλα του Arduino
    Κώδικας:
    Modem reset...
    Echo Off...
    Caller ID enabled...
    Phone Memory Selected for SMS...
    New SMS Indication Activated...
    Ready...
    xxxxxxxxxx is calling...
    xxxxxxxxxx is calling...
    OUT1 ON...
    Sending SMS <OUT1 ON OK>.....
    Message Sent...
    SMS Received...
    OUT1 OFF...
    Sending SMS <OUT1 OFF OK>.....
    Message Sent...
    SMS Received...
    OUT1 ON...
    Sending SMS <OUT1 ON OK>.....
    Message Sent...
    SMS Received...
    OUT1 OFF...
    Sending SMS <OUT1 OFF OK>.....
    Message Sent...
    Δείτε τον κώδικα του Arduino
    Κώδικας:
    #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);
       }
     }
    }
    Παρακαλώ ελεύθερα ότι θέλετε να ρωτήσετε ή να προτείνετε.
    Ευχαριστώ
    Κώστας Κόκορας
    Συγχαρητηρια φιλε Κωστα για την κατασκευη σου

    0 Not allowed! Not allowed!

  11. #9
    Μέλος Το avatar του χρήστη dalai
    Όνομα
    Νίκος
    Εγγραφή
    Mar 2004
    Περιοχή
    Ξανθη
    Μηνύματα
    1.309

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από guscokes Εμφάνιση μηνυμάτων

    Το πρόβλημα είναι ότι το T65 έχει μόνο PDU mode για τα SMS.
    Εχουμε κανενα σιτε που να εχει αρχειθετησει ποια μοντελα ειναι σε PDU mode και ποια οχι ?

    0 Not allowed! Not allowed!
    "Αν εισαι ηλεκτρονικος, μπορεις να κανεις τα παντα!!"

  12. #10
    Banned Το avatar του χρήστη Samios60
    Όνομα
    Πλούταρχος
    Εγγραφή
    Jul 2011
    Περιοχή
    Σάμος
    Μηνύματα
    588

    Προεπιλογή

    ????????????????????????????

    0 Not allowed! Not allowed!

Σελίδα 1 από 3 1 2 3 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Arduino Gsm Remote Control
    By christakosxo in forum Διάφορα Κυκλώματα
    Απαντήσεις: 31
    Τελευταίο Μήνυμα: 18-04-14, 14:28
  2. Remote Control VIA GSM Mobile Phone
    By electricalgian in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 13
    Τελευταίο Μήνυμα: 26-03-14, 20:16
  3. 915mhz remote controls and mobile phone network
    By Killo_Watt in forum Γενικά
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 08-04-12, 19:51
  4. GSM REMOTE CONTROL
    By amiga in forum Αυτοματισμοί
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 30-05-08, 21:20

Tags for this Thread

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας