آردوینو اینترنت اشیا IOT اینترنت اشیاء عملی پروژه های آردوینو

کنترل اشیا از طریق اینترنت برد Wemos با تنظیمات DNS و IP استاتیک

Wemos-DDNS-Protocol--Digispark
نوشته شده توسط آرش کدخدایی

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

 

دید کلی کنترل اشیاء از طریق اینترنت

ابتدا نیازمندیم که برنامه نویسی را روی یکی از بردهای Arduino که دارای اتصال به اینترنت است؛ انجام دهیم. انتخاب من برای این موضوع برد Wemos D1 Mini است. این برد کوچک، کم مصرف و بسیار مقرون به صرفه است. از اینرو برای کنترل اشیاء مختلف انتخاب مناسبی خواهد بود. سپس باید یکسری تنظیمات روی مودم یا روتری که برد Wemos D1 Mini به آن متصل است انجام دهیم. تا بتوانیم از طریق اینترنت به شیئ مورد نظر دسترسی داشته باشیم. برای این موضوع در آخر دو راه داریم: ۱-از ارائه دهنده اینترنت adsl درخواست آی پی استاتیک کنیم. در این حالت باید هزینه ماهیانه پرداخت شود. ۲-از سایت های ارائه دهنده داینامیک دی ان اس استفاده کنیم. از سایت‌های ارایه دهنده DNS رایگان می‌توانید استفاده کنید.

 

استفاده از مودم روتر برای کنترل اشیاء

در این آموزش من از مودم روتر TP-LINK TD-W8960N استفاده کرده‌ام ولی اکثر مودم روترها دارای این قابلیت هستند. در ادامه توضیح می‌دهم که چطور باید روی مودم روتر تغییرات را اعمال کنید. همچنین اگر به هنگام ایجاد تغییرات در مودم با مشکل مواجه شدید، یا اینکه مراحل را نمی‌دانستید از طریق ثبت نظر در ادامه همین پست نسبت به رفع مشکل اقدام کنید. من و دیگر همکارانم در تلاش خواهیم بود که پاسخ شما را در سریع‌ترین زمان ارسال کنیم.

 

راه اندازی برد Wemos برای مدیریت اشیاء

ابتدا رله را به پین D1 برد متصل می‌کنیم. اگر از شیلد رله مخصوص برد Wemos D1 Mini استفاده می‌کنید؛ پایه ارتباطی شیلد رله، D1 می‌باشد. به همین سادگی، پایه تغذیه را هم متصل می‌کنیم. پین VCC را به پایه ۵ ولت برد ویموس و پین GND را به پایه G برد ویموس متصل می‌کنیم. سپس برنامه زیر را با کامپایلر Arduino روی برد آپلود می‌کنیم. مشخصات مودم خود را جایگزین کنید و یک آی پی ثابت برای آن مشخص کنید.

 

وسایل مورد نیاز کنترل اشیاء از طریق اینترنت

برد ویموس Wemos mini D1 با تراشه ESP8266

ماژول رله Relay Module

مودم روتر دارای قابلیت Port Forwarding و Dynamic DNS

 

کدهای برنامه مدیریت اشیاء از طریق اینترنت

دانلود فایل کدها

 

پس از آپلود کدها روی برد ویموس، باید یکبار تست بگیرید. برای تست اتصال به برد میتوانید از آدرس‌های زیر استفاده کنید.

http://ip-address/url?switch=1 برای وصل کردن رله

http://ip-address/url?switch=0 برای قطع کردن رله

 

 

تنظیمات مودم برای اتصال به برد Wemos

وارد پنل مودم خود شوید. پنل اکثر مودم ها روی آی پی ۱۹۲٫۱۶۸٫۱٫۱ و یا ۱۹۲٫۱۶۸٫۰٫۱ قرار دارد. به قسمت Virtual Servers) Port Forwarding) بروید. در مودم استفاده شده به مسیر زیر بروید: Advance Setup – NAT – Virtual Servers

کنترل اشیا از طریق اینترنت برد Wemos با تنظیمات DNS و IP استاتیک- دیجی اسپارک

سپس روی add کلیک کنید. سرویس را روی HTTP یا وب سرور Web Server تنظیم کنید. آی پی برد خود را وارد کنید. سپس برای External Port یک عدد به عنوان پورت در نظر بگیرید. مقدار Internal Port باید روی ۸۰ تنظیم شود و فرم را ذخیره کنید. تا به اینجا ما دسترسی برد را به اینترنت باز کردیم. حال شما می‌توانید با استفاده از آی پی اینترنتی و پورت انتخابی از طریق http://ip-address:port به برد متصل شوید. نکته حائز اهمیت این است که این آی پی توسط ارائه دهنده اینترنت شما چند وقت یکبار عوض می‌شود. برای اینکه آی پی ثابتی داشته باشید باید آی پی استاتیک تهیه کنید. در غیر این صورت باید از داینامیک دی ان اس یا همان DDNS استفاده کنید. برای این منظور می‌توانید از وبسایت noip.com و یا هر وبسایت ارائه دهنده داینامیک دی ان اس، یک آدرس تهیه کنید. سپس از قسمت Dynamic DNS مودم روتر خود تنظیمات مربوطه را انجام دهید.

 

