آردوینو سیم کارت GSM - GPRS پروژه های آردوینو

پروژه کنترل رله پیامکی با Sim800L و مدیریت شماره های تلفن از راه دور

create-diy-sms-control-kit-with-arduino-and-sim800l-digispark
نوشته شده توسط معین صابری

هرجا که زندگی را نسبت به قبل ساده تر بیابیم، قطع به یقین ردپای الکترونیک را در آن جا خواهیم یافت. پیشرفت و نقش صنایع الکترونیک در زندگی بر هیچ کسی پوشیده نیست؛ به طوریکه امروزه بدون وجود دستگاه های الکترونیکی، عملا زندگی ممکن نخواهد بود. تلفن های همراه، رایانه ها، خودروها، سیستم های سرمایش/گرمایش و…. نمود عینی حضور الکترونیک در زندگی ما هستند. در کنار این، نقش ارتباطات بی سیم و مخابراتی، بیش از هر زمان دیگری در زندگی بشر کلیدی است. یکی از مهم ترین فناوری های تبادل بی سیم داده، تلفن های همراه هستند. همانطور که مستحضر هستید، به کمک این فناوری می توان اقدام به برقراری تماس صوتی، ارسال و دریافت پیامک و… نمود.

امروزه روز با پیشرفت فناوری های مخابراتی، سیستم ارسال و دریافت پیامک همچنان پرکاربرد و کلیدی است. به کمک این فناوری در کنار ارسال و دریافت پیام از دوستان، می توان به کنترل دستگاه های الکترونیکی اقدام نمود. یکی از مهم ترین این دستگاه ها، سیستم های اس ام اس کنترل هستند. به کمک این سیستم ها می توان از راه دور و بدون محدودیت فاصله، رله ها و در نتیجه وسایل برقی را کنترل نمود. در این آموزش قصد داریم تا به طراحی و پیاده سازی یک کنترل رله پیامکی، بپردازیم. در این سیستم با ارسال فرمان از طریق پیامک قادر به کنترل وضعیت رله خواهیم بود. همچنین با ارسال پیامک به دستگاه، می توان شماره های مجاز به کنترل رله را از راه دور را تعیین نمود. اجزای اصلی این پروژه را ماژول سیم کارت SIM800L و برد آردوینو UNO تشکیل می دهند. در ادامه به شرح این موارد و کاربرد هریک در پروژه خواهیم پرداخت. بنابراین در ساخت رله پیامکی با مرجع تخصصی ماژول سیم کارت به زبان فارسی، دیجی اسپارک همراه باشید.

 


قابلیت های کیت کنترل رله پیامکی


پیش از آنکه به نقش قطعات و پیاده سازی پروژه بپردازیم؛ این قسمت در مورد قابلیت های این کیت صحبت می کنیم. کیت کنترل رله پیامکی با قابلیت مدیریت شماره تماس ها از طریق پیامک، یک کیت فوق العاده کاربردی در پروژه های مختلف است. به کمک این کیت می توانید به سادگی، اقدام به کنترل وسایل برقی از راه دور و بدون نیاز به حضور فیزیکی نمایید. از آنجاییکه کنترل وضعیت وسایل برقی از طریق پیامک صورت می گیرد، لذا بدون محدودیت فاصله می توان وضعیت رله را کنترل نمود.

رله پیامکی با Sim800L و برد آردوینو - دیجی اسپارک

 

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

  • قابلیت ثبت دو شماره تماس در حافظه دستگاه
  • قابلیت اضافه و حذف شماره های تماس از طریق پیامک
  • حفظ شدن شماره های تماس در حافظه حتی پس از قطع برق دستگاه
  • قابلیت مدیریت وضعیت رله تنها از طریق شماره های ثبت شده در حافظه
  • قابلیت تعریف شماره های مجاز جهت فرمان به منظور افزایش امنیت دستگاه
  • پس از آشنایی با امکانات دستگاه، قسمت بعد را به معرفی قطعات و نقش هریک می پردازیم.

 


اجزای پروژه رله پیامکی و شرح


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

روش کار پروژه رله پیامکی با Sim800l و برد آردوینو - دیجی اسپارک

 

مطابق تصویر فوق، برد آردوینو UNO به عنوان پردازشگر مرکزی، وظیفه دریافت داده از ماژول SIM800L و ارسال فرمان به رله را دارد. ماژول SIM800L، یک ماژول مخابراتی سیم کارت است. با اتصال این ماژول به شبکه، می توان اقدام به ارسال و دریافت پیامک، برقراری تماس تلفنی و اتصال به اینترنت پرداخت.

ماژول سیم کارت Sim800L و رله پیامکی - دیجی اسپارک

 

در پروژه رله پیامکی به کمک این ماژول، ارتباط از راه دور را با کاربر فراهم می کنیم. در طرف دیگر، ماژول رله متصل به آردوینو، به سادگی و بدون نیاز به هیچ قطعه جانبی دیگر، فرمان را از آردوینو در ورودی گرفته و بر خروجی اعمال می کند.

ماژول رله تک کانال در رله پیامکی - دیجی اسپارک

 

در نهایت برد آردوینو به عنوان پردازشگر مرکزی، وظیفه ارتباط با ماژول SIM800L و دریافت ورودی از آن را دارد.  این برد که از پردازنده ATMEGA328P بهره می برد، می تواند برنامه های مختلف به زبان برنامه نویسی C++ را اجرا نماید. برد آردوینو UNO در حقیقت یک برد توسعه برای میکروکنترلر ATMEGA328P به شمار می آید. این برد راه اندازی و کاربا میکروکنترلر را بسیار آسان می نماید. در کنار این، پلتفرم آردوینو راه اندازی و کار با بردهای توسعه و میکروکنترلرها را بسیار تسهیل می نماید.

برد آردوینو در ساخت رله پیامکی با سیم کارت - دیجی اسپارک

 

در صورتیکه جهت راه اندازی و کار با هر کدام از قطعات گفته شده نیازمند راهنمایی هستید، می توانید آموزش های هر کدام را در لینک های زیر مطالعه کنید.

آموزش راه اندازی و کار با رله، کلیک کنید

سلسله آموزش های برد آردوینو، کلیک کنید

سلسله آموزش های ماژل سیم کارت SIM800L کلیک کنید

توجه: در این پروژه از ماژول کاهنده ولتاژ LM2596 جهت ایجاد ولتاژ مورد نیاز ماژول SIM800L استفاده کرده ایم. به کمک این ماژول ولتاژ ۱۲ ولت آداپتور را به ۴ ولت مورد نیاز SIM800L تنها با چرخاندن ولوم آبی رنگ روی ماژول ایجاد می کنیم.

کاهنده ولتاژ LM2596 در ساخت رله پیامکی - دیجی اسپارک

 

پس از آشنایی با قطعات و نقش هر یک در پروژه، نوبت به شماتیک و اتصالات پروژه رله پیامکی می رسد. قسمت بعد را به این مورد اختصاص می دهیم.

 


شماتیک و اتصالات پروژه رله پیامکی


پس از آشنایی با قطعات و وظیفه هر یک در مدار، نوبت به ارایه شماتیک و اتصالات می رسد. تصویر زیر نمایی کلی از اتصالات را نمایش می دهد.

شماتیک و اتصالات رله پیامکی با آردوینو Sim800L - دیجی اسپارک

 

در ادامه اتصالات را مطابق تصویر فوق در پیش می گیریم.

 


اتصالات ماژول SIM800L و تغذیه


  •  اتصال پایه TX ماژول SIM800L به پایه ۰(RX سخت افزاری) آردوینو
  • اتصال پایه TX سخت افزاری برد آردوینو(پایه شماره ۱) به کمک تقسیم مقاومتی(دو مقاومت یک کیلو) به پایه RX ماژول SIM800L

برای تغذیه سیستم ما از یک آداپتور ۱۲ ولت ۵ آمپر استفاده می کنیم. با اتصال این آداپتور به جک تغذیه آردوینو، برد تغذیه می شود. همچنین این ولتاژ ۱۲ ولت ۵ آمپر در پایه VIN آردوینو قرار می گیرد. در اینجا ما به کمک مبدل کاهنده ولتاژ LM2596 ولتاژ ۱۲ ولت را به ۴ ولت که ایده آل ماژول SIM800L است، تبدیل می کنیم. برای این مورد ورودی مثبت ماژول کاهنده به پایه VIN و ورودی منفی آن به پایه GND آردوینو متصل می شود. سپس خروجی این ماژول را به کمک مولتی ترن، بر روی ۴ ولت تنظیم می کنیم. در نهایت پایه خروجی مثبت ماژول کاهنده به پایه VCC ماژول SIM800L و پایه خروجی منفی ماژول کاهنده به پایه GND ماژول SIM800L متصل می گردد.

توجه: ابتدا خروجی ولتاژ ماژول LM2596 را روی ۴ ولت تنظیم کرده و سپس ماژول SIM800L را به این ماژول متصل کنید.

 


اتصالات ماژول رله


  •  اتصال پایه VCC ماژول به ۵ ولت آردوینو
  • اتصال پایه GND ماژول به پایه GND آردوینو
  • اتصال پایه OUT(یا IN) ماژول به پایه ۱۳ آردوینو

 


کدهای پروژه رله پیامکی


در این قسمت کدهای پروژه را مشاهده می کنید. این کدها را روی برد آپلود کنید. اما پیش از آپلود به نکات زیر توجه نمایید.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 


اجرای پروژه SMS کنترل رله


پس از آپلود کدهای پروژه رله پیامکی، نوبت به اجرای آن می رسد. در ابتدا کمی صبر کنید تا ماژول SIM800L به شبکه متصل شود. در ادامه پس از اتصال ماژول به شبکه، می توانید اجرا را آغاز نمایید. برای بار اول، از آنجاییکه شماره ای در حافظه دستگاه قرار ندارد،  کیت منتظر ارسال پیامک جهت اضافه نمودن شماره به دستگاه می ماند. برای ارسال شماره تماس، فرض کنید که قصد ارسال شماره ۰۹۱۲۱۲۳۴۵۶۷ را به دستگاه دارید. برای این منظور، ابتدا صفر اول شماره را حذف کرده و به جای آن عبارت ۹۸+ را قرار دهید. یعنی شماره به صورت +۹۸۹۱۲۱۲۳۴۵۶۷ تعیین کنید. سپس ابتدای شماره، یعنی پیش از + عبارت ! و در انتهای آن عبارت # را قرار دهید. به عبارت دیگر، شماره تماس به صورت   #۹۸۹۱۲۱۲۳۴۵۶۷+! به کیت پیامک کنید. پس از دریافت پیام توسط کیت، پیامکی به صورت تصویر به شماره تعیین شده ارسال خواهد شد.

دریافت پیامک در پروژه رله پیامکی کنترل وسایل برقی - دیجی اسپارک

 

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

شرح دستور
حذف اول در حافظه #D1!
حذف شماره دوم در حافظه #D2!
روشن کردن رله #ON!
خاموش کردن رله #OFF
درج شماره

توجه: اگر دو شماره در حافظه موجود باشد و بخواهید شماره دیگری اضافه کنید، شماره جدید به جای شماره دوم در حافظه ثبت می شود.

#……۹۸۹۱۲۱۲۳۴+!

 

با ارسال فرامین فوق، می توانید به مدیریت شماره ها و ارسال فرمان به رله جهت تعیین وضعیت آن بپردازید. توجه داشته باشید که کنترل وضعیت رله و مدیریت شماره ها تنها از طریق شماره های ثبت شده در حافظه امکان پذیر است.

توجه: در ابتدای اجرا از آنجاییکه شماره ای در حافظه نیست، می توانید از هر شماره تماسی به دستگاه پیام بفرستید. همچنین حین اجرا اگر هر دو شماره را حذف کنید، می توانید با هر شماره دیگری به دستگاه تنظیمات را اعمال کرده و یا رله را کنترل کنید.

نهایی سازی پروژه کنترل رله پیامکی آردوینو - دیجی اسپارک

 


تحلیل کدهای پروژه رله پیامکی


پس از اجرای پروژه، نوبت به تحلیل و بررسی کدهای آن می رسد. از آنجاییکه درون کدهای پروژه به صورت خط به خط کامنت(توضیح) درج شده، لذا در این جا به طور خلاصه توابع کلیدی را در جدول زیر مورد بررسی قرار می دهیم.

شرح تابع
بررسی پیامک دریافتی و اجرای درخواست کاربر check_sms
ارسال پیامک آغاز به کار موفق دستگاه send_sms
کنترل اتصال دستگاه به شبکه check_connect()
ذخیره شماره save_number
خوانده شماره از حافظه دستگاه برای توابع دیگر read_number
حذف شماره delete_number();

 


لوازم مورد نیاز


 


جمع بندی


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

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۸۱ دیدگاه

  • سلام مهندس و با تشکر از شما .
    در خصوص این پروژه ، چنانچه ما بخواهیم از برد Wemos D1 و یا از NodMcu بجای برد آردینو UNO استفاده کنیم . با توجه به سطوح ولتاژ متفاوت این دو نوع برد که NodMcu برابر با ۳/۳ ولت و آردینو یونو ۵ ولت میباشد . آیا مقاومتهای قرار گرفته برای مآژول سیم کارت نیاز میباشد ؟ یا خیر ؟ و دیگه اینکه ولتاژ ماژول سیم کارت ولتاژ ۴/۲ ولت میباشد . جهت اتصال به ورودی RX برد NodMcu مقاومت نیاز دارد یا خیر ؟

  • برای روشن و خاموش کردن کولر باید چند تا رله باید گذاشت
    چون کولر سه بخش داره(پمپ،موتور،تند)
    آیا باید ۳ تا رله گذاشت یا ۱ رله

    • سلام
      بله، به سه رله نیاز خواهید داشت. البته باید از رله های مخصوص(رله کولری) استفاده کنید.

  • سلام و عرض ادب
    سپاس از سایت خوبتون
    من برنامه را طبق آموزشهتی خودتون نوشتم. فقط دفعه اول کد ارسالی توسط پیامک را می خونه و رله را روشن می کنه. دفعات بعد هرچه پیامک میزنم برای خاموش کردن هیچ اتفاقی نمیفته.
    خودم فکر می کنم به دلایلی پیامک قبلی از حافظه پاک نمیشه. بعد از دستورات روشن کردن رله از دستورات زیر استفاده کردم :
    AT+CMGD=1,4
    Serial.readString()
    قاعدتا باید پیامکهای حافظه و سریال پاک بشوند.
    به منظور عیب یابی، پیامک خاموش کردن رله که میفرستم خروجی دستور CMGR=1 را تو سریال که میارم تا ببینم چه اتفاقی داره میفته ، هنوز پیامک قبلی را نشون میده !!! ظاهرا پیامک قبلی پاک نشده ؟
    چیکار میتونم بکنم ؟ چه مشکلی داره ؟!
    جالب اینجاست که اگر اول پیامک خاموش کردن را بفرستم دیگه هرچی پیامک روشن کردن را میفرستم هیچ اتفاقی نمیفته.

      • بله با تعیین شماره کار میکنه. حتی پیامک هم برام ارسال میکنه در حالیکه رله فعال نشده. فقط بار اول رله فعال میشه و بعدش دیگه کار نمیکنه ولی پیامک را در هر صورت برام میفرسته !!

        • اجازه دهید یکبار روال کار را با هم چک کنیم
          شما برای دستگاه شماره مجاز را ارسال می کنید.
          پس از ارسال شماره مجاز، همواره با همان شماره رله را فعال و غیر فعال می کنید.
          آیا این رویه درست است؟

          • ببخشید الان متوجه منظورتون شدم. منظور من از تعریف کردن شماره اینه که شماره ای داخل برنامه تعریف کردم تا پس از فعال یا غیر فعال کردن رله، پیامکی از سمت ماژول ارسال بشه مبنی بر اجرای دستور.
            حال مشکل اینه که رله فقط یک بار فعال میشه و دیگر هیچ فرمانی از پیامک نمی گیره ولی ماژول در هر صورت پیامک فعال یا غیر فعال کردن رله را ارسال میکند.

            • سلام
              ببخشید که دیر پاسخ میدهم
              در قدم اول لطفا با یک مولتی متر، وضعیت تغییر ولتاژ پایه متصل به رله را کنترل کنید. منطور پایه آردوینو که به رله متصل شده است. در قدم بعدی، دقت داشته باشید که ماژول هیچ گاه پیامک فعال و یا غیر فعال سازی رله ارسال نمی کند. منظور شما از این بابت چیست؟

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

            • لطفا صفحه سریال مانیتور را حین اجرا باز کنید، زمانیکه که پیامک ارسال می کنید، آیا دستور AT+CMGD=1,4 هم اجرا می شود؟

  • وقتی که میزنم کد آپلود بشه خطا serial port not selected
    را میده و وقتی که میرم پورت را انتخاب کنم
    هیچ پورتی نمیاره

    • این به معنی عدم نصب شدن درایور آردوینو است. لطفا درایور آردوینو را نصب کنیدو سپس مورد را امتحان کنید.

      • سریال مانیتور فقط خطوطی که در برنامه گفته شده پرینت کن رو نشون میده اما از جانب مازول پیام ok ارسال نمیشه حتی وقتی at رو میفرستم ، هیچ پاسخی از مازول ارسال نمیشه ، نمیدونم مشکل کجاست ؟ چه کار باید بکنم ، انگار ارتباط سریالی بین مازول و اردوینو برقرار نمیشه ، روی اردو هم ال ای دی مربوط به tx/rxخاموش هست
        فقط یه نکته به محض وصل کردن کابل usbبه لپتاب به مدت چند ثانیه رله چند بار باز و بسته میشه و لامپ رو روشن خاموش میکنه

    • سلام
      بله، البته باید کمی کد برنامه را تغییر دهید. اما از آنجاییکه کد به صورت ساخت یافته(تابع محور) تعریف شده می توان به سادگی این کار را انجام داد.

  • سلام وقت بخیر مهندس بنده این پروژه رو اپلود کردم روی اردوینو ولی هرچی شماره رو ارسال میکنم با همون دستوراتی ک نوشته بودید ک اول ! بعد شماره با +۹۸ و در اخر # رو بزنیم و ارسال میکنم اما هیچ پیامی از ماژول دریافت نمیکنم دلیل این موضوع چیه . ایا برای فعال کردن پایه های tx و rx باید کتابخانه ای دانلود کنم یا کدی نوشته بشه . منظورم پایه های ۰ و ۱ اردوینو هست چون من قبلا برای پروژ های مشابه ک کدشون هم بود داخل سایت ها بوده بیشتر از پایه ۱۰ و ۱۱ ب عنوان سریال استفاده میکردم و جواب میداده اما پروژه شما ۰ و ۱ هست ولی بنظر کار نمیکنه

    • سلام
      این پروژه تست و سپس منتشر شده است. لطفا وضعیت چشمک زن ماژول را کنترل کنید، همچنین شارژ بودن سیم کارت را بررسی نمایید.

  • سلام وقت بخیر بنده این پروژه را اپلود کرده ام اما هیچ پیامی از جانب ماژول دریافت نمیکنم تمامی مراحل نیز مانند دستوراتی ک نوشته اید انجام میدهم یعنی ! بعد +۹۸ و بعد شماره و در اخر# و ارسال میکنم اما هیچ دستوری دریافت نمیکنم . ایا میشود درون کد پایه rx و tx که ۰ و ۱ اردوینو هستن تغییر داد به پایه دیگری مانند ۱۰ و ۱۱ ؟
    ایا برای فعال سازی پایه های ۰ و ۱ اردوینو باید کتابخانه ای دانلود کرد؟

    • سلام
      از پایه های صفر و یک برای ارتباط سخت افزاری استفاده کردیم. این پایه ها سرعت و دقت بیشتری دارند. وضعیت چشمک زن ماژول شما به چه صورت است؟

      • مهندس کد رو داخل اردوینو مگا اپلود کردم و بدون این که ماژول sim800 رو وصل کنم زمانی ک کامل اپلود شد . چراغ tx که کنار چراغ ال ای دی پایه ۱۳ هست شروع ب چشمک زدن میکنه و وقتی ماژول sim800 رو روشن میکنم و پایه های rx و tx ماژول sim800 رو به ۰ و ۱ اردوینو وصل میکنم زمانی ک ماژول sim800 کامل وصل میشه چراغ tx اردوینو هم خاموش میشه و صفحه سریال مانیتور را حین اجرا باز میکنم دستورات زیر اجراء میشوند

        WAITING TO CONNECT TO NETWORK
        AT+CCALR?
        CONNECTED TO NETWORK
        AT+CMGF=1
        AT+CMGD=1,4
        AT+CSMP=17,167,0,0
        AT+CMGS=”⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮”
        READY TO RECEIVE SETTING!

        و وقتی شماره #۹۸۹۱۸۰۰۰۰۰+! رو میفرستم داخل صفحه سریال مانیتور بعد از کد های بالا کد زیر میاد

        AT+CMGF=1
        AT+CMGD=1,4

        هر پیامی بهش ارسال بشه این کد تکرار میشه
        مهندس مشکل از کجاست واتساپ دارید فیلمش رو ارسال کنم؟
        داخل کد بالا نیاز نیست تغییرات یا چیزی نوشت؟

        • سلام
          لطفا فیلم تهییه کنید و در یکی از سرویس های اشتراک گذاری فایل آن را آپلود کرده و لینک فیلم را در کامنت بعدی قرار دهید.

          • برای این برنامه نیاز نیست کتابخانه ای دانلود کنم؟ ایا اون علامت سوال ها برای این نیست که کتابخانه ای دانلود نشده ؟

          • اگه این پروژه تست شده چرا هر کسی کامنت گذاشته یه مشکلی داشته؟ چرا فیلمی از پروژه نذاشتید؟

  • سلام و عرض ادب و خسته نباشید
    من تمام مراحل رو رفتم
    قبل از اپلود RX و کشیدم و بعد از اپلود وصل کردم
    اپلود هم بدون مشکل بود
    اما وقتی پیامکی میدم هیچ پیامکی نمیاد
    حتی وقتی زنگ میزنم میگه در دسترس نمیباشد
    چراغ های on و tx ثابت روشنه اما چراغ rx چشمک میزنه
    مشکلش کجاست؟؟

      • مهندس اون مشکل برطرف شد
        مشکل از تغذیه ماژول بود که درستش کردم
        الان ماژول به شبکه وصله اما هر پیامکی میفرستم هیچ واکنشی نمیده و حتی پیامک اضافه کردن شماره که میفرستم هیچ پیامکی در جواب نمیفرسته
        (وضعیت چشمک زن ماژول هم هر ۳ ثانیه یکبار روشن میشه)

  • سلام و سپاس از سایت بسیار خوبتون
    برنامه مربوط به پروژ] فعال سازی رله با پیامک را دقیقا رو آردینو یونو آپلود کردم اتصالات هم صحیح است و ماژول sim800l هم کانکت میشود و چراغش هر حدود ۳ ثانیه چشمک میزند و مشکلی ندارد، اما برنمه درست عمل نمیکند و در سریال مانیتر هم اطلاعات زیر را میدهد:
    WAITING TO CONNECT TO NETWORK
    AT+CCALR?
    AT+CCALR?
    CONNECTED TO NETWORK
    AT+CMGF=1
    AT+CMGD=1,4
    AT+CSMP=17,167,0,0

    READY TO RECEIVE SETTING!
    AT+CMGR=1
    AT+CMGD=1,4
    با ارسال هر پیامک به سیمکارت در ماژول در سریال مانیتور AT+CMGR=1
    AT+CMGD=1,4 می آید
    لازم به ذکر است روی همین مدار برنامه ای دیگر برای فعالسازی با پیامک را تست کردم مشکلی نبود و مدار به درستی کار میکرد اما با این برنامه مشکل دارد و عمل نمیکند.
    ممنون میشوم راهنمایی بفرمایید مشکل از کجاست؟

    • به نظر می رسد پیامک به درستی به ماژول نرسیده است. بعضی از تلفن های همراه کاراکترهای ! و # را پس و پیش میفرستند. این مورد را حتما چک کنید. می توانید از یک تلفن دیگر برای ارسال پیامک استفاده کنید. شارژ سیم کارت درون دستگاه را هم چک کنید.

  • سلام خسته نباشید
    اینکه تغذیه ماژول سیم ۸۰۰ مستقیم از آردوینو گرفته شده مشکلی ایجاد نمیکند ؟
    چون خرجی برد آردوینو جریان کمی دارد و ماژول سیم ۸۰۰ ۲ آمپر نیاز دارد

    • سلام و متشکرم از شما
      خیر، در این پروژه از پایه VIN خروجی به رگولاتور داده شده است. پایه VIN دقیقا همان جریان آداپتور را بر روی خود دارد.

  • درود بر شما عزیزان دیجی اسپارک

    مهندس من یه کدی رو برای کنترل چند رله با پیامک استفاده کردم و همه چی به درستی کار میکنه ولی بعد از ارسال پیامک و روشن شده رله مذکور ، پیامکی از طرف ماژول دریافت نمیکنم که بفهمم این رله در حال حاضر روشن شده یا نه ، امکانش هست دستوری که این امکان رو فراهم میکنه رو عنایت بفرمایید که به کدی که دارم اظافه کنم؟؟ اگر هزینه ای هم باید بپردازم بفرمایید که اطاعت امر کرده باشیم . کد را در کامنت بعدی ارسال میکنم . سپاس از شما عالمان زمانه

  • درودی دوباره بر شما عزیزان علم و تکنولوژی ، سال نو مبارک . مهندس به این کد کنترل رله چه دستوری باید اظافه بشه که شخصی سازی بشه که فقط از موبایل من دستور ها رو انجام بده ؟؟ سپاس از شما

    • سلام مجدد و عذرخواهی بابت تاخیر در پاسخگویی
      با دستور AT+CMGR می توانید علاوه بر متن، شماره تماس فرستنده را نیز دریافت کنید.

  • سلام
    بنده این پروژه رو طبق مطالب گفته شده اجرا کردم اما با ارسال پیامک هیچ پاسخی دریافت نمیکنم
    با توجه به چراغ ماژول سیمکارت ، سیمکارت به درستی به شبکه متصل شده و سیمکارت شارژ هم داره
    ماژول رله هم به درستی تغذیه شده و روشن شده
    تقسیم مقاومتی هم به درستی انجام شده
    برنامه هم به درستی آپلود میشه
    بعد از آپلود برنامه و تغذیه کردن مدار با آداپتور تنها چراغ on هستش که روشن میمونه و چراغ های RX, TX هردو خاموش هستند
    اگر ممکن هست راهنمایی کنید

    • سلام
      در ارسال فرمت پیامک، دو عبارت ! و # قرار دارد. گاهی در بعضی از تلفن های همراه، این عبارت جا به جا می شود. لطفا با یک تلفن دیگر پیامک را ارسال کنید. پس از این تیجه را لطفا در کامنت بعدی اعلام نمایید.

  • با سلام و خدا قوت … چگونه به کد ها دسترسی پیدا کنم … اشتراک هم خریداری شده است؟؟؟

  • سلام و خسته نباشید
    من ماژول sim800l رو با ماژول تغذیهLM2596 راه اندازی میکنم ، روی ولتاژ ۴.۱ تنظیم کردم و از انتن مارپیچ خودش استفاده میکنم ، ماژول بعد از ۲۰ ثانیه حدودا به شبکه وصل میشه یعنی به نظر که اینطور میریه چون LED روی ماژول هر ۳ ثانیه چشمک میزنه ، بهش زنگ میزنم بوق ازاد میشه و ماژول اصلا چشمکش قطع نمیشه ،قبلا اس ام اس بهش دلیور میشد ولی الان نمیشه ، هیچ عکس العملی هم از بابت ارسال و دریافت پیامک انجام نمیشه ، یه مورد مشکوک هم که هست قسمت انتن ufl، وسط و دیواره ها که مثبت و منفی انتن هستن تو مولتی متر تست بوق وصل نشون میده

    • با سلام
      نسبت به پاک کردن حافظه داخلی ماژول اقدام کنید. به کمک دستور AT+CMGD=1,4 اقدام به پاک کردن کل حافظه کنید. سپس نتیجه را در ادامه همین پیام ارسال کنید.

  • سلام و خسته نباشید من ماژول sim800l رو با ماژول تغذیهLM2596 راه اندازی میکنم ، روی ولتاژ ۴.۱ تنظیم کردم و از انتن مارپیچ خودش استفاده میکنم ، ماژول بعد از ۲۰ ثانیه حدودا به شبکه وصل میشه یعنی به نظر که اینطور میریه چون LED روی ماژول هر ۳ ثانیه چشمک میزنه ، بهش زنگ میزنم بوق ازاد میشه و ماژول اصلا چشمکش قطع نمیشه ،قبلا اس ام اس بهش دلیور میشد ولی الان نمیشه ، هیچ عکس العملی هم از بابت ارسال و دریافت پیامک انجام نمیشه ، یه مورد مشکوک هم که هست قسمت انتن ufl، وسط و دیواره ها که مثبت و منفی انتن هستن تو مولتی متر تست بوق وصل نشون میده

  • سلام وقت بخیر
    مهندس چرا وقتی برنامه رو کامپایل میکنم از چند خطش ایراد میگیره
    Cmgs=cmgs+\r\n;
    از اسلش و r
    لطفا راهنماییم کنید

  • سلام بنده چند روز هست در مورد یکی از کدهای برنامه سوال پرسیدم ولی هنوز جوابی دریافت نکردم علت چی هست؟

      • سلام مهندس ممنون از پاسخگوییتون
        مشکل همین بود که فرمودین، اما بعد از بستن مدار و اپلود برنامه طبق راهنمایی در اشتراک وقتی سریال مانیتور اردوینو رو باز میکنم فقط این پیام میاد
        AT+CCALR?
        در خط پایین هم چند مربع که بعد از اون حرف Aدوباره چند مربع حرف gدوباره چند مربع
        نمیدونم چرا جواب نمیده بادریت سریال مانیتور ۹۶۰۰هست ، بادریت برنامه ۱۱۵۲۰۰، اگه ایراد از فرمت هست نمیدونم کجا درستش کنم؟
        چراغ مازول هر سه ثانیه یه چشمک میزنه بهش زنگ میزنم بوق ازاد میده ، هیچ پیامکی ارسال نمیشه ، ولتاژ ها هم چک میکنم ۴/۲ولت به مازول میرسه ، وقتی بعد از اپلود ار ایکس رو وصل میکنم دیگه روی اردوینو چراغ ارایکس و تی ایکس چشمک زن نمیشه،فقط همون لحظه اول که اپلود انجام میشه رله عمل میکنه و دو سه بار لامپ رو روشن خاموش میکنه/تقسیم ولتاژ ها و خازن هم گذاشته شده ، gnd مازول و اردوینو و کاهنده ولتاژ هم به هم متصل هستن/از اداپتور ۱۲ولت۳امپر استفاده کردم ، ممنون میشم راهنماییم کنید

  • سلام مجدد این مشکل هم تونستم حل کنم ، باد ریت سریال مانیتور و بادریت برنامه رو باید یکی بدیم تا سریال مانیتور شروع کنه و پیام ها رو بنویسه ، اما مشکل جدید این هست که فقط تا اینجا جلو میاد

    AT+CCALR?
    AT+CCALR?
    CONNECTED TO NETWORK
    AT+CMGF=1
    AT+CMGD=1,4
    AT+CSMP=17,167,0,0

    READY TO RECEIVE SETTING!
    AT+CMGR=1
    AT+CMGD=1,4
    با ارسال هر پیامک به سیمکارت در ماژول در سریال مانیتور AT+CMGR=1
    AT+CMGD=1,4 می آید
    لازم به ذکر است شماره هم وارد میکنم اتفاقی نمیفته ، فرمت شماره هم همونطور که گفتید میزنم ، یه بار هم جای!و # رو جابجا کردم ولی جوابی نگرفتم ، مازول هر سه ثانیه چشمک میزنه ، اتصالت هم در پیام قبل گفتم

    • با سلام براساس پیام‌هایی که ارسال کرده‌اید، مشکلات ممکن درخصوص درخواست و حذف پیامک‌ها به نظر می‌رسد. در ادامه چند نکته را بررسی می‌کنیم.
      ۱- درخواست اطلاعات پیامک (AT+CMGR=1):
      با دستور AT+CMGR=1 اطلاعات پیامک اول (با این که در پیام‌ها ذکر نشده که چه اطلاعاتی دریافت می‌کنید) درخواست شده است. در صورت درخواست اطلاعات پیامک اول ولی اطلاعات دریافت نمی‌شود، ممکن است مشکلی در دریافت پیامک‌ها باشد.
      ۲- حذف پیامک (AT+CMGD=1,4):
      دستور AT+CMGD=1,4 برای حذف پیامک با شماره ۱ تا ۴ فراخوانی شده است. اگر در پاسخ به این دستورات پیام می‌آید ولی پیام حذف نمی‌شود، ممکن است مشکلی در حذف پیامک‌ها وجود داشته باشد.
      ۳- فرمت شماره تلفن:
      اطمینان حاصل کنید که شماره تلفن با فرمت صحیح و با توجه به نحوه قابلیت پشتیبانی از شماره‌ها در ماژول وارد شده باشد.
      ۴- تنظیمات ارسال پیامک (AT+CSMP=17,167,0,0):
      دستور AT+CSMP=17,167,0,0 برای تنظیمات پیامک (مانند حالت UTF-8 و تنظیمات دیگر) فراخوانی شده است.

      با توجه به این دستورات، به نظر می‌رسد مشکل اصلی در دریافت و حذف پیامک‌ها باشد.

      • سریال مانیتور فقط خطوطی که در برنامه گفته شده پرینت کن رو نشون میده اما از جانب مازول پیام ok ارسال نمیشه حتی وقتی at رو میفرستم ، هیچ پاسخی از مازول ارسال نمیشه ، نمیدونم مشکل کجاست ؟

      • سریال مانیتور فقط خطوطی که در برنامه گفته شده پرینت کن رو نشون میده اما از جانب مازول پیام ok ارسال نمیشه حتی وقتی at رو میفرستم ، هیچ پاسخی از مازول ارسال نمیشه ، نمیدونم مشکل کجاست ؟ چه کار باید بکنم ، انگار ارتباط سریالی بین مازول و اردوینو برقرار نمیشه ، روی اردو هم ال ای دی مربوط به tx/rxخاموش هست
        فقط یه نکته به محض وصل کردن کابل usbبه لپتاب به مدت چند ثانیه رله چند بار باز و بسته میشه و لامپ رو روشن خاموش میکنه

          • سلام وقت بخیر
            یه مشکل جدید برام پیش اومده ، مدار من با تغییرات روی کد ها بطور کامل جواب میده و برام اس ام اس میاد و رله خاموش روشن میشه . ولی وقتی برق رو قطع میکنم و مجدد وصل میکنم دیگه مدار جواب نمیده حتما باید کابل usb رو بین سیستم و اردوینو وصل کنم و برنامه رو هم باز کنم تا مجدد ارتباط برقرار بشه و جواب بده
            علتش چی هست ؟؟؟من نمیخوام پروژه وابسته به سیستم باشه. ممنون میشم بگید چیکار کنم
            منبع تغذیه اداپتور ۱۲ ولت با ۳امپر جریان هست که به vin اردو وصل شده و از کاهنده استفاده کردم به ۴/۲ولت کاهش دادم ، گراندها به هم وصل هست ، خازن ۱۰۰۰میکرو سر راه تغذیه مازول هست ، برا rxهم از تقسیم ولتاژ استفاده کردم ،

              • سلام زمین اردوینو و ماژول کاهنده و sim800l و رله همه به یک ردیف در برد بورد بهم وصل هستن ولی مشکل پابرجاست مدار در ابتدا جواب میده قطع و وصل میکنم دیگه به اس ام اس جواب نمیده تا دوباره کابل راusb رو وصل میکنم و صفحه اردو رو باز میکنم مجدد جواب میده!!!

                  • سلاممشکل از چی میتونه باشه ممکن هست کد نویسی ایرادی داشته باشه؟
                    با اینکه منبع تغذیه ۵ امپر هست ممکن هست ایراد از منبع تغذیه باشه و نتونه جریان کافی در لحظه اول به مازول بده (البته مازول به محض روشن شدن سریع در شبکه قرار میگیره و سه ثانیه یکبار چشمک میزنه و در تماس هم بوق ازاد میده)

                    • سلام مجدد/ ببخشید مزاحم میشم / من برنامه ای که نوشتم رو میذارم اگه ممکن هست چک کنید ایا برنامه ایرادی داره که مشکل من حل نمیشه
                      #include
                      SoftwareSerial mySerial(2, 3);
                      #define relay1_pin 13
                      String sim_in,number,answer;

                      void setup()
                      {
                      sim_in=””;
                      pinMode(relay1_pin,OUTPUT);
                      Serial.begin(9600);
                      mySerial.begin(9600);
                      Serial.println(“Initializing…”);
                      delay(1000);
                      mySerial.println(“AT\r”);
                      updateSerial();
                      mySerial.println(“AT+CREG?\r\n”);
                      updateSerial();
                      mySerial.println(“AT+CMGR=1\r\n”);
                      updateSerial();
                      mySerial.println(“AT+CMGD=1,4\r\n”);
                      updateSerial();
                      mySerial.println(“AT+CMGF=1\r\n”);
                      updateSerial();
                      mySerial.println(“AT+CNMI=2,2,0,0,0\r\n”);
                      updateSerial();
                      mySerial.println(“AT+CSMP=17,167,0,0\r\n”);
                      updateSerial();
                      mySerial.println(“AT+CMGS=\”+98xxxxxxxxxx\””); // enter your phone number here (prefix country code)
                      updateSerial();
                      mySerial.print(“Hello from sim800l”); // enter your message here
                      updateSerial();
                      mySerial.write(26);
                      }

                      void loop()
                      {
                      updateSerial();
                      sim_in=mySerial.readString();
                      sim_in.toLowerCase();
                      answer=”please try again”;
                      if(sim_in.indexOf(“relay 1 on”)>=0){
                      digitalWrite(relay1_pin,HIGH); answer=”relay 1 turned on”; Serial.println(answer);}
                      if(sim_in.indexOf(“relay 1 off”)>=0){
                      digitalWrite(relay1_pin,LOW); answer=”relay 1 turned off”;
                      Serial.println(answer);}
                      if(sim_in.indexOf(“relay status”)>=0){
                      Serial.println(“status requested”);

                      answer=”relay 1:”;
                      if(digitalRead(relay1_pin)==0){answer+=”off\n”;}
                      else{answer+=”on\n”;}
                      }
                      if(sim_in.indexOf(“+98”)>=0){
                      int b=sim_in.indexOf(“+98″);
                      number=””;
                      for(int a=b;a”)==-1){
                      mySerial.println(“AT+CMGS=\””+number+”\””);
                      delay(500);
                      sim_in=mySerial.readString();
                      }
                      mySerial.print(answer);
                      mySerial.write(0x1A);
                      delay(5000);
                      Serial.println(“sms sent”);
                      }
                      درکامنت های قبل و بعد در مورد مدار کامل توضیح دادم /پروژه کامل جواب میده فقط مشکلش این هست که وقتی برق ماژول قطع و مجدد وصل میشه و ماژول دوباره در شبکه قرار میگیره دیگه به پیامک جواب نمیده وقتی دوباره به کابل
                      !!!یو اس بی لپتاب وصلش میکنم ارتباط سریال مجدد برقرار و به پیامک بعدی جواب میده
                      شاید کد نویسی ایرادی داره که این ارتباط سریال رو نمیتونه برقرار کنه ممکن هست؟

          • سلام وقت بخیر
            یه مشکل جدید برام پیش اومده ، مدار من با تغییرات روی کد ها بطور کامل جواب میده و برام اس ام اس میاد و رله خاموش روشن میشه . ولی وقتی برق رو قطع میکنم و مجدد وصل میکنم دیگه مدار جواب نمیده حتما باید کابل usb رو بین سیستم و اردوینو وصل کنم و برنامه رو هم باز کنم تا مجدد ارتباط برقرار بشه و جواب بده
            علتش چی هست ؟؟؟من نمیخوام پروژه وابسته به سیستم باشه. ممنون میشم بگید چیکار کنم
            منبع تغذیه اداپتور ۱۲ ولت با ۳امپر جریان هست که به vin اردو وصل شده و از کاهنده استفاده کردم به ۴/۲ولت کاهش دادم ، گراندها به هم وصل هست ، خازن ۱۰۰۰میکرو سر راه تغذیه مازول هست ، برا rxهم از تقسیم ولتاژ استفاده کردم ، برا ارتباط سریال هم از پایه های ۲و ۳استفاده کردم ، ظاهرا برنامه ایرادی نداره چون کامل جواب میده (یه تست هم زدم و اول برنامه نوشتم رله روشن باشه، بعد از خاموش روشن کردن اداپتور ، رله روشن میشه یعنی برنامه مونده تو حافظه ولی انگار ارتباط سریال برقرار نمیشه )