IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[ESP32] Créer un serveur Web


Sujet :

Contribuez

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut [ESP32] Créer un serveur Web


    Je vous propose un programme de démonstration pour créer un serveur Web implanté dans un DevKit ESP32 (module ESP WROOM 32).

    Nom : devkit_esp32.PNG
Affichages : 3755
Taille : 112,9 Ko
    DevKit ESP32 de AZ-Delivery

    La page Web dynamique permet d’ouvrir et fermer la trappe d’une serre (simulée par une LED qui s’allume ou s’éteint) et affiche la température de la serre grâce à une sonde de température DS18B20 (mise à jour toutes les 5 secondes).


    Le principe du programme et les codes sont (fortement) inspirés par le tutoriel de naute en trois parties :
    Le navigateur aux commandes de l’Arduino : Parties 1, 2 et 3

    L’environnement de développement est celui de l’Arduino avec le package ESP32 d’installé (Arduino Core for the ESP32)

    Les bibliothèques suivantes devront être installées :
    • ESPASyncWebServer (avec sa dépendance AsyncTCP), le cœur du système pour la création et la gestion d’un serveur HTTP au fonctionnement asynchrone.
    • Le système de fichier SPIFFS (SPI Flash File System) pour stocker les fichiers HTML, CSS, JavaScript et image dans la mémoire flash de l’ESP32 (Edit : ou bien le système de fichier LittleFS en remplacement de SPIFFS apparemment bientôt déprécié).
    • Onewire et DallasTemperature pour la lecture de température relevée par la sonde DS18B20
    • ArduinoJson pour la gestion du format JSON dans les réponses du serveur HTTP aux requêtes AJAX du client.


    La plupart de ces bibliothèques sont rapidement accessibles depuis le gestionnaire de bibliothèque de l’EDI standard Arduino.

    Une fois l’archive zip ci-jointe décompressée, vous trouverez :
    • le répertoire data, avec les fichiers HTML, CSS, JavaScript… à téléverser dans la mémoire Flash de l’ESP32 grâce au gestionnaire SPIFFS ;
    • le programme gestion_serre_v0_1.ino à ouvrir dans l’EDI Arduino. Les autres fichiers .cpp et .h devraient s’ouvrir dans des onglets.


    Avant de téléverser le programme, il vous reste à :
    • renseigner les SSID/mot de passe de la box ou routeur WiFi de votre réseau dans l’onglet du fichier credentials.h (en mode STA (station), l’ESP cherche un point d’accès auquel se connecter) ;
    • renseigner les broches (pins) du DevKit où sont connectées la LED et la broche de données du DS18B20 dans l’onglet du fichier hardware.h.


    Au démarrage du DevKit (éventuellement après un appui sur le bouton reset), le moniteur série (115200 bauds) affiche certaines informations, notamment l’adresse IP du serveur fournie par le service DHCP de votre box/routeur WiFi sur le réseau.

    Il ne vous reste plus qu’à taper l’adresse IP du serveur dans un navigateur, et c’est tout

    Principe : au chargement de la page d’abord, puis toutes les 5 secondes ou à chaque appui sur le bouton, une requête AJAX est envoyée à l’ESP. L’ESP traite la requête, et change l’état de la LED si l’utilisateur a appuyé sur le bouton. La réponse de l’ESP est au format JSON, par exemple : {"bouton":"ledOn", "temperature":23.5348} que le navigateur va utiliser pour rafraîchir la page.

    N’hésitez pas à intervenir dans ce fil de discussion pour tout complément en rapport avec ce projet.

    Enjoy !

    Historique :
    - v0.3 : nouveau système de fichier LittleFS pour remplacer le système SPIFFS bientôt déprécié.
    - v0.2 : la température s'affiche aussi dans un graphique (bibliothèque HighCharts.js)
    - v0.1 : version initiale
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Que faut-il pour créer un serveur web ?
    Par totodu038 dans le forum Hébergement
    Réponses: 2
    Dernier message: 15/03/2010, 13h53
  2. créer un serveur web avec easyphp
    Par soufiane2102 dans le forum Développement
    Réponses: 2
    Dernier message: 14/01/2009, 17h31
  3. [Débutant] Créer un serveur web
    Par Norin dans le forum C++
    Réponses: 14
    Dernier message: 05/02/2007, 20h12
  4. créer deux serveur web avec un seul adresse ip?
    Par Djo00 dans le forum Apache
    Réponses: 3
    Dernier message: 23/08/2006, 09h13
  5. Comment créer son serveur web ?
    Par AsmCode dans le forum Apache
    Réponses: 7
    Dernier message: 01/04/2006, 02h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo