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

اتصال آردوینو به اینترنت با ماژول اترنت 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 برای ارسال و دریافت داده از طریق اینترنت استفاده کنید.

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

دانلود فایل های پروژه

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

تصویر از محمد رحیمی

محمد رحیمی

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

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

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