این تاخیرایی که گذاشتی برادر خیلی زیاد هستن!!
بصورت وقفه کار کن برای سریال تا بتونی راحت و بی دردسر داده های برگشتی رو هم بخونی. نه بصورت polling
برای ارسال اطلاعات از طریق gprs یه سری به سایت من توی امضام بزن...
نمایش نسخه قابل چاپ
این تاخیرایی که گذاشتی برادر خیلی زیاد هستن!!
بصورت وقفه کار کن برای سریال تا بتونی راحت و بی دردسر داده های برگشتی رو هم بخونی. نه بصورت polling
برای ارسال اطلاعات از طریق gprs یه سری به سایت من توی امضام بزن...
ممنون.
خوب چطوری جواب رو دریافت کنم؟
سلام ،من در ارتباط میکرو و ماژول sim908 ام مشکل دارم ، در ارتباط میکرو و ماژول به تنهایی با pc با بادریت9600 هیچ مشکلی ندارم و به راحتی این ارتباط برقرار میشه و با ماژول خیلی راحت میتونم پیامک ارسال کرده دریافت کنم و ... ولی برای ارسال پیامک از ماژول به سیم کارتم از طریق میکرو مشکل دارم عین برنامه مربوطه در سایت زیر رو نوشتم ولی چون از کریستال خارجی استفاده کردم ubrrl=0x47 گرفته و هنگام پروگرم کردم تمام کلاکها و stu ها رو یک کردم ولی با زدن کلید پیامک ارسال نشد لطفا بگید مشکل کجاست[Dear Guest/Member you can't see link before replyclick here to register]
سلام خدمت همه دوستان
آیا کسی میدونه چطور میشه میلی ثانیه رو از gps ماژول sim908 بدست آورد؟
با تشکر
سلام خدمت همه دوستان
آیا کسی میدونه چطور میشه میلی ثانیه رو از gps ماژول sim908 بدست آورد؟
با تشکر
سلام من وقتی خواستم ماژول sim908 رو راه اندازی کنم به محض این که از ماژول پیام "connect OK"دریافت شد کل ماژول خاموش میشود.خواهشا اگه میتونید راهنماییم کنید.
مشکل شما مربوط به تغذیه ماژول هست.نقل قول:
نوشته اصلی توسط مهندس فرزاد [Dear Guest/Member you can't see link before replyclick here to register]
یک خازن بزرگ در حد 2200uf نزدیک پایه VBAT ماژول قرار بدید.
ضخامت تراک های مربوط به تغذیه هم نباید از 2mm کمتر باشه.
منبع تغذیه و رگولاتورتون هم باید توانایی تامین جریان 2A رو داشته باشه.
سلام
ماژول sim908 به میکرو و ال سی دی وصل کردم و تغذیه هر سه تارو مشترک کردم.ولتاژ تغذیه روی 4.5 تنظیم کردم اما وقتی ماژول میخوام روشن کنم روشن نمیشه.فکر کردم مشکل از جریانه به خاطر همین یه شارژر باتری ماشین گذاشتم و یه رگلاتور DC-Dc آماده خریدم (ماکزیم جریان رگلاتور 3 آمپر) و ولتاژش رو 4.5 تنظیم کردم و دادم به ماژول اما بازم فرقی نکرد.ضمنا خود ماژول به تنهایی روشن میشه و کار میکنه اما وقتی تغذیه ها مشترک میشن دیگه روشن نمیشه ممنون میشم راهنماییم کنید
ماژولی که گرفته بودم فقط با باتری گوشی کار کرد. تغذیه اش خیلی حساسه.
سلام من چطوری میتونم spk2 و mic2 ماژول sim908 رو فعال کنم؟ مرسی
کسی نیود جواب مارو بده؟؟؟؟؟؟؟؟؟؟؟؟
سلام دوستای عزیزم
میدونم مطرح کردن همچنین عنوانی شایسته نیست اصلا:sa:
ولی خب من خودم چند وقتیه کد میزنم تاحالا به همچنین مشکلی بر نخوردمcry::
و چون محوریت کارم با sim908 هستش گفتم توی این قسمت بیانش کنم.
باز هم مدیران محترم اگر صلاح دونستین منو راهتمایی کنین
خب حالا ماجرا چیه
ماجرا اینه که من یه ماژول sim908 n دارم که با میکرو باهاش ارتباط دارم خیییییلی خوب:wink:
و مشکلی ندارم
در ضمن من از پایه RI خوده sim908 برای اینتراپت استفاده کردم که هرجای برنامه باشه بهش اس رسید بره اینتراپتو بررسی کنه
والا چیز خاصیم ننوشتم تو اینتراپت فقط نوشتم i=1 باشه همیییین
با همین وجود من دارم توی یه قسمتی از پروژه هم اس دریاقت میکنم هم میفرستم میگم مشکلی نیست
مشکل اینجاست که من توی قسمتی دیگه از برنامه یه شرط گذاشتم که مقدار این i رو بررسی میکنه(حتما میدونید که وقتی sms میرسه سیم 908 پیغام CMTI:"SM" 1+ میده و برای خوندنش هم باید دستور AT+CMGR=1 را بفرستیم)وقتی sms میاد i رو یک مبکنه بعد من توی if برسی میکنم که ایا 1 شده یا نه اگر شده دستور خوندن رو بفرستم دقیقا همینجا وارد if میشه ولی printf رو نمیفرسته و میره دستورای بعدیش توی if رو اجرا میکنه
جالبیش اینجاست که وقتی تغذیه رو قطع میکنی دوباره وصل میکنی دستور printf رو میفرسته و از اول برنامه اجرا میشه
بنظرتون چرا این اتفاق میوفته؟؟؟؟کد:interrupt [EXT_INT0] void ext_int0_isr(void){
// Place your code here
i=1;
}
if(i>0)//recive message
{
i=0;
printf("AT+CMGR=1"); // ask recive sms data from sim 908
putchar(ENTER);
clean_cash();
}
سلامنقل قول:
با کدویژن کار نکردم اما ظاهرا شما دوتا مشکل دارین
1- متغییر i رو تعریف کردین اما مقدار دهی نکردین به خاطر همین هم یه مقدار رندم میگیره که به احتمال 99/99 درصد بیش از صفر هست :)
2- نمی دونم بحث بهینه سازی توی کدویژن مطرح هست یانه اما شاید متغییر شما توسط مفسر حذف شده باشه (بهتر متغییر رو از نوع volatile یا ... باشه)
مرسی بابت پاسخگوییتوننقل قول:
این یه قسمت از برنامست.
در حقیقت i اول برنامه صفر شده
مشکل رفتن یا نرفتن توی شرط if نیست
مشکل اینه میره توی if دیگه دستور printf کار نمیکنه
سلام
من از سیم 900 واسه ارسال پیام استفاده کردم و درسته .
ولی وقتی دریافت پیام می خوام داشته باشم انگار نه انگار ؟؟؟
مشکل چی می تونه باشه...
ولتاژ ورودی 4.2 ولت دادم و 2 آمپر
ممنون میشم کمک کنین
اینم برنامه ای که استفاده کردم:
کد:$regfile = "m32def.dat"
$crystal = 1000000
$baud = 9600
Config Serialout = Buffered , Size = 254
Config Serialin = Buffered , Size = 254
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portb.7
Config Int0 = Falling
Enable Interrupts
On Int0 Sms_recive
Dim Sms As String * 160
Dim Payamak As Byte
Dim Massege As String * 100
Declare Sub Sms_recive
Dim G As Byte
Dim Tedad As Integer
Dim Shoro As Integer
Dim Payan As Integer
Dim Tool As Integer
Dim Tmp As String * 20
Dim A As Bit
Main:
Do
Cls
Home
Lcd "waiting recive"
Waitms 250
Loop
End
Sms_recive:
Cls
Print "at+CMGR=1"
Sms = ""
G = 0
A = 0
Do
Payamak = Inkey()
Select Case Payamak
Case 0 :
Case 13:
If Sms <> "" Then
Exit Do
End If
Case 10:
If Sms <> "" Then
Exit Do
End If
Case Else
Sms = Sms + Chr(payamak)
End Select
Loop
Gosub Sss
Locate 1 , 1
Lcd Sms
Wait 2
Return
Sss:
Shoro = Instr(sms , "+98")
Payan = Instr(shoro , Sms , ",")
Tool = 13
Tedad = Payan - Shoro
Tmp = Mid(sms , Shoro , Tool)
Tmp = Ltrim(tmp)
Tmp = Rtrim(tmp)
Return
سلام دوستان من قبلا با ماژول جی اس ام پروژه دانشجوییمو انجام دادم فایلشم گذاشتم تو یکی از سایتای پروژه ادرسشم قرار می دم شاید کمکی باشه برای دوستان سوالی هم داشتین ادرس ایمیلمم پایین تو قسمت نظرات همون سایت گذاشتم
[Dear Guest/Member you can't see link before replyclick here to register]
سلام
برنامه بیسیک رو ندارین بزارین...
در ضمن نکات عملی جهت راه اندازی این ماژول رو اگه بگین ممنون میشم...
پ.ن : در ضمن پیام توسط سیم900 دریافت میشه و در سیم کارت ذخیره میشه ولی وقتی رو lCDنمایش میده یکی درست دریافت میشه و دومی AT+CMGR=1 دریافت میشه و پیام سوم متن پیام دومه و پیام چهارم AT+CMGR=2 و ...
مشکل من اینجاس
چه کنم که هر پیام بدرستی دریافت بشه
متن برنامه :
کد:'Micro & Crystal Config---------------------------------------------------------
$regfile "m32def.dat"
$crystal = 12000000
'UART Config--------------------------------------------------------------------
$baud = 9600
Config Serialout = Buffered , Size = 254
Config Serialin = Buffered , Size = 254
'LCD Config---------------------------------------------------------------------
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portb.7
Config Lcd = 16 * 2
'INT Config-------------------------------------------------------------------------------
Config Int0 = Falling
Enable Int0
On Int0 Receive_int
'-------------------------------------------------------------------------------
Enable Interrupts
'OutPuts-------------------------------------------------------------------------------
Config Portc.0 = Output : Rl_1 Alias Portc.0 : Reset Rl_1
Config Portc.1 = Output : Rl_2 Alias Portc.1 : Reset Rl_2
Config Portc.2 = Output : Rl_3 Alias Portc.2 : Reset Rl_3
Config Portc.3 = Output : Rl_4 Alias Portc.3 : Reset Rl_4
Config Portc.7 = Output : Rl_7 Alias Portc.7 : Reset Rl_7
'Keypad-------------------------------------------------------------------------
Config Kbd = Porta
'Subs---------------------------------------------------------------------------
Declare Sub Keypad_read()
Declare Sub Send_uart()
Declare Sub Receive_int()
Declare Sub Show_lcd()
'Values-------------------------------------------------------------------------------
Dim State As Byte
Dim Lcd_text_l1 As String * 16 , Lcd_text_l2 As String * 16 , Wait_time As Word , Show_p As Bit
Dim Key_press_check As Byte , Key_press As Bit , Key_num As Byte , Keypad_key_number As Byte , Receive_call_number As Byte
Dim Uart_in As Byte , Receive_message As String * 70 , Message_max As Byte , Message_end As Byte , Sim_cell As Byte
Dim Analysis_value_byte As Byte , Analysis_value_string As String * 10
Dim Old_key As Byte , Key_character_number As Byte , Key_character As String * 1 , Keypad_message As String * 16
Dim Send_message As String * 16 , Send_number As String * 11
Dim Keypad_message_length As Byte
'Print "AT&F"
'Waitms 1000
'Print "AT"
'Waitms 1000
'Delete Simcard Old SMS#########################################################
Receive_call_number = 1
Print "AT+CMGD=0,4"
Cls
Waitms 10
Locate 1 , 1 : Lcd "Delete SIM SMS:"
Waitms 100
Call Receive_int()
'Delete Simcard Old SMS=Ok or NOT Ok############################################
Message_delete:
If Receive_message = "OK" Then
Locate 2 , 1 : Lcd " "
Locate 2 , 1 : Lcd "OK..."
Else
Locate 2 , 1 : Lcd " "
Locate 2 , 1 : Lcd "Error..."
Do
Waitms 100
Loop
End If
Waitms 1000
Receive_call_number = 0
'Print "AT+CMGF=1"
'Waitms 1000
'Print "AT+CNMI=1,1"
'Waitms 1000
'Print "ATE0&W"
'Waitms 1000
State = 1
Do
'###############################################
If State = 1 Then
If Show_p = 0 Then
Lcd_text_l1 = "Wait for receive"
Lcd_text_l2 = "SMS..."
Wait_time = 50
Call Show_lcd()
End If
'###############################################
Elseif State = 2 Then
If Show_p = 0 Then
Lcd_text_l1 = "SMS receive:"
Wait_time = 50
Call Show_lcd()
End If
End If
'###############################################
Loop
End
Sub Send_uart()
'###################################
Print "AT+CMGS=" ; Chr(34) ; "09150731548" ; Chr(34)
Waitms 10
'###################################
A:
Waitms 10
Receive_message = Waitkey()
If Receive_message <> ">" Then Goto A
Print Send_message ; Chr(26)
Waitms 1000
Call Receive_int()
Waitms 10
Call Receive_int()
End Sub
Sub Receive_int()
'###################################
Again:
Receive_message = ""
Message_max = 0
Message_end = 0
'###################################
Do
'###################################
Uart_in = Inkey()
Waitms 10
'###################################
If Uart_in <> 0 Then
Select Case Uart_in
Case 13 : If Receive_message <> "" Then Exit Do
Case 10 : If Receive_message <> "" Then Exit Do
Case Else
Receive_message = Receive_message + Chr(uart_in)
Incr Message_max
If Message_max > 70 Then Exit Do
End Select
'###################################
Elseif Uart_in = 0 And Receive_message <> "" Then
Incr Message_end
'###################################
End If
'###################################
If Message_end > 2 Then Exit Do
Loop
If Receive_message = "OK" Then
'###################################
If Receive_call_number = 1 Then
Goto Message_delete
'###################################
Else
Goto Again
'###################################
End If
End If
'###################################
Analysis_value_string = Mid(receive_message , 4 , 2)
Analysis_value_byte = Checksum(analysis_value_string)
If Analysis_value_byte = 157 Then
Analysis_value_string = Mid(receive_message , 13 , 1)
Sim_cell = Val(analysis_value_string)
Print "AT+CMGR=" ; Str(sim_cell)
Waitms 10
Goto Again
'###################################
Elseif Analysis_value_byte = 153 Then
Goto Again
'###################################
Elseif Analysis_value_byte = 154 Then
Lcd_text_l1 = "SMS Sent..."
Lcd_text_l2 = "Success..."
Wait_time = 2000
Call Show_lcd()
'###################################
Else
'###################################
If Receive_message = "RL1234-ON" Then
Set Rl_1
Waitms 10
Set Rl_2
Waitms 10
Set Rl_3
Waitms 10
Set Rl_4
'###################################
Elseif Receive_message = "RL1234-OFF" Then
Reset Rl_1
Waitms 10
Reset Rl_2
Waitms 10
Reset Rl_3
Waitms 10
Reset Rl_4
'###################################
Elseif Receive_message = "RL1-ON" Then
Set Portc.7
Send_message = "r1on"
Send_uart
Elseif Receive_message = "RL1-OFF" Then
Reset Rl_1
Elseif Receive_message = "RL2-ON" Then
Set Rl_2
Elseif Receive_message = "RL2-OFF" Then
Reset Rl_2
Elseif Receive_message = "RL3-ON" Then
Set Rl_3
Elseif Receive_message = "RL3-OFF" Then
Reset Rl_3
Elseif Receive_message = "RL4-ON" Then
Set Rl_4
Elseif Receive_message = "RL4-OFF" Then
Reset Rl_4
End If
'###################################
Lcd_text_l2 = Receive_message
State = 2
Wait_time = 1000
Show_p = 0
'###################################
End If
'###################################
End Sub
Sub Show_lcd()
Show_p = 1
Cls
Waitus 500
Locate 1 , 1 : Lcd Lcd_text_l1
Locate 2 , 1 : Lcd Lcd_text_l2
Waitms Wait_time
End Sub
کسی نیست جواب بده/؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:x
سلام دوستان
من با ماژول Sim808 کار می کنم و مشکلی که الان دارم اینه که با سیم کارت ایرانسل همه کار می تونم انجام بدم اما به سیم کارت همراه اول اس ام اس نمی توم بدم
می دونید مشکل از کجاست ؟
شما ها با همراه اول مشکلی ندارید ؟ یا می دونید چطور میشه این مشکل رو حل کرد ؟
دوستان خواهش میکنم در مورد راه اندازی ماژول sim808 (بدون هدر برد) توضیح هات بیسیک -پایه ای بدین در مورد طراحی هدر برد و طریقه نصب انتن ها روی هدر برد
و دیگر اینکه من یک هدر برد sim 908 تهیه کردم در کنار سوکت (پیچی) انتن gsm و gps یک حلقه کوچیک وجود داره اونا چی هستن کارشون چیه؟؟؟
همچنین یک قطعه مکب مشکی روی برد قرار داره اون چیه؟ توی عکس زیر نشون دادم.[Dear Guest/Member you can't see link before replyclick here to register]
- - - Updated - - -
دوستان اگر ممکن است ی مدار با کد میکروکنترلر برای تست ماژول sim808 بذارین. با هر میکرو کنترلری باشه خوبه ممنوم میشم .