1

Тема: w5100 -

Здравствуйте.


Вот часть стандартного скетча с использованием библиотеки Ethernet.h для работы с w5100:

void loop() {
  // прослушиваем входящих клиентов:
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");  //  "новый клиент"
    memset(linebuf,0,sizeof(linebuf));
    charcount=0;
    // HTTP-запрос заканчивается пустой строкой:
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
       // здесь обрабатываем входящий http-запрос
      }
    }
    // даем веб-браузеру время на получение данных: 
    delay(1);
    // закрываем соединение:
    client.stop();
    Serial.println("client disonnected");  //  "Клиент отключен"
  }
}

Я ещё ничего не собирал, лишь знакомлюсь с теорией. Помогите мне понять:

1. Одна петля проходит очень быстро. Но если мы используем в коде библиотеку "Ethernet" , то я вижу как минимум задержку в одну секунду. Я не могу понять - то есть если в скетче будет ещё функционал обработки состояния кнопок, то он будет не рабочим - так как всё основе время процесс будет в состоянии -  delay(1); ?   По крайней мере я вижу это так - если нажали на кнопку , а котроллер в это время занят обработкой http-запроса, то есть он тупо не увидет нажатие кнопки. Я прав?

2 В интернете много скетчей на развёртывание вебсервера на ардуине. Дайте пожалуйста ссылку на простой и понятный скетч , в котором ардуино сможет делать GET или POST-запросы к другому серверу в локальной сети.

Заранее спасибо.

2

Re: w5100 -

delay(1); = 1ms

http://rcl-radio.ru/?s=w5500

3 (2021-09-28 14:50:11 отредактировано Faab)

Re: w5100 -

Спасибо за быструю реакцию.

liman324 пишет:

delay(1); = 1ms

Всё, понял. Теперь понятно. То есть я могу расчитывать что поднятый вебсервер и обработка запросов не будут мешать другому функционалу в скетче.


liman324 пишет:

http://rcl-radio.ru/?s=w5500

Извините, но вот в упор не вижу в двух постах пример создания запросов из ардуино к другому серверу. 

Пример 1 Терморегулятор W5500 + DS18B20 (Arduino)
Здесь парсятся параметры урлы (GET-запроса из браузера в ардуино) и отдаётся тело для страницы браузера.


Пример 2 Веб-сервер на W5500 (Arduino)
Здесь три скетча и все три делают тоже самое что и в примере выше: вебсервер на ардуине обрабатывает запросы браузера и возращает тело страницы. Мне нужно наоборот создавать запросы и получать ответы.

4

Re: w5100 -

Нашёл пример, но в нём запрос делается в методе setup():
https://www.arduino.cc/en/Tutorial/Libr … /WebClient