ايران ويج

نسخه‌ی کامل: مشکل ارسال sms با mega32
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6
سلام دوست عزیز
بله من با TE-C کار میکنم
این هم عکسش:
[تصویر:  87182052425079354657.gif]

[تصویر:  22026303256641696772_thumb.gif]

اگر زحمتی نیست یک شماتیک ساده با پینت ویندوز درست کنید از مقاومت پول آپ برای
این مدار که اگر روزی با یک مدار SIM900 معمولی کار کردم بتونم مقاومت پول ان را ببندم







نقل قول:
دوست عزیز من تا به حال با تفکیک متن آرایه ها کار نکردم
راستش زیاد هم از این فانکشن سر در ناوردم
بسیار هم شما زحمت کشیدید , ببخشید که من متوجه نشدم

راستش من هم همون شماره تلفن برام کافیه
اگر دوست داشتید و زحمتی نبود:
برنامه دریافتی SMS که در بالا قرار دادم
این فنکشن را خودتون (بی زحمت) به اون برنامه اضافه کنید
تا اگر خدا بخواد بتونم از اون استفاده کنم
خیلی خیلی ممنون
---------------------
بی زحمت این قسمت را هم کمکم کنید
خیلی خیلی ممنون

(۱۲-فروردین-۱۳۹۱, ۲۱:۵۲:۱۹)lolohacko نوشته است: [ -> ][quote='sina1359' pid='166446' dateline='1333107022']
سلام دوست عزیز
بینهایت ممنون

دوست عزیز تونستم با ماژول SMS را دریافت کنم
دوست عزیز, SMS دریافتی بر روی LCD 16×2 , نوشته ها تند و تند پشت سر هم شماره تاریخ و... نمایش داده میشه
حلا اگر بخواهیم اینها از هم تفکیک بشن و با یک دیلی معین
نماش داده بشن و هر کدوم داخل یک متغییر جداگانه (از نوعString) ریخته بشه چی کار باید بکنم

مثلا شماره ریخته بشه تو متغییر N
تاریخ ریخته بشه تو متغییر D
ساعت ریخته بشه در متغییر T
متن SMS ریخته بشه داخل متغییر S

و در آخر برنامه کل SMS های توی حافظه یا سیم کارت را پاک کنه و اماده بشه برای دریافت SMS بعدی
میتونید راهنماییم کنید؟
با تشکر


بی زحمت همین برنامه را میتونید کمی کاملترش کنید:

سلام.
تنها راهی که واسه تفکیک متن هست استفاده از دستورات کار با رشته ها هست.
مثلا من این فانکشن رو واسه جداسازی شماره تماس گیرنده نوشتم چون فقط همینو لازم داشتم.شما با یه تغییر کوچک میتونید هر چیزی رو که بخواید از متن SMS جدا کنید :

کد php:
Function Getnum(As String) As String
Dim Shoro 
As Integer Tool As Integer Payan As Integer
Dim Tmp 
As String 20
Shoro 
Instr("+98")
Payan Instr(shoro "," )
Tool Payan Shoro
Mid
(Payan Shoro)
Tmp Mid(Shoro Tool)
Tmp Ltrim(tmp)
Tmp Rtrim(tmp)
Getnum Tmp
End 
Function 

پارامتر دریافتی یا S متن sms دریافتی هست و مفدار بازگشتی از تابع همون شماره تلفن فرستنده SMS.


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

کد:
[align=left]$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

'~~~~~~~~~~~~~~~~~~~~~~~~~~ Configurations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.5 , E = Portb.4 , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Input ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Config Pinc.5 = Input

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Dim B As Byte
Dim Sms As String * 250 : Sms = ""
Dim S As String * 250 : S = ""


'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initionaliz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cursor Off

Wait 3
Set Portc.5
Waitms 60
Reset Portc.5

Cls
Locate 1 , 1
Lcd "GSM ON"
Wait 2


Cls
Locate 1 , 1
Lcd "Get SMS..."
Wait 3

Cls

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Print "AT+CMGD=0,4"
Waitms 500
Cls

'Print "AT+CMGS=" ; Chr(34) ; "DEL ALL"; Chr(34)

Locate 1 , 1
Lcd "Delete Sms"
Waitms 500
Cls

Do

Print "AT+CMGR=1"

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

S = Sms

Loop

End


