سلام خدمت همه شما مایکروالکامی ها. در مطلب قبلی این سری از مطالب، به بررسی ماژول SIM800L و نحوه تغذیه درست و مناسب اون و بررسی دستورات و وضعیت اتصال شبکه پرداخته شد. در این قسمت قراره با هم با نحوه ارسال و دریافت پیامک با استفاده از ماژول آشنا بشیم. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتویند سایر مطالب من رو از این لینک مطالعه و بررسی کنید.
کاربرد پیامک (SMS)
بدون درنگ پیامک یکی از گزینه های همیشه در دسترس، سریع و آسان برای استفاده در موراد و پروژه هایی هست که قراره مانیتورنیگ، هوشمند سازی و این جور موارد رو انجام بدیم. بیاید فرض کنیم امروز خونه نیستیم و باید یک وسیله ای رو قطع/وصل کنیم. یا نیاز هست یک فیدبکی از اونجا برای ما ارسال بشه.
راه و روش های زیادی برای این کار ها وجود دارد. مثلا استفاده از یک وب سرور و اینترنت. اما یکی از این روش های در دسترس استفاده از سیستم پیامک هست. کافیه شما دستور قطع/وصل اون وسیله رو از طریق پیامک برای دستگاه ارسال کنید. یا دستور ارسال وضعیت از منزل را ارسال کنید. دیگه همه چیز حل میشه.
دستگاه های کنترلر پیامکی موجود در بازار و استفاده شده در خانه های هوشمند هم از همین روال استفاده میکنند. در زیر یک مدل از این دستگاه ها رو مشاهده میکنید.
یکی دیگه از مزایای استفاده از پیامک حذف کردن بُعد مسافت هست. اینطوری دیگه فرقی نمیکنه شما شمال باشی یا جنوب. هر جایی که تحت پوشش سیگنال موبایل باشی، براحتی میتونی دستگاه مرکزی رو کنترل کنی.
قطعات مورد نیاز
- برد راه انداز ماژول SIM800L
- LM2596 Buck DC-DC Convertor
- آداپتور 12V
- آنتن GSM با سوکت IPEX
- مبدل سریال
راه اندازی بخش پیامک ماژول SIM800L
قبل از هر چیزی نیاز هست که یک سری تنظیمات را با استفاده از دستورات AT Command ماژول، انجام بدیم. طبیعی هست ارسال و دریافت پیامک با استفاده از ماژول SIM800L مستلزم این هست که اول از همه ماژول به شبکه کانکت شده باشه. پس برای این کار از LED روی بورد راه انداز استفاده کنید و مطمئن بشید که به شبکه کانکت شده. نحوه چشمک زدن ماژول رو در قسمت قبلی بررسی شده که میتونید یه مروری انجام بدید.
با استفاده از دستور ?AT+CCALR و پاسخ ارسالی از طرف ماژول میتونیم متوجه بشیم که ماژول آماده هست یا خیر. ماژول در پاسخ به این دستور اگر همه چیز اوکی باشه و آماده phone call باشه، 1 ارسال خواهد کرد.
AT+CCALR? +CCALR: 1 OK
مد پیامک دارای 2 حالت Text و PDU میباشد. مختصرا بخوام بگم مد Text حالت متنی هست و متن رو ارسال میکنه البته متن انگلیسی. مد PDU حالتی هست که از کاراکتر های استاندار ASCII برای نوشتن متن پیام استفاده نمیکنه.
در حالت PDU پیام بصورت کد HEX خواهد بود و کدگذاری و فشرده سازی میشه و نهایتا ارسال میشه. چون پیام در این حالت رمزنگاری شده، در سمت گیرنده هم باید رمزگشایی بشه تا متن قابل نمایش باشه. یکی از کاربرد های مد PDU در ارسال پیامک با متنی غیز ار متن انگلیسی هست. مثلا ارسال پیامک فارسی که در ادامه این قسمت از آموزش ها بررسی و مطلبش منتشر منشتر خواهد شد.
برای تنظیم مد Text از دستور زیر استفاده میشود. اگر در پاسخ، ماژول OK رو برگردونه، یعنی پشتیبانی میشه از این حالت و ماژول در مد Text تنظیم شده است.
AT+CMGF=1 OK
ارسال پیامک با ماژول SIM800L
در این بخش نحوه ارسال پیامک در مد Text را بررسی خواهیم کرد. برای ارسال پیامک با استفاده از ماژول SIM800L باید تنظیماتی که پیش تر به آن اشاره شد و مراحل این قسمت را با دقت دنبال کنید. در بخش های بعدی آموزش نحوه ارسال و دریافت پیامک در مد PDU نیز به این سری از آموزش اضافه خواهد شد.
اول دستور AT را میفرستیم و مطمئن میشیم که ماژول OK رو در پاسخ به ما میده. این را برای مطمئن شدن از برقرای اتصال سریال انجام میدیم. سایر مراحل را در زیر میتونید بهمراه پاسخ ارسالی از طرف ماژول در ادامه بررسی کنید.
اطمینان از برقرای ارتباط سریال:
AT OK
اطمینان از متصل شدن به شبکه:
AT+CSQ? +CSQ: 31,0
با توجه به پاسخ ماژول میفهمیم که قدرت سینگال دریافتی خیلی خوب هست و با موفقیت به شبکه کانکت شده.
تنظیم ماژول در مد کاری Text:
AT+CMGF=1 OK
تنظیم پیام مدت دار برای ارسال:
برای ارسال پیام مدت دار بصورت اعتبار تا 1 روز از دستور زیر استفاده کنید. در غیر اینصورت خب این قسمت را بیخیال بشید.
AT+CSMP=17,167,0,16 OK
وارد کردن شماره مقصد مورد نظر:
AT+CMGS="09zzzzzzzzz" یا AT+CMGS="+989zzzzzzzzz" >
در دستور بالا بعد از “09” یا “+989” بجای ‘z’ ادامه شماره موبایل مقصد مورد نظر رو وارد کنید. بعد از وارد کردن دستور بالا و زدن اینتر از روی کیبورد و ارسال اون به ماژول، علامت ‘<‘ را روی نمایشگر سریال میبنید. در این مرحله باید متن پیام خودتون رو وارد کنید. دقت کنید متن مورد قبول انگلیسی است. برای سایر زبان مثلا فارسی باید از مد PDU استفاده کنید.
نکته مهم: بعد از تایپ کردن متن مورد نظر، حتما باید قبل از زدن دکمه اینتر کیبورد، عبارت ctrl+z یا کد هگز (1A) معروف هم بهمراش ارسال بشه.
نکته عملی: تا وقتی که عبارت ctrl+z ارسال نشه، هر چی ارسال بشه میره خط بعدی پیامک مورد ارسال شما. به مثال زیر توجه کنید:
AT+CMGS="09zzzzzzzzz" >https://blog.microele.com >SIM800L Tutorial - Part 2 >Visit our new post on Microelecom Blog >
اما هنگامی که بهمراه متن مورد نظر با تنظیم آن در سریال ماینتور خود عبارت ctrl+z یا کد هگز 1A ارسال بشه پیامک به مقصد مورد نظر میرسه. برای اینکه مطمئن بشیم پیامک ارسال شده، ماژول پاسخی شبیه عبارت زیر میده:
+CMGS: 76 OK
در تصویر زیر نمونه پیامک ارسال شده رو به تلفن همراه من میبینید:
برای تنظیم و فعال کردن قابلیت گزارش تحویل پیامک میتوانید از این لینک استفاده کنید.
دریافت پیامک با ماژول SIM800L
در این بخش تنظیمات را مشابه حالت قبل بررسی و اعمال خواهیم کرد. هدف این بخش، دریافت پیامک میباشد. اول دستور AT را میفرستیم و مطمئن میشیم که ماژول OK رو در پاسخ به ما میده. این را برای مطمئن شدن از برقرای اتصال سریال انجام میدیم. سایر مراحل را در زیر میتونید بهمراه پاسخ ارسالی از طرف ماژول در ادامه بررسی کنید.
اطمینان از برقرای ارتباط سریال:
AT OK
اطمینان از متصل شدن به شبکه:
AT+CSQ? +CSQ: 31,0
با توجه به پاسخ ماژول میفهمیم که قدرت سینگال دریافتی خیلی خوب هست و با موفقیت به شبکه کانکت شده.
تنظیم ماژول در مد کاری Text:
AT+CMGF=1 OK
خواندن پیامک از روی حافظه سیم کارت:
با استفاده از دستور زیر و مشخص کردن آدرس پیامک در خانه حافظه سیم کارت، میتوانید پیامک ذخیره شده در آن را بخوانید. بجای xx میتوانید آدرس مد نظر را وارد کنید.
AT+CMGR=xx
AT+CMGR=1 +CMGR: "REC UNREAD","+989zzzzzzzzz","","19/12/25,20:38:22+14" light1on OK
در پاسخ دریافتی از ماژول شما میتوانید به متن پیام، تاریخ، شماره فرستنده پیام دسترسی داشته باشید. عبارت “light1on” متن این پیامک میباشد. که از طرف شماره “+989zzzzzzzzz” ارسال شده. از همین روش میتونید برای خواندن سایر پیامک های موجود در حافظه سیم کارت استفاده کنید. عدد آدرس پیامک در حافظه بین 15 تا 50 میتونه باشه متناسب با حافظه سیم کارت.
در صورتی که متن پیامک غیر از زبان انگلیسی باشد، بجای متن پیام که در بالا دیدید. یک سری اعداد رو مشاهده میکنید که باید دیکد بشن تا به به متن اصلی دسترسی پیدا کنید. به مثال زیر توجه کنید:
AT+CMGR=21 +CMGR: "REC UNREAD","+989zzzzzzzzz","","21/05/21,17:14:01+18" 064806280644062706AF00200645062706CC06A9063106480627064406A906270645060C002006410636062706CC06CC002006280631062706CC002006CC0627062F06AF06CC063106CC00200648002006270646062A0642062706440020062A062C063106280647 OK
در این متن دریافتی، اگر 4 تا 4 تا جدا کنیم و اون رو دیکد کنیم متن دریافتی به این شکل خواهد بود: “وبلاگ مایکروالکام، فضایی برای یادگیری و انتقال تجربه”.
نتیجه گیری
در این مطلب سعی شد بصورت کامل نحوه ارسال و خواندن پیامک از روی حافظه سیم کارت توسط ماژول SIM800L مورد بررسی قرار گیرد. برای تعیین مد عملکرد ماژول در حالت Text یا PDU از دستور AT+CMGF استفاده شد. در بخش های بعدی نحوه دریافت و برقرای تماس، ارسال و دریافت پیامک در مد PDU و… بررسی خواهند شد.
امیدوارم از این آموزش کمال بهره را برده باشید. در صورتی که هرگونه نظر یا سوال داشتید درباره این آموزش لطفا اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.
سلام
اگر بخوام وقفه بده هر بار که براش پیامک میاد باید چکار کنم؟
سلام، منظورتون رو دقیق تر بفرمایید.
میتونید از پایه RI ماژول هم استفاده کنید.
درود بر شما
من وقتیکه. به ماژول پیام میدم فقط sm,1 یا بعضاً +cmgr. sm,1 رو صفحه مانیتور میاد.ولی کل پیام نمیاد.ممنون میشم راهنمایی کنید
سلام، پیامک فارسی هست یا انگلیسی؟
درود
چه انگلیسی و چه فارسی و حتی اعداد
وقتی پیام میدم فقط sm و جلوش یه عدد.
در ضمن وقتی at کامند دیگری میفرستم در جواب حروف تا خوانا را جواب میده. ولی اگر کامند تماس بفرستم تماس برقرار میشه و با ath هم قطع م با ata هم پاسخ میده. تا خوانا بودن برا نوع مبدل نیست؟
فقط اون که ارسال پیام میکنم را هم جواب بدید که چرا فقط sm
دقیقا مشابه مراحلی که ذکر شده راه اندازی میکنید؟
حالت رو بصورت text mode تنظیم میکنید؟
درود مجدد
بله مهندس،بگزار تا بهتر بگویم
من طبق آموزش شما انجام دادم و حتی بعداً اومدم به دزدگیر اماکن ساختم که با پیامک کنترل میشد و عالی هم کار میکرد. بعداً اومدم با dtmf هم راه اندازی کنم، ولی از اون به بعد دیگه حتی دزدگیر هم کار نکرد. ماژول را خارج کردم و دیدم که پیامک دریافت نمیشه.at&f هم کردم. ولی نشد که نشد.الان یه ماژول نو خریدم که برسه با اون تست کنم. راستی اینه حروف ناخوانا روی مانیتور دریافت میکنه برا چیه. دستور تماس و قطع را انجام میده ولی حروف ناخوانا. مبدل هم ۲۳۰۳ هست
یک بار اول dtmf رو تست کنید و دستورات برنامه نویسی خودتون رو ببینید درست هستش یا خیر. ممکنه اشکال از سمت برنامه نویسی شما باشه.
سلام وقت بخیر
ممنون از سایت خوب شما
ما وقتی ctrl+Z میزنیم ارور کد ۲۱۷۲ دریافت میکنیم . من AT+CMEE=1 زدم که کد ارور بهم نشان داده
هم سیمکارت همراه اول گذاشتم هم ایرانسل
AT+CSMP=17,167,0,8
این دستور هم زدم مجدد تست کردم اما بازم نشد
از ارسال صحیح مطمئن هستید؟
سلام به همه عزیزان . با توجه به خطاهایی که احتمالا با آن مواجه میشید در این پایین خطا و راحل را براتون مینویسیم . این ها نتیجه ازمون و خطاها و جستجو های بنده است
خطا شناسایی نشدن ماژول
درصورتی که برد و ماژول به هم متصل نشدند GND منابع تغذیه برد و ماژول را با هم یکی کید
در بعضی موارد ایراد از بر د است و باید با یک برد دیگر متصل کنید بنده نتونستم برد MEGA R3 را به این ماژول وصل کنم .
همچنین توجه داشته باشید ولتاژ ماژول SIM800L باید ۴.۵ تا ۵ ولت باشد در غیر اینصورت فقط چشمک میزند و به شبکه وصل نمی شود
برای ارسال پیام برای اینکه کد به درستی کار کند باید سریال مانیتور را حذف کرد زیرا تداخل ایجاد کرده و به فرمان های AT پاسخ نمیدهد
در نتیجه دچار لوپ در بخش ستاپ شده و مدام پیام INITIALIZE…. پشت هم پرینت می شود
خطای بعدی مربوط به سیم کارت ایرانسل است که با این خط کد قبل از تعیین شماره حل خواهد شد SIM.println(“AT+CSMP=17,167,0,8”)
تشکر
سلام وقت بخیر
من پروژه کنترل رله با اردوینو و ماژول sim800l راه اندازی کردم و پروژه تا موقعی که کابل usb بین لپتاب و اردوینو وصل هست کامل بهم جواب میده و رله رو با پیامک خاموش روشن میکنم اما مشکل اینجاست که به محضی که برق قطع و مجدد وصل میکنم دیگه به پیامک ها جواب نمیده تا دوباره کابل usb وصل بشه و صفحه اردوینو باز بشه دوباره عمل میکنه جچوری میتونم مشکل رو رفع کنم؟؟
تغذیه از اداپتور ۱۲ ولت ۵ امپر استفاده میکنم به پین vin در اردوینو خورده و به کاهنده lm2596 وصل شده روی ۴.۲ ولت تنظیم و به تغذیه ماژول اومده یه خازن ۱۰۰۰ میکرو فارادی هم به تغذیه ماژول زدم / تقسیم ولتاژ برای rx مازول گذاشتم ۱۰ کیلو و ۲۰ کیلو
ممنون میشم کمکم کنید
سلام، GND ها همه به هم متصل شده اند؟
اول از همه کلا کابل متصل به USB آردوینو رو قطع کنید چه از کامپیوتر چه از خود آردوینو.
تغذیه ۵ ولت رو به ورودی تغذیه آردوینو متصل کنید و ۴.۲ را به ماژول. بااین کار اول مطمئن بشید درست کار میکنه یا خیر.
با عرض سلام با نرم افزاری که شما معرفی کردید من امتحان کردم مشکل کنترل زد حل شد منتها یک سری از کد ها رو همراه پیامک برام میفرسته
سلام،
چه کدی دقیقا؟ حالتی که ارسال میکنید یا پیامی که ارسال میکنید چی هست؟
با عرض سلام
من یک برد صنعتی Sim808 دارم که برای فعال کردن بخش پیامک آن تمام کارهایی که دربالا توضیح داده شد رو انجام دادم اما بازم مشکل این است که در بخش text گیر میکنه و متوجه ctrl+z نمیشود هم به صورت hex هم به صورت decimal و هم با کلید معادل کیبرد امتحان کردم باز در بخش تکست میمونه و هی میره خط بعد
سلام، عجیبه!
بجای ارسال متن مورد نظر خودتون یه متن کوتاه مثلا در حد ۴-۵ کاراکتر ارسال کنید با کنترل زد ببینید بازم همین مشکل هست یا خیر.
سلام وقت بخیر ، کدها روی اردینو کار میکنن و پیامک دریافت و ارسال میشه ولی وقتی میریزم رو atmega32 که با فرکانس ۸ کار کنه هیچ واکنشی نداره ، از تغذیه و سیم کارت و سیم و برنامه هم مطمنم ، چه مشکلی داره؟
سلام، برای اپلود کد های نوشته شده در Arduino IDE روی میکروی ATMEGA32 باید یسری مراحل طی کنید که بدرستی کار کنه.
احتمال خیلی زیاد مشکل شما در همین مورد هست. حتما روش اینکار رو مطالعه کنید و بعد دوباره امتحان بفرمایید.
سلام
مهندس من نتونستم با همین نرم افزار که معرفی کردید پیام بفرستم. همه کار میکنه اععم از تماس و ….
ولی پیام نه.بعد از اون > که متن را تایپ میکنم و اینتر باید دقیفا چه کرد؟
سلام، از داخل تنظیمات باید تنظیم کنید که انتهای دستور کد هگز ۱A یا همان ctrl+z هم ارسال بشه.
سلام و خسته نباشید
دوتا ماژول sim800lدارم .در مود textاز هر کدام از ماژولها که پیامک به گوشی میفرستم و یا دریافت میکنم درست عمل میکنه.ولی وقتی از یکی از ماژولها به اون یکی میفرستم بصورتpdu عمل میکنه واین درحالیه که هردو روی مود text هستند
خیلی ممنون میشم اگه کمکم کنید
پیش از ارسال یا دریافت پیامک حتما ماژول رو در حالت text قرار بدید و مجددا بررسی بفرمایید.
درود بر شما و ممنون از مطالب خوبتون
من این ماژول رو با باتری ۱۸۶۵۰ راه اندازی کردم بدون هیچ مشکلی کار میکنه
تنها مشکلی که باهاش دارم با سیمکارت ایرانسل اس ام اس ارسال نمیکنه
ولی با همراه اول راحت ارسال میکنه
خطایی که با ایرانسل میگیرم Error هست فقط همینو در سریال نمایش میده
و با ایرانسل حتی پیامم دریافت میکنه … زنگ میخوره و RING نشون میده
خطو در گوشی گذاشتم پیام میفرسته میگیره …شاٰرژ هم داره و بابت اعتبار موردی نداره …
آنتن رو هم توسط خود ماژول تست کردم
منفی ۲۵ قدرت سیگنالو نشون میده
پیشاپیش از زحمات شما ممنونم
سلام، پیش از ارسال پیامک و تنظیمات مربوطه در ابتدا کامند AT+CSMP=17,167,0,8 ارسال کنید و نتیجه را بررسی کنید.
درود و تشکر
با راهنمایی شما مشکل ایرانسل حل شد .
لطف کردید ممنون بابت زحمات شما
سلام، خیلی ام عالی. سلامت باشید.
سلام
ممنون از شما واقعا لذت بردم از نکات کاربردی و کلیدی شما
سلام، از اینکه مطلب مفید بوده خوشحالیم.
و یک سوال دیگه اینکه چطور هر تماسی که با ماژول برقرار شد رو رد کنیم
برای رد تماس دریافتی در ماژول از دسترو ATH استفاده کنید.
سلام خسته نباشید ممنون از توضیحات
یک سوال اگر بخوام ماژول فقط از یک شماره مشخص پیام رو بخونه و بعد اون رو پاک کنه و در غیر این صورت پیام دریافتی رو بدون خوندن پاک کنه باید چکار کنم؟ ممنون میشم راهنمایی کنید
سلام
این کار رو میتونید از طریق برنامه نویسی و سمت میکروکنترلر انجام بدید.
سلام بسیار عالی بود، برای تبدیل اعداد با فرمت یونیکد به فارسی چه سایتی هست که اینکارو انجام بده؟
سلام، متاسفانه حضور ذهن ندارم اگر پیدا کردم سایتی که خودم استفاده میکردم رو مجددا ریپلای میکنم کامنت رو
سلام تونستید پیدا کنید؟ من شدیدا لازم دارم
سلام؛
سایت زیر رو بررسی بفرمایید.
https://www.online-toolz.com/tools/text-unicode-entities-convertor.php
بسیار ممنونم واقعا به همچین سایتی نیاز داشتم. ❤️❤️❤️
البته یه مشکلی هم داشت که باید اول یونیکد u% اضافه میشد که اون مشکل رو هم تونستم به کمک یه ابزار دیگه حل کنم.
خداروشکر پس کارتون راه افتاد. خواهش میکنم. اگر دوست داشتید شما هم میتونید مثل سایر دوستان مطالب و تجارب خودتون رو روی سایت منتشر کنید.
سلام
با چند خط پایتون میشه تبدیل کرد:
import re
test_str = ‘پیام ارسال شد’
res=”
for s in test_str:
res =res + ‘0’+hex(ord(s)).upper()[2:]
print(res)
بسیار عالی، ممنون از اینکه تجاربتون رو اشتراک میگذارید. اگر علاقمند بودید میتونید یک مطلب اختصاصی در این خصوص با اسم خودتون روی سایت قرار بدید و منتشر کنیم.
سلام ممنون از آموزش های بسیار عالی
من ارتباط با ماژول را به درستی برقرار کردم. تمام دستورات اجرا می شود.
اما برای ارسال SMS هنگامی که علامت > میاد و متن پیام را می نویسم پیام ارسال نمی شد. یعنی مشکل با کاراکتر Ctrl+z دارم. لطفا در صورت امکان کد را بررسی کنید. محیط کد ویژن و میکرو مگا ۱۶
از چندین روش هم برای ارسال کاراکتر ۲۶ استفاده کردم اما نشد…
char ctrl_z=0x1a;
printf(“AT+CMGF=1%c”,13);
delay_ms(D1);
printf(“AT+CMGS=\”091xxxxxxx\”%c”,13);
delay_ms(D1);
printf(“Salam%c”,26);
putchar(ctrl_z);
delay_ms(D1);
printf(“%x”,0x1a);
delay_ms(D1);
سلام
شما باید بعد از اینکه کاراکتر “<" را دریافت کردید بلافاصله شروع به نوشتن متن مورد نظر کنید و اینتر بزنید
بعد از این کد ۰x1a یا همان ۲۶ یا همان cntrl+z را ارسال بفرمایید.
پیشنهاد میکنم یک بار با نرم افزار سریال تست کنید و بعد با میکرو پیاده سازی کنید.
سلام دوست عزیز ممنون از راهنمایی . این بار با نرم افزار معرفی شده SJ_ATCTool_V1.30 کار کردم. زمانی که علامت > را دریافت می کنم پیام را می نویسم (در اینجا فقط salam) اما باز هم هر چه قدر کارکتر ۰۱a را ارسال میکنم اتفاقی نمی افتد. بعد از مدتی پیام error ظاهر می شود.
ماژول کاملا درست کار میکند. هم پیامک دریافت میکند هم تماس و هم ارتباط با اینترنت. اما فقط مشکل ارسال sms دارم.
ممنونم میشم راهنمایی کنید.
سلام
جالبه من خودم استفاده کرده بودم ولی مشکلی به این صورت نداشتم. التبه خود نرم افزار میتونید مشخص کنید اخر هر دستوری که ارسال میشه چی رو دقیقا بفرسته و نیاز نیست دستی کاری کنید واسش
سلام
جالبه که با پورت tcp هم کار کردم و اطلاعات رد و بدل شد. کاراکتر کنترل Z به راحتی ارسال شد.
درسته دقیقا
با سلام و تشکر از مطالب مفیدتان. من در یک برنامه متغیری دارم که مقدار آن بسته به شرایط سنسورها تغییر میکند و لازم است در زمانهای مختلف مقدار این متغیر از طریق پیامک(ماژول sim800l) منتقل شود. کامندی که بتواند مقدار متغیر را دریافت و پیامک کند پیدا نکردم . لطفا در صورت امکان راهنمایی بفرمایید.
سلام، از طریق همون دستورات ارسال پیامک میتونید استفاده کنید و جایگزین متن مورد مثال آموزش متغییر خودتون رو قرار بدید
تو قسمت ارسال پیام برای ارسال پیام کلید CTRL+Z کار نمیکنه .چطوری باید انجام بدیم؟
سلام ۰x1A رو ارسال کنید انتهای کار
سلام
من هم همین مشکلو دارم
زمانی که میره تو قسمت تایپ پیام ، هر چی میزنم میره خط بعدی و کنترل زد هم تاثیری نداره
این کد رو که گفتید میشه برام توضیح بدید که چجوری باید بنویسمش؟
سلام
برای ارسال ۰x1a هم میتونی همونطور که سایر دستورات AT را با دستورات سریال در میکرو میفرستادید همونطور ارسال کنید. مثلا اگر آردوینو استفاده میکنید از دستور Serialwrite(26) در واقع ۲۶ دسیمال همون ۰x1a هست.
با سلام
من میخوام پیامک ارسال شده به ماژول رو بخونم و شمارش رو بردارم و از طرف ماژول به همون شماره پیام بفرستم
حالا هر شماره دلخواه که مثلا به ماژول یک پیام مشخص شده رو بفرسته ماژول sim800L به طور اتوماتیک اونو تشخیص بده و یک پیام حاوی هر چیزی رو برای همون شماره از طریق ارسال کنه ، کد اینو چطور بنویسم آقای مهندس ؟
سلام، اینکارو براحتی میتونید انجام بدید. از دستور index استفاده کنید برای پیدا کردن یک متن یا عبارت از دل یک متن یا رشته مشخص.
همنطور که در بخش “خواندن پیامک…” این مطلب مشاهده میشه ماژول پاسخی رو به ما میده که با :CMGR+ شروع میشه. در این خط میتونید شماره فرستنده پیام را استخراج کنید با توابع مربوط به رشته در آردوینو (دستور زیر) مشخص کنید مثلا از قسمت n ام تا m ام رو توی یک متغیر دیگه ذخیره کنه. و دیگه روند ارسال پیامک به این شماره را با استفاده از کامند های مربوط طی کنید.
myString.substring(from, to)
اگر موردی بود حتما بفرمایید.
با درود بر شما و ممنون از پاسخگوییتون
دستوری که بهش اشاره کردید این هست یا اگر اشتباهه مرحمت میکنید بنویسید برام لطفا
data = data.substring(data.indexOf(“REC UNREAD”) + 1, data.indexOf(” “))
ببین مثلا ما این پاسخ رو گرفتیم از ماژول
+CMGR: “REC UNREAD”,”+989zzzzzzzzz”,””,”19/12/25,20:38:22+14″
حالا میایم با دستور substring میگیم از
myString.substring(19, to) و بجای to هم موقعیت بیت اخر شماره موبایل رو وارد کن و تست بزن ببین میخونه و درست نمایشش میده.
نتیجه رو بگو که با هم پیش بریم.
سلام ببخشید منظور از اینکه گفتید TXو RX ضربدری به هم متصل باشند رو متوجه نشدم و اینکه باید GND برد اردوینو رم هم متصل کنم چون من GND ماژول رو به GNDباتری متصل کردم
سلام،
منظور این بودش که Rx ماژول SIM800 به پایه Tx مبدل سریال یا آردوینو و پایه Tx ماژول SIM800 به پایه Rx مبدل سریال یا آردوینو متصل بشه.
بله GND ماژول SIM800، تغذیه یا باتری و آردوینو و اگر مبدل سریال هم داریم همه باید بهم متصل بشه.
سلام ممنون از توضیحات خوب و کامل شما
ببخشید من وقتی سریال مانیتور را باز میکنم تا دستورات AT را بررسی کنم بعد ارسال دستور پاسخی نمیگیرم ممنون میشم اگر راهنمایی کنید در ضمن من از یک باتری لیتیوم پلیمری برای تغذیه استفاده می کنم
سلام
در کامنت دیگریتون پاسخ داده شد.
سلام ممنون از توضیحات کامل و دقیق شما
من از ماژول SIM800 در یک پروژه ابیاری هوشمند استفاده میکنم اما متاسفانه هر چه دستورات AT ارسال می کنم پاسخ های مد نظر رو دریافت نمی کنم در ضمن از منبع تغذیه جدا استفاده میکنم ولی در سریال مانیتور بعد از ارسال مثلا AT پاسخی در یافت نمی کنم ممنون میشم اگر راهنمایی کنید
سلام، خواهش میکنم.
در خصوص موردی که فرمودید؛ ۱- حتما دقت بشه که Tx و Rx ها بصورت ضربدردی بهم متصل شده باشند. ۲- مورد مهم دیگه اینکه از اتصال GND تغذیه به GND مبدل سریال و GND ماژول GSM اطمینان حاصل کنید. ۳- از انتخاب صحیح شماره پورت COM در نرم افزار سریال هم مطمئن بشید. ۴- از سالم بودن کابل و مبدل هم نیز مطمئن بشید.
– برای نرم افزا سریال میتونید از لینک زیر استفاده کنید که خیلی کاربردی هست و دستورات AT ماژول رو داره:
https://blog.microele.com/microelecom-sj_atctool/
– برای اینکه مطمئن بشید مبدل سریال سالم هست در مطلب زیر بهش اشاره شده مطالعه بفرمایید.
https://blog.microele.com/sim800-gsm-module-tutorial-part13-error-cmee/
موفق باشید. سوال دیگه ای بود در خدمت هستم حتما بپرسید. اگر هم مشکل حل شد بفرمایید که از تجارب شما هم استفاده بشه توسط کاربران عزیز.
سلام ممنون از توضیحات خوبتون من متاسفانه در قسمت نوشتن پیام به مشکل بر میخورم و نمیتونم چیزی تایپ کنم ممنون میشم کمکم کنید
سلام، خوشحالیم از اینکه آموزش مطالب مفید بوده براتون.
لطفا مشکل یا اروری که دریافت میکنید رو کامل بفرمایید تا با هم دیگه حل اش کنیم.