صفحه 3 از 11 نخستنخست 12345 ... آخرینآخرین
نمایش نتایج: از 21 به 30 از 107
Like Tree36 لایک

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

  1. #21
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    کد کامل sim800L

    کد:
    #include <SoftwareSerial.h>
    SoftwareSerial SIM900(2, 3);
    #define GSMReset 5
    
    
    
    
    void setup() {
      Serial.begin(9600); // for serial monitor
      SIM900.begin(9600); // for GSM shield
      gsmPower();
      gsmConfig();
    }
    
    
    void loop() {
      commandDetect();
      smsProcess();
    }
    //*********************************************************************************
    void gsmConfig() {
      pinMode(GSMReset, OUTPUT);
      sendCommand("AT+CMGF=1\r", 100); // set SMS mode to text
      sendCommand("AT+CNMI=2,2,0,0,0\r", 100);
      sendCommand("AT+CFUN=1", 2000);
      sendCommand("AT+CREG?", 1000);
      Serial.println("The end of Config process");
      Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //**********************************************************************************
    void showSms() {
      char incoming_char = 0;
      if (SIM900.available() > 0)
      {
        incoming_char = SIM900.read(); //Get the character from the cellular serial port.
        Serial.print(incoming_char); //Print the incoming character to the terminal.
      }
    }
    //***********************************************************************************
    void smsProcess() {
      char incoming_char = 0;
      if (SIM900.available() > 0)
      {
        incoming_char = SIM900.read();
        if (incoming_char == 'H')
        {
          delay(10);
          Serial.print("horaaaaaaaaaaaaaaaaaaay");
        }
      }
    }
    //***********************************************************************************
    void gsmPower() {
      Serial.println("Turning GSM ON");
      digitalWrite(GSMReset, HIGH);
      delay(10);
      digitalWrite(GSMReset, LOW);
      delay(100);
      digitalWrite(GSMReset, HIGH);
      delay(7000);
      Serial.println("config process...");
    }
    
    
    //**********************************************************************************
    
    
    void sendCommand(String cmd, int t)
    {
      SIM900.println(cmd);
      delay(t);
      readSerial();
    }
    
    
    //**************************************************************************************
    void readSerial() {
      while (SIM900.available())
        Serial.write(SIM900.read());
    }
    
    
    //***********************************************************************************
    
    
    void dialNumber(String number) {
      Serial.println("Dialing...");
      sendCommand("ATD" + number + ";", 100);
      Serial.println("End of Dial process");
      delay(2000);
      Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //************************************************************************************
    void ensms()
    {
      Serial.println("Sending SMS");
      sendCommand("AT+CSCS=\"IRA\"", 200);
      sendCommand("AT+CMGF=1", 200);
      sendCommand("AT+CSMP=17,167,0,0", 200);
      sendCommand("AT+CMGS=\"09331424592\"", 500);
      sendCommand("Salam\r\n AftabRayaneh !\x1A", 0);
      Serial.println("End of English SMS process");
      delay(2000);
      Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //****************************************************************************************
    void farsisms()
    {
      Serial.println("Sending SMS");
      sendCommand("AT+CSCS=\"HEX\"", 100);
      sendCommand("AT+CMGF=1", 100);
      sendCommand("AT+CSMP=17,167,0,8", 100);
      sendCommand("AT+CMGS=\"+09331424592\"", 500);
      sendCommand("0633064406270645060C002006220641062A0627062800200631062706CC062706460647\x1A", 0);
      Serial.println("End of Persian SMS process");
      delay(2000);
      Serial.println("Ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //*******************************************************************************************
    void commandDetect() {
      if (Serial.available() > 0)
      {
        char data = Serial.read();
        switch (data)
        {
          case 'd' : dialNumber("09331424592");
            break;
    
    
          case 'e' : ensms();
            break;
    
    
          case 'f' : farsisms();
            break;
        }
      }
    }

  2. #22
    مدیر ویژه
    تاریخ عضویت
    Mar 2014
    نوشته ها
    586
    متن فارسی رو چطور باید به این صورت کد تبدیل کرد ؟

  3. #23
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    24
    نقل قول نوشته اصلی توسط tanha71 نمایش پست ها
    مشکل سرعت دارید یا اینکه سیم بندی را اشتباه می زنید...
    ماژول قرار نیست 2 آمپر کامل بکشه!!!
    وقتی تماس بگیرید با این ماژول بیشترین جریان را میکیشه
    من حتی به برنامه و چاپ روی ماژول هم اعتماد نکردم rx tx و جاهاشو با هم عوض کردم سرعت رو هم که از 2400تا 115200 هر چی بود گذاشتم توی برنامه ای که بالا نوشتم ولی باز هم ایراد داشت به نظر شما با یه max مشکل حل میشه یا ارتباطی نداره من فقط این به ذهنم میرسه

  4. #24
    Senior Member
    تاریخ عضویت
    Oct 2014
    محل سکونت
    ایران
    نوشته ها
    178
    اگه با میکرو و یا مبدل هم جواب نگرفتید یقین کنید با اونم جواب نمی گیرید... باید دنبال ایراد کارتون باشید... اگه ماژول سالم باشه ....
    درود بر کسانی که دعا دارند و ادعا ندارند
    نیایش دارند و نمایش ندارند
    حیا دارند و ریا ندارند
    رسم دارند و اسم ندارند…

  5. #25
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    41
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    کد کامل sim800l

    کد:
    #include <softwareserial.h>
    softwareserial sim900(2, 3);
    #define gsmreset 5
    
    
    
    
    void setup() {
      serial.begin(9600); // for serial monitor
      sim900.begin(9600); // for gsm shield
      gsmpower();
      gsmconfig();
    }
    
    
    void loop() {
      commanddetect();
      smsprocess();
    }
    //*********************************************************************************
    void gsmconfig() {
      pinmode(gsmreset, output);
      sendcommand("at+cmgf=1\r", 100); // set sms mode to text
      sendcommand("at+cnmi=2,2,0,0,0\r", 100);
      sendcommand("at+cfun=1", 2000);
      sendcommand("at+creg?", 1000);
      serial.println("the end of config process");
      serial.println("ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //**********************************************************************************
    void showsms() {
      char incoming_char = 0;
      if (sim900.available() > 0)
      {
        incoming_char = sim900.read(); //get the character from the cellular serial port.
        Serial.print(incoming_char); //print the incoming character to the terminal.
      }
    }
    //***********************************************************************************
    void smsprocess() {
      char incoming_char = 0;
      if (sim900.available() > 0)
      {
        incoming_char = sim900.read();
        if (incoming_char == 'h')
        {
          delay(10);
          serial.print("horaaaaaaaaaaaaaaaaaaay");
        }
      }
    }
    //***********************************************************************************
    void gsmpower() {
      serial.println("turning gsm on");
      digitalwrite(gsmreset, high);
      delay(10);
      digitalwrite(gsmreset, low);
      delay(100);
      digitalwrite(gsmreset, high);
      delay(7000);
      serial.println("config process...");
    }
    
    
    //**********************************************************************************
    
    
    void sendcommand(string cmd, int t)
    {
      sim900.println(cmd);
      delay(t);
      readserial();
    }
    
    
    //**************************************************************************************
    void readserial() {
      while (sim900.available())
        serial.write(sim900.read());
    }
    
    
    //***********************************************************************************
    
    
    void dialnumber(string number) {
      serial.println("dialing...");
      sendcommand("atd" + number + ";", 100);
      serial.println("end of dial process");
      delay(2000);
      serial.println("ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //************************************************************************************
    void ensms()
    {
      serial.println("sending sms");
      sendcommand("at+cscs=\"ira\"", 200);
      sendcommand("at+cmgf=1", 200);
      sendcommand("at+csmp=17,167,0,0", 200);
      sendcommand("at+cmgs=\"09331424592\"", 500);
      sendcommand("salam\r\n aftabrayaneh !\x1a", 0);
      serial.println("end of english sms process");
      delay(2000);
      serial.println("ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //****************************************************************************************
    void farsisms()
    {
      serial.println("sending sms");
      sendcommand("at+cscs=\"hex\"", 100);
      sendcommand("at+cmgf=1", 100);
      sendcommand("at+csmp=17,167,0,8", 100);
      sendcommand("at+cmgs=\"+09331424592\"", 500);
      sendcommand("0633064406270645060c002006220641062a0627062800200631062706cc062706460647\x1a", 0);
      serial.println("end of persian sms process");
      delay(2000);
      serial.println("ensert\n 'd' for dial \n 'e' for english sms \n 'f' for farsi sms");
    }
    //*******************************************************************************************
    void commanddetect() {
      if (serial.available() > 0)
      {
        char data = serial.read();
        switch (data)
        {
          case 'd' : Dialnumber("09331424592");
            break;
    
    
          case 'e' : Ensms();
            break;
    
    
          case 'f' : Farsisms();
            break;
        }
      }
    }
    مهندس جان سلام دستتون درد نکنه با این کد تونستم شماره بگیرم و اس ام اس انگلیسی ارسال کنم ولی دریافت اس ام باز هم جواب نداد. کد رو که مرور میکمردم متوجه شدم که تو تابع دریافت اس ام اس از هیچ at کامندی استفاده نشده . دلیل خاصی داره؟

  6. #26
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    24
    نقل قول نوشته اصلی توسط tanha71 نمایش پست ها
    اگه با میکرو و یا مبدل هم جواب نگرفتید یقین کنید با اونم جواب نمی گیرید... باید دنبال ایراد کارتون باشید... اگه ماژول سالم باشه ....
    درسته با max هم جواب نداد واقعا دیگه هیچ ایده ای ندارم برا راه اندازیه یه ماژول ساده 3 ردز من و علاف کرده جدا
    یه جوری هم کار میکنه ادم مطمن نمیشه سوخته که عوضش کنه

  7. #27
    Senior Member
    تاریخ عضویت
    Oct 2014
    محل سکونت
    ایران
    نوشته ها
    178
    توکل کنید به خدا و تلاش کنید. خب باید تخصصی تر نگاه کنیم به این موضوع. شما 2 تا عکس با کیفیت از روی برد و پشت برد بگیرید جوری که بشه قطعات را خوند. بزارید تا کمکتون کنم


    نقل قول نوشته اصلی توسط hasanzare66 نمایش پست ها
    درسته با max هم جواب نداد واقعا دیگه هیچ ایده ای ندارم برا راه اندازیه یه ماژول ساده 3 ردز من و علاف کرده جدا
    یه جوری هم کار میکنه ادم مطمن نمیشه سوخته که عوضش کنه
    درود بر کسانی که دعا دارند و ادعا ندارند
    نیایش دارند و نمایش ندارند
    حیا دارند و ریا ندارند
    رسم دارند و اسم ندارند…

  8. #28
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    24
    نقل قول نوشته اصلی توسط tanha71 نمایش پست ها
    توکل کنید به خدا و تلاش کنید. خب باید تخصصی تر نگاه کنیم به این موضوع. شما 2 تا عکس با کیفیت از روی برد و پشت برد بگیرید جوری که بشه قطعات را خوند. بزارید تا کمکتون کنم
    از وقتی که میذارید ممنونم
    عکسای ماژول تو لینک زیر هست کیفیتشم خوبه
    ماژول GSM چهار باند SIM800L با قابلیت GPRS / GSM / SMS

  9. #29
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    41
    نقل قول نوشته اصلی توسط hasanzare66 نمایش پست ها
    از وقتی که میذارید ممنونم
    عکسای ماژول تو لینک زیر هست کیفیتشم خوبه
    ماژول GSM چهار باند SIM800L با قابلیت GPRS / GSM / SMS
    آقای زارع عزیز برادر من جهت تست سالم بودن ماژول از یه تبدیل TTL به usb استفاده کن. وقتت رو هدر نده منم همین مشکل رو داشتم حتی رفتم یه ماژول دیگه خریدم مشکلم برطرف نشد حالا دارم رو کد نویسی کار میکنم. یا اینکه کدی که دوست عزیزمون magmag گذاشت به عنوان کد بالا من تست کردم با همین ماژول هم تماس خروجی داشته هم ارسال پیامک اگر مشکل داشتی تو اینها با یک ماژول دیگه تست کن.

  10. #30
    Senior Member
    تاریخ عضویت
    Oct 2014
    محل سکونت
    ایران
    نوشته ها
    178
    مهندس جان این ماژول رگولاتور نداره پس باید از منبع تغذیه 3.3 و با جریان حداقل 1 و حداکثر 2 استفاده کنید. مراقب باش اشتباهی هم نزنی چون دیود محافظ نداره. بعد tx ماژول را به rx مبدل یو اس و بلعکس وصل کن
    سپس ماژول را به کامیپوتر متصل کند و زمین منبع تغذیه را با زمین یو اس بی یکی کن و +3.3 منبع تغذیه را به vcc ماژول
    یادت باشه قبل از هرچیز آنتن به ماژولت بزنی... بعد که این کار ها را کردی برنامه آردوینو را باز کن و برو تو تنظیمات قسمت پورت ، پورت کام که مبدل بهش وصله را مشخص کن و انتخاب کن سپس برو قسمت ترمینال مانیتور آردوینو و دستور AT را بزن اگه جواب ok داد سالمه اگه نوشته دیگه که قابل خواندن بود داد سرعت سریال را تغییر بده و تست کن .
    اگه منبع 3.3 با جریان 1 تا 2 نداری می تونی از 3.3 خود مبدل استفاده کنی تو سیم 900 جواب داد . تو سیم 800 را باید تست کنید



    نقل قول نوشته اصلی توسط hasanzare66 نمایش پست ها
    از وقتی که میذارید ممنونم
    عکسای ماژول تو لینک زیر هست کیفیتشم خوبه
    ماژول GSM چهار باند SIM800L با قابلیت GPRS / GSM / SMS
    درود بر کسانی که دعا دارند و ادعا ندارند
    نیایش دارند و نمایش ندارند
    حیا دارند و ریا ندارند
    رسم دارند و اسم ندارند…

صفحه 3 از 11 نخستنخست 12345 ... آخرینآخرین

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

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

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

SEO by vBSEO