آردوینو آموزش آردوینو اینترنت اشیا IOT درایور موتور سخت افزار سیم کارت GSM - GPRS پروژه های آردوینو

کنترل موتور DC با اینترنت GPRS ماژول SIM808 درایور L289 و ردیابی آنلاین

نوشته شده توسط معین صابری

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

 


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


برای کنترل موتور DC با اینترنت نیازمند ماژول GSM هستیم. ماژول SIM808 استفاده شده در این پروژه تنها با ولتاژ ۵ ولت قادر به راه اندازی است، ضمن اینکه به هیچ عنوان این ماژول با ۵v آردویینو قابلیت تغذیه نخواهد داشت، بنابراین برای تغذیه ماژول از یک منبع مناسب استفاده نمایید. ماژول درایور موتور تغذیه خود را از ۵V ماژول sim808 تامین می نماید، چراکه با توجه به جریان بالای موتور، راه اندازی و درایور آن از پورت USB لپ تاپ می تواند در دراز مدت به پورت، آسیب وارد نماید، از طرفی دیگر با توجه به جریان موتور (در اینجا در حدود ۱۵۰ میلی آمپر) و جریان بالای ماژول SIM808 که در بعضی موارد به دو آمپر هم می رسد، از یک منبع تغذیه حداقل۲٫۵ آمپری استفاده نمایید. برای راه اندازی موتور و ارسال فرمان چپ گرد، راست گرد و کنترل دور آن و همچنین تامین جریان مورد نیاز برای ارسال فرمان، از درایور موتور L298 استفاده می نماییم. به کمک این درایور، جریان ضعیف پایه های آردویینو تقویت شده و می توانند جهت و دور موتور را کنترل نمایند.

کنترل موتور DC با اینترنت GPRS ماژول SIM808 درایور L289 و ردیابی آنلاین - دیجی اسپارک

 

اتصالات ماژول sim808 به برد آردوینو

پایه Tx ماژول سیم کارت Sim808 به پایه ۱۰ برد آردوینو

پایه Rx با تقسیم مقاومتی(هر مقاومت یک کیلو اهم) به پایه ۱۱ آردوینو

پایه V ماژول سیم کارت GSM به تغذیه ۵ ولت

پایه GND ماژول علاوه بر تغذیه به پایه GND آردوینو

 

اتصالات ماژول درایور موتورL298

پایه OUT1 و OUT2(ترمینال ها) به پایه های تغذیه موتور(تفاوتی در اینکه کدام پایه موتور به کدام پایه ماژول متصل شود ندارد)

پایه ENA به پایه ۳ (PWM) آردویینو (در صورت وجود جامپر بر روی این پایه، آن را برداشته و پایه آردویینو را متصل نمایید)

پایه IN1 به پایه ۴ آردویینو

پایه IN2 به پایه ۵ آردویینو

پایه ۵V به ۵V(از ۵V آردویینو استفاده نگردد)

پایه GND علاوه بر تغذیه، به GND آردویینو نیز متصل شود.

 


قابلیت‌های پروژه در یک نگاه


ارسال موقعیت مکانی به صورت لحظه ای به سرور و ردیابی موقعیت موتور به صورت آنلاین

کنترل جهت موتور از طریق اینترنت به وسیله وب سایت

کنترل دور موتور از طریق اینترنت به وسیله وب سایت

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

ساخت وب سرور دیجی اسپارک جهت کنترل با اینترنت GPRS ماژول Sim808

 

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

آموزش طراحی وب سایت(پلتفرم IOT اختصاصی) برای دریافت داده و ارسال فرمان

ارسال دما به سرور اینترنتی و دریافت فرمان کنترل رله به کمک ماژول ESP8266

ارسال موقعیت مکانی زنده به سرور اینترنتی و دریافت فرمان کنترل رله به کمک اینترنت GPRS ماژول SIM808


کاربرد کنترل موتور از طریق اینترنت


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


کد کنترل موتور DC با اینترنت GPRS


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

 

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

 

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

 

 


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


در پروژه کنترل موتور DC با اینترنت، از طریق اینترنت سیم کارت ماژول SIM808، همانند پروژه کنترل اینترنتی رله بر بستر اینترنت و به کمک GPRS ماژول SIM808، ابتدا موقعیت مکانی به سرور ارسال می شود، سرور پس از دریافت داده فرمانی را با فرمت از پیش تعیین شده زیر ارسال می نماید:

۰salam

در عبارت فوق، حرف اول یا همان ۰ وضعیت رله است که می تواند ۰ یا یک شود، در اینجا اما ۰ به معنای یک جهت و در صورت دریافت یک به معنای جهت دیگری برای چرخش موتور است، بعد از وضعیت رله، نوبت به پیام ارسالی از سوی کاربر می رسد. دراین قسمت به جای پیام متنی، می توانید عددی بین ۰ تا ۲۵۵ به عنوان پالس PWM قرار دهید. به طور کلی، می توان عملکرد سیستم را در تابع های زیر خلاصه کرد:

()check_connet: کنترل اتصال به شبکه، در هنگام راه اندازی، برنامه منتظر می ماند تا ماژول به شبکه متصل شود.

()get_gps_data: دریافت داده های gps و ذخیره آن در متغیر gps_data

