ESP32 WiFi Sensor Projekt

Dans ce billet de blog, nous expliquons - basé sur l’introduction à ESP32 ( Lien ) -- comment ce comité de développement Wi-Fi peut héberger un site Web local où les données du capteur sont affichées en direct. Le code utilisé ici peut être trouvé sur GitHub (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/WiFiSensorServer.ino). 

 

La structure de base du projet est la suivante : un ESP32 est connecté à un ou plusieurs capteurs et lit leurs valeurs. En outre, l’ESP32 est connecté au WLAN et attend les demandes HTTP entrantes. Cela y répond, en fonction du chemin de la demande, avec un site Web HTML ou les données du capteur en format JSON.

 

Le capteur peut être sélectionné comme désiré. Pour la démonstration, nous avons choisi un joystick à deux axes qui produit deux valeurs analogiques. En dehors du capteur, aucun matériel supplémentaire n’a besoin d’être connecté au microcontrôleur pour exécuter le programme de démonstration. 

Les signaux analogiques du joystick sont affichés avec les appels de fonction

 

analogRead(34);
analogRead(35);

 

Lire. Cela montre clairement la force de ESP-Arduino (https://github.com/espressif/arduino-esp32): La lecture de la valeur d’un convertisseur analogique-numérique ne serait normalement pas juste un appel de fonction.

 

Serveur HTTP

Pour démarrer un serveur HTTP accessible sur le réseau local, l’ESP32 doit être en mesure de se connecter au Wlan. Pour ce faire, changer la valeur des deux constantes Ssid (nom de Wlan) et mot de passe (mot de passe Wi-Fi). 

 

const char ssid ' "Access Point Name";

const char mot de passe - "Password";

 

L’objet serveur est connecté à Serveur WiFiServer(80); Créé. Le paramètre spécifie sur le port auquel le serveur doit être accessible. 80 est la norme pour les pages Web.

 

La fonction de configuration établit la connexion série au PC. Il ne sera utilisé que pour débogage dans ce projet. Cependant, faites attention au taux Baud, qui n’est pas 9600 mais 115200. Dans le Serial Monitor, vous devrez peut-être les ajuster en bas à droite. Après que le microcontrôleur se soit connecté au WLAN, il sortie son adresse IP via le Serial Monitor. Ceci est attribué à l’appareil par le routeur WLAN et ressemble à ceci, par exemple: 192.168.0.103. Dans le navigateur, vous pouvez ensuite utiliser le http://192.168.0.103 envoyer une demande à l’ESP32. Ceci, par exemple, a la forme suivante :

 

OBTENIR / HTTP/1.1
Animateur : 192.168.0.103
Connexion: garder en vie
Pragma: no-cache

et arrive à l’ESP32 comme une longue chaîne, caractère par personnage. Dans la fonction Boucle, la première ligne de la demande est séparée parce qu’elle contient le chemin. Dans l’exemple, il s’agit simplement d’une barre oblique (OBTENIR /). Toutefois, si le site Web avait http://192.168.0.103/test appelé, la première ligne de la demande HTTP ressemblerait à ceci: GET /test HTTP/1.1

 

La fin de la demande sera marquée d’une ligne blanche. Dans le programme, après avoir reconnu la même envoyerResponse fonction qui appelle la première ligne de la demande et le Client Objet. Dans ce dernier cas, la réponse est écrite, qui contient ensuite les données demandées (c’est-à-dire le code HTML d’une page Web).

La première ligne de demande contenait les renseignements que la demande a été envoyé à /capteur les données du capteur sont envoyées au client. 

 

en-tête de réponse

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

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

client.println();

 

envoyer des données de capteur en format JSON

client.println ("A) 

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

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

"time": " millis() 

}");

Les données de lecture arriveront ensuite dans le navigateur.

Pour afficher les valeurs du capteur un peu agréable, nous avons un site web simple (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/index.html) qui marque la position du joystick avec un cercle rouge à l’intérieur d’un carré. Les données sont chargées à partir du serveur plusieurs fois par seconde.

 

Résumé

Afficher les données d’un capteur avec l’ESP32 sur le réseau local sur un site Web n’est pas coûteux. Si vous utilisez notre programme d’exemples (https://github.com/Simsso/Arduino-Examples/blob/master/ESP32/WiFiSensorServer/WiFiSensorServer.ino), vous n’avez qu’à utiliser 

 

  1. capteurs analogiques aux broches G34 et G35,
  2. entrez le nom et le mot de passe de votre réseau Wi-Fi et
  3. dans le navigateur, appelez l’adresse IP de votre ESP32, que vous trouverez comme sortie de journal dans le moniteur de série.

 

 

Esp-32Projekte für fortgeschritteneSensoren

2 commentaires

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

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés