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

طراحی و پیاده سازی سیستم کنترل دور و جهت موتور از راه دور با پیامک

dc-motor-speed-control-with-sim800l-sms-and-l298-and-arduino-digispark
نوشته شده توسط معین صابری

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


ماژول SIM800L


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

  • ولتاژ کاری بین ۳٫۴ الی ۴٫۴
  • قابلیت کار در فرکانس های ۸۵۰/۹۰۰/۱۸۰۰/۱۹۰۰
  • قابلیت برقراری تماس صوتی دو طرفه
  • قابلیت ارسال و دریافت پیامک
  • قابلیت اتصال به اینترنت و ارسال و دریافت داده
  • پشتیبانی از پروتکل های FTP،HTTP،SMTP و….

ماژول Sim800L برای ساخت دوربین سیم کارتی

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

 


برد آردوینو UNO


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

 

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

 


درایور موتور L298D


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

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

 

ماژول L298 قادر است تا دو آمپر به خروجی بار دهد. همچنین، این ماژول دارای دو کانال بوده که می تواند به صورت جداگانه، دور و چهت چرخش دو موتور را کنترل نماید. برای کنترل دور موتور، پالس PWM را به پایه EN اعمال می کنیم. این ماژول دارای دو پایه ENA و ENB به ترتیب برای کنترل دور دو کانال A و B است. همچنین، کنترل جهت موتور، از طریق پایه های IN1، IN2، IN3 و IN4 صورت می گیرد. دو پایه IN1 و IN2 برای کنترل جهت کانال شماره یک و دو پایه IN3 و IN4 به منظور کنترل جهت کانال شماره ۲ به کار می رود.

 


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


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

Activation of relays via DTMF call with voice report - دیجی اسپارک

 

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

 


شماتیک و اتصالات


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

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

 

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

 


اتصالات درایور موتور و آردوینو


  • اتصال پایه  ۵V  درایور به پایه ۵V آردوینو
  • اتصال پایه GND درایور به پایه GND آردوینو
  • اتصال پایه ENA به پایه ۶ آردوینو
  • اتصال پایه IN1 به پایه ۴ آردوینو
  • اتصال پایه IN2 به پایه ۵ آردوینو

توجه: در صوت وجود جامپر روی پایه ENA، آن را بردارید.

 


اتصالات SIM800L و آردوینو


  • اتصال پایه TX ماژول به پایه RX(0) آردوینو
  • اتصال پایه RX ماژول از طریق تقسیم مقاومتی به پایه TX(1) آردوینو

جهت اتصال تغذیه، می بایست پایه VIN آردوینو را به پایه ورودی مثبت (IN+)  و پایه GND آردوینو را به پایه ورودی منفی(IN-) ماژول کاهنده ولتاژ متصل کنید. توجه داشته باشید که پیش از اتصال خروجی ماژول کاهنده ولتاژ به ماژول SIM800L، ابتدا به کمک مولتی ترن، ولتاژ خروجی را روی ۴ تنظیم کنید. سپس خروجی مثبت ماژول کاهنده به پایه VCC ماژول SIM800L و خروجی منفی کاهنده به پایه GND ماژول SIM800L متصل گردد.

 


کدهای پروژه


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

 

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

 

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

 


اجرای پروژه


پس از آپلود کدها، نوبت به اجرای پروژه می رسد. در این پروژه با ارسال پیامک به شماره سیم کارت دستگاه، دور و جهت موتور را تعیین می کنیم. جهت تعیین دور موتور، می بایست عددی بین ۰ الی ۱۰۰ که با افزایش آن دور موتور افزایش می یابد، انتخاب کنید. همچین جهت تعیین گردش موتور به راست از حرف R و جهت گردش به سمت چپ، از حرف L می بایست استفاده گردد. در نهایت برای ارسال پیامک، می بایست از فرمت زیر استفاده کنید.

 

!SPEED,DIRECTION#

مطابق فرمت فوق، داده ها با علامت ! شروع و با # پایان می یابند. پارامتر نهست سرعت موتور و پارامتر دوم جهت گردش موتور را تعیین می کند. به عنوان مثال فرض کنید که می خواهیم دور موتور ۸۰ و جهت گردش به سمت راست باشد. به همین منظور پیامکی به صورت زیر ارسال می کنیم.

!۸۰,R#

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

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

 

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

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

 


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


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

check_connect()

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

set_config()

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

 


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


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

ماژول SIM800L

آداپتور ۱۲ ولت ۵A

درایور موتور L298

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

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

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

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۱۷ دیدگاه

      • مهندس راستش را بخواهید به نظر من این پروژه فقط می‌تونه برای چرخش دوربین مداربسته از راه دور خوب باشه
        چراکه قادر است به سمت چپ و راست بچرخه
        بنظر من
        قابلیت متوقف شدن چرخش را اضافه کنید
        بنظر من پروژه کامله
        فقط من هرچی فکر کردم کاربرد این دستگاه را نتونستم پیدا کنم

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

          • بله برای دوربین سیمکارتی آپدیت خوبی است ولی به شرطی که این آپدیت روی خود پروژه دوربین سیمکارتی انجام شود یعنی به کد های دوربین سیمکارتی کد های این پروژه را هم اضافه کنید

            • بسیار عالی فکر خوبی هست
              حالا اگر به نظر شما به دوربین سیم کارتی GPS هم اضافه کنیم چطور می شود؟ دوربین با قبالیت چرخش و GPS کجاها به نظر شما کاربرد خواهد داشت؟

              • سلام مهندس دوربین با قابلیت چرخش و اضافه کردن GPS بهش من هرچی فکر کردم کاربرد شو متوجه نشدم فقط تنها چیزی که متوجه میشم اینه که اگر دوربین پرتابل باشه و یکی بدزدتش میشه با GPS دوربین را پیدا کرد
                ولی بنظر من قابلیت ضبط صدا را هم بهش اضافه کنید همزمان وقتی ما فرمان میدهیم عکس گرفته بشه و برای ما بفرسته ۱۵ ثانیه بعد از ارسال عکس یه وییس چند ثانیه ای هم برامون ارسال بشه
                البته میشه این مورد جور دیگری هم اجرا کرد
                قابلیت استراق سمع به دوربین سیمکارتی اضافه کنیم و وقتی که ما تماس میگیریم صدای محیط را برامون پخش کنه بصورت زنده و دیگر نیاز به ارسال وییس هم نداریم

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

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

  • مهندس میشه از راه دور با ماژول سیم‌کارت نور rgb را کنترل کرد مثلاً
    R20 کلمه R یعنی رنگ قرمز عدد ۲۰ یعنی میزان روشنایی
    و همچنین چند گزینه دیگر هم اضافه کنیم برای افکت و همه اینها را با پیامک کنترل کنیم

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

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

  • سلام و خسته نباشید
    به نظر شما این پروژه برای برای کنترل موتور خطی مناسب هست یا باید دو عدد رله استفاده کنیم؟

    • سلام و متشکرم از شما
      این مورد کاملا بستگی به جریان نامی موتور و جریان آن تحت بار دارد. بسته به جریان موتور باید درایور انتخاب شود.