KS0304 Keyestudio W5500 Ethernet Geliştirme Kartı (POE'siz)

KS0304 Keyestudio W5500 Ethernet Geliştirme Kartı (POE'siz)

Arayüzler

thumb

Çip Hakkında:

  • 1.ATMEGA328P-AU
  • 2.Atmega16U2
  • USB'den seri yongaya 
  • 3.AMS1117
  • 4.5V ve 3.3V stabilivolt çip 
  • 5.W5500 ağ yongası


Arayüz Hakkında:

1. ICSP arayüzü

  • Firmware'i ATMEGA328P-AU'ya programlayın

2. Dijital arayüz D0-D13

  • Seri iletişim : D0 (RX) ve D1 (TX)
  • Harici kesinti : D2 (kesinti 0) 、 D3 (kesinti 1) 
  • PWM arayüzü : D3 、 D5 、 D6 、 D9 、 D10 、 D11
  • SPI iletişimi : D10 (SS) 、 D11 (MOSI) 、 D12 (MISO) 、 D13 (SCK)

3. ICSP arayüzü

  • Aygıt yazılımını Atmega16U2'ye programlayın

4. USB girişi

  • Program indirme veya seri hata ayıklama için

5. DC güç konektörü

  • 7V-12V voltajına erişim

6. Güç çıkışı bağlantı noktası

  • Harici güç kaynağı veya ortak toprak tutacağı için çıkış 3.3V veya 5V ,

7. Analog arayüz A0-A5

  • IIC iletişimi : A4 (SDA) ve A5 (SCL) 
  • Ayrıca dijital arayüz olarak kullanılabilir : A0 (D14) 、 A1 (D15) 、 A2 (D16) 、 A3 (D17) 、 A4 (D18) 、 A5 (D19)

8. Ağ konektörü

  • RJ - 45 ağ bağlantı noktası


Bileşen Hakkında:

  • 1. sıfırlama düğmesi
  • 2.16MHz kristal osilatör 
  • 3.25MHz kristal osilatör  


Test Kodu

Aşağıda örnek bir kod var, kopyalayıp yapıştırabilirsiniz Arduino IDE.

Kod A:

#include 
#include 

// set MAC address 
#if defined(WIZ550io_WITH_MACADDRESS) // Use assigned MAC address of WIZ550io
;
#else
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
#endif  

void setup() 
{  
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) 
  {
      Serial.println("Failed to configure Ethernet using DHCP");
      // connection fails, stop program run. 
      for(;;);
  }

  // print out your local IP address
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) 
  {
    // print out four byte IP address
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print("."); 
  }

  Serial.println();
}

void loop() 
{
}

 Kod B:

 
//in testing, check IP address of reticle through GET_IP routine
//for example, the tested IP address is 192.168.1.113
//namely intranet address allocated to testing reticle
#include 
#include 
#include 
#include 

/************ ETHERNET STUFF ************/
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  //MAC address
byte ip[] = { 192, 168, 1, 113 };     //IP address
EthernetServer server(80);

/************ SDCARD STUFF ************/
Sd2Card card;
SdVolume volume;
SdFile root;
SdFile file;

// store error strings in flash to save RAM
#define error(s) error_P(PSTR(s))

void error_P(const char* str) {
  PgmPrint("error: ");
  SerialPrintln_P(str);
  if (card.errorCode()) {
    PgmPrint("SD error: ");
    Serial.print(card.errorCode(), HEX);
    Serial.print(',');
    Serial.println(card.errorData(), HEX);
  }
  while(1);
}

void setup() {
  Serial.begin(9600);

  PgmPrint("Free RAM: ");
  Serial.println(FreeRam());  

  // initialize the SD card at SPI_HALF_SPEED to avoid bus errors with
  // breadboards.  use SPI_FULL_SPEED for better performance.
  pinMode(10, OUTPUT);                       // set the SS pin as an output (necessary!)
  digitalWrite(10, HIGH);                    // but turn off the W5500 chip!

  if (!card.init(SPI_HALF_SPEED, 4)) error("card.init failed!");

  // initialize a FAT volume
  if (!volume.init(&card)) error("vol.init failed!");

  PgmPrint("Volume is FAT");
  Serial.println(volume.fatType(),DEC);
  Serial.println();

  if (!root.openRoot(&volume)) error("openRoot failed");

  // list file in root with date and size
  PgmPrintln("Files found in root:");
  root.ls(LS_DATE | LS_SIZE);
  Serial.println();

  // Recursive list of all directories
  PgmPrintln("Files found in all dirs:");
  root.ls(LS_R);

  Serial.println();
  PgmPrintln("Done");

  // Debugging complete, we start the server!
  Ethernet.begin(mac, ip);
  server.begin();
}

void ListFiles(EthernetClient client, uint8_t flags) {
  // This code is just copied from SdFile.cpp in the SDFat library
  // and tweaked to print to the client output in html!
  dir_t p;

  root.rewind();
  client.println("");
}

// How big our line buffer should be. 100 is plenty!
#define BUFSIZ 100

void loop()
{
  char clientline[BUFSIZ];
  int index = 0;

  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;

    // reset the input buffer
    index = 0;

    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        // If it isn't a new line, add the character to the buffer
        if (c != '\n' && c != '\r') {
          clientline[index] = c;
          index++;
          // are we too big for the buffer? start tossing out data
          if (index >= BUFSIZ) 
            index = BUFSIZ -1;

          // continue to read more data!
          continue;
        }

        // got a \n or \r new line, which means the string is done
        clientline[index] = 0;

        // Print it out for debugging
        Serial.println(clientline);

        // Look for substring such as a request to get the root file
        if (strstr(clientline, "GET / ") != 0) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // print all the files, use a helper to keep it clean
          client.println("

Files:

"); ListFiles(client, LS_SIZE); } else if (strstr(clientline, "GET /") != 0) { // this time no space after the /, so a sub-file! char *filename; filename = clientline + 5; // look after the "GET /" (5 chars) // a little trick, look for the " HTTP/1.1" string and // turn the first character of the substring into a 0 to clear it out. (strstr(clientline, " HTTP"))[0] = 0; // print the file we want Serial.println(filename); if (! file.open(&root, filename, O_READ)) { client.println("HTTP/1.1 404 Not Found"); client.println("Content-Type: text/html"); client.println(); client.println("

File Not Found!

"); break; } Serial.println("Opened!"); client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/plain"); client.println(); int16_t c; while ((c = file.read()) > 0) { // uncomment the serial to debug (slow!) //Serial.print((char)c); client.print((char)c); } file.close(); } else { // everything else is a 404 client.println("HTTP/1.1 404 Not Found"); client.println("Content-Type: text/html"); client.println(); client.println("

File Not Found!

"); } break; } } // give the web browser time to receive the data delay(1); client.stop(); } }


Test Adımları ve Sonuç

1. Test etmeden önce gerekli kitaplıkları IDE kitaplık dizinine yerleştirin.
2. İlk test için DC7-12V 、 USB MICRO 、 TF kartı ve ağ kablosunu bağlayın. Ağa erişim varsa, ağ başlığındaki iki LED yanıyor, D5 、 D7 、 D8 、 D9 、 D10 LED yanıyor ve D8 LED'i yanıp sönüyor.
3. Ana kart üzerindeki A, D2 、 D3 、 D4 kodunu yükleyin ışığı yanar. Yükleme tamamlandı, seri monitörü açın, aşağıda gösterilen 192.168.1.113 ağ IP adresini görebilirsiniz.
thumb

4. Ardından, B kodunu yükleyin, B kodunun IP adresi, A kodunun IP adresi olarak revize edilmelidir. Yükleme tamamlandı, tarayıcı adres çubuğuna aldığınız IP adresini girin, web sayfasında mevcut SD kart içeriğini gösterecektir. TXT dosyasıysa, içeriğini kontrol etmek için tıklayabilirsiniz. Aşağıda gösterilen.
thumb

thumb


Örnek Gösteri


thumb


Kaynak

Test Kodu, Kitaplık:

https://fs.keyestudio.com/KS0304



Paket içeriği

  • Keyestudio W5500 ethernet geliştirme kartı *1adet
  • Siyah USB Kablo *1adet


图片1-ks0304.png


Blog Etiketleri :
IdeaSoft® | E-Ticaret paketleri ile hazırlanmıştır.