Arduino:Примеры/DhcpAddressPrinter

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


IP-принтер на базе DHCP[1]

Этот скетч использует расширения DHCP из библиотеки Ethernet для получения IP-адреса через DHCP и дальнейшего отображения этого адреса (полученного при помощи Ethernet Shield) на Serial Monitor.

DHCP используется для присвоения IP-адреса при вызове функции Ethernet.begin(mac). Однако использование DHCP значительно увеличивает размер скетча. Кроме того, в этом примере будет задействована функция localIP(), позволяющая отправлять присвоенный IP-адрес через Serial Monitor.

Необходимое оборудование

  • Сетевой модуль Arduino Ethernet Shield;
  • Плата Arduino, совместимая с Shield;

Цепь

Shield позволяет подключить плату Arduino к Ethernet-контроллеру WizNet (через SPI), и это подключение осуществляется при помощи 10-ого, 11-ого, 12-ого и 13-ого контактов. У более поздних моделей Shield имеется встроенный слот для SD-карты, SS-контакт которой в данном примере управляется через 4-ый цифровой контакт.

Shield должен быть подключен к сети при помощи Ethernet-кабеля. Также вам надо поменять сетевые настройки в скетче, чтобы они соответствовали настройкам вашей сети.

ArduinoPlusEthernetShield.png

Shield устанавливается поверх платы Arduino.

Код

 1 /*
 2 IP-принтер на базе DHCP
 3  
 4 Этот скетч использует DHCP-расширения из библиотеки Ethernet
 5 для получения IP-адреса через DHCP и последующей «печати» этого адреса на Serial Monitor.
 6 В скетче используется Arduino Ethernet Shield на базе WizNet.
 7  
 8 Цепь:
 9 * Shield, подключенный к 10-ому, 11-ому, 12-ому и 13-ому контактам
10 
11 Создан 12 апреля 2011,
12 модифицирован 9 апреля 2012 Томом Иго (Tom Igoe).
13 */
14 
15 #include <SPI.h>
16 #include <Ethernet.h>
17 
18 // В строке ниже введите MAC-адрес вашего контроллера
19 // (у самых последних моделей Shield он напечатан на стикере): 
20 byte mac[] = {  
21   0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
22 
23 // Инициализируем библиотеку EthernetClient 
24 // для подключения к необходимым для нас IP-адресу и порту 
25 // (порт 80 является HTTP-портом по умолчанию):
26 EthernetClient client;
27 
28 void setup() {
29  // Инициализируем последовательную передачу данных и ждем открытия порта:
30   Serial.begin(9600);
31   // Эта проверка нужна только для Leonardo:
32    while (!Serial) {
33     ; // ждем подключения последовательного порта (требуется только для Leonardo)
34   }
35 
36   // Запускаем Ethernet-соединение:
37   if (Ethernet.begin(mac) == 0) {
38     Serial.println("Failed to configure Ethernet using DHCP");  //  "Не удалось сконфигурировать Ethernet при помощи DHCP"
39     // Смысла продолжать нет, поэтому далее ничего не делаем:
40     for(;;)
41       ;
42   }
43   // Выводим на Serial Monitor ваш локальный IP-адрес:
44   Serial.print("My IP address: ");  //  "Мой IP-адрес: "
45 
46   for (byte thisByte = 0; thisByte < 4; thisByte++) {
47     // Выводим значение каждого байта IP-адреса:
48     Serial.print(Ethernet.localIP()[thisByte], DEC);
49     Serial.print("."); 
50   }
51   Serial.println();
52 }
53 
54 void loop() {
55 
56 }

См.также

  1. Arduino Ethernet Shield
  2. Getting started with the ethernet shield
  3. Ethernet library
  4. ChatServer
  5. WebClient
  6. WebServer
  7. PachubeCient?
  8. TwitterClient
  9. BarometricPressureWebServer

Внешние ссылки