راه اندازی شیلد شبکه 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 نمایش داده میشود.
درود
با تشکر از سایت خوبتون
جسارتا در متن ابهامی برام ایجاد شد.
ممکنه لطفا این بخش رو بیشتر توضیح بدین ؟
پیشاپیش از لطفتون سپاسگزارم
آردیونو با W5100 و SD card با استفاده از گذرگاه SPI ارتباط برقرار می کند.( از طریق هدر ICSP) .با پین دیجیتال 11، 12 و 13 روی Duemilanove و پین 50،51 و 52 روی مگا. بر روی هر دو برد پین 10 برای انتخاب W5100 و پین 4 برای SD card استفاده شده است. توجه داشته باشد که گذرگاه SPI بین W5100 و SD card به اشتراک گذاشته می شود و فقط یکی می تواند در یک زمان فعال باشد.
برای مانیتورینگ و کنترل کردن اشیا توسط این شیلد از طریق اینترنت همراه و بیرون از اونجایی که کار گزاشتیم نیاز به آی پی استاتیک برای مودم مون که شیلد بهش متصل هست داریم ؟ یا نه با وارد کردن اون آیپی و پورت اتصال دیگه میشه از هرجایی کنترل کرد؟
با سلام
با تشکر از مطالب با ارزش سایتتون
آیا میشه همین کاربرد اتصال به اینترنت اردوینو را با ماژول GSM/GPRS هم انجام داد؟(یعنی با ماژول GSM/GPRS آردوینو به اینترنت متصل کرد) اگر امکان این قابلیت هست راهنمایی کنید
در ضمن بر روی شیلد اترنت یک امکان برای استفاده از سیم کارت وجود داره. آیا میشه از اینترنت سیم کارت بجای اینترنت مودم استفاده کرد؟ اگر امکان این قابلیت هست راهنمایی کنید
با تشکر فراوان
با سلام. مک آدرس شیلد رو باید از کجا پیدا کنیم؟ روی برد ننوشته!
سلام. این برنامه رو روی بورد آپلود کردم. پینگ ping داره ولی صفحه وب که برای کنترل هست باز نمیشه. دلیل خاصی داره؟ ممکنه به خاطر این باشه که از بورد نوع smd آردوینو uno استفاده میکنم؟ یا اینکه هنوز هیچ سنسوری (PIR یا LDR) روی بورد نبستم؟
سلام دوستان.من به یک برنامه نیاز دارم که با اینترنت از یه شهر دیگه 2 تا ledرو روشن خاموش کنم و البته وضیعت led رو هم ببینم.ضمنا می خوام برنامه امن غیر قابل دسترسی برای عموم باشه .
راستی ادرس ip بخرم میشه جای اون mac ipزد؟چون روی شیلد mac/ip وجود نداره در حقیقت مال هیچکسی نداره.
کمکم کنید ممنون میشم
سلام ببخشید آیا میتونم از طریق این شیلد تصویر را انتقال بدم
با تشکر از شما. مطالب بسیار خوبی بود . فقط تصویر اتصالها با کدی که نوشتید مطابقت نداره . در تصویر پایه های 3و 4وa5 متصل شده ولی در کد پایه های 2, 3 , 5
سلام اقای عزتی میشه بگید چطوری میشه یه led برای وصل و قطع اینترنت بزاریم موقعی که اینترنت وصل بشه led روشن بشه و موقعی که اینترنت نداشته باشم led قطع بشه با پین های دیجیتال چطوری میشه خروجی ازش بگیریم