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.

Код

/*
IP-принтер на базе DHCP
 
Этот скетч использует DHCP-расширения из библиотеки Ethernet
для получения IP-адреса через DHCP и последующей «печати» этого адреса на Serial Monitor.
В скетче используется Arduino Ethernet Shield на базе WizNet.
 
Цепь:
* Shield, подключенный к 10-ому, 11-ому, 12-ому и 13-ому контактам

Создан 12 апреля 2011,
модифицирован 9 апреля 2012 Томом Иго (Tom Igoe).
*/

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

// В строке ниже введите MAC-адрес вашего контроллера
// (у самых последних моделей Shield он напечатан на стикере): 
byte mac[] = {  
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

// Инициализируем библиотеку EthernetClient 
// для подключения к необходимым для нас IP-адресу и порту 
// (порт 80 является HTTP-портом по умолчанию):
EthernetClient client;

void setup() {
 // Инициализируем последовательную передачу данных и ждем открытия порта:
  Serial.begin(9600);
  // Эта проверка нужна только для Leonardo:
   while (!Serial) {
    ; // ждем подключения последовательного порта (требуется только для Leonardo)
  }

  // Запускаем Ethernet-соединение:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");  //  "Не удалось сконфигурировать Ethernet при помощи DHCP"
    // Смысла продолжать нет, поэтому далее ничего не делаем:
    for(;;)
      ;
  }
  // Выводим на Serial Monitor ваш локальный IP-адрес:
  Serial.print("My IP address: ");  //  "Мой IP-адрес: "

  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // Выводим значение каждого байта IP-адреса:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print("."); 
  }
  Serial.println();
}

void loop() {

}

См.также

  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

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