Function Getnum(s As String) As String
Dim Shoro As Integer , Tool As Integer , Payan As Integer
Dim Tmp As String * 20
Shoro = Instr(s , "+98")
Payan = Instr(shoro , S , "," )
Tool = Payan - Shoro
Mid(s , Payan , Shoro)
Tmp = Mid(s , Shoro , Tool)
Tmp = Ltrim(tmp)
Tmp = Rtrim(tmp)
Getnum = Tmp
End Function[/align]
باید اول برنامه از :
کد php:
Declare Function Getnum(byval s As String) As String 
استفاده کنید.

یه مقاومت 10k از rx به 4.7 وصل کنید همین.من کل برنامه رو ندارم چون تا وستاشو با بسکام نوشتم بعد کسی که پروژه رو میخواست گفت کدویژن باشه با اون نوشتم.در ضمن ماژول شما پول آپ نمیخواد مثل اینکه رو خودش تعبیه شده.
این دو دستور هم متوجه نشدم چی هست:
Tmp = Ltrim(tmp)
Tmp = Rtrim(tmp)
دوست عزیز
اگر بخواهیم به فانشن بگیم که 14 تا از شوع بشمار و پایان را بعد 14 قرار بده
در دستور زیر چه تغییری بدیم؟


کد:
Payan = Instr(shoro , Sms , "," )
(۱۳-فروردین-۱۳۹۱, ۱۶:۲۱:۵۱)lolohacko نوشته است: [ -> ]باید اول برنامه از :
کد php:
Declare Function Getnum(byval s As String) As String 
استفاده کنید.

یه مقاومت 10k از rx به 4.7 وصل کنید همین.من کل برنامه رو ندارم چون تا وستاشو با بسکام نوشتم بعد کسی که پروژه رو میخواست گفت کدویژن باشه با اون نوشتم.در ضمن ماژول شما پول آپ نمیخواد مثل اینکه رو خودش تعبیه شده.

پس باید یک مقاومت 10K را:
یکسرش را به برق 4.3 ولت یا همان پاور ماژول وصل کنیم
و سر دیگر مقاومت را به پایه RXD ماژول وصل کنیم؟
آیا این جمله که در بابا نوشتم درسته؟

بله صحیح هست البته این کار واسه شما لازم نیست چون شما دارید با برد راه انداز کار میکنید و این مقاومت روی برد شما قرار داده شده.
(۱۳-فروردین-۱۳۹۱, ۱۸:۰۱:۰۴)sina1359 نوشته است: [ -> ]دوست عزیز
اگر بخواهیم به فانشن بگیم که 14 تا از شوع بشمار و پایان را بعد 14 قرار بده
در دستور زیر چه تغییری بدیم؟


کد:
Payan = Instr(shoro , Sms , "," )

میشه :

کد php:
Tmp Mid(14

مثلا اینجا در رشته s از کارکتر 8 به تعداد 14 تا جدا میکنه و میریزه توی متغیر tmp
(۱۳-فروردین-۱۳۹۱, ۱۶:۵۲:۰۰)sina1359 نوشته است: [ -> ]این دو دستور هم متوجه نشدم چی هست:
Tmp = Ltrim(tmp)
Tmp = Rtrim(tmp)

Ltrim فاصله های سمت چپ , Rtrim فاصله های راست رو حذف میکنند که تو Help خود بسکام کاملا در مورد تمام دستورات توضیح داده.(که لازم هم نبود اینجا استفاده بشه فقط من به این دستور وابستگی دارم همه جا ازش استفاده میکنم)Wink



راستی بهتره مدارات مخابراتی رو با برد برد نبندید چون هم از لحاظ نویز و ... خیلی خوب نیست.
ممنون دوست عزیز
اگر زحمتی نیست پست 27 را هم جواب دهید ممنون میشم

بینهایت ممنون
خواهش میکنم.

همونطور که گفتم شما به پول آپ احتیاج ندارید و روی برد شما خودش پول داده شده.
یک مقاوت 10k یک سرش میخوره به پایه RX ماژول و سر دیگر میخوره به تغذیه ماژول.
سلام
دستتون درد نکنه دوست عزیز
سلام
یک سوال داشتم:
ما دستوراتی به ماژل Sim900 ارسال میکنیم
این دستورات با پاسخی از طرف ماژول روبرو است
مثلا OK یا ERROR
حالا این پاسخ ها را به چه صورت در یک متغییر String انتقال بدیم
تا بتوانیم روی LCD نمایش بدیم

ممنون میشم منو راهنمایی کنید
سلام.

دقیقا از همون روشی که sms ها رو میخونید (inkey) میتونید استفاده کنید یا از وقفه سریال استفاده کنید که تو هلپ بسکام کاملا توضمیح داده شده.
صفحه‌ها: 1 2 3 4 5 6