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
- capteurs analogiques aux broches G34 et G35,
- entrez le nom et le mot de passe de votre réseau Wi-Fi et
- dans le navigateur, appelez l’adresse IP de votre ESP32, que vous trouverez comme sortie de journal dans le moniteur de série.
3 commentaires
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
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
Guter Artikel aber fehlt im ersten Absatz nicht ein Link? Oder ist das “Link xxx” beabsichtigt? ;)