(send_data(host , page , data: ارسال داده به سرور به کمک ورودی های زیر:

      عبارت host: نام آدرس اینترنتی سرور، مثلا example.com

      عبارت page: نام و آدرس صفحه گیرنده داده ها بر روی سرور که در اینجا data.php/ است. 

      data داده(لوکیشین) ای است که قرار است به سرور، با توجه به فرمت ارسال، به صورت tmp=data ارسال شود.                   

()run_command: اجرای فرمان دریافتی از سوی سرور برای کنترل جهت و دور موتور

 

 


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


برد آردویینو uno

ماژول سیم کارت sim808 با قابلیت GPRS و GPS

ماژول درایور موتور(آموزش راه اندازی موتور با درایور l298)

موتور آرمیچر DC (با توجه به مشخصات ماژول l298، موتور مناسب خود را انتخاب نمایید، در این آموزش از یک موتور کوچک ۵ ولتی با جریان ۱۵۰ میلی آمپر استفاده شده است)

ماژول کاهنده ولتاژ(درصورتیکه منبع تغذیه شما ولتازی بیشتر از ۵ ولت دارد، از این ماژول برای کاهش ولتاژ به ۵ ولت استفاده نمایید)

 

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۱۴ دیدگاه

    • سلام
      ماژول sim808 بازه ولتاژی بین ۳٫۴ الی ۴٫۴ دارد، بنابراین از باتری های لیتیمی (با ولتاژ ۳٫۷) یا باتری های تلفن همراه (با ولتاژ ۳٫۷) می توان در تغذیه این ماژول استفاده نمود. اما در این پروژه، ماژول استفاده شده تغذیه ۵ ولتی نیاز دارد، بنابراین برای تامین آن از طریق باتری های لیتیمی، یا باید از نوع باتری لیتیم دو سلول با ولتاژ ۷٫۴ استفاده نمایید که طبعا با رگولاتور lm2596 کاهنده می بایست ولتاژ آن را به ۵ کاهش دهید، یا از باتری ۳٫۷ استفاده نموده و به کمک ماژول افزاینده XL6009 ، ولتاژ را افزایش داده و به ۵ برسانید. البته در روش دوم، نیاز دارید تا یکبار ولتاژ را به اندازه ۶ ولت افزایش دهید، سپس به کمک کاهنده LM2596، آن را کاهش داده و به ۵ ولت برسانید.

  • با سلام و خسته نباشید
    من ماژول سیم۸۰۸ و آدوینو uno دارم
    باهاش لوکیشن رو میگیرم و به وب سرور میفرستم،حالا میخوام فقط زمانی که دریافت لوکیشن رو از طریق وب سرور فعال کرد لوکیشن جدید برایش ارسال بشه،میشه راهنمایی بفرمائید

      • سلام خسته نباشی.
        من ماژول سیم ۸۰۸ دارم که به باطری ۳٫۷ ولت وصل شده و ۳۵۰۰میلی آمپر و برد آردوینو که با کابل به لپ تاب وصل کردمش،بعد از زدن دکمه چراغ ۷ بار چشمک میزنه و بعد خاموش میشه.
        داخل سریال هم میزنه smsready و بعد خاموش میشه. مشکل از کجا هستش؟

        • سلام و ممنونم
          مشکل از تغذیه هست. کابل های تغذیه سفت نیستند. چطور کابل های باتری را به ماژول متصل کردید؟

            • سلام
              در رابطه با اتصالات دو مورد را در نظر بگیرید:
              ۱- در صورتیکه این برد را از دانشجوکیت تهییه کرده اید، محلی که کابل آداپتور را متصل کردید، باید ولتاژ بیشتری داشته باشد. این برد سوکت مخصوص جهت اتصال باتری دارد. سوکتی که شما متصل کردید مخصوص آداپتور هست.
              ۲- از کابل های ضخیم و محکم استفاده کنید. این کابل ها(کابل هایی که به کابل های باتری متصل کرده اید) برای تغذیه مناسب نیستند.

              • ممنون از راهنماییتون،آداپتور چند ولت باید باشه؟
                و یک سوال دیگه با چه دستوری میشه فهمید باطری چند درصد شارژ داره؟
                و یک موضوع جالب ابنکه، ی مدت با همین کابل ها و همین نحوه اتصال کار میکرد 😀

  • سلام وقتتون بخیر
    در این پروژه و پروژه های مشابه من برای ارسال درخواست http به سرور پیغام “SUCCESSFULLY CONNECTED” رو میگیرم اما هیچ درخواستی به سرور ارسال نمیشه!
    بعضی مواقع خیلی درست و خوب همه چیز ارسال میشه و response میگیرم
    بیشتر مواقع هیچی ارسال نمیشه
    در حالتی هم یک درخواست میره و بعدش دیگه درخواستی نمیره!
    ممنون میشم راهنمایی بفرمایید

    • سلام و متشکر
      عبارت SUCCESSFULLY CONNECTED مربوط به اتصال موفقیت آمیز به سرور است و نه ارسال داده. این اشکالات به احتمال زیاد مربوط به سرعت اینترنت است. برای غلبه بر این مشکل لطفا مدت زمان انتطار برای پاسخ گرفتن از سرور را در کد برنامه کمی افزایش دهید.

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

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