Débuter avec l'ESP8266 : Répondre à des requêtes HTTP contenant des paramètres pour créer une API

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024
  • On repart de la vidéo 7 et on ajoute une fonction pour répondre à des commandes passées par des requêtes HTTP contenant des paramètres.
    L'objectif est de fournir une API (Application Programmable Interface) permettant à un logiciel de domotique de facilement communiquer avec notre objet connecté.
    2 commandes sont proposées : getLED pour connaître l'état de la LED et setLED pour changer l'état de la LED.
    On revoit également à la fin de la vidéo comment mettre à jour le contenu de la page HTML avant de répondre aux requêtes en changeant des balises particulières (par exemple %LED%) par différents états internes de l'objet (ici l'état de la LED).
    Enfin, une fiche donne un lien vers le code à télécharger vers la fin de la vidéo.

Комментарии • 55

  • @angelomichael8693
    @angelomichael8693 3 года назад +3

    Super tutoriels ... Jusqu'à présent, en tant que francophone, ce sont les meilleurs sur le sujet que j'ai pu visionner sur la toile. J'espère que vous aurez à cœur de poursuivre ce travail. Bonne continuation...

  • @mekestuboidoudoudidon5886
    @mekestuboidoudoudidon5886 2 года назад

    Fier d'être le 300éme à apposer un pouce 'j'aime'. Eric Peronnin en mériterait 100 fois plus au vu des services qu'il rend à la collectivité !

  • @sy.s2832
    @sy.s2832 4 года назад +9

    Merci de cette série de vidéo sur la programmation du microcontrôleur ESP8266. Je suis un nouvel abonné à la chaine depuis peu et recherchait justement des infos en javascript que j ai pu trouvé ici Je ne possède que le ESP32 que je programme avec vscode mais j'essayerai d'adapter le programme. Je ne métrise pas encore très bien le javascrip et dans cette vidéo il me manque la fin de la ligne 48 à 23min 23s qui n'apparaît pas (caché par la cam lors de l'écriture) ni ici ni dans la video suivante. Merci et hate de voir la suite.

    • @EricPeronnin
      @EricPeronnin  4 года назад +4

      Bonjour. La vidéo suivante sur le framework contient un lien vers la fin pour télécharger les fichiers du projet. Pour l'esp32, la gestion des événements de l'objet WiFi est différente. Je ferai une série dès que j'aurai un peu de temps. Bonne continuation

    • @sy.s2832
      @sy.s2832 4 года назад

      Excellent et merci de votre aide pour la suite

  • @ChristopheDeZanet
    @ChristopheDeZanet 4 года назад

    Merci pour vos efforts et pour l'évolution pédagogique que vous apportez à vos projets. J'apprécie énormément et j'attends avec impatience la suite. Dans la même idée, la chaîne de Tommy Desrochers est tout aussi instructive que la vôtre. Je reprends goût à l'électronique et à la programmation grâce à tout ça (et aux nombreuses chaînes présentent). Encore merci et bonne continuation.

    • @EricPeronnin
      @EricPeronnin  4 года назад

      Merci. Pour ne pas être influencé dans ma façon d'aborder les choses, je n'ai pas vu la chaîne de Tommy mais je vois souvent les vignettes de ses vidéos et son succès !

  • @drissbennejima2035
    @drissbennejima2035 5 месяцев назад

    Merci énormément

  • @Lunolux
    @Lunolux 4 года назад +2

    vos vidéo sont très bien
    merci, bonne continuation

  • @tintinmilou5774
    @tintinmilou5774 4 года назад +1

    intéressant comme d habitude merci monsieur

  • @devialas
    @devialas 3 года назад +1

    merci beaucoup le plaisir continu

  • @Tibrus74
    @Tibrus74 2 года назад +1

    Merci pour cette vidéo
    Juste à la fin la miniature de toi même cache la modif xhttp :-D

    • @EricPeronnin
      @EricPeronnin  2 года назад +1

      Le code est visible sur le site geii.eu dans la section sur les tutos ESP

    • @Tibrus74
      @Tibrus74 2 года назад

      @@EricPeronnin Oui oui mais c'était plus pour les prochaines vidéos de penser à ne pas le cacher
      Je fais tes tutos avec les vidéos et tapant le code au fur et a mesure, je retiens mieux ainsi que de copier coller depuis ton site :D

  • @laure8199
    @laure8199 4 года назад +1

    Bonjour,
    Merci pour ces vidéos de qualité qui m'aident beaucoup à débuter.
    J'ai cependant une question, ici on ne peut commander la LED que si on est connecté au même point d'accès qu'elle ? Comment faire ou que utiliser si nous voulons commander un LED à 100km d'elle par exemple ?
    Encore merci pour vos vidéos

    • @EricPeronnin
      @EricPeronnin  4 года назад +1

      Bonjour. Il faut configurer le routeur de votre box internet pour permettre un accès externe et rediriger les requêtes entrantes vers l'ESP8266 (souvent, on choisit un port externe différent de 80 pour brouiller les pistes car il fait partie des ports prioritairement ciblés par les pirates). Ensuite, il vous faut connaître l'adresse de votre box sur internet. Le plus simple pour ça, c'est d'avoir un compte ddns.net et de configurer la box pour que celle-ci renseigne automatiquement le site ddns.net sur votre adresse sur internet.

  • @christianpesc4231
    @christianpesc4231 4 года назад +1

    Bravo, j'apprécie la qualité pédagogique et le souci d'envoyer les informations à la bonne cadence pour l'assimilation. De même le site de Tommy Desrochers est excellent.
    Comment récupérer votre code si vous ne voulez pas nous imposer (pour notre bien ?) de retaper...Et c'est dur avec un petit écran.
    Autant pour moi, j'ai trouvé le fichier .zip à downloader à la fin de la vidéo
    Encore merci

  • @cyrillethierry9515
    @cyrillethierry9515 3 года назад +1

    Un petit point si cela arrive à d'autres, j'ai eu des pb pour le debug, je n'avais pas réalisé que ma carte changeait d'ip de temps en temps.
    Je me demande si IF (digitalRead(PIN_XX)==HIGH) est complètement équivalent à IF (digitalRead(PIN_XX))

    • @EricPeronnin
      @EricPeronnin  3 года назад +1

      Aucune raison pour que ce soit différent.

  • @mekestuboidoudoudidon5886
    @mekestuboidoudoudidon5886 2 года назад

    Bonjour Eric, problème qui me tracasse depuis des semaines !!!
    Si dans ma page HTML j'ai une fonction de mise à jour d'affichage exemple MAJ_Donnees () , comment s"écrirait la requête serveur pour l'activer et ainsi mettre à jour l'affichage de mes données meteo en temps réel (Je ne veux pas passer par un button à cliquer pour activer traiteReponse(xhttp) )
    Grand merci d'avance !

  • @hermangeku7461
    @hermangeku7461 3 года назад +1

    belle videos mr,
    ma question de savoir si c'est aussi possible que l'api renvoie de données en Json ?

    • @EricPeronnin
      @EricPeronnin  3 года назад +1

      Merci Herman. Oui, on peut aussi renvoyé les données en JSON mais je ne l'ai pas réalisé.

    • @hermangeku7461
      @hermangeku7461 3 года назад +1

      @@EricPeronnin Pouvez-vous, m'orienter avec une démarche ?

    • @EricPeronnin
      @EricPeronnin  3 года назад +1

      Allez voir les articles ayant trait à la bibliothèque ArduinoJSON

    • @hermangeku7461
      @hermangeku7461 3 года назад

      @@EricPeronnin merci beaucoup je peut, vous expliquer mon projet ?

    • @hermangeku7461
      @hermangeku7461 3 года назад

      @@EricPeronnin je peut vous parler de mon projet ?

  • @jean-jacquescolin2697
    @jean-jacquescolin2697 4 года назад +1

    Bonjour Eric, j'ai beaucoup appris en suivant vos tuto et je vous en remercie. J'ai une application qui me pose problème; j'avais réalisé une petite station météo qui fonctionne parfaitement sur une carte UNO et je tente de la faire fonctionner avec l'ESP8266 j'ai raccordé des capteurs T° Hr Pression et anémomètre. Pour l'instant T° et Hr fonctionnent correctement et Pression et anémomètre il y a des bugs mais je vais m'en sortir. J'envoie mes données en WiFi avec l'application Json. J'aimerais aller plus loin en créant une page Web html et là je coince pour récupérer mes données en tant réel pour les afficher sur le portable du client qui voudrait consulter. J'ai chercher du côté de PHP mais je sèche. Est-ce que cela pourrait faire l'objet d'un tuto. "Comment récupérer des données sur mon ESP et les afficher sur une page Web"??? merci

    • @EricPeronnin
      @EricPeronnin  4 года назад

      Bonsoir Jean-Jacques. Je vois cela prochainement. On en reparle. Vous pouvez me contacter sur eric at geii.eu pour me donner un descriptif plus clair de ce que vous souhaitez réaliser.
      Une information supplémentaire : on peut faire en sorte que la page Web se mette à jour automatiquement de façon périodique en consultant l'API. Pas besoin de PHP..

  • @j.b.masson887
    @j.b.masson887 2 года назад +1

    Bonjour, tout d'abord merci pour vos supports de très grandes qualités. Je vous suis depuis qlq semaines. Encore merci, pour moi qui débute, vos supports très très utiles. J'ai une question sur la ligne 48 que je n'arrive pas à retrouver. J'ai bien lu votre réponse sur un commentaire, mais je cale. Si vous pourriez m'aider
    Encore merci par avance. CDLT

    • @EricPeronnin
      @EricPeronnin  2 года назад

      Bonsoir. La ligne cachée est :
      document.getElementById("etatLED").innerHTML = "LED " + (xhttp.responseText == "1" ? "allumée":"éteinte");
      Copier/coller à partir du code qui est d'ailleurs proposé en téléchargement à partir de 24:12 (petite information en haut à droite de la vidéo). Désolé pour le délai, je n'ai pas beaucoup de temps pour les commentaires en ce moment.
      Enfin, merci pour votre commentaire. je pense retrouver du temps prochainement pour proposer de nouveaux contenus.
      A bientôt.
      Eric

  • @yanns6748
    @yanns6748 3 года назад +1

    Bonjour j'ai ce code erreur lorsque je compile.
    InfoConnexion.h: No such file or directory
    Pouvez vous m'eclairer, merci.

    • @EricPeronnin
      @EricPeronnin  3 года назад

      Bonjour. Normal. Vous pouvez supprimer le include correspondant et rentrer vos informations de connexion directement dans le fichier principal.

  • @Bao_Bab666
    @Bao_Bab666 4 года назад

    Est-ce que c'est possible à l'aide de esp8266 de faire une page web ou chacun des autres esp8266 connectés peuvent y laisser un message ? Comme un "chat" à plusieurs.

    • @EricPeronnin
      @EricPeronnin  4 года назад +2

      Oui. Sans problème. Dans une prochaine vidéo, on verra comment faire une requête http à partir de l'esp 8266. Quand on sait réaliser un serveur http et un client http, on peut faire ce que vous voulez.

    • @Bao_Bab666
      @Bao_Bab666 4 года назад

      @@EricPeronnin merci pour les vidéos, je reste à l'écoute

  • @doubytchou4254
    @doubytchou4254 4 года назад +1

    Bonjour,
    Encore une superbe vidéo très instructive.
    Si cela peut vous intéresser...
    Sur ESP8266 je ne sais pas, mais sur ESP32 il existe une bibliothèque qui s'appelle "SPIFFS" qui est un gestionnaire de fichier. ce qui permet de scinder les programmes selon leurs langage. ce qui rend a mon avis les choses bien plus claires
    Par exemple :
    Un fichier .CSS
    Un fichier .html
    Un fichier .java
    Je vous conseil une vidéo expliquant ceci.
    ruclips.net/video/DDMQbqPUliY/видео.html
    Encore merci pour vos vidéos

    • @EricPeronnin
      @EricPeronnin  4 года назад

      Bonjour. J'utilise cette possibilité aussi avec l'esp32 pour le transformer en petite centrale domotique. Ce sera abordé sur les vidéos esp32. Et il est vrai que c'est également très pratique.

  • @lebaudjerome327
    @lebaudjerome327 2 года назад

    Bonjour Eric
    Alors dans la vidéo à la 22:53 on ne voit pas la saisie ! est-il possible d'avoir l'information de cette saisie s'il vous plait ?
    Merci par avance

    • @j.b.masson887
      @j.b.masson887 2 года назад

      Bonjour Jérôme, tu as eu une réponse pour la ligne 48 ? Merci de ton retour.

    • @EricPeronnin
      @EricPeronnin  2 года назад

      Bonjour. Je regarde ce soir et vous dis.

    • @lebaudjerome327
      @lebaudjerome327 2 года назад

      @@j.b.masson887 Alors non j'ai pas eu de réponse mais j'ai chercher quelques heures sur le sujet :
      ligne 47 : function traiteReponse(xhttp) {
      ligne 48 : document.getElementById("etatLED").innerHTML = "LED " + (xhttp.responseText == "1" ? "allumée":"éteinte");
      Si je me trompe pas cela semble être bien ça ;)
      Mais Eric regarde ce soir il me corrigera si je me trompe

    • @EricPeronnin
      @EricPeronnin  2 года назад

      Bonsoir. Effectivement, c'est ça : document.getElementById("etatLED").innerHTML = "LED " + (xhttp.responseText == "1" ? "allumée":"éteinte");
      Copier/coller à partir du code qui est d'ailleurs proposé en téléchargement à partir de 24:12 (petite information en haut à droite de la vidéo). Désolé pour le délai, je n'ai pas beaucoup de temps pour les commentaires en ce moment.

  • @duboisnicolas3643
    @duboisnicolas3643 4 года назад

    Merci pour le code. Celui ci va beaucoup m'aider pour mon projet. Je cherche a faire une interface homme-machine. Est il possible de créer une page qui affiche en temps réel des variables sans avoir a réactualiser ou avoir une action quelquonque sur la page?

    • @EricPeronnin
      @EricPeronnin  4 года назад

      Il suffit d'ajouter un timer en Javascript dans la page index.html qui lance périodiquement une fonction ajax appelant l'api

    • @EricPeronnin
      @EricPeronnin  4 года назад

      S'il y a beaucoup de paramètres à récupérer, il serait judicieux de créer un get dans l'api pour les obtenir tout d'un coup afin de limiter la surcharge d'appel sur L'ESP

    • @duboisnicolas3643
      @duboisnicolas3643 4 года назад

      D'accord merci beaucoup

    • @duboisnicolas3643
      @duboisnicolas3643 4 года назад

      Bonjour , j'ai réussi a envoyé une requête avec un timer grâce a la méthode setInterval depuis java script. En revanche comment faut-il faire pour envoyer plusieurs paramètres dans la même requête ? Et comment interpréter la réception en java script ? J'ai réussi a le faire avec la requête POST entre deux esp32 mais j'y parviens pas entre java script et le esp. Merci d'avance pour vos informations

    • @EricPeronnin
      @EricPeronnin  4 года назад

      @@duboisnicolas3643 Si vous avez beaucoup de paramètres, vous pouvez les séparer dans l'appel : index.html?data1=value1&data2=value2&....&datan=valuen
      Bien sûr il faut que l'api soit modifiée pour prendre en compte plein de paramètres (on fait une boucle sur l'ensemble des paramètres et on teste le nom pour affecter avec la valeur.

  • @christianpesc4231
    @christianpesc4231 4 года назад +1

    Bravo, j'apprécie la qualité pédagogique et le souci d'envoyer les informations à la bonne cadence pour l'assimilation. De même le site de Tommy Desrochers est excellent.
    Comment récupérer votre code si vous ne voulez pas nous imposer (pour notre bien ?) de retaper...Et c'est dur avec un petit écran.
    Autant pour moi, j'ai trouvé le fichier .zip à downloader à la fin de la vidéo
    Encore merci

    • @krisaucun3172
      @krisaucun3172 3 года назад

      bonjour je ne trouve pas le code apres la video, ou l avez vous touvé svp ?