PDA

View Full Version : ارسال و دریافت اس ام اس



raha_20
چهارشنبه 17 مهر 1387, 22:17 عصر
سلام به همه دوستان گرام

راستش من میخوام تو زمینه ارسال و دریافت اس ام اس کار کنم و قسمت pdu را هم مطالعه کردم ولی هنوز نمی دونم برنامه را چطور و از کجا شروع کنم و آیا راهی برای امتحان کردن این کدها بدون نوشتن برنامه بایک زبان برنامه نویسی هست یا نه . اگه کمک کنید ممنو ن میشم

reza6384
چهارشنبه 17 مهر 1387, 22:37 عصر
سلام دوست عزیز.
بله ، می تونید برای استفاده از این PDU ها از HyperTerminal استفاده کنید و اتفاقا این کار قبل از شروع پیاده سازی ها خوبه ، چون یک مقدار اول به PDU ها مسلط میشین و بعدش هم میرسین به ارسال اون PDU ها روی پورت از طریق برنامه.
شما با چه زبانی برنامه می نویسید؟
در ضمن در سایت noorsoft که مدیربخش هستن، یک برنامه هست که شماره گیرنده و متن پیام رو میگیره و به شما PDU ای رو که باید ارسال کنید ارائه میده.
www.noorsoft.com

raha_20
پنج شنبه 18 مهر 1387, 10:47 صبح
یعنی من گوشی موبایلم را ازطریق پورت usb به کامپیوتر وصل کنم و بعد با hyper terminal کد ها را ارسا ل کنم ؟

میشه یه کم طریقه کار را برا من بگین ممنون میشم

noorsoft
پنج شنبه 18 مهر 1387, 11:33 صبح
شما گوشی تون رو به کامپیوتر وصل کنید و بعد تو Hyper terminal دستورات رو بدین

raha_20
جمعه 19 مهر 1387, 14:50 عصر
من میخوام یه اس ام اس بدون محتوا ارسال کنم . حالا دستور at که باید به کار ببرم برای این کار چی هست . اگه میشه یه نمونه برا م مثال بزنید

یه سوال دیگه : اینکه دستور ATVQ10 مودم را هم چک میکنه یا نه یعنی وقتی من موبایل را به کامپیوتر وصل نکردم ولی مودم خود کامپیوتر وصل هست بازم OK میده یا نباید اینجوری باشه



با تشکر

reza6384
جمعه 19 مهر 1387, 17:47 عصر
اینکه دستور ATVQ10 مودم را هم چک میکنه یا نه یعنی وقتی من موبایل را به کامپیوتر وصل نکردم ولی مودم خود کامپیوتر وصل هست بازم OK میده یا نباید اینجوری باشه


من دقیقا نمی دونم ، اما یادمه که وقتی دستور AT رو می زدم مودم خود کامپیوتر هم Reply می کرد و جزو GSM Modem های شناخته میشد. من برای اینکار از یه دستور دیگه مثل AT+CBC یا AT+CSQ استفاده کردم که جزو دستورات مودم معمولی نیست. بعد از خوندن بافر چک کردم که آیا رشته رسیده شامل کلمه OK هست یا نه.



من میخوام یه اس ام اس بدون محتوا ارسال کنم




AT+CMGF=0
OK
AT+CMGS=14
>0031000B819021212121F10000FF00


به جای قسمت مشخص شده شماره گیرنده رو بزنید و بعد از نوشتن این رشته هم باید Ctrl+Z رو بزنید و بعد از حدود 3 ثانیه از مودم OK رو دریافت می کنید که یعنی SMS ارسال شد.

raha_20
جمعه 19 مهر 1387, 18:44 عصر
AT+CMGF=0
OK
AT+CMGS=14
>0031000B819021212121F10000FF00


ولی وقتی من دستور AT+CMGF را می زنم ERROR میده در حالی که گوشی هم به کامپیوتر وصله و من نمیدونم مشکلش چیه ؟

در ضمن من گوشی را از طریق پورت USB وصل می کنم از این نظر که مشکلی نداره ؟

noorsoft
شنبه 20 مهر 1387, 08:44 صبح
من میخوام یه اس ام اس بدون محتوا ارسال کنم . حالا دستور at که باید به کار ببرم برای این کار چی هست . اگه میشه یه نمونه برا م مثال بزنید

