Как использовать Arduino для проверки состояния ответа вашего веб-сервера

1656534511 kak ispolzovat arduino dlya proverki sostoyaniya otveta vashego veb servera

автор Харшита Арора

1*bQ91iaTCYt1SEHw-S3Rmxg
Фото Мэтью Шварца на Unsplash

В прошлом году я создал Crypto Price Tracker (приложение, которое в этом году приобрела Redwood City Ventures). Член моей команды использовал настройки Arduino, чтобы постоянно проверять статусы ответов веб-сервера, чтобы постоянно получать обновления. Я считаю, что эта настройка была достаточно полезна и интересна.

Я исследовал это и воспроизвел настройки для себя. В этой статье я покажу вам, как вы сможете выстроить его без помощи других.

Вещи, которые вам нужны:

  1. Arduino Uno
  2. Ethernet Shield для Arduino (для подключения Arduino к Интернету)
  3. Кабель Ethernet
  4. Кабель USB 2.0 типа A/B (кабель питания для Arduino)
  5. Переключающие кабели «папа-папа» (x2)
  6. Макет
  7. LED (x1, любой цвет)
  8. Резистор (x1, >100 Ом работает)

Настройка

  1. Установите/вставьте щит Ethernet на Arduino.
  2. Вставьте положительный (длинный) конец светодиода в гнездо макетной платы 6a, а отрицательный (более короткий) конец в слот 5a.
  3. Вставьте один конец резистор в гнездо макетной платы 1b, а другой в слот 5b.
  4. Вставьте один конец сначала перемычку в гнездо макетной платы 1e. Вставьте другой конец в гнездо GND экрана Ethernet.
  5. Вставьте один конец второй перемычку в гнездо макетной платы 6e. Вставьте другой конец в гнездо 2 на экране Ethernet.
  6. Подключите Ethernet кабель от маршрутизатора к экрану Ethernet.

Вот как выглядит моя настройка:

1*qbA3umNhKDiZy1bBrQZy1g

7. Откройте интерфейс командной строки на компьютере и проверьте и запишите шлюз по умолчанию. Это можно сделать с помощью ipconfig команду в Windows или netstat -nr | grep default команду в Linux/Mac.

8. Загрузите и установите Arduino IDE, если вы этого еще не сделали.

9. Откройте IDE и выделите Файлы. -> Примерes -> Этernet -> WebClientRepeating. Вы должны увидеть следующий код:

10. Отредактируйте строка 37 быть IP-адресом в диапазоне (1–254) IP-адреса шлюза по умолчанию. Например, если мой шлюз по умолчанию 10.0.0.1, я могу использовать IP-адрес от 10.0.0.2 до 10.0.0.254. Однако важно убедиться, что IP-адрес, который вы используете, не конфликтует с другими IP-адресами в вашей сети.

Для этого примера я изменил строку кода на:

IPAddress ip(10, 0, 0, 2);

11. Измените DNS строка 40 быть 8.8.8.8 (это Google Public DNS, и это то, что я предпочитаю, вы можете использовать DNS, который вам нравится).

Для этого примера я изменил строку кода на:

IPAddress myDns(8, 8, 8, 8);

12. Измените URL-адрес строка 45 на URL-адрес, который соответствует вашему веб-серверу. Если вы хотите вместо этого использовать IP-адрес, прокомментируйте строка 45 и раскомментировать строка 46. Поскольку я использую веб-сервер, который я размещаю локально, для этого примера я буду использовать IP-адрес.

Для этого примера я изменил строку кода на:

//char server[] = “www.arduino.cc";
IPAddress server(127,0,0,1);

Обратите внимание, что порт или путь здесь пока не важны. Просто IP-адрес
нужен. Если вы хотите изменить порт, используемый для GET
запрос, вы можете изменить его строка 94.

Для этого примера я разместил свой локальный веб-сервер на порту 3000. Таким образом, я изменю код в строка 94 на нечто подобное:

if (client.connect(server, 3000)) {

13. Отредактируйте ПОЛУЧИТЬ запрос, предварительно написанный в строки 97 — 100 следовать этой схеме:

client.println(“GET /path_to_url HTTP/1.1”);
client.println(“Host: 127.0.0.1”);
client.println(“Connection: close”);
client.println();

14. Теперь мы можем начать программировать поведение светодиода в зависимости от состояния веб-сервера и ответа. Для этого мы должны сначала объявить контакт, используемый для светодиода на нашем Ethernet щите.

Добавьте следующую строку кода после первых двух включать положения программы:

int LED = 2;

15. Добавьте следующие строки кода в начале setup() функция.

pinMode(LED, OUTPUT);

digitalWrite(LED, LOW); //program starts with the LED turned off

16. Добавьте следующую строку кода после строки запроса GET, которую мы ранее отредактировали:

digitalWrite(LED, LOW);

17. Наконец, добавьте эту строку кода в начале другое утверждение того же условного:

digitalWrite(LED, HIGH);

И вуаля, все готово!

Загрузите приложение на свой Arduino. Откройте последовательный монитор в правой верхней части IDE и посмотрите на ответ. Если ваш сервер не отвечает, светодиод светится, если отвечает, светодиод не гаснет.

Вы можете проверить мой окончательный код здесь.

Проверка ответа

Если вы тоже хотите подтвердить ответ, который вы получаете от вашего
веб-сервер, то вы можете добавить их в следующее условие
Программа.

if (client.available()) {
char c = client.read();
Serial.write(c);
}

Переменная c это место, где хранится ответ.
Вы можете проверить это так:

if (client.available()) {

char c = client.read();
if(c == “arduino is great”){
digitalWrite(LED, LOW); //correct response
}
else{
digitalWrite(LED, HIGH); //wrong response
}
Serial.write(c);
}

Заметьте, что если вы пытаетесь это сделать, то лучше избавиться
Оператор digitalWrite по запросу GET. В зависимости от вашего ответа,
возможно, вам также придется проанализировать значение JSON. Это можно сделать несколькими способами
и много учебных пособий/статей для него! Обязательно проверьте их
наружу!

Веселитесь! Не стесняйтесь написать мне по электронному адресу harshita (at) harshitaapps.com на любые вопросы, отзывы или идеи!

Обязательно просмотрите приложение Crypto Price Tracker, если вы заинтересованы или инвестируете в криптовалюты! 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *