راه اندازی شیلد شبکه W5100 با آردوینو
این شیلد جهت اتصال برد آردوینو شما به شبکه اینترنت میباشد.تنها با وصل کردن ماژول به برد آردوینو و اتصال به شبکه توسط یک کابل اترنت استاندارد RJ45 و بکارگیری چند دستور ساده در کامپایلر آردوینو می توانید جهان پیرامون خود را از طریق اینترنت کنترل کنید.این شیلد با استفاده ازچیپ Wiznet W5100 اینترنت را به آردوینو به ارمغان می آورد.Wiznet W5100 یک شبکه (IP) با امکان TCP و UDP فراهم می کند. از چهار اتصال همزمان سوکت پشتیبانی می کند. با استفاده از کتابخانه Ethernet می توانید برنامه اتصال به اینترنت را از طریق شیلد بنویسید. این برد دارای شکاف SD-card است که می تواند برای ذخیره فایل ها برای سرو کردن در شبکه مورد استفاده قرار گیرد. این شیلد همچنین دارای یک کنترلر ریست برای اطمینان از اینکه ماژول در هنگام روشن شدن به درستی ریست شده است می باشد .نسخه های قدیمی این شیلد فاقد سازگاری با بردهای مگا بوده و نیاز به ریست دستی بعد از روشن شدن می باشند.
نحوه ای ارتباط با آردینو
آردیونو با W5100 و SD card با استفاده از گذرگاه SPI ارتباط برقرار می کند.( از طریق هدر ICSP) .با پین دیجیتال 11، 12 و 13 روی Duemilanove و پین 50،51 و 52 روی مگا. بر روی هر دو برد پین 10 برای انتخاب W5100 و پین 4 برای SD card استفاده شده است. توجه داشته باشد که گذرگاه SPI بین W5100 و SD card به اشتراک گذاشته می شود و فقط یکی می تواند در یک زمان فعال باشد.این شیلد دارای تعدادی LED هشدار بصورت زیر است:
- PWR نشان می دهد که برد و شیلد به منبع تغذیه متصلند.
- LINK وجو یک لینک شبکه را نشان می دهد و وقتی شیلد دیتا می فرستد یا دریافت می کند چشمک می زند.
- FULLD نشان می دهد که اتصال شبکه دو رشته ای کامل است.
- 100M نشان دهنده ی حضور یک اتصال شبکه 100Mb/s ( درمقابل 10Mb/s ).
- RX وقتی شیلد دیتا دریافت می کند چشمک می زند.
- TX وقتی شیلد دیتا ارسال می کند چشمک می زند.
- COLL وقتی collision در شبکه شناسایی شود چشمک می زند.
ویژگی ها:
- ولتاژ تغذیه: 5 ولت که از برد آردوینو دریافت می کند
- نرخ اطلاعات اترنت: 10/100Mbps
- تبادل اطلاعات با برد آردوینو از طریق پروتکل SPI
- دارای شکاف کارت حافظه SD-card
- کانکتور استاندارد Rj45 (شبکه LAN)
- 7 نشانگر ال ای دی
کاربرد:
- سیستم های هوشمند
- کنترل و مانیتورینگ
- سیستم های امنیتی
- خانه های هوشمند
- و…
راه اندازی شیلد شبکه W5100 با آردوینو
برد آردوینو را با کابل USB به کامپیوتر خود وصل کنید و شیلد شبکه را با کابل LAN به روتر خود وصل کنید. برای تست کارکرد شیلد شبکه آردوینو مثال DhcpAddressPrinter را انتخاب کنید.
File –> Examples –> Ethernet –> DhcpAddressPrinter
بعد از باز شدن برای بار اول باید MAC آدرس شیلد آردوینو خود را در برنامه در قسمتی که در زیر مشخص شده وارد کنید. مک آدرس روی شیلد آردوینو نوشته شده است.
// Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
بعد از وارد کردن MAC آدرس برنامه را روی برد آردوینوی خود آپلود کنید بعد از این کار با باز کردن سریال مانیتور باید IP شیلد شبکه W5100 نمایش داده شود.
مانیتور اتاق با شیلد شبکه W5100 و آردوینو
در این پروژه از سنسور مادون قرمز HC-SR501 و مقاومت نوری برای تشخیص نور و حرکت در داخل اتق استفاده می شود. نحوه اتصال به برد آردوینو
کد راه اندازی مانیتور اتاق با شیلد شبکه W5100 و آردوینو
#include <SPI.h> #include <Ethernet.h> // ethernet configuration byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; IPAddress ip(192,168,1,111); // P1 --> { 10, 1, 1, 5 }; EthernetServer server(3178); // port 80 is default for HTTP // initial int LED = 3; // led is connected to digital pin 3 int PIR = 2; // PIR sensor is connected to digital pin 2 int LDR = 5; // LDR sensor is connected to analog in 5 int PIRstate = 0; // variable for PIR sensor status float photocell = 0; // variable for photocell (LDR) analog value char c = 0; // received data char command[2] = "\0"; // command void setup() { Ethernet.begin(mac, ip); server.begin(); pinMode(LED, OUTPUT); pinMode(PIR, INPUT); } void loop() { EthernetClient client = server.available(); // detect if current is the first line boolean current_line_is_first = true; if (client) { // an http request ends with a blank line boolean current_line_is_blank = true; while (client.connected()) { if (client.available()) { char c = client.read(); // if we've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so we can send a reply if (c == '\n' && current_line_is_blank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); // auto reload webpage every 5 second client.println("<META HTTP-EQUIV=REFRESH CONTENT=5 URL=>"); // webpage title client.println("<center><p><h1>Arduino + Ethernet Shield Application v1.0</h1></p><center><hr><br />"); // read analog pin 1 for the value of photocell photocell = analogRead(LDR); client.print("<p><h2>Light reading = <font color=indigo>"); client.println(photocell, 2); client.println("</font></h2></p>"); // read digital pin 13 for the state of PIR sensor PIRstate = digitalRead(2); if (PIRstate == HIGH) { // PIR sensor detected movement client.println("<p><h2><font color=red>Motion Detected!</font></h2></p>"); } else { // No movement is detected client.println("<p><h2><font color=green>No Movement</font></h2></p>"); } // button functions client.println("<form method=get name=form>"); client.println("<button name=b value=1 type=submit style=height:80px;width:150px>LED On</button>"); client.println("<button name=b value=2 type=submit style=height:80px;width:150px>LED Off</button>"); client.println("</form><br />"); // webpage footer client.println("<hr><center><a href=http://www.robothead2toe.com.my>Robot.Head to Toe</a><br />"); client.println("<p>P.S.: This page will automatically refresh every 5 seconds.</p></center>"); break; } if (c == '\n') { // we're starting a new line current_line_is_first = false; current_line_is_blank = true; } else if (c != '\r') { // we've gotten a character on the current line current_line_is_blank = false; } // get the first http request if (current_line_is_first && c == '=') { for (int i = 0; i < 1; i++) { c = client.read(); command[i] = c; } // LED control if (!strcmp(command, "1")) { digitalWrite(LED, HIGH); } else if (!strcmp(command, "2")) { digitalWrite(LED, LOW); } } } } // give the web browser time to receive the data delay(1); client.stop(); } }
برای مانیتور کردن وضعیت اتاق کافی است IP برد آردوینو را در مرورگر خود وارد کنید. (به عنوان مثال: 192.168.1.111) اگر حرکتی تشخیص داده نشود عبارت NO Movement نشادن داده می شود.
اگر حرکتی تشخیص داده شود عبارت motion detected نمایش داده میشود.
سلام من این کد رو کپی کردم و از ماژول enc28j60 استفاده کردم متاسفانه هیچ جوابی نمیگیرم کابل لن رو هم عوض کردم اتصالات رو چک کردم کتابخونش رو هم دانبود کردم ولی حتی تو cmd پیتگ میکنم هم خبری نمیشه ip رو هم دستی وارد کرم
سلام.روی ماژول اترنت مدل 5100 مک آدرس نداره. راهنمایی لطفا