آموزش آردوینوپروژه های آردوینو

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

اکثر دستگاه های اینترنت اشیا با استفاده از Wi-Fi به اینترنت متصل هستند. اگرچه اتصال Wi-Fi دسترسی از راه دور به اینترنت را امکان پذیر می کند ، اما محدودیت های خاص خود را دارد. به عنوان مثال ، در اکثر برنامه های کاربردی صنعتی برای یک دستگاه ثابت، اترنت معمولاً به جای Wi-Fi انتخاب می شود ، به این دلیل که از قابلیت اطمینان و امنیت بیشتری برخوردار است. همچنین ، از آنجا که اترنت اتصال سیمی است ، سرعت بهتری را ارائه می دهد و تأخیر کمتری دارد. اگر با یک برد آردوینو UNO یا Nano کار می کنید و می خواهید Arduino خود را به اینترنت متصل کنید ، دو گزینه محبوب پیش رو دارید. یک گزینه استفاده از ESP8266 با آردوینو و گزینه دوم اتصال ماژول اترنت با آردوینو است.

در این پروژه ، ما می خواهیم از گزینه دوم برای کنترل یک LED با آردوینو و W5100 Ethernet Module استفاده کنیم. ماژول اترنت برای برقراری ارتباط بین رایانه و آردوینو در یک شبکه LAN یا Wired استفاده می شود.

ماژول اترنت W5100

ما از ماژول اترنت W5100 استفاده می کنیم. به زبان ساده ، این ماژول برد Arduino را قادر می سازد تا به اینترنت متصل شود. با استفاده از این ماژول می توانیم اتصال به اینترنت را بدون پشتیبانی از یک سیستم عامل کامل کنیم. همچنین از پروتکل های Hardwired TCP / IP مانند TCP ، PPPoE ، اترنت ، UDP ، ICMP ، IPv4 و … پشتیبانی می کند. از حالت های عملکرد دوبلکس و نیمه دوبلکس پشتیبانی می کند. از اتصالات ADSL و حداکثر چهار اتصال سوکت همزمان پشتیبانی می کند.

ماژول اترنت W5100

ماژول اترنت از کتابخانه اترنت آردوینو برای نوشتن کد هایی استفاده می کند که با استفاده از این ماژول به اینترنت متصل می شوند. هماهنگ با تمام نسخه های آردوینو مانند UNO ، NANO ، mega 1280 ، mega 2560 و سایر نسخه ها است. کارایی و عملکرد ماژول اترنت W5100 شباهت زیادی به شیلد اترنت آردوینو دارد و قیمت آن بسیار کمتر است.

اتصال کابل به ماژول اترنت W5100

شماتیک مدار اتصال آردوینو به ماژول اترنت W5100

شماتیک مدار اتصال آردوینو به ماژول اترنت W5100
این مدار از آردوینو نانو و Ethernet Module W5100 تشکیل شده است (این پروژه با Ethernet Arduino Shield و Arduino UNO نیز امکان پذیر است). اتصال بین ماژول آردوینو و اترنت همانطور که در نمودار مدار نشان داده شده است بسیار ساده است.

پایه های 5V و GND آردوینو نانو را به ترتیب به +5 و G ماژول اترنت وصل کنید (این اتصالات برق را به ماژول اترنت می رسانند).
پایه های 9 ، 10 ، 11،12 و 13 آردوینو را به ترتیب به R ، SS ، MO ، MI ، CK ماژول اترنت وصل کنید (این ارتباطات بین آردوینو و اترنت از طریق SPI را ایجاد می کند).

Arduino Code برای دریافت داده از W5100 Ethernet Module

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

#include <SPI.h>

کتابخانه Ethernet دارای توابعی است که تعامل با ماژول اترنت را برای ما ساده میکند.

#include <Ethernet.h>

آدرس فیزیکی Mac ماژول اترنت را تنظیم میکنیم.

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

شماره 192.168.0.12 آدرس IP است. برای بررسی آدرس آیپی کافیست در CMD عبارت ipconfig را بنویسید.

بدست آوردن آیپی با ipconfig

کد یک سرور محلی در پورت 80 ایجاد می کند که بعداً توسط کلاینت ها قابل دسترسی است.

EthernetServer server(80);

این پاسخ کاربر را هنگام دسترسی کاربر به وب سرور می خواند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید
String readString;

در setup پین LED را به عنوان خروجی تنظیم میکنیم و ماژول اترنت را با پارامتر های مورد نظر (آدرس Mac ، آدرس IP ، gateway ، subnet mask) پیکربندی میکنیم و سرانجام تابع “server.begin ()” سرور شروع می شود.

int ledPin = 2;
void setup(){
                        pinMode(ledPin, OUTPUT); 
                        Ethernet.begin(mac, ip, gateway, subnet);
            server.begin(); 
}

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

