facebook pixel מדריך: ספריה - Ethernet - דוגמה - DhcpAddressPrinter - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

ספריה - Ethernet - דוגמה - DhcpAddressPrinter


2023-06-26 16:20:32
בדוגמה זו תשתמשו במגן ה-Ethernet כדי להשיג כתובת IP דרך DHCP ולהציג אותו על צג הסריאלי.

כשקוראים לפונקציה Ethernet.begin(mac), ספריית ה-Ethernet מנסה להשיג כתובת IP בעזרת DHCP. שימוש ב-DHCP מוסיף די הרבה לגודל התוכנית, בדקו האם נשאר מספיק מקום להוספת דברים נוספים. לפונקציה ()localIP מחזירה את כתובת ה-IP שהכרטיס קיבל.


ציוד נדרש

כרטיס פיתוח Arduino.
מגן Ethernet


מעגל

מגן ה-Etheret מאפשר לכם לחבר את בקר ה-Ethernet של חברת WizNet לכרטיס ה-Arduino דרך ערוץ תקשורת SPI. המגן משתמש בקווים 10, 11, 12 ו-13 לתקשורת SPI עם בקר של WizNet. דגמים האחרונים של מגן ה-Ethernet כוללים גם חיבור לכרטיס זכרון microSD. בכרטיסים אלה קו מספר 4 משמש לבחירת הרכיב המתקשר על המגן (Slave Select).

מגן ה-Ethernet צריך להיות מורכב על כרטיס הארדואינו ומחובר לרשת ה-Ethernet. תצטרכו לשנות את הגדרות הרשת בתוכנה כדי להתאים אותם לרשת שלכם.


שרטוט

אין צורך בשרטוט לדוגמה זו.

קוד

קוד: בחר הכל
/*
  DHCP-based IP printer

  This sketch uses the DHCP extensions to the Ethernet library
  to get an IP address via DHCP and print the address obtained.
  using an Arduino Wiznet Ethernet shield.

  Circuit:
   Ethernet shield attached to pins 10, 11, 12, 13

  created 12 April 2011
  modified 9 Apr 2012
  by Tom Igoe
  modified 02 Sept 2015
  by Arturo Guadalupi

*/

#include <SPI.h>
#include <Ethernet.h>

// 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
};

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

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

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for (;;)
      ;
  }
  // print your local IP address:
  printIPAddress();
}

void loop() {

  switch (Ethernet.maintain())
  {
    case 1:
      //renewed fail
      Serial.println("Error: renewed fail");
      break;

    case 2:
      //renewed success
      Serial.println("Renewed success");

      //print your local IP address:
      printIPAddress();
      break;

    case 3:
      //rebind fail
      Serial.println("Error: rebind fail");
      break;

    case 4:
      //rebind success
      Serial.println("Rebind success");

      //print your local IP address:
      printIPAddress();
      break;

    default:
      //nothing happened
      break;

  }
}

void printIPAddress()
{
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print(".");
  }

  Serial.println();
}



ראו גם:

מדריך לתחילת העבודה עם מגן Ethernet (אנגלית) - TODO
ספריית Ethernet
ChatServer - יצירת שרת צ'ט פשוט
AdvancedChatServer - שרת שמעביר את הנתונים לכל הלקוחות המחוברים חוץ מזה ששולח אותם
WebClient - שולח בקשות HTTP
WebClientRepeating - חוזר על שליחת בקשות HTTP
WebServer - שרת WEB פשוט שמציג עמוד HTML עם ערך של חיישן אנלוגי
BarometricSensorWebServer - מציג תוצאות של חיישן לחץ ברומטרי כעמוד WEB
UDPSendReceiveString - קבלה ומשלוח הודעות טקסט דרך UDP
UdpNtpClient - קבלת זמן משרת NTP (שרת Network Time Protocol)
DnsWebClient - צד ב-Client שמבוסס על DHCP ו-DNS
DhcpChatServer - שרת צ'ט פשוט שמבוסס על DHCP
TelnetClient - צד ה-Client פשוט לחיבור ל-Telnet



פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של DHCP Address Printer לפי רישיון Creative Commons Attribution-ShareAlike 3.0.