ESP32 WiFi Sensor Projekt - AZ-Delivery

In questo post di blog, spieghiamo -- in base all'introduzione a ESP32 ( Link ) -- come questa scheda di sviluppo wi-fi-enabled può ospitare un sito web locale in cui i dati del sensore vengono visualizzati dal vivo. Il codice utilizzato qui può essere trovato su GitHub (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/WiFiSensorServer.ino). 

 

La struttura di base del progetto è la seguente: un ESP32 è collegato a uno o più sensori e ne legge i valori. Inoltre, ESP32 è connesso alla rete WLAN e attende le richieste HTTP in ingresso. Questo risponde, a seconda del percorso della richiesta, con un sito Web HTML o i dati del sensore in formato JSON.

 

Il sensore può essere selezionato come desiderato. Per la dimostrazione, abbiamo scelto un joystick a due assi che restituisce due valori analogici. A parte il sensore, nessun hardware aggiuntivo deve essere collegato al microcontrollore per eseguire il programma demo. 

I segnali analogici del joystick vengono visualizzati con le chiamate di funzione

 

analogicOLettura(34);
analogicOLettura(35);

 

Leggere. Ciò dimostra chiaramente la forza di ESP-Arduino (https://github.com/espressif/arduino-esp32): la lettura del valore di un convertitore analogico-digitale normalmente non sarebbe solo una chiamata di funzione.

 

HTTP Server

Per avviare un server HTTP raggiungibile sulla rete locale, l'ESP32 deve essere in grado di connettersi al Wlan. A tale scopo, modificare il valore delle due costanti Ssid (nome Wlan) e Password (password Wi-Fi). 

 

const char : ssid - "Nome punto di accesso";

const char- password - "Password";

 

L'oggetto server è connesso a Server WiFiServer(80); Creato. Il parametro specifica su quale porta deve essere raggiungibile il server. 80 è lo standard per le pagine web.

 

La funzione di configurazione stabilisce la connessione seriale al PC. Verrà utilizzato solo per il debug in questo progetto. Tuttavia, prestare attenzione al tasso Baud, che non è 9600 ma 115200. Nel Monitor seriale, potrebbe essere necessario regolarli in basso a destra. Dopo che il microcontrollore si è connesso alla rete WLAN, emette il suo indirizzo IP tramite il Monitor seriale. Questo viene assegnato al dispositivo dal router WLAN e ha questo aspetto, ad esempio: 192.168.0.103. Nel browser, è quindi possibile utilizzare il http://192.168.0.103 inviare una richiesta all'ESP32. Questo, ad esempio, ha il seguente formato:

 

GET / HTTP/1.1
Host: 192.168.0.103
Connessione: keep-alive
Pragma: no-cache

e arriva all'ESP32 come una stringa lunga, carattere per carattere. Nella funzione Loop, la prima riga della richiesta è separata perché contiene il percorso. Nell'esempio, si tratta semplicemente di una barra (OTTIENI /). Tuttavia, se il sito web avesse http://192.168.0.103/test chiamata, la prima riga della richiesta HTTP sarà simile alla seguente: GET /test HTTP/1.1

 

Alla fine della richiesta verrà contrassegnata come riga vuota. Nel programma, dopo aver riconosciuto la stessa sendResponse (risposta di trasmissione) funzione che chiama la prima riga della richiesta e la funzione Client Oggetto. In quest'ultimo, viene scritta la risposta, che contiene quindi i dati richiesti (cioè il codice HTML di una pagina Web).

La prima riga di richiesta conteneva le informazioni che la richiesta è stata inviata a /sensore i dati del sensore vengono inviati al client. 

 

intestazione della risposta

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: application/json");

client.println();

 

inviare i dati del sensore in formato JSON

client.println("A 

"x": " : Stringa(analogRead(35) / 4096.0) 

"y": " : Stringa(analogRead(34) / 4096.0) 

"time": " - millis() " 

}");

I dati di lettura arriveranno quindi nel browser.

Per visualizzare i valori del sensore un po 'bello, abbiamo un semplice sito web (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/index.html) che segna la posizione del joystick con un cerchio rosso all'interno di un quadrato. I dati vengono caricati dal server più volte al secondo.

 

Riepilogo

La visualizzazione dei dati di un sensore con ESP32 sulla rete locale su un sito Web non è costosa. Se si utilizza il nostro programma di esempio (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/WiFiSensorServer.ino), è sufficiente utilizzare 

 

  1. sensori analogici ai pin G34 e G35,
  2. immettere il nome e la password della rete Wi-Fi e
  3. nel browser, chiamare l'indirizzo IP dell'ESP32, che si trova come output del registro nel Monitor seriale.

 

 

Esp-32Projekte für fortgeschritteneSensoren

3 commenti

Ferdinando Todeschini

Ferdinando Todeschini

Can you help me find a phone app to put in communication with the D1 R32 card with its communication program? Thank you

MaHa76

MaHa76

Danke für diese Anleitung und die hilfreiche Erklärung.

Kann ich über diesen Weg auch mehrere ESP miteinander vernetzen?

Den ESP der in diesem Beispiel den Sensor ausliest, würde ich gern als AccessPoint verwenden und die Daten für mehrere andere ESPs bereitstellen.
Die Verbindung sollte dann auch dauerhaft zu allen ESPs bestehen bleiben, so dass die Daten kontinuierlich angezeigt werden könnten.

Thanathan

Thanathan

Guter Artikel aber fehlt im ersten Absatz nicht ein Link? Oder ist das “Link xxx” beabsichtigt? ;)

Lascia un commento

Tutti i commenti vengono moderati prima della pubblicazione