Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/DhcpAddressPrinter

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


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

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

  1. Arduino - DHCP Address Printer