Utilizzare un ESP32 come Client HTTP per inviare informazioni via WiFi a un server remoto

Utilizzare un ESP32 come Client HTTP per inviare informazioni via WiFi a un server remoto

In questo tutorial esploreremo come utilizzare il microcontrollore ESP32 come client HTTP per inviare dati a un server remoto tramite WiFi. L'ESP32 è una potente scheda di sviluppo che combina capacità WiFi e Bluetooth, rendendola ideale per applicazioni IoT. Alla fine di questo tutorial, sarai in grado di inviare richieste HTTP con parametri definiti dall'utente e ricevere risposte da un server.

ESP32-38pin-1

Utilizzeremo l'IDE di Arduino per programmare l'ESP32 e ti guiderò attraverso i passaggi necessari per impostare il tuo ambiente. Per una passeggiata visiva, ti consiglio di dare un'occhiata al video associato (nel video a :00).

Hardware spiegato

Il componente principale di questo progetto è il microcontrollore ESP32, specificamente il modulo WROOM32. Questo modulo dispone di 38 pin che possono essere utilizzati per varie operazioni di input/output. Funziona a 3,3 volt e include capacità WiFi e Bluetooth integrate. L'ESP32 è versatile e può essere utilizzato in molte applicazioni, grazie ai suoi pin GPIO e ai protocolli di comunicazione.

ESP32-3

Oltre all'ESP32, potresti avere bisogno di un convertitore USB-seriale per la programmazione e il debugging. Il modulo contiene anche un regolatore di tensione, che garantisce che il microcontrollore riceva un'alimentazione stabile di 3.3V da una sorgente di tensione più alta. In generale, l'ESP32 è un microcontrollore ben equipaggiato adatto a vari progetti.

Dettagli della scheda tecnica

Produttore Espressif Systems
Numero di parte ESP32-WROOM-32
Tensione logica/IO 3,3 V
Tensione di alimentazione 5 V (max)
Corrente di uscita (per canale) 12 mA
Corrente di picco (per canale) 160 mA
Guida sulla frequenza PWM 1 kHz
Soglie logiche di ingresso 0,3 * VDD(basso), 0,7 * VDD(alto)
Caduta di tensione / RDS(on)/ saturazione 0,5 V
Limiti termici 125 °C
Pacchetto QFN
Note / varianti Disponibile in varie dimensioni di flash.
ESP32-2
  • Assicurati di avere livelli di tensione corretti (3.3V) per evitare di danneggiare l'ESP32.
  • Utilizzare condensatori di accoppiamento appropriati vicino ai pin di alimentazione per un funzionamento stabile.
  • Implementa il raffreddamento se il modulo opera vicino ai suoi valori nominali di corrente massima.
  • Utilizza il WiFi integrato dell'ESP32 per una facile connettività di rete.
  • Fai attenzione alle configurazioni dei pin GPIO per prevenire i cortocircuiti.
  • Testa con schizzi semplici per confermare la funzionalità prima di integrazioni complesse.

Istruzioni di cablaggio

Per cablare l'ESP32 per questo progetto, inizia collegando il pin di terra dell'ESP32 alla terra della tua alimentazione. Successivamente, collega l'alimentazione 5V al pin Vin o V5 sull'ESP32, che alimenterà il regolatore di tensione interno e fornirà 3,3V al microcontrollore.

Per la funzionalità del client HTTP, assicurati che il tuo ESP32 sia connesso a una rete WiFi. Dovrai collegare i pin appropriati per eventuali componenti aggiuntivi che potresti utilizzare, come sensori o LED. Ad esempio, collega un LED al pin GPIO 2, con una resistenza in serie per limitare la corrente. Il gambo più lungo (anodo) del LED dovrebbe collegarsi al pin 2, mentre il gambo più corto (catodo) si collega a terra.

Esempi di codice e guida passo-passo

Nel frammento di codice fornito, inizializziamo il client HTTP e definiamo identificatori chiave comemainURL, che contiene l'URL a cui stiamo inviando la richiesta, euser, che contiene informazioni sugli utenti. Il codice configura anche l'ESP32 per connettersi a una rete WiFi specificata.

String mainURL ="http://ddas.cc/httpTest/?";
String user="user=ahmad22";

Qui,mainURLè il punto finale che stiamo mirando, mentreusercontiene il parametro utente che verrà inviato nella richiesta HTTP.

Nellasetup()funzione, iniziamo la comunicazione seriale e impostiamo la connessione WiFi. Prepariamo anche la richiesta HTTP creando un'istanza del client HTTP.

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFiMulti.addAP("Robojax", "Your password");
}

Questa sezione inizializza il monitor seriale per il debug e si connette alla rete WiFi. Le credenziali sono definite neladdAP()metodo.

Nellaloop()funzione, verifichiamo una connessione WiFi riuscita e procediamo a inviare la richiesta HTTP GET. I parametri includono l'utente e i valori di temperatura.

if (http.begin(client, mainURL+user+"&temp="+temperature+"&type="+type)) {
  int httpCode = http.GET();}

Questo codice costruisce l'URL completo con i parametri di query ed esegue la richiesta GET. Se ha successo, recupera la risposta del server.

Dimostrazione / Cosa Aspettarsi

Quando l'ESP32 è acceso e il programma è in esecuzione, dovrebbe connettersi alla rete WiFi specificata e inviare una richiesta HTTP GET al server. Puoi monitorare l'output nel Monitor Seriale, dove vedrai il codice di stato HTTP e il payload della risposta dal server. I problemi comuni potrebbero includere credenziali WiFi errate o un server non raggiungibile (nel video alle 12:30).

Timestamp video

  • 00:00 Inizio
  • 00:53 Introduzione
  • 05:04 pin 5V e 3.3V
  • 08:38 Caratteristiche spiegate
  • 14:03 Pin su Datasheet
  • 17:00 Esempio Blink
  • 19:14 Esempio di lampeggio con LED esterno
  • 21:00 Test del Client HTTP

Immagini

ESP32-1
ESP32-1
ESP32-2
ESP32-2
ESP32-3
ESP32-3
ESP32-38pin-1
ESP32-38pin-1
ESP32-38pin-2
ESP32-38pin-2
241-ESP32 HTTP Client code example
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

Scheda tecnica (pdf)