اطلاعیه

Collapse
No announcement yet.

خواندن sms دریافتی از ماژول sim900

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    خواندن sms دریافتی از ماژول sim900

    سلام چندین روز هست که دارم سعی میکنم تا sms دریافت شده توسط ماژول sim 900 را بخونم و اون رو روی lcd 16*2 نمایش بدم اما هر برنامه ای رو می نویسم جواب نمیده :cry:
    1- زنگ میخوره و خاموش نمیشه پس مشکل جریان نداره
    2- sms را بدون هیچ مشکلی میفرستم پس درست ارتباط برقرار کرده
    3- به برخی فرمان ها مثل Print ATH (قطع تماس پاسخ میده)
    اما اصلا نمیتونم ازش متنی رو بگیرم و بخونم حالا موندم چیکار کنم کمکم کنید :cry2: :cry2:
    راستی به زبان بیسیک برنامه رو مینویسم می خوام که وقتی وقفه پیامک امد بتونم متن اصلی اون رو بخونم
    برنامه ای که نوشتم و نمی دونم چرا جواب نمیده :angr

    کد:
    Sms = ""
    
      Do
    
       B = Inkey()
    
       Select Case B
    
         Case 0:
    
         Case 13 :
    
          If Sms <> "" Then Exit Do
    
         Case 10 :
    
          If Sms <> "" Then Exit Do
    
         Case Else
    
          Sms = Sms + Chr(b)
    
       End Select
    
      Loop
    
       Locate 1 , 1
     Lcd Sms
     Wait 20
    
     Return
    بهم بگوید کجای کارم اشکال داره لطفا اگر هم این برنامه رو برای نمایش sms مناسب نمی دونید لطفا یک برنامه مناسب برای خواندن sms دریافتی جدید به زبان bascom پیشنهاد بدید.ممنون

    #2
    پاسخ : خواندن sms دریافتی از ماژول sim900

    سلام
    والا من بسکام کار نکردم ولی به هر حال دستور خوندن SMS رو ندیدم
    باید روی UART دستور AT+CMGR=1 بعد اینتر فرستاه بشه تا SMS شماره 1 خوانده شود
    این کجای برنامته؟!
    درایور شبکه و nRF24L01
    کاتالوگ محصولات
    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC

    دیدگاه


      #3
      پاسخ : خواندن sms دریافتی از ماژول sim900

      سلام دوست عزیز منم همین مشکل رو دارم
      پیام ارسال میشه ولی SMS رو دریافت نمیکنه عینا همین برنامه رو نوشتم

      دیدگاه


        #4
        پاسخ : خواندن sms دریافتی از ماژول sim900

        سلام دوستان
        برنامه بالا بصورت آموزش هست و برای عملی دستور کم داره من چند تا اضافه کردم مثلا باید اول حالت رو به تکست تغییر بدین. زمان برای راه اندازی ماژول بدین. چون دربرنامه دستور خوانده شدن اولین پیام حافظه نوشته شده باید پیام های قبلی رو حذف کنید تا وقتی پیام جدید میاد بره توی حافظه 1 که بتونه براتون نمایش بده من برنامه رو ویرایش کردم که اینجا میذارم و هیمن الان هم دم دستمه ازش جواب گرفتم. چون کل پیام رو نشوم میده یعنی شماره فرستنده تاریخ و ساعت و... برای همین در ال سی دی های کاراکتری 16 در 2 نمیشه همه رو نشون دا. من هم مشغولم تا از پیام خونده شده متن رو از اطلاعات جداکنم و نشون بدم. این برنامه کل رو نشون میده ئلی برلی ذوستانی که میخوان تست کنن کامله. من خروجی رینگ مازول رو دادم به پورت بی صفر تا شروع کنه به دریافت. ولی دراصل باید از وقفه سریال استفاده بشه این برنامه تست هستش
        کد HTML:
        $regfile = "m16def.dat"
        $crystal = 8000000
        $baud = 9600
        
        '~~~~~~~~~~~~~~~~~~~~~~~~~~ Configurations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        Config Lcdpin = Pin , E = Porta.1 , Rs = Porta.0 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
        Config Lcd = 16 * 2
        Cursor Off
        
        Config Pinb.0 = Input
        
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        Dim B As Byte
        Dim Sms As String * 250 : Sms = ""
        
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initionaliz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Cursor Off : Home
        
        Cls : Lcd "SRART SMS..."
        Wait 15
        Print "AT"
        Cls : Lcd "AT"
        Wait 1
        Print "AT+CMGF=1"
        Cls : Lcd "AT+CMGF=1"
        Waitms 500
        Print "At + Cmgda = "del All ""
        Cls : Lcd "At + Cmgda = "del All ""
        Waitms 500
        
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        Do
        
          If Pinb.0 = 0 Then
        
           Print "AT+CMGR=1"
           Cls : Lcd "NOW GET SMS"
           Sms = ""
        
           Do
        
              B = Inkey()
        
              Select Case B
        
                 Case 0:
        
                 Case 13 :
        
                   If Sms <> "" Then Exit Do
        
                 Case 10 :
        
                   If Sms <> "" Then Exit Do
        
                 Case Else
        
                   Sms = Sms + Chr(b)
        
              End Select
        
           Loop
        
           Home
           Cls : Lcd Sms
        
          End If
        
        Loop
        
        End
        در جهان هرگز مشو مدیون احساس کسی - تا نباشد رایگان مهرت گروگان کسی
        گوهر خود را نزن بر سنگ هر ناقابلی - صبر کن پیدا شود گوهر شناس قابلی

        دیدگاه


          #5
          پاسخ : خواندن sms دریافتی از ماژول sim900

          نوشته اصلی توسط sami222 نمایش پست ها
          سلام دوستان
          برنامه بالا بصورت آموزش هست و برای عملی دستور کم داره من چند تا اضافه کردم مثلا باید اول حالت رو به تکست تغییر بدین. زمان برای راه اندازی ماژول بدین. چون دربرنامه دستور خوانده شدن اولین پیام حافظه نوشته شده باید پیام های قبلی رو حذف کنید تا وقتی پیام جدید میاد بره توی حافظه 1 که بتونه براتون نمایش بده من برنامه رو ویرایش کردم که اینجا میذارم و هیمن الان هم دم دستمه ازش جواب گرفتم. چون کل پیام رو نشوم میده یعنی شماره فرستنده تاریخ و ساعت و... برای همین در ال سی دی های کاراکتری 16 در 2 نمیشه همه رو نشون دا. من هم مشغولم تا از پیام خونده شده متن رو از اطلاعات جداکنم و نشون بدم. این برنامه کل رو نشون میده ئلی برلی ذوستانی که میخوان تست کنن کامله. من خروجی رینگ مازول رو دادم به پورت بی صفر تا شروع کنه به دریافت. ولی دراصل باید از وقفه سریال استفاده بشه این برنامه تست هستش
          کد HTML:
          $regfile = "m16def.dat"
          End
          دوست عزیز سوال کننده این سوال رو در سال 1392 پرسیده...
          اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
          شهيد دکتر مصطفي چمران
          اللهم صل علي محمد و ال محمد و عجل فرجهم
          ; C is not for children

          دیدگاه


            #6
            پاسخ : خواندن sms دریافتی از ماژول sim900

            نوشته اصلی توسط mahdi89 نمایش پست ها
            دوست عزیز سوال کننده این سوال رو در سال 1392 پرسیده...
            سلام حرف شما درست. سوال برای 92 هست و 96 هم یکی همین مشکل رو داشته و من 98 دارم باهاش کار میکنم این فروم برای اشتراک اطلاعات و رفع مشکل ما و دوستان بعد ما هستش
            در جهان هرگز مشو مدیون احساس کسی - تا نباشد رایگان مهرت گروگان کسی
            گوهر خود را نزن بر سنگ هر ناقابلی - صبر کن پیدا شود گوهر شناس قابلی

            دیدگاه


              #7
              پاسخ : خواندن sms دریافتی از ماژول sim900

              نوشته اصلی توسط sami222 نمایش پست ها
              سلام حرف شما درست. سوال برای 92 هست و 96 هم یکی همین مشکل رو داشته و من 98 دارم باهاش کار میکنم این فروم برای اشتراک اطلاعات و رفع مشکل ما و دوستان بعد ما هستش
              خدا خیرت بده داداش
              اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
              شهيد دکتر مصطفي چمران
              اللهم صل علي محمد و ال محمد و عجل فرجهم
              ; C is not for children

              دیدگاه


                #8
                پاسخ : خواندن sms دریافتی از ماژول sim900

                و من هم الان در سال 99 دقیقا همین مشکل رو دارم و بعد از سه روز تلاش هنوز نتونستم حلش کنم

                دیدگاه


                  #9
                  پاسخ : خواندن sms دریافتی از ماژول sim900

                  نوشته اصلی توسط omid7986 نمایش پست ها
                  و من هم الان در سال 99 دقیقا همین مشکل رو دارم و بعد از سه روز تلاش هنوز نتونستم حلش کنم
                  چندین ماه بعد از آخرین پست هم من میخوام یه کم کمک کنم بلکه شاید به درد کسی بخوره

                  فرمت دریافت هر چیزی در ماژول های gsm به این شکل هست ( بجز یک مورد که در ادامه میگم :

                  کد:
                  \r\n Response \r\n
                  به عنوان مثال شما یک دستوری می فرستید که پاسخ اون از سمت ماژول 2 بخش دارد مثلا دستور AT+SAPBR=2,1 رو برای گرفتن IP می فرستید . پاسخ این دستور دو بخش دارد که به این شکل است :
                  کد:
                  \r\n+SAPBR: 1,1,"11.118.11.114"\r\n
                  \r\nOK\r\n
                  به طور کلی تمام پاسخ ها در بین \r\n قرار دارند بجز یک مورد که اون هم خوندن SMS دریافتیه. فرمتش به این شکله :
                  کد:
                  AT+CMGR=1\r\n
                  \r\n+CMGR: "REC READ","+98916*******","","20/08/29,02:30:39+18"\r\n
                  YOUR MESSAGE\r\n    
                  \r\nOK\r\n
                  منظورم اینه که +CMGR هم وسط \r\n قرار داره اما پیام رسیده فقط در انتهاش \r\n داره .

                  و اما مهمترین حرفی که میخوام بزنم و به اندازه یک دیتاشیت به من کمک کرد معرفی برنامه Realterm هست . من مدت زیادی درگیر این پاسخ ها بودم از جمله همین پاسخی که در خوندن پیام بود . چون کمی فرق داشت و شما حتما میدوئنید توی الکترونیک کمی هم خیلی زیاده !! چون کاراکتری که منتظر دریافتش هستید هیچ وقت نمیرسه و یگ گیجی و سردرگمی خیلی اعصاب خورد کنی گرفتار می شید . این نرم افزار که گفتم تمام کاراکتر های دریافتی ( حتی اونهایی که دیده نمی شن مثل \r\rn )رو نشون میده . حتما برای کار با gsm و ارتباط سریال از این استفاده کنید تا به تمام کاراکترهای رد و بدل شده آگاهی پیدا کنید .

                  یک نکته دیگه که یادم اومد و میخوام اضافه کنم
                  برای کنترل و استفاده از این کاراکترها وقفه usart رو فعال کنید . و در زیر روتین وقفه رسیدن یک کاراکتر بخصوص رو زیر نظر بگیرید . مثلا کاراکتر \n رو چک کنید و با هر بار رسیدنش یک فلگ رو اضافه کنید و بعد از اون بقیه کاراکتر های دریافتی رو توی یک آرایه رشته ای ذخیره کنید و زمانی که 2 تا \n رسید میشه فهمید یک پاسخ کامل دریافت شده و اون آرایه آماده خوندنه . فقط نباید فراموش کنید که انتهای آرایه رو با یک \0 ببندید وگرنه قابل خوندن نیست (توضیح واضحات !! )
                  ======================================
                  راستی چرا اون قسمت دیدن پیش نمایش پاسخ ارسالی توی انجمن دیگه برداشته شده . خیلی خوب بود قبل از ارسال میشد ببینیم چیزی که میفرستیم تو انجمن چطوری دیده میشه . کدها درسته یا نه ....
                  جدیدترین ویرایش توسط sorena01; ۱۵:۵۰ ۱۴۰۰/۰۲/۰۷.

                  دیدگاه


                    #10
                    پاسخ : خواندن sms دریافتی از ماژول sim900

                    ..........

                    دیدگاه


                      #11
                      پاسخ : خواندن sms دریافتی از ماژول sim900

                      دمت گرم من توی سال 1402 خیلی از این جوابت استفاده کردم

                      دیدگاه

                      لطفا صبر کنید...
                      X