یه سوال دیگه : اینکه دستور ATVQ10 مودم را هم چک میکنه یا نه یعنی وقتی من موبایل را به کامپیوتر وصل نکردم ولی مودم خود کامپیوتر وصل هست بازم OK میده یا نباید اینجوری باشه



با تشکر


اولا باید ATQ0V1E0 رو ارسال کنید تا موبایل شناسایی بشه
دوما برای فرستادن اس ام اس شما نیاز به یک دستگاه موبایل یا مودم جی اس ام دارین متاسفانه مودمهای جی اس ام فقط دستور AT رو قبول میکنن ور در واقع ATQ0V1E0 فقط برای موبایل قابل استفاده است

noorsoft
شنبه 20 مهر 1387, 08:46 صبح
AT+CMGF=0
OK
AT+CMGS=14
>0031000B819021212121F10000FF00


ولی وقتی من دستور AT+CMGF را می زنم ERROR میده در حالی که گوشی هم به کامپیوتر وصله و من نمیدونم مشکلش چیه ؟

در ضمن من گوشی را از طریق پورت USB وصل می کنم از این نظر که مشکلی نداره ؟
مدل گوشی شما چیه؟
بعضی از موبایلهای بعضی از دستورات AT را پشتیبانی نمی کنن ولی این دستور باید کار کنه !

raha_20
شنبه 20 مهر 1387, 14:29 عصر
مدل گوشیم k750 هستش .

پس من الان مشکل کارم چیه ؟ دستورات درست نیست . اگه میشه یه نمونه کامل برام بزارین چو ن من اون کد را که وارد میکنم ERROR میده و نمیشه کاریش کرد .

raha_20
شنبه 20 مهر 1387, 14:36 عصر
من چه گوشی موبایل به کامپیوترم وصل باشه چه نباشه وقتی دستور ATQ0V1E0 را میزنم OK دریافت میکنم . چرا این طورییه

گوشی من با کابل USB به کامپیوتر وصله . توی یه تاپیک خوندم بهتر ازطریق پورت COM باشه حال ایا این باعث مشکل شده یا نه

ممنون که کمک میکنید .

noorsoft
شنبه 20 مهر 1387, 15:55 عصر
شما وقتی موبایل خود رو به کامپیوتر وصل میکنین یک پورت جدید به پورتهاتون اضافه میشه و شما باید با اون کار کنین اگه موبایل وصل نباشه دیگه پورتی وجود نداره که شما از اون OK بگیرید
شما دراین یک جای کار رو اشتباه میکنید

raha_20
شنبه 20 مهر 1387, 20:27 عصر
راستش من کارخاصی که انجام نمیدم.گوشی را وصل میکنم . بعد هم توی HYPER TERMINAL این دستورات را عینا مینویسم . ولی خوب دستورات قبلی را که ERROR میده و دستور شناسایی موبایل را هم که چه وصل باشه چه نباشه OK میده .

reza6384
شنبه 20 مهر 1387, 21:55 عصر
دوست عزیز ، در Device Manager ببینید ( وقتی موبایل شما متصل است ) که مودم موبایل شما روی کدام پورت COM هست. برای اینکار Modems رو باز کنید و روی مودمی که به نام موبایلتون هست دبل کلیک کنید و از قسمت مودم ببینید که روی کدوم پورت COM هست.



دستور شناسایی موبایل را هم که چه وصل باشه چه نباشه OK میده .


دستور AT+CBC یا AT+CSQ رو امتحان کنید .

noorsoft
یک شنبه 21 مهر 1387, 10:59 صبح
راستش من کارخاصی که انجام نمیدم.گوشی را وصل میکنم . بعد هم توی HYPER TERMINAL این دستورات را عینا مینویسم . ولی خوب دستورات قبلی را که ERROR میده و دستور شناسایی موبایل را هم که چه وصل باشه چه نباشه OK میده .

اگه موبایل وصل نباشه پورت اون باز نمیشه و هایپر ترمینال هم نمیتونه به اون اطلاعات ارسال کنه که OK بگیره شما دارین به یک پورت دیگه مثلا مودم کامپیوتر این اطلاعات رو ارسال میکنید