void loop(){
    EthernetClient client = server.available();
              if (client) {
                   while (client.connected()) {
                       if (client.available()) {

در صورت اتصال ، بررسی اینکه میکنیم کلاینت پیامی را به سرور ارسال می کند یا خیر.

char c = client.read();

سپس کاراکتر به کاراکتر پاسخ HTTP را میخواهیم و کاراکترها را در متغیر readString تعریف شده توسط کاربر ذخیره میکنیم.

if (readString.length() < 100) {
                    readString += c;
                }

پس از دریافت پاسخ تأیید ، نمایش صفحه وب را شروع می کنیم و کد HTML در زیر آمده است.

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE> ARDUINO ETHERNET</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<hr>");
client.println("<H1 style=\"color:green;text-align:center\">ARDUINO ETHERNET LED CONTROL</H1>");
client.println("<hr>");
client.println("<br>");

هنگامی که کاربر بر روی لینک TURN ON LED کلیک میکند، او به \?LEDON هدایت می شود که LED را روشن می کند.

client.println("<H2 style=\"text-align:center\"><a href=\"/?LEDON\"\">Turn On LED</a><br></H2>");

مشابه کد بالا، کد زیر کاربر را به آدرس TURN OFF LED هدایت میکند.

client.println("<H2 style=\"text-align:center\"><a href=\"/?LEDOFF\"\">Turn Off LED</a><br></H2>");

بسته به آدرسی که کاربربه آن هدایت می شود، پین آردوینو را کنترل کنید تا LED روشن و خاموش شود.

                    if(readString.indexOf("?LEDON") > -1) 
                    {
                        digitalWrite(ledPin, HIGH);
                    }
                    else{
                        if(readString.indexOf("?LEDOFF") > -1)
                        {
                            digitalWrite(ledPin, LOW);
                        }
                    }

پاک کردن رشته برای خواندن بعدی:

                    readString="";
                }
            }
        }
    }
}

اتصال آردوینو به رایانه یا پورت اترنت

برای اتصال این دو (PC و Arduino) به یکدیگر ، اگر پورت اترنت کامپیوتر دارای auto-direction sensing نیست ، به یک کابل مناسب (کابل متقاطع CAT-6) نیاز داریم. در صورتی که رایانه شخصی شما از auto-direction sensing پشتیبانی می کند ، فقط یک کابل معمولی را که به همراه روتر ارائه می شود متصل کنید.

اتصال آردوینو به رایانه یا پورت اترنت 

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

اتصال ماژول اترنت بدون پورت اترنت

چشمک زدن LED از طریق اینترنت با استفاده از ماژول اترنت

پس از برقراری ارتباطات فوق ، با استفاده از رایانه شخصی یا تلفن همراه خود به روتر متصل شوید. سپس مرورگر وب را باز کرده و آدرس آیپی را وارد کنید. اکنون می توانید LED را از طریق صفحه وب کنترل کنید. وقتی کاربر روی “TURN ON LED” در صفحه وب کلیک می کند ، LED در مدار روشن می شود. وقتی روی “LED TURN OFF” کلیک می شود ، LED در مدار خاموش می شود. صفحه وب مانند زیر است:

چشمک زدن LED از طریق اینترنت با استفاده از ماژول اترنت 

امیدوارم که از این پروژه لذت برده باشید و یاد گرفته باشید که چگونه از ماژول اترنت W5100 با Arduino برای ارسال و دریافت داده از طریق اینترنت استفاده کنید.

موارد موجود در فایل : سورس کامل

4.6 (5 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

12 نظر

    1. سلام عزیز
      خوشحالیم که آیرنکس برای شما مفید بوده

  1. سلام
    دوتا سوال؟
    آیا با esp32 هم میشه راه اندازی کرد؟
    بین w5100 و enc28j60 کدوم انتخاب کنم؟ تفاوت؟
    تشکر

  2. سلام خسته نباشید پروژه ای که لازم هست اردینو به صورت کامل روشن باشه در طول روز برد اردینو آسیبی نمیبینه ؟

  3. سلام
    این آموزش اینترنت محلی، من میخوام آردوینو رو از طریق اینترنت ( اس ام اس و تماس نباشه، فقط اینترنت ) و از راه دور کنترل کنم ( مثلا از یک شهر به شهر دیگه )
    باید چیکار کنم، اگه راهنمایی کنید ممنون میشم

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

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

    1. سلام عزیز، بله میشه اما کد رو باید تغییر بدید

    2. ممنون و یه سوال دیگه w5100 رو از کجا بخریم؟

    3. خواهش میکنم، فروشگاه های آنلاین یا محلی رو بررسی کنید

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *