اطلاعیه

Collapse
No announcement yet.

PIC & SIM900

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

    PIC & SIM900

    سلام دوستان
    من شروع کردم به کار با sim900 ....
    اولین برنامه ای که نوشتم هنوز جواب نداده ....
    ماژول داغ نمیکنه و پایه net sim900 هم 3 ثانیه روشن و چند میلی ثانیه خاموش می مونه ....
    بگید خوب :eek:پس سخت افزار سالمه ولتاژ تغذیه هم 4.5 ولت
    من یه برنامه نوشتم که فقط یک پیامک به خط من بفرسته ولی دریغ از حتی یک تک زنگ
    کار نمیکنه .... اساتید کسی تجربه داره راجع به برنامه کمکم کنه....... اینم برنامه ام
    کامپایلرم ccs
    کد:
    #include <relay test.h>
    #use delay(clock = 4000000)
    
    #define ctrl_z 0x1A
    #define ctrl_r 0x0D
    
    #use rs232(baud=9600, xmit=PIN_c5,rcv=PIN_c6)
    
    void main()
    {
    int i=0xAA,j=0x55;
    set_tris_d(0x00); // SET PORTD OUTPUT
    set_tris_B(0xFF);
    
      while(TRUE)
      {
      output_low(pin_d0);  
      delay_ms(1);
      delay_ms(3000);
      output_high(pin_d0);  
      delay_ms(1);
      
    printf("AT+CMGF=1"); 
    putchar(ctrl_r);
    printf("AT+CMGS="+989396824406"\r"); 
    putchar(ctrl_r);
    printf("in the name of god"); 
    
    putchar(ctrl_z);
    
    
    
    
    delay_ms(1000);
    
    
      }
    
    }

    #2
    پاسخ : PIC & SIM900

    سلام

    من فکر میکنم بعد از هر بار که یه کامند به ماژول میفرستی باید کمی صبر کنی مثلا 100ms که البته بهتره پاسخی که SIM بهت میده رو چک کنی بعد پیام بعدی رو بفرستی .

    همچنین معمولا چند ثانیه ای طول میکشه تا ماژول شبکه رو پیدا کنه و آماده SMS فرستادن بشه که این موضوع هم بهتره با فرستادن کامند به ماژول چک بشه .
    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

    دیدگاه


      #3
      پاسخ : PIC & SIM900

      خب اینجوری که شما گفتی
      مبهمات زیاده
      1.شما با هایپر ترمینال ویندوز تونستی ارسال کنید؟
      2.بوت ریت سیم 900 رو روی 9600 قرار دادی؟
      و خروجی میکرو جداگانه با هایپر ترمینال رو 9600 بررسی کن
      هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
      بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
      میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

      تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

      دیدگاه


        #4
        پاسخ : PIC & SIM900

        مهندس n340
        من مدارم یه طوری که نمی تونم به کامپیوتر وصلش کنم .....
        والله من بورد همین فروشگاه ECA رو خریدم .... SIM900A هست و فکر کنم بصورت پیش فرض 9600 باشه نظر شما چیه ؟

        دیدگاه


          #5
          پاسخ : PIC & SIM900

          baudrate ابن ماژول ها خود کار است و شما با هر نرخی که به اون اطلاعات بدین مشکلی نداره اما این مستلزم آن است که شما قبل از ارسال هر دستوری چند AT به ماژول ارسال کنید تا ماژول خودش رو ست کنه .
          نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
          تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

          دیدگاه


            #6
            پاسخ : PIC & SIM900

            به هر حال باید وصل کنید تا بتونید سیم 900 رو کانفیگ کنید
            baudrate پیشفرض رو 0 هست یعنی اتومات
            ولی این اتومات از سمت میکرو قابل شناسایی نیست و شما باید بطور دستی دستور زیر رو برای سیم ارسال کنید تا به 9600 پیشفرض بشه
            at+ipr=9600
            غیر از این سیم 900 فهم درک baudrate میکرو رو نداره
            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

            تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

            دیدگاه


              #7
              پاسخ : PIC & SIM900

              سلام به همگی
              دوستان من توسط برنامه micro c و با استفاده از ابزار usart terminal با sim900 ارتباط برقرار کردم و دستورات مختلفی رو استفاده کردم اما در موقع فرستادن sms مشکل دارم :
              کد:
              AT+CMGS="+98920309XXXX"
              > text is entered <ctrl-Z>
              اما پاسخ دریافتی از sim900 در هر مرحله فقط یه چیزه اونم " < "
              دوستان من با v2.03 کار میکنم.
              هر وقت خواستید کاری بکنید، چهل سال عقب و چهل سال جلو را در نظر بگیرید. "بابابزرگ"

              دیدگاه


                #8
                پاسخ : PIC & SIM900

                سلام

                وقتی ماژول کاراکتر '<' رو ارسال میکنه , شما پیامی که میخواهید SMS کنید رو باید به ماژول بدین و در آخر هم با فرستادن Ctrlz یا همون عدد 26 پیام ارسال میشه
                نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                دیدگاه


                  #9
                  پاسخ : PIC & SIM900

                  سلام
                  من کاری رو که گفتیدانجام داده بودم ولی دوباره با انواع و اقسام شکل های مختلف Ctrl-z را بعد از نوشتن متن ارسال کردم ولی باز هم ماژول کاراکتر '<' ارسال میکنه! :angry:
                  دقیقاً نمیدونم الآن باید چه دستوری رو دیگه ارسال کنم. :sad:
                  من با بقیه دستورات مربوط به خواندن sms هیچ مشکلی ندارم.
                  هر وقت خواستید کاری بکنید، چهل سال عقب و چهل سال جلو را در نظر بگیرید. "بابابزرگ"

                  دیدگاه


                    #10
                    پاسخ : PIC & SIM900

                    بله این موضوع طبیعی هست , ماژول هر بار که کاراکتر های enter یا LF یا کاراکتر هایی از این دست رو میبینه دوباره کاراکتر '<' رو ارسال میکنه فقط و فقط اگر Ctrl-z رو ارسال کنید پیام ارسال میشه .

                    من حدس میزنم به جای عدد 26 ( Ctrl-z ) در حال ارسال عدد دیگری هستید .


                    define Ctrlz 26

                    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                    دیدگاه


                      #11
                      پاسخ : PIC & SIM900

                      با سلام من کدهای زیر رو امتحان کردم و جواب های زیر رو هم از SIM900 دریافت کردم:
                      کد:
                      COMPUTER:
                      
                      AT
                      AT+CSCS="GSM"
                      AT+CMGS=?
                      AT+CMGS="+98920309XXXX"
                      test sim900 <ctrl-Z>
                      
                      
                      sim900:
                      
                      AT
                      
                      
                      OK
                      
                      AT+CSCS="GSM"
                      
                      
                      OK
                      
                      AT+CMGS=?
                      
                      
                      OK
                      
                      AT+CMGS="+98920309XXXX"
                      
                      
                      > test sim900 <ctrl-Z>
                      کد:
                      COMPUTER:
                      
                      AT
                      AT+CSCS="GSM"
                      AT+CMGS=?
                      AT+CMGS="+98920309XXXX"
                      +98920309XXXX <26>
                      
                      
                      SIM900:
                      
                      AT
                      
                      
                      OK
                      
                      AT+CSCS="GSM"
                      
                      
                      OK
                      
                      AT+CMGS=?
                      
                      
                      OK
                      
                      AT+CMGS="+98920309XXXX"
                      
                      
                      > +98920309XXXX <26>
                      علاوه بر این کدها من قسمت ctrl-Z را با عدد یا مثلاً ctrl+Z و شکلهای دیگه امتحان کردم. حتی توصیه شما رو هم مبنی بر کاراکترهای LF , CR متوجه شدم . این بار ماژول فقط دفعه اول کاراکتر'<' ارسال میکرد و وقتی متن پیامک رو به همراه ctrl-Z یا 26 ارسال میکردم (بدون کاراکتر CR یا LF ) دیگه کاراکتر '<' ارسال نمیکرد اما هنوز پیام رو ارسال نمیکرد.همون موقع کافی بود یک بار کاراکتر CR رو ارسال میکردم تا ماژول دوباره کارکتر '<' ارسال میکرد. یعنی ماژول هنوز منتظر متن پیامک هست.

                      در ضمن من تونستم یک پیامک رو از تو حافظه سیمکارت به یه شماره ارسال کنم . اما هنوز نتونستم به روش بالا پیامی رو ارسال کنم.
                      هر وقت خواستید کاری بکنید، چهل سال عقب و چهل سال جلو را در نظر بگیرید. "بابابزرگ"

                      دیدگاه


                        #12
                        پاسخ : PIC & SIM900

                        علاوه بر این کدها من قسمت ctrl-Z را با عدد یا مثلاً ctrl+Z و شکلهای دیگه امتحان کردم. حتی توصیه شما رو هم مبنی بر کاراکترهای LF , CR متوجه شدم
                        !...

                        من به یه موضویی شک کردم !


                        آیا شما هنگام ارسال Ctrl_z کاراکتر های اون رو ارسال میکنید ؟ ( مثلا کاراکتر C کاراکتر t کاراکتر .... )
                        نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
                        تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

                        دیدگاه


                          #13
                          پاسخ : PIC & SIM900

                          من ctrl-Z را دقیقاً به همون صورتی که در پست قبلی نشان دادم ارسال میکنم. یعنی در ادامه متن پیامک <ctrl-Z> رو هم میفرستم . البته اگر ملاحظه کرده باشید عدد 26 رو هم ارسال کردم.
                          حالا مگه چه جوری باید ارسال بشه؟ :read:
                          هر وقت خواستید کاری بکنید، چهل سال عقب و چهل سال جلو را در نظر بگیرید. "بابابزرگ"

                          دیدگاه


                            #14
                            پاسخ : PIC & SIM900

                            یه برنامه تو بسکام
                            الهام بگیر
                            کد:
                            $regfile = "m32def.dat"
                            $crystal = 8000000
                            $baud = 9600
                            
                            Dim B As Byte
                            Dim S As String * 200
                            Dim S2 As String * 10
                            Dim V As Byte
                            Dim C As Long
                            Dim X As Bit
                            Config Portd.4 = Output
                            Config Int0 = Rising
                            
                            Enable Int0
                            On Int0 Sms
                            Wait 5
                            Print "AT&F" ; Chr(13)
                            Waitms 500
                            Print "AT+CMGF=1" ; Chr(13)
                            Waitms 500
                            Print "AT+CMGDA=" ; Chr(34) ; "DEL ALL" ; Chr(34) ; Chr(13)
                            Waitms 500
                            Print "AT+CNMI=2,1,0,0" ; Chr(13)
                            Waitms 500
                            Enable Interrupts
                            S2 = "9151007***"
                            C = 0
                            V = 0
                            Do
                            
                              If X = 1 Then
                               Print "AT+CMGR=1" ; Chr(13)
                               Do
                                 B = Inkey()
                                If B > 0 Then
                                 S = S + Chr(b)
                                 C = 0
                                End If
                                 Incr C
                               Loop Until C = 100000
                            
                               V = Instr(s , S2)
                               If V > 0 Then
                                 V = Instr(s , "On")
                                 If V > 0 Then
                                  Set Portd.4
                                  Print "AT+CMGS=" ; Chr(34) ; "0" ; S2 ; Chr(34) ; Chr(13)
                                  Waitms 700
                                  Print "Motor is On" ; Chr(26)
                                 End If
                                 V = Instr(s , "Off")
                                 If V > 0 Then
                                  Reset Portd.4
                                  Print "AT+CMGS=" ; Chr(34) ; "0" ; S2 ; Chr(34) ; Chr(13)
                                  Waitms 700
                                  Print "Motor is Off" ; Chr(26)
                                 End If
                               End If
                               S = ""
                               X = 0
                               C = 0
                               V = 0
                               Disable Interrupts
                               Wait 5
                               Print "AT+CMGD=1" ; Chr(13)
                               Waitms 500
                               Enable Interrupts
                              End If
                            
                            Loop
                            
                            End
                            
                            
                            Sms:
                            Set X
                            Waitms 500
                            Return
                            مردم شهري که همه در آن مي لنگند/ به کسي که راه راست ميرود مي خندند

                            دیدگاه


                              #15
                              پاسخ : PIC & SIM900

                              با سلام
                              آقا من این برنامه ای که گذاشتید دیدم . اما من یه سوال دارم:
                              ببینید داخل کامپایلر micro c یه برنامه به اسم usart terminal وجود داره و من از طریق اون دارم با ماژول ارتباط برقرار میکنم. داخل این برنامه ، زیر قسمتی که متن ارسالی نوشته میشود یه گزینه به اسم Appende new line وجود داره که اگر تیک دار باشه ، بعد از ارسال هر متن به صورت اتوماتیک عدد 13 را ارسال میکند و متن بعدی در خط بعدی نوشته میشود . حالا مشکلی که هست اینه که من هر چی داخل کادر متن بنویسم به عنوان متن فرستاده میشود . یعنی عدد 13 یا 26 رو به صورت متن میفرسته نه به صورت دسیمال .
                              به طور مثال وقتی من میخواستم عدد 26 رو ارسال کنم اعداد روبرو ارسال میشدند: عدد 50 برای 2 و عدد 54 برای 6
                              حالا اگر نخوام از میکرو استفاده کنم چه راه دیگه ای دارم ؟
                              هر وقت خواستید کاری بکنید، چهل سال عقب و چهل سال جلو را در نظر بگیرید. "بابابزرگ"

                              دیدگاه

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