raha_20
یک شنبه 21 مهر 1387, 12:08 عصر
توی قسمت DEVICE MANAGER که دیدم موبایلم روی دو تا پورت COM 8 و COM 9 کار میکنه . دستو رات AT+CBC هم کار نکرد و ERROR داد .

reza6384
یک شنبه 21 مهر 1387, 16:55 عصر
من هم با noorsoft موافقم. یه جایی رو اشتباه می کنید. با اینکه چیزی که می گم منطقی نیست ولی چک کنید.
1-تنظیمات رو روی پورت COM9 ، Baudrate=9600 , Parity = None,StopBits=1,DataBits = 8 قرار بدید.
(اینکه میگم منطقی نیست به خاطر اینه که اگر غیر از این تنظیمات انجام داده باشید اصلا هیچ داده ای از پورت دریافت نمی کردید.)

2- بلوتوث گوشی شما ممکنه روشن باشه و ارتباط با کامپیوتر از طریق بلوتوث برقراره. البته اگر اینجوری بود بازهم نباید به دستورات شما Error میداد. ولی با این حال چک کنید.

3- وقتی که کابل USB رو از گوشی قطع می کنید دیگه هیچ Text ای با کیبردتون نمی تونید توی HyperTerminal بنویسید. اگر بعد از قطع کابل کماکان در HyperTerminal می نویسید و جوابی هم دریافت می کنید مطمئن باشید که به موبایلتون وصل نیستید.

noorsoft
یک شنبه 21 مهر 1387, 19:39 عصر
توی قسمت DEVICE MANAGER که دیدم موبایلم روی دو تا پورت COM 8 و COM 9 کار میکنه . دستو رات AT+CBC هم کار نکرد و ERROR داد .

موبایل که نمی تونه همزمان روی دو تاپورت کار کنه

raha_20
یک شنبه 21 مهر 1387, 22:54 عصر
من وقتی گوشیم را وصل میکنم دوتا مودم برای گوشیم شناسایی میشه و عکسش زا گذاشتم . یکی روی COM8 کار میکنه و یکی روی COM9 کار میکنه .

اگه گوشی من هیچ پورتی را باز نمیکنه و یا حالا گوشی من شنا خته نشده چطوریه که من میتو نم اطلاعت رو رم ان بریزم .

raha_20
یک شنبه 21 مهر 1387, 22:58 عصر
وقتی که کابل USB رو از گوشی قطع می کنید دیگه هیچ Text ای با کیبردتون نمی تونید توی HyperTerminal بنویسید. اگر بعد از قطع کابل کماکان در HyperTerminal می نویسید و جوابی هم دریافت می کنید مطمئن باشید که به موبایلتون وصل نیستید.
__________________


مگه وقتی موبایل به کامپیوتر وصل نیست نباید بشه توی HYPER TERMINAL دستور نوشت . من اگه موبایلم هم وصل نباشه میتو نم بنویسم

noorsoft
دوشنبه 22 مهر 1387, 06:50 صبح
مگه وقتی موبایل به کامپیوتر وصل نیست نباید بشه توی HYPER TERMINAL دستور نوشت . من اگه موبایلم هم وصل نباشه میتو نم بنویسم

اگه ارتباط برقرار نباشه نباید بتونی چیزی تایپ کنید

reza6384
دوشنبه 22 مهر 1387, 10:04 صبح
دقیقا همینه که جناب noorsoft گفتند. در ضمن وقتی گوشیتون متصل نباشه و Hyper Terminal رو باز کنید یک پیام خطا میده و می گه که Unable To Communicate With Modem...

raha_20
چهارشنبه 24 مهر 1387, 20:45 عصر
من فکر میکنم مشکل از کامپیوترم باشه چون روی سیستمای دیگه دیدم اگه موبایل وصل نباشه نمیشد دستور نوشت ولی رو سیستم من میشه این کار را کر د .

درایور موبایل باید نصب باشه دیگه ؟

raha_20
چهارشنبه 24 مهر 1387, 20:47 عصر
مشکل من آیا با نصب دوباره windows حل میشه یا نه . ممکن از مودمم باشه که همیشه میتونم توی hyper terminal دستور بنویسم

