شیلد اترنت آردوینو R3

این شیلد جهت اتصال برد آردوینو شما به شبکه اینترنت میباشد.تنها با وصل کردن ماژول به برد آردوینو و اتصال به شبکه توسط یک کابل اترنت استاندارد RJ45 و بکارگیری چند دستور ساده در کامپایلر آردوینو می توانید جهان پیرامون خود را از طریق اینترنت کنترل کنید.این شیلد با استفاده ازچیپ Wiznet W5100 اینترنت را به آردوینو به ارمغان می آورد.Wiznet W5100 یک شبکه (IP) با امکان TCP و UDP فراهم می کند. از چهار اتصال همزمان سوکت پشتیبانی می کند. با استفاده از کتابخانه Ethernet می توانید برنامه اتصال به اینترنت را از طریق شیلد بنویسید. این برد دارای شکاف SD-card است که می تواند برای ذخیره فایل ها برای سرو کردن در شبکه مورد استفاده قرار گیرد. این شیلد همچنین دارای یک کنترلر ریست برای اطمینان از اینکه ماژول در هنگام روشن شدن به درستی ریست شده است می باشد .نسخه های قدیمی این شیلد فاقد سازگاری با بردهای مگا بوده و نیاز به ریست دستی بعد از روشن شدن می باشند.

ولتاژ اعمالیکنترلر اترنتسرعت ارتباطابعادوزن
5VW5100 با بافر 16K داخلی10/100 Mb73mm x 54mm x 17mm26 گرم

جدول زیر LEDهای هشدار این شیلد به همراه توضیح آنها نشان داده شده است.

LED هشدارتوضیح
PWRنشان می دهد که برد و شیلد به منبع تغذیه متصلند
LINKوجود یک لینک شبکه را نشان می دهد و وقتی شیلد دیتا می فرستد یا دریافت می کند چشمک می زند
FULLDنشان می دهد که اتصال شبکه دو رشته ای کامل است
100Mنشان دهنده ی حضور یک اتصال شبکه 100Mb/s ( درمقابل 10Mb/s )
RXوقتی شیلد دیتا دریافت می کند چشمک می زند
TXوقتی شیلد دیتا ارسال می کند چشمک می زند
COLLوقتی collision در شبکه شناسایی شود چشمک می زند

نحوه ای ارتباط با آردوینو

آردیونو با W5100 و SD card با استفاده از گذرگاه SPI ارتباط برقرار می کند.( از طریق هدر ICSP) .با پین دیجیتال 11، 12 و 13 روی Duemilanove و پین 50،51 و 52 روی مگا. بر روی هر دو برد پین 10 برای انتخاب W5100 و پین 4 برای SD card استفاده شده است. توجه داشته باشد که گذرگاه SPI بین W5100 و SD card به اشتراک گذاشته می شود و فقط یکی می تواند در یک زمان فعال باشد.

آغاز به کار با شیلد اترنت آردوینو

همانطور که گفته شد این شیلد امکان اتصال برد آردوینو را به اینترنت فراهم می کند و با استفاده از کتابخانه SD توانایی خواندن و نوشتن اطلاعات کارت SD را دارد.

1. اتصال شیلد

برای استفاده از شیلد باید آن را روی آردوینو (برای مثال آردوینو Uno) قرار دهید. سپس اسکچ ها را روی برد آپلود کنید و با استفاده از کابل USB آن را به کامپیوتر متصل کنید. زمانی که اسکچ آپلود شد می توانید ارتباط با کامپیوتر را قطع کنید و ولتاژ را با استفاد از یک منبع تغذیه خارجی تامین کنید.


با استفاده از یک کابل اترنت استاندارد، شیلد را به کامپیوتر یا شبکه هاب یا روتر متصل کنید (CAT5 یاCAT6 با کانکتورهای RJ45 ) .

2. تنظیمات شبکه

با استفاده از تابع Ethernet.begin() function باید به شیلد یک مک آدرس و یک آدرس IP ثابت اختصاص داده شود. مک آدرس یک شناسه منحصر به فرد برای یک دستگاه خاص است. مک آدرس شیلدهای اترنت فعلی با استفاده از یک برچسب نشان داده شده است که میتوانید از آن استفاده کنید. برای شیلدهای قدیمی تر بدون مک آدرس اختصاصی، باید به صورت تصادفی چیزی بسازید که کار کند، اما نباید از آن برای چند برد استفاده کنید.

آدرس IP به پیکربندی شبکه شما بستگی دارد.

3. کارت SD

آخرین نسخه ی شیلد اترنت شامل اسلات (slot) کارت میکرو SD است که میتواند با استفاده از کتابخانه SD مورد استفاده قرار گیرد. 

مثال1

در این مثال ایجاد یک سرور چت با استتفاده از کتابخانه Ethernet ابرای توزیع پیام های ورودی به تمام کلاینت هایی که به آن متصل هستند، نشان داده شده است.


#include < spi.h> 
#include < Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network.
// gateway and subnet are optional:
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
IPAddress gateway(192,168,1, 1);
IPAddress subnet(255, 255, 0, 0);


// telnet defaults to port 23
EthernetServer server(23);
boolean alreadyConnected = false; // whether or not the client was connected previously

void setup() {
  // initialize the ethernet device
  Ethernet.begin(mac, ip, gateway, subnet);
  // start listening for clients
  server.begin();
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Chat server address:");
  Serial.println(Ethernet.localIP());
}

void loop() {
  // wait for a new client:
  EthernetClient client = server.available();

  // when the client sends the first byte, say hello:
  if (client) {
    if (!alreadyConnected) {
      // clead out the input buffer:
      client.flush();    
      Serial.println("We have a new client");
      client.println("Hello, client!"); 
      alreadyConnected = true;
    } 

    if (client.available() > 0) {
      // read the bytes incoming from the client:
      char thisChar = client.read();
      // echo the bytes back to the client:
      server.write(thisChar);
      // echo the bytes to the server as well:
      Serial.write(thisChar);
    }
  }
}

مثال2

در این مثال خواندن و نوشتن بر روی فایل SD Card با استفاده از کتابخانه SDCard نشان داده شده است. این مثال نشان می دهد که چگونه می توان بر روی SD Card دیتا نوشت یا از روی آن خواند.

برای انجام این کار به یک برد آردوینو یا Genuino ، شیلد اترنت و کارت SD فرمت شده نیاز دارید.

شماتیک این شیلد در تصویر زیر نشان داده شده است.


/*
  SD card read/write

 This example shows how to read and write data to and from an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4

 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

 */

#include 
#include 

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);

  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }

  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop() {
  // nothing happens after setup
}

فایل های مورد نیاز:

منبع: http://thecaferobot.com

  • سید صادق غفوری
  • 5 سپتامبر 2020
  • 1015 بازدید

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

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

جستجو در سایت

دسته بندی ها

درحال بارگذاری ...