اتصال آردوینو به اینترنت با ماژول اترنت 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 و حداکثر چهار اتصال سوکت همزمان پشتیبانی می کند.

ماژول اترنت از کتابخانه اترنت آردوینو برای نوشتن کد هایی استفاده می کند که با استفاده از این ماژول به اینترنت متصل می شوند. هماهنگ با تمام نسخه های آردوینو مانند UNO ، NANO ، mega 1280 ، mega 2560 و سایر نسخه ها است. کارایی و عملکرد ماژول اترنت 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 را بنویسید.

کد یک سرور محلی در پورت 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 در مدار خاموش می شود. صفحه وب مانند زیر است:

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








با سلام از زحمات شما قدر دانی میکنم
سلام عزیز
خوشحالیم که آیرنکس برای شما مفید بوده
سلام
دوتا سوال؟
آیا با esp32 هم میشه راه اندازی کرد؟
بین w5100 و enc28j60 کدوم انتخاب کنم؟ تفاوت؟
تشکر
سلام خسته نباشید پروژه ای که لازم هست اردینو به صورت کامل روشن باشه در طول روز برد اردینو آسیبی نمیبینه ؟
سلام عزیز
خیر مشکلی نیست
سلام
این آموزش اینترنت محلی، من میخوام آردوینو رو از طریق اینترنت ( اس ام اس و تماس نباشه، فقط اینترنت ) و از راه دور کنترل کنم ( مثلا از یک شهر به شهر دیگه )
باید چیکار کنم، اگه راهنمایی کنید ممنون میشم
سلام عزیز
دوره آموزش اینترنت اشیا رو مشاهده کنید. دقیقا برای کنترل از طریق اینترنت تهیه شده.
سلام ببینم اگه از شیلد اترنت آردوینو استفاده کنیم کدوم پایه ها رو باید اتصال بدیم؟؟
سلام ببخشید نمیشه با استفاده از همین برد و سنسور دما دما رو رو اینترنت نمایش بدیم؟؟
سلام عزیز، بله میشه اما کد رو باید تغییر بدید
ممنون و یه سوال دیگه w5100 رو از کجا بخریم؟
خواهش میکنم، فروشگاه های آنلاین یا محلی رو بررسی کنید