صفحه 1 از 10 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 99
Like Tree34 لایک

موضوع: کد دریافت و ارسال sms بوسیله sim800L

  1. #1
    Junior Member
    تاریخ عضویت
    Sep 2015
    نوشته ها
    8

    Unhappy کد دریافت و ارسال sms بوسیله sim800L

    با سلام
    من می خوام با استفاده از ماژول sim800L و برد اردینو r3 ارسال و دریافت sms رو انجام بدم
    متاسفانه تونستم باهاش ارسال sms کنم ولی در دریافت بشدت مشگل دارم .
    کد ریز استفاده کردم
    لطفا در صورت امکان راهنمایی کنید


    #include <SoftwareSerial.h>
    #include <String.h>
    SoftwareSerial sim800l(10, 11); // RX, TX
    int s =0;
    void setup()
    {
    sim800l.begin(9600);
    Serial.begin(9600);
    sim800l.print("ATZ");
    delay(300);

    }

    void loop()
    {

    //------------------------------------
    sina=Serial.read();
    if (s>0 )
    {
    //SendTextMessage();
    RTextMessage();
    //DialVoiceCall();
    }
    //--------------------------------------

    Serial.println(sim800l.read());
    delay(500);
    }

    void SendTextMessage()
    {
    Serial.println("Sending Text...");
    sim800l.print("AT");
    delay(200);
    sim800l.print("AT+CSCA=\"+9891100500\"\r");
    delay(200);
    sim800l.print("AT+CMGF=1\r"); // Set the shield to SMS mode
    delay(100);
    //Serial.println(sim800l.read());
    sim800l.print("AT+CMGS=\"+98911...3400\"\r");
    delay(700);
    sim800l.print("This is: ");
    sim800l.print(" test");
    sim800l.print("\r"); //the content of the message
    delay(500);
    sim800l.print((char)26);//the ASCII code of the ctrl+z is 26 (required according to the datasheet)
    delay(100);
    Serial.println("Text Sent.");
    delay(500);

    }

    void RTextMessage()
    {
    Serial.println("recive Text...");
    sim800l.print("AT+CMGR=1\r"); // Set the shield to SMS mode
    delay(200);
    // send data only when you receive data:
    if (!sim800l.available()) {
    // read the incoming byte:
    char intx = sim800l.read();

    // say what you got:
    Serial.print("I received: ");
    Serial.println(intx);
    }
    }

    void DialVoiceCall()
    {
    sim800l.print("AT");
    delay(200);
    sim800l.print("ATD+098911...3400;");//dial the number, must include country code
    sim800l.print("\r");
    delay(200);
    Serial.print("I call... ");
    }

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,752
    من وقتی سیم کارتمو قرار میدم اصلا زنگ نمیخوره
    چیه مشکلش؟

  3. #3
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,752
    کد کامل
    کد:
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(2, 3); // RX, TX
    #define GSMReset 5
    void setup() {
      Serial.begin(19200);  //Скорость порта для связи Arduino с компьютером
      Serial.println("Goodnight moon!");
      mySerial.begin(19200);  //Скорость порта для связи Arduino с GSM модулем
      pinMode(GSMReset, OUTPUT);
      digitalWrite(GSMReset, HIGH);
      delay(10);
      digitalWrite(GSMReset, LOW);
      delay(100);
      digitalWrite(GSMReset, HIGH);
      delay(7000);
     // sendCommand("AT+IPR=2400", 200);
     // mySerial.begin(2400);
      sendCommand("AT+CFUN=1", 2000);
      sendCommand("AT+CREG?", 100);
      //  sms("salam","+980000000000");
      sendCommand("ATD00000000000;", 100);
      //ensms();
      //delay(500);
      //farsisms();
    }
    
    void loop() {
      readSerial();
    
    }
    
    
    void readSerial() {
      while (mySerial.available())
        Serial.write(mySerial.read());
    
    }
    
    void sendCommand(String cmd, int t)
    {
      mySerial.println(cmd);
      delay(t);
      readSerial();
    }
    void ensms()
    {
      mySerial.println("AT+CSCS=\"IRA\"");
      delay(200);
      readSerial();  
      mySerial.println("AT+CMGF=1");
      delay(200);
      readSerial();
      mySerial.println("AT+CSMP=17,167,0,0");
      delay(200);
      readSerial();
      mySerial.println("AT+CMGS=\"+980000000000\""); 
      delay(500);
      readSerial();
      mySerial.print("Salam\r\n AftabRayaneh !\x1A");
    }
    
    void farsisms()
    {
      //mySerial.println("AT+CSCS=\"UCS2\"");
      mySerial.println("AT+CSCS=\"HEX\"");
      delay(100);
      readSerial();
      mySerial.println("AT+CMGF=1");
      delay(100);
      readSerial();
      mySerial.println("AT+CSMP=17,167,0,8");
      delay(100);
      readSerial();
      mySerial.println("AT+CMGS=\"+980000000000\""); 
      delay(500);
      readSerial();
      mySerial.print("0633064406270645060C002006220641062A0627062800200631062706CC062706460647\x1A");
    }
    ویرایش توسط magmagmary : 12-05-2015 در ساعت 02:33 PM

  4. #4
    Junior Member
    تاریخ عضویت
    Sep 2015
    نوشته ها
    8
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    من وقتی سیم کارتمو قرار میدم اصلا زنگ نمیخوره
    چیه مشکلش؟
    خیلی رو انتن دهی حساس هستش . حتما باید انتن خوب بهش وصل باش . قسمت پخ خورده سیم کارت هم باید بطرف بیرون باشه
    لایک کردن

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,752
    نه مشکلش این نیست باید با یه ترتیب خاص پایه ریستش 0 و 1 بشه طبق اون چیزی ک تو setup برنامه نوشتم

  6. #6
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23

    مشگل

    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    کد کامل
    کد:
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(2, 3); // RX, TX
    #define GSMReset 5
    void setup() {
      Serial.begin(19200);  //Скорость порта для связи Arduino с компьютером
      Serial.println("Goodnight moon!");
      mySerial.begin(19200);  //Скорость порта для связи Arduino с GSM модулем
      pinMode(GSMReset, OUTPUT);
      digitalWrite(GSMReset, HIGH);
      delay(10);
      digitalWrite(GSMReset, LOW);
      delay(100);
      digitalWrite(GSMReset, HIGH);
      delay(7000);
     // sendCommand("AT+IPR=2400", 200);
     // mySerial.begin(2400);
      sendCommand("AT+CFUN=1", 2000);
      sendCommand("AT+CREG?", 100);
      //  sms("salam","+980000000000");
      sendCommand("ATD00000000000;", 100);
      //ensms();
      //delay(500);
      //farsisms();
    }
    
    void loop() {
      readSerial();
    
    }
    
    
    void readSerial() {
      while (mySerial.available())
        Serial.write(mySerial.read());
    
    }
    
    void sendCommand(String cmd, int t)
    {
      mySerial.println(cmd);
      delay(t);
      readSerial();
    }
    void ensms()
    {
      mySerial.println("AT+CSCS=\"IRA\"");
      delay(200);
      readSerial();  
      mySerial.println("AT+CMGF=1");
      delay(200);
      readSerial();
      mySerial.println("AT+CSMP=17,167,0,0");
      delay(200);
      readSerial();
      mySerial.println("AT+CMGS=\"+980000000000\""); 
      delay(500);
      readSerial();
      mySerial.print("Salam\r\n AftabRayaneh !\x1A");
    }
    
    void farsisms()
    {
      //mySerial.println("AT+CSCS=\"UCS2\"");
      mySerial.println("AT+CSCS=\"HEX\"");
      delay(100);
      readSerial();
      mySerial.println("AT+CMGF=1");
      delay(100);
      readSerial();
      mySerial.println("AT+CSMP=17,167,0,8");
      delay(100);
      readSerial();
      mySerial.println("AT+CMGS=\"+980000000000\""); 
      delay(500);
      readSerial();
      mySerial.print("0633064406270645060C002006220641062A0627062800200631062706CC062706460647\x1A");
    }

    با سلام
    من هرچی تلاش میکنم نمیتونم از این برنامه جواب بگیرم وقتی سریال مانیتور میکنم بعد از پیغام hello moon نرم افزار پیغام دیگه ای نمیده به عبارتی فکر مینم نمیتونه با gsm ارتباط برقرار نمیکنه لطفا راهنمایی کنید ممنون.

  7. #7
    Senior Member
    تاریخ عضویت
    Oct 2014
    محل سکونت
    ایران
    نوشته ها
    153
    از دستور at استفاده کن ببین ارتباط با ماژول خود دارید؟!
    دستور at را تایپ کنید و اینتر بزنید اگه درست باشه ok میده پس نباید مشکلی باشه و وقتی سیم کارت خود را قرار می دهید و زنگ بزنید شماره را توی سریال مانیتور نشون میده.

    برای تست و اینکه یقین کنید برد gsm شما سالمه اول از یک برد مبدل ttl to serial استفاده کنید

    بردgsm خود را سریال به برد مبدل خود وصل کنید


    بعد تو سریال مانیتور بیاید و دستور at را تایپ و اینتر بزنید اگر ok داد یعنی برد سالمه و ارتباط شما هم سالمه بعد اقدام کنید دستورات at را پیدا کنید و اون دستور مقدار نمایش شارژ سیم کارت را بزنید ببینید سیم کارت را شناخته یا از دستور at 09190000000 ; را تایپ کنید دقت کنید ; بعد از شماره قراره می گیره وقتی اینتر را بزنید شروع به تماس گرفتن میکنه
    درود بر کسانی که دعا دارند و ادعا ندارند
    نیایش دارند و نمایش ندارند
    حیا دارند و ریا ندارند
    رسم دارند و اسم ندارند…

  8. #8
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    FONA basic test
    Initializing....(May take 3 seconds)
    Attempting to open comm with ATs
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    Timeout: No response to AT... last ditch attempt.
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> AT
    <--- ÿÿÿÿÿÿÿÿÿÿ
    ---> ATE0
    <--- ÿÿÿÿÿÿÿÿÿÿÿÿ
    ---> ATE0
    <--- ÿÿÿÿÿÿÿÿÿÿÿÿ
    Couldn't find FONA
    سلام من از کتابخونه fona استفاده میکنم که خودش نمونه تست هم داره ولی با at همون جوری که تو پیغام بالا هست اکی نمیده
    لینک کتابخونه هم:https://learn.adafruit.com/adafruit-...e/arduino-test
    پین کد و برداشتم و اینکه زنگ هم میخوره واقعا اعصابمو خورد کرده اگه چیزی به ذهنتون میرسه لطف میکنید اگه راهنماییم کنید بازم ممنون که وقت گذاشتین

  9. #9
    Senior Member
    تاریخ عضویت
    Oct 2014
    محل سکونت
    ایران
    نوشته ها
    153
    اگه دستور at را بهش می دیدید و این ÿÿÿÿÿÿÿÿÿÿ را به شما میده ممکنه سرعت سریال را درست تنظیم نکردید!!!

    ببین اول با یه مبدل یو اس بی به تی تی ال استفاده کن و از دستورات AT

    مقدار سرعت سریال را تو سریال مانیتور روی 9600 بزار و دستور را بنویس و اینتر بزن بعد جواب را بهمون بگو
    درود بر کسانی که دعا دارند و ادعا ندارند
    نیایش دارند و نمایش ندارند
    حیا دارند و ریا ندارند
    رسم دارند و اسم ندارند…

  10. #10
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    نقل قول نوشته اصلی توسط tanha71 نمایش پست ها
    اگه دستور at را بهش می دیدید و این ÿÿÿÿÿÿÿÿÿÿ را به شما میده ممکنه سرعت سریال را درست تنظیم نکردید!!!

    ببین اول با یه مبدل یو اس بی به تی تی ال استفاده کن و از دستورات AT

    مقدار سرعت سریال را تو سریال مانیتور روی 9600 بزار و دستور را بنویس و اینتر بزن بعد جواب را بهمون بگو
    سلام بازم از جوابتون ممنون
    والا اگه ایراد از تنظیم سرعت سریال بود فقط فونت پاسخ ok ایراد پیدا میکرد ولی کلا وصل نمیشه به gsm ولی بازم من اون کاری که شما گفتید و انجام میدم حالا شما بازم فکر کنید روش بازم ممنونم از شما تشکر

صفحه 1 از 10 123 ... آخرینآخرین

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO