Eğitimler
DhcpAddressPrinter
Bu çizim, DHCP üzerinden bir IP adresi almak ve bir Arduino Ethernet kalkanı kullanarak elde edilen adresi yazdırmak için Ethernet kütüphanesine giden DHCP uzantılarını kullanır.
DHCP, Ethernet.begin (mac) çağrıldığında bir IP adresi atamak için kullanılır. DHCP kullanmak, çizimin boyutunu önemli ölçüde artırır. LocalIP () işlevini kullanarak, atanan IP adresi Seri Monitör üzerinden gönderilir.
Gerekli Donanım
- Arduino veya Genuino Kurulu
- Arduino Ethernet Kalkanı
Devre
Ethernet kalkanı, bir WIZNet Ethernet denetleyicisini SPI veri yolu üzerinden Arduino veya Genuino kartlarına bağlamanızı sağlar. Ethernet denetleyici yongasına SPI bağlantısı için yonga seçimi olarak ICSP başlık pimlerini ve pin 10'u kullanır. Ethernet kalkanının sonraki modellerinde de bir SD Kart bulunur. Dijital pim 4, SD karttaki ikincil seçim pimini kontrol etmek için kullanılır.
Kalkan bir Ethernet kablosuyla bir ağa bağlanmalıdır. Programdaki ağ ayarlarını ağınıza uygun olacak şekilde değiştirmeniz gerekecektir.
Fritzing kullanılarak geliştirilen görüntü . Daha fazla devre örneği için Fritzing proje sayfasına bakın
Yukarıdaki görüntüde, Arduino veya Genuino kartı Ethernet kalkanının altına istiflenecektir.
kod
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
};
void setup() {
// You can use Ethernet.init(pin) to configure the CS pin
//Ethernet.init(10); // Most Arduino shields
//Ethernet.init(5); // MKR ETH shield
//Ethernet.init(0); // Teensy 2.0
//Ethernet.init(20); // Teensy++ 2.0
//Ethernet.init(15); // ESP8266 with Adafruit Featherwing Ethernet
//Ethernet.init(33); // ESP32 with Adafruit Featherwing Ethernet
// 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
}
// start the Ethernet connection:
Serial.println("Initialize Ethernet with DHCP:");
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");
} else if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet cable is not connected.");
}
// no point in carrying on, so do nothing forevermore:
while (true) {
delay(1);
}
}
// print your local IP address:
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}
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:
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
break;
case 3:
//rebind fail
Serial.println("Error: rebind fail");
break;
case 4:
//rebind success
Serial.println("Rebind success");
//print your local IP address:
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
break;
default:
//nothing happened
break;
}
}
See Also
- Arduino Ethernet Shield- Ürün Açıklaması.
- Getting started with the Ethernet Shield- Her şeyi dakikalar içinde kurun.
- Ethernet library- Ethernet Kütüphanesi için referansınız.
- ChatServer- Gelen iletileri bağlı tüm istemcilere dağıtan basit bir sunucu.
- WebClient- Web'i sorgulayın ve seri monitörden cevap alın
- WebClientRepeating - Ethernet kalkanı kullanılarak tekrarlanan HTTP istekleri nasıl yapılır.
- WebServer- Analog girişin değerini gösteren basit bir web sunucusu.
- DhcpChatServer- Bir Telnet sunucusuna bağlanın ve alınan tüm mesajları seri monitörde yazdırın; DHCP kullanır.
- TelnetClient- Bir Telnet sunucusuna bağlanın ve alınan tüm mesajları seri monitörde yazdırın
- BarometricPressureWebServer- SPI kullanarak basınç sensöründen okunan verileri kaydedin.
- UDPSendReceiveString- UDP protokolü (Universal Datagram Packet) aracılığıyla metin dizeleri gönderip alın.
- UdpNtpClient- bir Ağ Zaman Protokolü (NTP) sunucusunu sorgulamak ve seri monitörden bilgi almak.