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

העגלה ריקה

לקוחות נכבדים, אלה שעות הפעילות של המחסן במהלך פסח 2024:
ערב חג וחג ראשון (22-23/04) - המחסן סגור
חול המועד (24-25/04) - המחסן יפעל בין 8:00 עד 15:00
ערב חג וחג שני (28-29/04) - המחסן סגור
נחזור לפעילות רגילה ביום שלישי 30/04
חג שמח!

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


2023-06-26 16:21:13
בדוגמה זו תשתמשו במגן ה-Ethernet כדי להתחבר לשרת Telnet. ההודעות מהשרת מודפסות לחיבור הטורי של הכרטיס. בעזרת החיבור הטורי אפשר גם לשלוח הודעות לשרת. מסך הסריאלי יכול לשמש היטב למשימה זו.

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


ציוד נדרש

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


מעגל

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

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


שרטוט

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

קוד

קוד: בחר הכל
/*
DHCP Chat  Server

A simple server that distributes any incoming messages to all
connected clients.  To use, telnet to your device's IP address and type.
You can see the client's input in the serial monitor as well.
Using an Arduino Wiznet Ethernet shield.

THis version attempts to get an IP address using DHCP

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

created 21 May 2011
modified 9 Apr 2012
by Tom Igoe
modified 02 Sept 2015
by Arturo Guadalupi
Based on ChatServer example by David A. Mellis

*/

#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[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};
IPAddress ip(192, 168, 1, 177);
IPAddress myDns(192,168,1, 1);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 0, 0);

// telnet defaults to port 23
EthernetServer server(23);
boolean gotAMessage = false; // whether or not you got a message from the client yet

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:
  Serial.println("Trying to get an IP address using DHCP");
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // initialize the Ethernet device not using DHCP:
    Ethernet.begin(mac, ip, myDns, gateway, subnet);
  }
  // print your local IP address:
  Serial.print("My IP address: ");
  ip = Ethernet.localIP();
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(ip[thisByte], DEC);
    Serial.print(".");
  }
  Serial.println();
  // start listening for clients
  server.begin();

}

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

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

    // 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.print(thisChar);
    Ethernet.maintain();
  }
}



ראו גם:

מדריך לתחילת העבודה עם מגן 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
DhcpAddressPrinter - מקבל כתובת דרך DHCP ומדפיס אותה
TelnetClient - צד ה-Client פשוט לחיבור ל-Telnet



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


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