سیستم های کنترل از راه دور یکی از مهم ترین و پرکاربردترین ابزارها به شمار می روند. به کمک این ابزار شما می توانید از راه دور و بدون نیاز به حضور فیزیکی، اقدام به کنترل ابزار و وسایل برقی نمایید. اما شاید نیاز باشد تا شما چندین دستگاه را تنها با یک تلفن همراه، کنترل کنید. در کنار این، شاید نیاز باشد تا این دستگاه ها از همدیگر فاصله داشته باشند. در این آموزش به کمک بردهای NODEMCU و SIM800L، یک سیستم کنترل از راه دور طراحی و پیاده سازی می کنیم. در این سیستم بردهای NODEMCU به صورت بی سیم با هم در ارتباط هستند. حال با دریافت پیامک از طریق ماژول SIM800L، هر کدام از بردها که می بایست خروجی خود را فعال کنند، خروجی را فعال خواهند کرد. با تعمیم و گسترش این پروژه می توان به طراحی و پیاده سازی سیستم کنترل از راه دور با قابلیت نصب دستگاه ها در قسمت های مختلف اقدام نمود. بدین ترتیب به جای اینکه هر دستگاه یک ماژول سیم کارت داشته باشد، تعدادی دستگاه تنها به یک ماژول سیم کارت متصل هستند. در کنار این، این دستگاه ها بدون نیاز به سیم کشی با واحد مرکزی، در ارتباط هستند. در ادامه این آموزش، به شرح ،طراحی و پیاده سازی این پروژه می پردازیم. در ادامه پروژه فرمان از راه دور به چندین برد Nodemcu با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.
ساز و کار عملکرد پروژه
در این قسمت از آموزش به شرح نحوه عملکرد پروژه فرمان از راه دور به چندین برد Nodemcu می پردازیم. دستگاه کنترل از طریق پیامک، قادر است تا پیامک های دریافتی از کاربر را تجزیه و تحلیل کند. پس از دریافت فرمان پیامک توسط برد مرکزی، سایر بردها به برد مرکزی درخواست می دهند. با دریافت درخواست، با توجه به متن ارسالی از سوی کاربر، هر بردی که باید دستور را اجرا کند، به اجرای فرمان کاربر می پردازد.
در این پروژه از دو برد NodeMcu و یک ماژول SIM800L استفاده کرده ایم. یکی از بردها در حالت نقطه دسترسی و در مد سرور قرار گرفته است. برد دیگر در حالت STA و مد کلاینت است. برد AP که در مد سرور قرار گرفته، به ماژول سیم کارت نیز متصل است. این برد وظیفه دریافت پیام های ارسالی از سوی کاربر و تجزیه و تحلیل آن ها را بر عهده دارد. کاربر می تواند از طریق پیامک، یک خروجی از هر برد NODEMCU را کنترل کند. در صورتی که فرمان کاربر مربوط به برد متصل به ماژول SIM800L باشد، خروجی این برد کنترل می شود. همچنین در صورتیکه فرمان مربوط به دیگر برد NODEMCU باشد، برد NODEMCU دیگر کنترل خواهد شد. در این حالت، برد NODEMCU که در حالت کلاینت است، به برد NODEMCU که در حالت سرور قرارگرفته(برد متصل به SIM800L) در خواست ارسال می کند. در طرف دیگر سرور در پاسخ، وضعیت پایه را با HIGH و یا LOW، مطابق پیامک کاربر به برد در قالب یک رشته ارسال می کند. در ادامه این آموزش، به تشریح نقش هر یک از قطعات می پردازیم. سپس با معرفی شماتیک و کدها، به اجرای برنامه می پردازیم. در نهایت پس از اجرا، به تحلیل کدهای پروژه خواهیم پرداخت.
برد NodeMcu
برد NodeMcu از مهم ترین و پرکاربردترین بردهای پردازشی در زمینه خانه هوشمند و پروژه های بی سیم شمار می روند. این بردهای قابلیت اتصال به اینترنت را در کنار قابلیت ایجاد شبکه لوکال، در خود جای داده اند. در کنار این، این بردها دارای پردازنده قوی جهت برنامه نویسی هستند. اتفاقا این بردها قادر به اجرای برنامه های آردوینو نیز، هستند. به عبارت دیگر، در کنار قابلیت های شبکه ای، این برد ها می توانند برنامه های کاربر را همانند برد آردوینو با همان دستورات، اجرا کنند.
برد NodeMcu که در حقیقت برد توسعه تراشه ESP8266-12E محسوب می گردد، راه اندازی و کار با این تراشه را بسیار ساده کرده است. وجود رگولاتو، تغدیه و پروگرام از طریق پورت USB و… قابلیت های این برد به شمار می روند. جهت راه اندازی و کار با تراشه های ESP8266، سلسله آموزشی در دیجی اسپارک منتشر شده است. این سلسله آموزش با کلیک بر روی این لینک، قابل دسترسی و مطالعه است.
ماژول SIM800L
همانطور که پیشتر هم گفته شد، در پروژه فرمان از راه دور به چندین برد Nodemcu ما قصد ارسال فرمان به بردهای NodeMcu از طریق پیامک را داریم. به همین دلیل، از ماژول سیم کارت SIM800L جهت دریافت پیامک استفاده می کنیم. ماژول SIM800L یک ماژول بی نهایت کاربردی است. به کمک این ماژول می توان به برقراری تماس صوتی دو طرفه، ارسال و دریافت پیامک، اتصال به اینترنت و… اقدام نمود.
در این پروژه ماژول SIM800L به برد NODEMCU در حالت AP متصل می شود. سپس با دریافت پیامک، این برد فرمان را اجرا کرده و یا اجرای فرمان را به برد دیگر می سپارد. از طرفی دیگر، ماژول SIM800L دارای ولتاژ راه اندازی بین ۳٫۴ الی ۴٫۴ است. به همین علت، ما در این پروژه از یک ماژول کاهنده ولتاژ استفاده می کنیم. ماژول کاهنده LM2596 می تواند تا ۴۰ ولتاژ را در وردی به ۱٫۵ ولت و به شیوه سوییچینگ کاهش دهد. بر روی این ماژول یک مولتی ترن جهت تنظیم ولتاژ خروجی تعبیه شده است. در این پروژه ما از این ماژول جهت تنظیم ولتاژ مناسب برای SIM800L استفاده می کنیم. به همین منظور، ولتاژ خروجی ماژول را روی ۴ ولت تنظیم می کنیم. توجه داشته باشید که ابتدا ولتاژ خروجی تنظیم شده و سپس به ماژول اعمال می گردد.
پس از آشنایی با قطعات، نوبت به شماتیک و اتصالات پروژه می رسد. قسمت بعد به این موضوع اختصاص می یابد.
شماتیک و اتصالات
در این قسمت به بررسی شماتیک و اتصالات می پردازیم. در این پروژه LED روی برد های NODEMCU از طریق پیامک کنترل می گردد. در یک طرف از مدار، برد NODEMCU به SIM800L به شکل زیر متصل می گردد. در نهایت جهت راه اندازی و کار با ماژول SIM800L سلسله آموزشی در دیجی اسپارک منتشر شده است. این سلسله آموزش با کلیک بر روی این لینک، قابل دسترسی و مطالعه خواهد بود.
در طرف دیگر، یک برد NODEMCU قرار داشته که AP ایجاد شده توسط NODEMCU متصل به SIM800L، وصل می گردد. این برد شماتیک خاصی نداشته و تنها کافیست به تغذیه متصل گردد. اما برای اتصالات بین NODEMCU و SIM800L، به شرح زیر عمل کنید.
- اتصال کابل های آداپتور با رعایت پلاریته به ورودی ماژول کاهنده
- اتصال پایه خروجی مثبت ماژول کاهنده به پایه VCC ماژول SIM800L
- اتصال پایه خروجی منفی ماژول کاهنده به پایه GND ماژول SIM800L
- اتصال پایه GND ماژول NODEMCU به پایه GND ماژول SIM800L
- اتصال پایه TX ماژول SIM800L به پایه RX ماژول NODEMCU
- اتصال پایه RX ماژول SIM800L به پایه TX ماژول NODEMCU
توجه۱: پیش از برقراری اتصالات، ابتدا ولتاژ خروجی ماژول کاهنده ولتاژ را روی ۴ تنظیم کرده و سپس به ماژول SIM800L متصل کنید.
توجه۲: در این آموزش تغذیه برد NODEMCU از طریق کابل تامین می گردد.
توجه ۳: جهت تغذیه ماژول SIM800L، از یک آداپتور ۱۲ ولت ۵ آمپر استفاده شده است.
کدهای پروژه
پس از بررسی اتصالات، نوبت به کدهای پروژه می رسد. همانطور که اطلاع دارید، در این پروژه دو برد NODEMCU حاضر هستند. یک برد به SIM800L متصل شده و دیگری از طریق شبکه وای فای ایجاد شده توسط NODEMCU متصل به SIM800L، به آن متصل می گردد. در ابتدا کدهای زیر که مربوط به NODEMCU متصل به SIM800L است را روی برد، آپلود کنید.
توجه: پیش از اپلود برنامه، لطفا کابل متصل به پایه RX برد NODEMCU را جدا کرده و سپس کدها را آپلود نمایید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
پس از آپلود کدها، نوبت به اجرای پروژه می رسد. قسمت بعدی را به این موضوع اختصاص می دهیم.
اجرای پروژه
پس از آپلود برنامه ها، نوبت به اجرای پروژه فرمان از راه دور به چندین برد Nodemcu می رسد. برای اجرای پروژه ابتدا باید کمی صبر کنید تا ماژول مخابراتی به شبکه وصل شود. همچنین کمی باید نیز صبر کرد تا برد NODEMCU در حالت STA، به دیگر برد در حالت AP متصل شود. پس از چند لحظه، به کمک جول زیر می توانید LED روی بردهای NODEMCU را به کمک پیامک کنترل کنید. متن پیامک ها در جدول زیر آمده است.
شرح | متن پیامک |
روشن شدن چراغ برد AP | ON1 |
خاموش شدن چراغ برد AP | OFF1 |
روشن شدن چراغ برد STA | ON2 |
خاموش شدن چراغ برد STA | OFF2 |
پس از ارسال کدهای فوق به شماره سیم کارت درون ماژول، مطابق فرمان کاربر چراغ ها کنترل خواهند شد.
تحلیل کدهای پروژه
پس از اجرای پروژه فرمان از راه دور به چندین برد Nodemcu، نوبت به تحلیل و بررسی کدهای آن می رسد. از آنجاییکه درون کدهای هر بخش به صورت خط به خط کامنت وجود دارد، لذا جدول زیر به شرح این توابع می پردازد.
شرح | تابع |
خواندن پیامک و اجرای فرمان | read_sms |
انتظار برای اتصال به شبکه GSM | gsm_connect |
اجرای تابع سرور در سمت AP | data |
کنترل اتصال به AP از سوی STA | status |
لوازم مورد نیاز
- برد nodemcu
- فیش آداپتور
- ماژول sim800l
- ماژول کاهنده ولتاژ lm2596
- آداپتور تغذیه ۱۲ ولت با جریان ۵ آمپر
جمع بندی
در این آموزش به طراحی و پیاده سازی یک ماژول کنترل از راه دور با پیامک و به کمک بردهای NODEMCU پرداختیم. در این پروژه دو برد NODEMCU به صورت بی سیم به یکدیگر متصل می گردند. سپس از طریق ماژول سیم کارت فرامین کاربر را به وسیله پیامک دریافت می کنند. در این حالت، با توجه به فرمان کاربر، بردها به اجرای فرمان می پردازند. در ابتدای آموزش به تشریح عملکرد پروژه پرداختیم. در ادامه به معرفی قطعات و نقش هریک در بازی پرداختیم. در نهایت با ارایه شماتیک و کدها، پروژه را اجرا نمودیم. دست آخر نیز به تحلیل و بررسی توابع کلیدی پروژه، پرداختیم.
چنانچه ابهامی در مطالب گفته شده می بینید و یا اینکه احساس می کنید مباحث گفته شده برای شما گنگ است، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها، مطالب گفته شده و یا مراحل اجرایی وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.
سلام مهندس با تشکر ازشما .
با وجود خرید اشتراک سه ماهه ، بازم اجازه دسترسی به کدها را به من نمیده . علتش چیه ؟
سلام و ممنونم از لطف شما
لطفا یکبار کوکی ها را از مرورگر خود پاک کنید. سپس مجددا لاگین نمایید. در صورت بروز مجدد اشکال با شماره زیر در ساعات اداری تماس بگیرید:
۰۲۱۸۶۰۸۶۹۸۲
سلام و آرزوی سلامتی برای شما جناب مهندس صابری .
این پروژه را میتوان با یک برد که شامل سیم کارت باشه و چند تا برد دیگه به همراه تعداد بیشتری سنسور و رله گسترش داد ؟
سلام و متشکرم از لطف شما
بله این مورد کاملا امکان پذیر است. در این حالت با تعریف سریال نرم افزاری می توانید تعداد زیادی ماژول سیم کارت به برد nodemcu متصل کنید.
سلام و تشکر از شما جنابب مهندس صابری .
فکر میکنم من سوالم را دقیق مطرح نکردم . ما یک برد داریم که یک ماژول سیم کارت به آن متصل می باشد . با این برد میخواهیم مثلا ۱۰ عدد برد ESP را که فاقد ماژول سیم کارت هستند و فقط چند رله به هر یک از این بردها متصل میباشد را با برد اصلی ESP با همین کدی که شما قرار دادین کنترل کنیم . اگر امکان پذیر است . بفرمایید چگونه میتوان این پروژه را انجام داد . ممنون
سلام مجدد
خواهش می کنم
متوجه سوال شما شدم، این آموزش را مطالعه کنید:
https://digispark.ir/send-command-to-multiple-nodemcu-boards-with-sim800l/
سلام و خدا قوت به شما جناب مهندس .
میخواستم بپرسم که امکانش هست که در مورد این پروژه و مشابه اون . مودی را برای ESP8266 ایجاد کنیم که در اون مود بتواند به صورت AT-STA , Client/Server کار کند . بتولنیم تبادل داده و فرامین را از ESP مرکزی با نودها بصورت دو طرفه داشته باشیم ؟
سلام
بله این مورد امکان پذیر است. در این حالت ماژول در مد شبکه مش قرار می گیرد. آموزش زیر را مطالعه نمایید:
https://digispark.ir/create-mesh-network-with-esp-boards/