Микроконтроллеры Arduino, 

Шилды, Модули, Комлектующие,

Электронные компоненты

Наши контакты: г. Москва,
ул. Молодогвардейская, д.57с10
Въезд авто только по пропуску!

Подключаем Arduino к сети, с помощью Ethernet модуля W5100

Опубликовано: 13.05.2019

Модуль W5100 предназначен для подключения Arduino к локальной сети/интернету с помощью кабеля. Такой модуль позволяет удаленно получать данные с нашей Arduino при наличии подключения к сети, в которой он находится, а также удаленно управлять различными устройствами, подключенными к контроллеру.

Характеристики:

  • Питание: 5В постоянного тока
  • Размеры: 5.2x3x1.5 см (Д*Ш*В).
  • Скорость передачи данных: до 25Mbps
  • Интерфейс подключения: SPI

Модуль имеет 10 выводов. Для подключения к Arduino нам необходимо использовать 6 из них:

+5 – Питание

G – “Земля”

MI – линия “MISO” интерфейса SPI

MO – линия “MOSI” интерфейса SPI

CK – линия “SCK” интерфейса SPI

SS – линия “SS” интерфейса SPI

Подключение к Arduino:

Для подключения и настройки модуля нам необходимы:

  • Любая Arduino-совместимая плата
  • Компьютер с установленной средой Arduino IDE
  • USB кабель для подключения Arduino к персональному компьютеру
  • Патч-корд (RJ45-RJ45)
  • Маршрутизатор/сетевой коммутатор (не обязательно)

Принципиальная схема подключения компонентов:

 

Патч-корд необходимо подключить с одной стороны к модулю w5100, а с другой к свободному входу маршрутизатора или, в случае, если его нет, к разъему сетевой карты вашего компьютера.

Скетч для Arduino:

Для работы с модулем будем использовать следующие библиотеки*:

Ethernet.h

Spi.h 

Эти библиотеки уже встроены в среду, скачивать их дополнительно не нужно.

*Библиотека Arduino – программный код, хранящийся не в скетче, а во внешних файлах, которые можно подключить к вашему проекту. Библиотека содержит в себе различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими электронными компонентами.

Скетч для пробного запуска модуля можно получить из меню примеров:

 

После выбора примера, обратите внимание на строку IPAddress

IP-адрес вам необходимо указать самостоятельно, в зависимости от ваших сетевых настроек. Узнать IP-адрес ваших сетевых устройств вы можете с помощью команды ipconfig (для Windows) в командной строке.

Выбирать адрес для модуля следует из доступного для вашей подсети диапазона IP-адресов.

Адрес сети (первые 3 байта) должен совпадать с настройками вашего сетевого устройства (маршрутизатора или сетевой карты компьютера)

Адресом хоста (последний байт) нужно указать любой свободный адрес в подсети.

Если вы подключаете модуль напрямую к сетевой карте компьютера, вам необходимо установить сетевые настройки вручную.

Для этого необходимо зайти в Панель управления компьютера и выбрать раздел “Настройки параметров адаптера”

 

В свойствах устройства вам необходимо зайти в раздел “IP версии 4 (TCP/IPv4)” и задать  IP-адрес, например: 192.168.100.1 (маску подсети для нашего примера можно задать любую)

Нажимаем “ОК”, чтобы сохранить изменения.

Теперь в скетче вы можете указать IP-адрес для нашего модуля. (для примера выше он будет таким: 192.168.100.2)

После загрузки скетча, наша Arduino превратится в веб-сервер.

С помощью любого браузера, введя в адресной строке IP-адрес нашего модуля, мы сможем увидеть результат работы скетча (в нашем случае это показания с аналоговых входов).

 

Еще один пример:

Теперь немного усложним задачу и создадим веб-сервер, выдающий показания с термометра DS18B20 (подробней о нём вы можете прочитать здесь).

Принципиальная схема подключения компонентов:

 

Скетч для Arduino:

 
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Ethernet.h>
OneWire oneWire(2);                                      
DallasTemperature ds(&oneWire);
// Введите MAC-адрес (или оставьте таким)
// IP-адрес зависит от ваших сетевых настроек
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 2, 100);
EthernetServer server(80);
 
void setup() {
  // Открытие последовательного порта
  Serial.begin(9600);
  ds.begin();   
  while (!Serial) {
    ; // Ожидание подключения последовательного порта
  }
  // запускаем инициализацию Ethernet-модуля
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("Server is at ");
  Serial.println(Ethernet.localIP());
}
 
void loop() {
  ds.requestTemperatures(); 
  EthernetClient client = server.available();
  if (client) {
    Serial.println("New client");
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // соединение будет закрыто после завершения запроса
          client.println("Refresh: 5");  // автоматически обновляет страницу каждые 5 секунд
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");                 // создание html страницы
            client.print("T=");                     // вводим текст страницы
            client.print(ds.getTempCByIndex(0));    // получаем числовое значение температуры с датчика
            client.println("<br />");
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        } else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    // даем время браузеру на получение информации
    delay(1);
    // закрытие соединения:
    client.stop();
    Serial.println("client disconnected");
  }
}
Комментарии (0)
Пока нет комментариев
Вы не представились
Не правильно введен e-mail
Нам интересно Ваше мнение
Все поля обязательны к заполнению
Перед публикацией комментарии проходят модерацию

Главное меню

Каталог

Полезные ссылки

Цена
от
до
0 Корзина: 0 руб.