تنظیمات DDNS برای کنترل اشیاء

بعد از تهیه داینامیک دی ان اس میتوانید برای همیشه از طریق آدرس های زیر به برد دسترسی داشته باشید.

http://hostname.domain:port/url?switch=1

http://hostname.domain:port/url?switch=0

کنترل اشیا از طریق اینترنت برد Wemos با تنظیمات DNS و IP استاتیک- دانشجو کیت

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

نکته: اگر مودم شما no-ip را پوشش نمیدهد برای فعال بودن همیشگی DDNS باید روی یک کلاینت Dynamic Update Client را نصب کنید. همچنین این کلاینت باید همیشه روشن و به مودم متصل باشد. در این پست روی برد رزپبری پای Raspberry pi انجام می‌دهیم. ابتدا ترمینال رزبری پای را باز کرده و دستورات زیر را وارد می‌کنیم.

ممکن است ورژن شما با نسخه استفاده شده در این آموزش متفاوت باشد. برای این منظور با استفاده از دستور ls می‌توانید نام این پوشه را چک کنید.

حال باید مراحل نصب را طی کنید و یوزرنیم و پسورد اکانت خود در سایت no-ip را وارد کنید. در یکی از مراحل زمان آپدیت شدن را می‌پرسد که باید عددی بزرگتر از ۵ وارد کنید، دقت کنید که این عدد نشان دهنده دقیقه است. پس از طی مراحل نصب دستورات زیر را وارد کنید.

برای اطمینان از کارکرد صحیح، دستور زیر را وارد می‌کنیم.

نصب DDNS روی ویندوز برای کنترل اشیاء

چنانچه برد رزبری پای Raspberry Pi ندارید. یا اینکه تمایل دارید از یک سیستم ویندوزی برای اینکار استفاده کنید. پیشنهاد می‌کنم از لینک نصب DDNS روی ویندوز استفاده کنید. در این آموزش توضیحاتی راجع به این نخواهم داد.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

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

۲۴ دیدگاه

  • ممنون بابت آموزش خوبتون.خیلی مفید و کاربردی بود.
    در ضمن فک نکنم تو این پروژه نیاز به رزبری پای یا کلاینت دیگه ای باشه.توی مودم های تی پی لینک به صورت دیفالت سایت noip قابل انتخاب شدنه.و کافیه مشخصات و یوزر پسوردتون که سایت بهتون داده توی مودم ست کنید تا هردوقت آی پی عوض شد مودم خودش به سایت no-ip اطلا بده.

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

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

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

    • با سلام و با تشکر از توجه شما
      این کتابخانه همراه با نصب سخت افزار esp8266 نصب میگردد و نیازی به نصب ندارد ولی کتابخانه به فروشگاه اضافه خواهد شد.
      با تشکر

  • سلام مهندس
    من برنامه رو آپلود کردم و درسته.
    فقط از قسمت تنظیمات مودم سر درنیاوردم.
    راهنمایی کنید لطفا
    مودم من: Irancell-TD-GP2101

      • با تشکر از شما
        من قسمت Port Forwarding List رو پیدا کردم.
        این فیلد ها رو با چه مقدار هایی پر کنم:
        Service:
        Protocol:
        Remote Port Range:
        Local Host:
        Local Port:
        اینم بگم که من مقدار های ۸۰ و ۸۸ و ۸۲۰۰ رو امتحان کردم نشد.

        • با سلام مجدد
          Service باید روی HTTP تنظیم شود
          Protocol روی tcp
          Remote port range روی پورت مورد نظر
          Local host روی آی پی داخلی wemos یا هر وسیله مشابه
          Local port روی ۸۰

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

        • با تعریف کردن پورت، شما میتونید با وارد کردن آی پی خارجی مودم (دقت کنید، نه داخلی) کار ها را انجام دهید
          دقت کنید که اصلا برای آی پی داخلی نیاز به وارد کردن پورت نمیباشد
          برای یافتن آی پی خارجی خودتون میتونید در گوگل ip address را سرچ کنید
          در ضمن زمانی که شما DDNS تعریف میکنید میتوانید به جای آی پی از این آدرس استفاده کنید

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

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

      • سلام ممنون از اموزش خوبتون
        نمیشه رزبری رو حذف کنیم و از یک ابر سرور استفاده کنیم؟
        من نمیخوام درگیر رزبری بشم ایا راه دیگه ای هست که چندتا برد node mcu رو بشه اول مستر -اسلیو کنیم بعد با کمک سرور ابری بینشون ارتباط برقرار کنیم و چند وسیله رو خاموش یا روشن کنیم؟
        مرسی

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

          • چرا شما روی مودم دستی میرین ای پی ست میکنین؟ حتما انجام این کار ضروریه؟
            من بدون این تنظیمات فقط node mcu رو به کامپیوترم وصل کردم و دتکت کرد، ایا اگه این مدارو به دوتا دیگه از دوستام بدم اونا هم باید برن دونه دونه ای پی نصب کنن؟ یا اتومات دتکت میشه؟
            حتی اینو با وموس هم امتحان کردم دتکت کرد