تعريف شیلد Ethernet W5100
قبل از خواندن مقاله شیلد Ethernet W5100 بهتر است در نظر داشته باشید مقالاتی که با عنوان ماژول در سایت قرار گرفته اند از مقالات پایه و مقدماتی میباشند که برای مطالعه و یا پژوهش های دانش آموزان و دانشجویان به عنوان قدم اول در نظر گرفته شده اند.
W5100 Ethernet Shield یک ماژول شبکه است که به آردوینو یا میکروکنترلر سازگار اجازه می دهد تا با استفاده از پروتکل اترنت به یک شبکه محلی (LAN) یا اینترنت متصل شود. این تراشه دارای تراشه TCP/IP W5100 است که تمام عملکردهای اترنت از جمله برقراری اتصالات، ارسال و دریافت بسته های داده و مدیریت پروتکل های شبکه را بر عهده دارد.شیلد از طریق رابط SPI به برد آردوینو متصل می شود و یک جک اترنت RJ45 برای اتصال به شبکه فراهم می کند. همچنین دارای یک اسلات کارت حافظه MicroSD است که به آردوینو امکان خواندن و نوشتن اطلاعات روی کارت حافظه را می دهد.با W5100 Ethernet Shield، کاربران میتوانند پروژههایی را توسعه دهند که نیازمند ارتباطات شبکه هستند، مانند سرورهای وب، ثبت اطلاعات از راه دور، دستگاههای IoT (اینترنت اشیا) و غیره. سپر به طور گسترده ای مورد استفاده و پشتیبانی قرار می گیرد و آن را به یک جزء ضروری برای برنامه های شبکه مبتنی بر آردوینو تبدیل می کند.
نحوه كاركرد
شیلد اترنت W5100 یک شیلد محبوب آردوینو است که به بردهای آردوینو اجازه می دهد با استفاده از رابط اترنت به اینترنت متصل شوند. شیلد مبتنی بر تراشه Wiznet W5100 است که یک پشته TCP/IP با امکانات کامل با کنترلر اترنت یکپارچه است.
در اینجا یک نمای کلی ساده از نحوه عملکرد سپر اترنت W5100 آورده شده است:
1. راه اندازی سخت افزار: سپر اترنت W5100 از طریق گذرگاه SPI (رابط محیطی سریال) به برد آردوینو متصل می شود. از چندین پین دیجیتال برای ارتباط و کنترل استفاده می کند.
2. پیکربندی شبکه: قبل از برقراری اتصال، سپر باید با یک آدرس IP، ماسک زیر شبکه، دروازه پیش فرض و آدرس سرور DNS پیکربندی شود. این مقادیر را می توان به صورت دستی تنظیم کرد یا به صورت پویا از یک سرور DHCP به دست آورد.
3. باز کردن سوکت: برای ارسال و دریافت داده از طریق شبکه، شیلد باید یک سوکت باز کند. تراشه W5100 از حداکثر چهار اتصال سوکت به طور همزمان پشتیبانی می کند. هر سوکت بافر مخصوص به خود را برای ارسال و دریافت داده دارد.
4. ایجاد اتصال: هنگامی که یک سوکت باز می شود، شیلد می تواند با یک سرور راه دور ارتباط برقرار کند. از اتصالات TCP (پروتکل کنترل انتقال) و UDP (پروتکل دیتاگرام کاربر) پشتیبانی می کند. برای TCP، یک سوکت باید با یک آدرس IP خاص و شماره پورت ارتباط برقرار کند. برای UDP، داده ها را می توان مستقیماً به یک آدرس IP راه دور و شماره پورت بدون ایجاد اتصال ارسال کرد.
5. ارسال و دریافت داده: هنگامی که یک اتصال برقرار شد، سپر می تواند داده ها را از طریق شبکه ارسال و دریافت کند. تراشه W5100 پروتکلهای شبکه سطح پایین، از جمله تقسیم بستهها، مونتاژ مجدد، محاسبه جمع کنترل و مدیریت خطا را مدیریت میکند. شیلد یک API ساده برای ارسال و دریافت داده ها با استفاده از رابط سوکت فراهم می کند.
6. بستن سوکت: هنگامی که ارتباط کامل شد، سوکت را می توان برای آزاد کردن منابع شبکه بست. این به شیلد اجازه می دهد تا سوکت های جدید را باز کند و با سرورهای راه دور دیگر ارتباط برقرار کند.
به طور کلی،شیلد اترنت W5100 ارتباط شبکه را برای بردهای آردوینو با بارگذاری پروتکل های شبکه سطح پایین در تراشه W5100 ساده می کند. شیلد یک API سطح بالایی را ارائه می دهد که به برنامه نویسان اجازه می دهد به راحتی داده ها را از طریق اینترنت ارسال و دریافت کنند.
انواع مختلف شیلد Ethernet W5100
W5100 یک تراشه کنترل کننده اترنت است که معمولاً در سپرهای اترنت برای آردوینو استفاده می شود. چندین نوع و تنوع مختلف از سپرهای اترنت W5100 موجود است، از جمله:
1. Official Arduino Ethernet Shield: این محافظ اترنت اصلی است که توسط آردوینو طراحی و تولید شده است. این بر اساس تراشه W5100 است و دارای یک پورت اترنت استاندارد RJ45 است.
2. Seed Studio Ethernet Shield: این محافظ اترنت با بردهای آردوینو سازگار است و دارای تراشه W5100 است. دارای یک پورت اترنت استاندارد RJ45 و همچنین دارای یک اسلات کارت SD برای ذخیره سازی اضافی است.
3. DFROBOT Ethernet Shield: این شیلد نیز بر اساس تراشه W5100 ساخته شده و با بردهای آردوینو سازگار است. این دستگاه دارای یک پورت اترنت استاندارد RJ45 است و از کارت TF یکپارچه برای ذخیره داده ها پشتیبانی می کند.
4. Adafruit Ethernet FeatherWing: این محافظ اترنت، سازگار با بردهای توسعه Feather Adafruit، دارای تراشه W5100 است. این دستگاه دارای یک درگاه اترنت استاندارد RJ45 است و دارای یک اسلات کارت microSD برای ذخیره اطلاعات است.
اینها تنها چند نمونه از انواع مختلف سپرهای اترنت W5100 موجود هستند. هر شیلد ممکن است ویژگیها یا عملکردهای اضافی کمی متفاوت داشته باشد، اما همه آنها از تراشه W5100 برای ارتباطات اترنت استفاده میکنند.
دیتاشیت شیلد W5100
کتابخانه ی شیلد w5100
دانلود کتابخانه ی شیلد w5100 برای استفاده در محیط آردوینو میتوانید با استفاده از این لینک در سایت رسمی آردوینو کتابخانه ی مورد نظر خود را پیدا کنید.
نمونه كدنويسي شیلد Ethernet W5100 با آردوينو
در اینجا نمونه ای از کدگذاری یک شیلد اترنت W5100 با آردوینو آورده شده است:
#include <SPI.h> //protocol to communicate to the ethernet module #include <Ethernet.h> //library to run webclient / web server over ethernet byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address set to the ethernet module /*the number 0 in the IP address depends on the host of the network you are connected to, check that by doing ipconfig on command prompt*/ byte ip[] = { 192, 168, 0, 12 }; // IP address in LAN – need to change according to your Network address byte gateway[] = { 192, 168, 0, 12 }; // internet access via router byte subnet[] = { 255, 255, 255, 0 }; //subnet mask EthernetServer server(80); //port where the server can be accessed String readString; // to read the response form the user / client int ledPin = 2; // Led is connected to pin 2 void setup(){ pinMode(ledPin, OUTPUT); //pin selected to control //start Ethernet Ethernet.begin(mac, ip, gateway, subnet); //initialize ethernet server.begin(); //start the server } void loop(){ // Create a client connection EthernetClient client = server.available(); //check if someone is tried access the assigned IP address over a browser if (client) { //if connected, continue checking if client is sending some message back to the server while (client.connected()) { if (client.available()) { char c = client.read(); //read char by char HTTP request if (readString.length() < 100) { //store characters to string readString += c; } //if HTTP request has ended– 0x0D is Carriage Return \n ASCII if (c == 0x0D) { //display the webpage client.println("HTTP/1.1 200 OK"); //send new page 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>"); //creating a link to redirect the user to turn on the light client.println("<H2 style=\"text-align:center\"><a href=\"/?LEDON\"\">Turn On LED</a><br></H2>"); //creating a link to redirect the user to turn off the light client.println("<H2 style=\"text-align:center\"><a href=\"/?LEDOFF\"\">Turn Off LED</a><br></H2>"); client.println("<br>"); client.println("</BODY>"); client.println("</HTML>"); delay(10); //stopping client client.stop(); // control arduino pin with URL if(readString.indexOf("?LEDON") > -1) //checks for LEDON { digitalWrite(ledPin, HIGH); // set pin high } else{ if(readString.indexOf("?LEDOFF") > -1) //checks for LEDOFF { digitalWrite(ledPin, LOW); // set pin low } } //clearing string for next read readString=""; } } } } }
این مثال با استفاده از تراشه W5100 به سپر اترنت مقداردهی اولیه میکند و به آن متصل میشود. یک آدرس MAC و در صورت تمایل، یک آدرس IP ثابت را تنظیم می کند. تابع setup() اتصال اترنت را شروع میکند، یک اتصال سریال را برای اشکالزدایی باز میکند و به سرور متصل میشود (به جای «www.example.com» آدرس سرور واقعی را جایگزین کنید). تابع loop() دادههای دریافتی از سرور را بررسی میکند، آنها را میخواند و در مانیتور سریال چاپ میکند و قطع ارتباط با سرور را بررسی میکند. اگر سرور قطع شود، اتصال مشتری را متوقف می کند.
١٠ تا پروژه آردوينو با استفاده از شیلد Ethernet W5100
1. مانیتور دما و رطوبت مبتنی بر وب: از سنسور DHT11 یا DHT22 برای اندازه گیری دما و رطوبت استفاده کنید و داده ها را در یک صفحه وب که توسط آردوینو میزبانی می شود نمایش دهید.
2. سیستم اتوماسیون خانگی مبتنی بر MQTT: با استفاده از پروتکل MQTT از طریق سپر اترنت، چراغ ها، لوازم خانگی و سایر دستگاه ها را در خانه خود کنترل کنید.
3. سیستم هشدار مبتنی بر توییتر: یک توییت به آردوینو خود بفرستید تا یک زنگ هشدار ایجاد کند یا چراغ های خانه شما را روشن کند.
4. Email Notifier: هنگام دریافت ایمیل های جدید، اعلان های ایمیل را در آردوینو خود دریافت کنید. همچنین می توانید فرستنده و موضوع را روی یک صفحه LCD نمایش دهید.
5. ربات تحت کنترل وب: رباتی بسازید که از راه دور از طریق یک رابط وب میزبان آردوینو قابل کنترل باشد.
6. ایستگاه هواشناسی: آردوینو خود را به اینترنت متصل کنید و داده های آب و هوا، مانند دما، رطوبت و سرعت باد را از API های آنلاین آب و هوا بازیابی کنید.
7. نظارت بر دما از راه دور: با استفاده از آردوینو و محافظ اترنت، دما را در یک مکان از راه دور کنترل کنید. می توانید دما را روی یک صفحه LCD نمایش دهید یا آن را برای ثبت داده ها به یک سرور راه دور ارسال کنید.
8. مانیتور انرژی خانگی: با استفاده از سپر اترنت، مصرف انرژی لوازم خانگی خود را در زمان واقعی اندازه گیری و نمایش دهید.
9. ثبتکننده داده: دادههای حسگر، مانند دما یا شدت نور، را با استفاده از سپر اترنت به کارت SD ثبت کنید. بعداً می توانید داده ها را برای تجزیه و تحلیل بازیابی کنید.
10. سیستم کنترل دسترسی RFID: یک سیستم کنترل دسترسی با استفاده از کارت ها یا برچسب های RFID ایجاد کنید. کاربران برای دسترسی به درب یا فعال کردن دستگاه باید کارتهای خود را بکشند. سپر اترنت را می توان برای ذخیره اطلاعات کاربر و رسیدگی به احراز هویت استفاده کرد.
سوالات پیشنهادات و یا انتقادات خود را میتوانید در قسمت نظرات با ما به اشتراک بگذارید