reza6384
پنج شنبه 25 مهر 1387, 09:40 صبح
دوست عزيز ، شايد مشكل شما اين باشه كه HyperTerminal شما داره روي يك پورت Valid‌ديگه كار مي كنه. مطمئن بشيد كه همون پورت موبايلتون رو براي HyperTerminal انتخاب كردين.

با نصب دوباره Windows همه چي درست ميشه. اما اين ديگه تير خلاصه. به نظر من حتي المقدور بايد از نصب ويندوز فرار كرد. چون كار طاقت فرسايي هست. مخصوصا براي كسايي كه برنامه زياد روي سيستمشون نصب مي كنند.

raha_20
پنج شنبه 25 مهر 1387, 16:34 عصر
مشکل من حل شد همینطور که آقای NOORSOFT و آقا رضا گفته بودید HYPER TERMINAL من روی پورت مودمم کار میکرد .
الان من با نوشتن دستورات AT دیگه باERROR مواجه نمیشم ولی SMS خالی هم ارسال نمیشه .


AT+CMGF=0
OK
AT+CMGS=14
>0031000B819021212121F10000FF00
این شماره ای که شما نوشتید با ان روشی که برای pdu وجود داره که فرق میکنه وشماره فرستنده را نداره .من باید خودم شماره را به pdu تبدیل کنم یا مثل همین کد باشه فقط شماره قرمز رنگ را عوض کنم و شماره گیرنده را جایگزین آن کنم ؟

reza6384
جمعه 26 مهر 1387, 00:15 صبح
سلام. شما باید جای اون مقدار قرمز رنگ شماره گیرنده رو به صورت دوتایی و برعکس بذارین و همچنین به صورت Local یعنی ....0912 یا .....0935 . بله این PDU با اون PDU مثال یه فرق کوچیک داره و اون اینه که در این PDU شماره Service Center رو مشخص نکردیم و جای اون 00 قرار دادیم. یعنی طول شماره SMS Center صفر هست.

raha_20
جمعه 26 مهر 1387, 10:55 صبح
خوب من هم همین کار را میکنم و شماره را همینطور که میگین مینویسم و لی ارسال نمیشه . من آخر شماره ctrl+z را باید بزنم ؟

این کار را کردم و لی +cms 304 ولی این error را میده و نمیشه sms ارسال کرد

reza6384
جمعه 26 مهر 1387, 18:08 عصر
سلام.

بله ، بعد از نوشتن PDU باید Ctrl+z رو بزنید که کاراکتری که نمایش داده میشه یک فلش به سمت راست هست.
لطفا رشته PDU ای رو که میفرستید بنویسید.
در ضمن قبلش باید AT+CMGS=14 رو زده باشید.

304 :


Invalid PDU mode parameter

raha_20
شنبه 27 مهر 1387, 15:39 عصر
کدی که من ارسال می کنم اینه :


AT+CMGF=0
OK
AT+CMGS=14
>0031000B819031021935f70000FF00

reza6384
یک شنبه 28 مهر 1387, 13:55 عصر
کدتون درسته، نمی دونم Case sensitive هست یا نه الان نمی تونم چک کنم. فقط اون f در قسمت قرمز رو بزرگ کنید. و بعد از پایان رشته PDU باید CTRL+Z رو بزنید.

raha_20
دوشنبه 29 مهر 1387, 14:57 عصر
مشکل من حل شد و تونستم sms ارسال کنم . حالا اگه بخوام متن ارسال کنم باید کد متن ارسالی را بعد از کد شماره قرار بدم یا طور دیگه ای هست

reza6384
سه شنبه 30 مهر 1387, 01:21 صبح
خوب. برای متن قضیه یک مقداری فرق میکنه. اولا AT + CMGS باید مساوی نصف طول رشته منهای یک باشه. یعنی اگر رشته PDU شما 32 حرف داره باید بنویسید AT+CMGS=15 که در بخش PDU ENCODING کاملا بحث شده.
و اما در همون مثال شما به جای 0000 در پایان رشته بنویسی 04D2B23E0C یک پیام با متن "Reza"و اولش بنویسی AT+CMGS=18 به شمارتون ارسال میشه. و اما برای تست می تونید از سایت مدیریت بخش جناب آقای نوانیان استفاده کنید.

mutter
جمعه 08 آبان 1388, 21:38 عصر
من میکرو رو به ماژول SIM 300 وصل کردم ولی نمیدونم چطوری SMS دریافتی توسط ماژول را پردازش کنم مثلا SMS دریافتی را روی یک LCD که به میکروAVR وصل است نمایش دهم.من در مود TEXT کار میکنم و با CODEVISION .اگر نمونه برنامه دارید کمکم کنید.

mahdi68
جمعه 15 آبان 1388, 23:54 عصر
سلام
دوستان من این مطالب خوندم ولی چون اصلا آشنایی ندارم با این موضوع زیاد سر در نیاوردم شاید این سوالم تکراری و خیلی مبتدی باشه ولی شما ها بزرگواری کنین و جواب بدین
واسه دریافت اس ام اس از طریق کامپیوتر چه دستگاه و برنامه هایی نیاز هست ؟؟؟ این جی اس ام مودم فقط برای ارسال هست یا برای دریافت هم میشه استفاده کرد ازش ؟؟؟ سیم کارتی که به ایندستگاه وصل میشه همون سیم کارت های معمولی هست ؟؟؟ قیمت این دستگاه ها چند د هست ؟؟؟
متشکرم

mahdi206
پنج شنبه 02 اردیبهشت 1389, 12:58 عصر
سلام من تو در یافت اس ام اس مشکل دارم چکار کنم چطور میشه دلیل error فهمید.کد error رو دارم اما hiper فقط خطا میده بدون کد خطا
تشکر

mahdi206
جمعه 03 اردیبهشت 1389, 16:42 عصر
تو دریافت اس ام اس با at command خطا میده کسی مشکل رو حل نکرده

8611670474
دوشنبه 14 تیر 1389, 10:10 صبح
آقل این heyper terminal chie?
از کجا میتونیم پیدا کنیم.

z_software
شنبه 13 آذر 1389, 08:17 صبح
با عرض سلام به همه دوستان .
ببخشید من یه مودم GPRS دارم و می خوام قبل از برنامه نویسی با hyperterminal ارسال اس ام اس را انجام بدم . تنظیمات کنترل پنل و hyperterminal را از روی یه فایل لاتین انجام دادم(http://www.developershome.com/sms/howToUseHyperTerminal.asp) ولی نمیدونم چرا اصلاً به دستور AT که میدم (خود دستور AT) اصلاً به خط بعد نمیره (نه error میده OK ) تا این تاپیک رو خواندم . آیا من هم باید بادستوری خاص مودم GPRS را به hyperterminal معرفی کنم ؟ لطفاً راهنمایی کنید .

noorsoft
یک شنبه 14 آذر 1389, 13:27 عصر
با عرض سلام به همه دوستان .
ببخشید من یه مودم GPRS دارم و می خوام قبل از برنامه نویسی با hyperterminal ارسال اس ام اس را انجام بدم . تنظیمات کنترل پنل و hyperterminal را از روی یه فایل لاتین انجام دادم(http://www.developershome.com/sms/howToUseHyperTerminal.asp) ولی نمیدونم چرا اصلاً به دستور AT که میدم (خود دستور AT) اصلاً به خط بعد نمیره (نه error میده OK ) تا این تاپیک رو خواندم . آیا من هم باید بادستوری خاص مودم GPRS را به hyperterminal معرفی کنم ؟ لطفاً راهنمایی کنید .

خیر ، شما باید سرعت انتقال اطلاعات بین کامپیوتر و مودم را درست انتخاب نمایید مدمها معمولا با سرعت 19200 و یا 115200 کار میکنند و اگر سرعت دیگری انتخاب بشه جواب نمی دهند
در ضمن تنظیمات دیگر مربوط به flow control را هم باید None نمایید

hamedmaker4
شنبه 07 بهمن 1391, 22:08 عصر
سلام من هم با استفاده از یه برنامه که با net. نوشته شده میخوام اس ام اس بفرستم اما مشکل داره کسی میتونه منو
راهنمایی کنه
مشاهده برنامه (http://uploadkon.ir/?file=WindowsApplication8.rar)