Nell’articolo di oggi vederemo come effettuare richieste HTTP GET con l’ausilio di una ESP32.
Un HTTP GET è uno dei metodi di richiesta che può essere utilizzato per comunicare con un server web. Quando un client (come un browser web) invia una richiesta HTTP GET a un server, sta chiedendo al server di fornire una risorsa specifica, come una pagina web o un’immagine.
La richiesta GET è utilizzata per ottenere informazioni dal server senza modificare o aggiornare i dati. La richiesta include i parametri di query nella stringa di URL, che il server può utilizzare per restituire una risposta personalizzata. Ad esempio, quando si digita l’URL di un sito web nel browser, il browser invia una richiesta HTTP GET al server per ottenere la pagina web richiesta e il server risponde restituendo la pagina HTML richiesta.
Step per questo progetto:
- ESP32 funge da client invia una richiesta HTTP a un server tramite una HTTP GET.
- Il server restituisce una risposta all’ESP32.
Prerequisiti
- Arduino IDE installato
- Come configurare la ESP32: introduzione #01
- Installare la libreria HTTPclient.h (articolo su come installare una libreria qui)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#include <WiFi.h> #include <HTTPClient.h> const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; //Inserisci il nome del tuo dominio o l'indirizzo ip String serverName = "http://namesite/update"; unsigned long lastTime = 0; // Timer set to 10 minutes (600000) //unsigned long timerDelay = 600000; // Set timer to 5 seconds (5000) unsigned long timerDelay = 5000; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); Serial.println("Connecting"); while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to WiFi network with IP Address: "); Serial.println(WiFi.localIP()); Serial.println("Timer set to 5 seconds (timerDelay variable), it will take 5 seconds before publishing the first reading."); } void loop() { //invia richiesta HTTP ogni 10 secondi if ((millis() - lastTime) > timerDelay) { //Check WiFi connection status if(WiFi.status()== WL_CONNECTED){ HTTPClient http; String serverPath = serverName + "?temperature=24.37"; // nome dominio o indirizzo ip http.begin(serverPath.c_str()); // invio HTTP GET request int httpResponseCode = http.GET(); if (httpResponseCode>0) { Serial.print("HTTP Response code: "); Serial.println(httpResponseCode); String payload = http.getString(); Serial.println(payload); } else { Serial.print("Error code: "); Serial.println(httpResponseCode); } // Free resources http.end(); } else { Serial.println("WiFi Disconnected"); } lastTime = millis(); } } |
Una volta sostituite le credenziali per la connessione e il nome del dominio (o indirizzo IP) siamo pronti a caricare il codice sulla ESP32. Siamo pronti ad aprire il monitor seriale per verificare se tutto procede per il verso giusto, sia per la connessione con la rete, sia per il corretto invio dei dati al server.
Se ci sono errori nella HTTP request prova a cambiare rete, magari facendo da hotspot con il tuo smartphone.
Ecco un esempio.
Abbiamo visto con poche righe di codice come è semplice, tramite la libreria HTTPclient.h, fare una HTTP GET a un server. In questo modo possiamo ampliare la gamma di progetti con il nostro caro amico ESP32.
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano