de Harshita Arora

Cum se folosește Arduino pentru a verifica starea de răspuns a serverului dvs. web

Cum sa utilizati Arduino pentru a verifica starea de raspuns
Fotografie de Mathew Schwartz pe Unsplash

Anul trecut, am creat Urmărirea prețurilor cripto (o aplicație care a fost achiziționată de Redwood City Ventures în acest an). Un membru back-end al echipei mele a folosit o configurație Arduino pentru a verifica continuu stările de răspuns ale serverului web pentru a primi actualizări tot timpul. Am găsit că această configurare este destul de utilă și interesantă.

Am cercetat despre asta și am recreat setarea pentru mine. În acest articol, vă voi arăta cum îl puteți construi și dvs.

Lucruri de care aveți nevoie:

  1. Arduino Uno
  2. Shield Ethernet pentru Arduino (pentru a conecta Arduino la Internet)
  3. Cablu Ethernet
  4. Cablu USB 2.0 tip A / B (cablu de alimentare pentru Arduino)
  5. Cabluri jumper de la bărbat la bărbat (x2)
  6. Breadboard
  7. LED (x1, orice culoare)
  8. Rezistor (x1,> 100 ohmi funcționează)

Configurarea acestuia

  1. Montați / introduceți scutul Ethernet pe Arduino.
  2. Introduceți capătul pozitiv (mai lung) al LED-ului în fanta 6a a panoului de testare și capătul negativ (mai scurt) în fanta 5a.
  3. Introduceți un capăt al rezistor în slotul de panou 1b și celălalt în slotul 5b.
  4. Introduceți un capăt al primul cablul jumper în slotul 1e al plăcii de prindere. Introduceți celălalt capăt în slotul GND al ecranului Ethernet.
  5. Introduceți un capăt al al doilea cablul jumper în slotul 6e al plăcii de rulare. Introduceți celălalt capăt în slotul pin 2 al ecranului Ethernet.
  6. Conectați Ethernet cablu de la router la ecranul Ethernet.

Așa arată configurarea mea:

1611287525 542 Cum sa utilizati Arduino pentru a verifica starea de raspuns

7. Deschideți o interfață de linie de comandă pe mașină și verificați și notați gateway-ul implicit. Acest lucru se poate face folosind ipconfig comanda pe Windows sau netstat -nr | grep default comanda pe Linux / Mac.

8. Descărcați și instalați Arduino IDE dacă nu ați făcut-o deja.

ad-banner

9. Deschideți IDE și accesați Fișiere -> Exemples -> Eternet -> WebClientRepeating. Ar trebui să vedeți următorul cod:

10. Editați fișierul linia 37 să fie o adresă IP în intervalul (1–254) al IP-ului gateway-ului dvs. implicit. De exemplu, dacă gateway-ul meu implicit este 10.0.0.1, atunci pot folosi o adresă IP de la 10.0.0.2 la 10.0.0.254. Cu toate acestea, este important să vă asigurați că IP-ul pe care îl utilizați nu intră în conflict cu alte adrese IP din rețeaua dvs.

Pentru acest exemplu, am schimbat linia de cod pentru a fi:

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

11. Schimbați DNS în linia 40 a fi 8.8.8.8 (acesta este DNS-ul public Google și este doar ceva ce prefer, puteți folosi un DNS pe care îl preferați).

Pentru acest exemplu, am schimbat linia de cod pentru a fi:

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

12. Schimbați adresa URL în linia 45 la o adresă URL care se potrivește cu serverul dvs. web. Dacă doriți să utilizați o adresă IP în loc, atunci comentați linia 45 și necomentariu linia 46. Deoarece folosesc un server web pe care îl găzduiesc local, pentru acest exemplu, voi folosi o adresă IP.

Pentru acest exemplu, am schimbat linia de cod pentru a fi:

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

Rețineți că portul sau calea de aici nu sunt încă importante. Doar adresa IP
Este nevoie. Dacă doriți să schimbați portul care este utilizat pentru GET
cerere, o puteți schimba pe linia 94.

Pentru acest exemplu, am găzduit serverul meu web local pe portul 3000. Astfel, voi schimba codul în linia 94 la așa ceva:

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

13. Editați OBȚINE cerere care este scrisă în prealabil liniile 97 – 100 pentru a urma acest model:

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

14. Acum putem începe programarea comportamentului LED-ului în funcție de starea și răspunsul serverului web. Pentru a face acest lucru, trebuie mai întâi să declarăm pinul pe care îl folosim pentru LED-ul de pe ecranul nostru Ethernet.

Adăugați următoarea linie de cod după primele două include declarații ale programului:

int LED = 2;

15. Adăugați următoarele linii de cod la începutul înființat() funcţie.

pinMode(LED, OUTPUT);

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

16. Adăugați următoarea linie de cod după linia de solicitare GET pe care am editat-o ​​anterior:

digitalWrite(LED, LOW);

17. În cele din urmă, adăugați această linie de cod la începutul altceva enunțul aceluiași condițional:

digitalWrite(LED, HIGH);

Și voilà, ai terminat!

Încărcați programul pe Arduino. Deschideți monitorul serial din partea din dreapta sus a IDE și urmăriți răspunsul. Dacă serverul dvs. nu răspunde, LED-ul luminează, dacă da, LED-ul rămâne stins 🙂

Puteți verifica codul meu final aici.

Verificarea răspunsului

Dacă vrei și tu valida răspunsul pe care îl primiți de la dumneavoastră
server web, apoi le puteți adăuga în următorul condițional al
program.

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

Variabila c este locul unde este stocat răspunsul.
Ai putea să o verifici astfel:

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);
}

Rețineți că, dacă încercați să faceți acest lucru, atunci cel mai bine este să scăpați de
declarație digitalWrite după solicitarea GET. În funcție de răspunsul dvs.,
poate fi necesar să analizați și valorile JSON. Există mai multe modalități de a face acest lucru
și o mulțime de tutoriale / articole în jur și pentru asta! Asigurați-vă că le verificați
afară!

A se distra! Nu ezitați să mă trimiteți un e-mail la harshita (at) harshitaapps.com pentru orice întrebări, feedback sau idei!

Asigurați-vă că verificați Urmărirea prețurilor cripto aplicație dacă sunteți interesat / investiți în criptomonede! 🙂