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

پروژه SMS کنترل با قابلیت تنظیم زمان و تاریخ فعال سازی از طریق پیامک

device-sms-control-with-sim800l-and-arduino-with-timer-and-date-digispark
نوشته شده توسط معین صابری

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

 


ماژول سیم کارت SIM800L


ماژول SIM800L، یک ماژول مخابراتی با قابلیت اتصال به شبکه تلفن همراه است. این ماژول که دقیقا مثل یک تلفن همراه عمل کرده و به سادگی از طریق رابط سریال UART کنترل می شود. این ماژول دارای یکسری از دستورات استاندارد و از پیش تعیین شده به نام AT-Command ها بوده که کلیه قابلیت های ماژول، از طریق ارسال فرامین AT، کنترل و اجرا می شوند. این فرامین بسیار ساده بوده و شما می توانید به سادگی به ارسال و دریافت پیامک، اینترنت و تماس تلفنی بپردازید. توسط این ماژول امکان کنترل وسایل برقی فراهم است. در این پروژه به کمک قابلیت ارسال و دریافت پیامک، پروژه را اجرا کرده و از راه دور زمان فعال سازی رله تعیین می گردد.

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

 

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

توجه: در این پروژه تنها از سیم کارت همراه اول می توان استفاده نمود. سیم کارت هم باید پیش شماره ۰۹۹۴ نباشد. تا پیش شماره ۰۹۹۳ قابل استفاده است.

 


ماژول کاهنده ولتاژ LM2596


ماژول کاهنده ولتاژ LM2596، یکی از کاربردی ترین ماژول ها در جهت تغذیه مورد نیاز قطعات و ماژول های مختلف است. به کمک این ماژول می توانید ولتاژ مورد نظر خود را در خروجی تنظیم کنید. خروجی توان این ماژول ۳ آمپر بوده و کاملا مناسب تغذیه ماژول SIM800L است. با توجه به اینکه ماژول SIM800L دارای بازه تغذیه ۳٫۴ الی ۴٫۴ بوده و در لحظه اول راه اندازی نیاز به جریان دو آمپر دارد، ماژول کاهنده ولتاژ LM2596 برای تغذیه ماژول SIM800L، بسیار کاربردی خواهد بود. در این پروژه تغذیه کل سیستم از طریق آداپتور متصل به جک آردوینو تامین می شود. سپس با اتصال ورودی کاهنده به پایه VIN آردوینو، ولتاژ ۱۲ ولت آداپتور با تنظیم مولتی ترن روی ماژول، بر روی ۴ ولت، ولتاژ مناسب برای تغذیه SIM800L فراهم می گردد.

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

 

توجه: پیش از اتصال خروجی ماژول کاهنده به ماژول SIM800L، حتما ابتدا ولتاژ خروجی را تنظیم کرده و بعد اتصال را برقرار سازید.

 


ماژول رله Relay


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

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

 

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

 


برد آردویینو UNO


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

برد آردوینو UNO برای هوشمند سازی خانه - دیجی اسپارک

 

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

 


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


پس از بررسی اجزا و قطعات پروژه، نوبت به شماتیک و اتصالات آن می رسد. تصویر زیر سیم کشی های مدار را نمایش می دهد. در این پروژه برای تغذیه کل سیستم، از یک آداپتور ۱۲ ولت ۵ آمپر استفاده شده است. این آداپتور به جک ورودی متصل شده است.

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

 

در ادامه، اتصالات مدار فوق را در پیش می گیریم. توجه داشته باشید که در این پروژه ما از یک آداپتور ۱۲V با قابلیت جریان دهی ۵ آمپر جهت تغذیه کل مدار استفاده می کنیم. این آداپتور به جک آردوینو متصل شده و تغذیه کل مدار فراهم خواهد شد. به همین ترتیب، اتصالات ماژول کاهنده ولتاژ lm2596 به شکل زیر خواهد بود.

  • اتصال پایه مثبت ورودی LM2596 به پایه VIN آردوینو
  • اتصال پایه منفی ورودی LM2596 به پایه GND آردوینو

 پس از برقراری اتصالات ورودی، نوبت به اتصالات خروجی ماژول می رسد. پیش از اتصال، به کمک مولتی ترن آبی رنگ(ولوم) روی ماژول، ولتاژ خروجی را بر روی ۴ تنظیم کنید. پس از تنظیم ولتاژ، به شکل زیر عمل کنید.

  • اتصال پایه مثبت خروجی lm2596 به پایه VCC ماژول SIM800L
  • اتصال پایه منفی خروجی LM2596 به پایه GND ماژول SIM800L

در ادامه اتصالات بین ماژول SIM800L و آردوینو UNO را به شکل زیر اجرا کنید.

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

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

  • اتصال پایه GND ماژول رله به GND آردوینو
  • اتصال پایه VIN ماژول رله به پایه ۵V آردوینو
  • اتصال پایه SIGNAL و یا IN ماژول رله به پایه GPIO4 برد آردوینو

 


کدهای پروژه


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

۱-پیش از آپلود کدها، کابل متصل به پایه RX برد آردوینو برداشته شده و پس از آپلود متصل شود.

۲-هنگام آپلود کدها، تغذیه برد آردوینو از جک آداپتور جدا شود. در این حالت آردوینو با کابل راه اندازی شده و تغذیه شود. پس از آپلود کدها، کابل USB را جدا کرده و تغذیه را به جک متصل کنید.

 

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

 

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

 


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


در این پروژه شما می توانید با تعیین تاریخ و ساعت، زمان فعال شدن رله را از راه دور و به کمک پیامک تعیین کنید. برای این مورد، باید پیامک را به فرمت زیر ارسال کنید:

!year/month/day,hour:minute:second#

 

 مطابق فرمت فوق، داده ها با ! شروع و به # ختم می شوند. همچنین داده های مربوط به تاریخ از داده های مربوط به ساعت با یک ویرگول از هم جدا می شوند. در فرمت فوق، بخش مربوط به تاریخ را به صورت میلادی و بخش مربوط به زمان را به صورت ساعت با فرمت ۲۴ ساعته به وقت تهران است. در فرمت فوق، به نکات زیر توجه فرمایید:

۱-کلیه فیلدها نظیر روز، ماه، سال، ساعت، دقیقه و ثانیه باید دو رقمی باشند. به عنوان مثال برای سال ۲۰۲۱، باید ۲۱ نوشته شود.

۲-فیلدهای تاریخ با / و فیلدهای زمان با : از هم جدا می شوند.

۳-برای استفاده از این پروژه، فقط باید از سیم کارت همراه اول استفاده کنید. پیش شماره سیم کارت نباید ۰۹۹۴ باشد. سیم کارت های پیش از این پیش شماره قابل استفاده هستند. این مورد به دلیل دریافت ساعت از شبکه است.

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

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

 

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

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

 


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


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

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

 

پروژه sms کنترل با برد آردوینو arduino - دیجی اسپارک

 


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


برد آردویینو UNO

ماژول SIM800L

ماژول رله

ماژول کاهنده ولتاژ LM2596

مقاومت یک کیلو اهمی

برد بورد و کابل

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۸ دیدگاه

  • سلام مهندس عالی بود فقط اگه پروژه را با منو صوتی اجرا می‌کردید بهتر بود آخه پیامک واقعا وقت میگیره
    و بنظرم هم باکلاس تره با منو صوتی هم آسان تره فرمان دهی به رله
    پروژه های جدید با esp32cam نمیزارید ؟

    • سلام و ممنونم از لطف و همراهی شما
      پیشنهاد جالبی هست. روی این مورد کار می کنم.
      برای ESP32CAM هم پروژه قررا خواهیم داد. اما پروژه های جالبی با Maixduino در دست اقدام داریم. منتظر باشید!!!

  • سلام مهندس
    میشه یه چیزی درست کرد که بتونه با نمایشگر oledو node mcu شاخص کیفیت هوا را بهمون نشون بده

    • سلام
      بله ممکن هست.
      فقط برای این مورد باید ببینیم که آیا از طرف سایت ها، API در اختیار ما قرار م یگیرد یا خیر

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

  • سلام خسته نباشید، من میخواهم این ماژول رو از طریق micropython فعال کنم حتی کد هاش رو هم به برنامه میدم ولی وقتی اجرا میکنم نه پیامک میده نه هیچی خروجی هیچی نیست من با esp32 و میکروپایتون براش برنامه رو نوشتم

    • با سلام
      اگر منظورتان مشکل در ارتباط با برد sim800L است. بایستی اتصالات را دقیقا توضیح دهید. همچنین بفرمایید به چه صورتی از ارتباط سریال در سیستم عامل استفاده میکنید.