{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/10/12/server-documentation-esp8266-arduino-core-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/10/12/server-documentation-esp8266-arduino-core-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/10/12/server-documentation-esp8266-arduino-core-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Server &#8211; Documentation ESP8266 Arduino Core\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-10-12T16:24:11+00:00","modified_at":"2019-10-12T16:24:11+00:00","word_count":1058,"reading_time_seconds":318,"summary":"La configuration Web d&#39;un serveur sur l&#39;ESP8266 nécessite très peu de code et est étonnamment simple. C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi. Le but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web. Cette page doit indiquer la lecture brute actuelle de la broche [&hellip;]","summary_points":["La configuration Web d&#39;un serveur sur l&#39;ESP8266 nécessite très peu de code et est étonnamment simple.","C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi.","Le but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web.","Cette page doit indiquer la lecture brute actuelle de la broche d’entrée analogique de l’ESP."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"9e1d80b8b0208d89f237536a738be363","plain_text":"La configuration Web d&#39;un serveur sur l&#39;ESP8266 nécessite très peu de code et est étonnamment simple. C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi.\nLe but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web. Cette page doit indiquer la lecture brute actuelle de la broche d’entrée analogique de l’ESP.\n\n\n\nL&#39;object\nNous allons commencer par créer un objet serveur.\nLe serveur répond aux clients (dans ce cas, les navigateurs Web) sur le port 80, qui est un port standard. Les navigateurs Web communiquent avec les serveurs Web.\n\n\nLa page\nPuis écrivons une courte fonction prepareHtmlPage (), qui retournera un Chaîne    variable de classe contenant le contenu de la page Web. Nous allons ensuite transmettre cette variable au serveur pour la transmettre à un client.\n\n\nChaîne prepareHtmlPage()\n\n  Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;\n\n\n\n\nLa fonction ne fait rien d&#39;extraordinaire mais rassemble simplement un en-tête de texte et le contenu HTML de la page.\n\n\nLa page est servie\nLa diffusion de cette page Web se fera dans le boucle()    où le serveur attend qu&#39;un nouveau client se connecte et envoie des données contenant une requête:\n\n\nvide boucle()\n\n  WiFiClient client = serveur.disponible();\n  si (client)\n  \n    // nous avons un nouveau client qui envoie une requête\n  \n\n\n\n\nUne fois qu&#39;un nouveau client est connecté, le serveur lira la demande du client et l’imprimera sur un moniteur série.\n\n\ntandis que (client.lié())\n\n  si (client.disponible())\n  \n    Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n    En série.impression(ligne)\n  \n\n\n\n\nLa demande du client est marquée par une nouvelle ligne vide. Si nous trouvons cette marque, nous pouvons renvoyer la page Web et quitter. tandis que()    boucle en utilisant Pause.\n\n\nsi (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)\n\n    client.imprimer(prepareHtmlPage());\n    Pause;\n\n\n\n\nL&#39;ensemble du processus est terminé en arrêtant la connexion avec le client:\n\n\nMettre ensemble\nLe croquis complet est présenté ci-dessous.\n\n\n#comprendre \n\nconst carboniser* ssid = &quot;********&quot;;\nconst carboniser* mot de passe = &quot;********&quot;;\n\nWiFiServer serveur(80)\n\n\nvide installer()\n\n  En série.commencer(115200)\n  En série.imprimer();\n\n  En série.printf(&quot;Connexion à% s&quot;, ssid)\n  Wifi.commencer(ssid, mot de passe)\n  tandis que (Wifi.statut() ! = WL_CONNECTED)\n  \n    retard(500)\n    En série.impression(&quot;.&quot;)\n  \n  En série.imprimer(&quot; lié&quot;)\n\n  serveur.commencer();\n  En série.printf(&quot;Le serveur Web a démarré, ouvrez% s dans un navigateur Web n&quot;, Wifi.localIP()toString()c_str());\n\n\n\n// prépare une page Web à envoyer à un client (navigateur Web)\nChaîne prepareHtmlPage()\n\n  Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;\n\n\n\nvide boucle()\n{\n  WiFiClient client = serveur.disponible();\n  // attend qu&#39;un client (navigateur Web) se connecte\n  si (client)\n  \n    En série.imprimer(&quot; n[Client connected]&quot;)\n    tandis que (client.lié())\n    \n      // lit ligne par ligne ce que le client (navigateur Web) demande\n      si (client.disponible())\n      \n        Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n        En série.impression(ligne)\n        // attend la fin de la demande du client, qui est marquée avec une ligne vide\n        si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)\n        \n          client.imprimer(prepareHtmlPage());\n          Pause;\n        \n      \n    \n    retard(1) // donne le temps au navigateur Web pour recevoir les données\n\n    // ferme la connexion:\n    client.Arrêtez();\n    En série.imprimer(&quot;[Client disonnected]&quot;)\n  \n}\n\n\n\n\n\nFaites-le courir\nMise à jour ssid    et mot de passe    dans l&#39;esquisse pour faire correspondre les informations d&#39;identification de votre point d&#39;accès. Chargez l&#39;esquisse sur le module ESP et ouvrez un moniteur série. Tout d&#39;abord, vous devriez voir la confirmation que le module connecté au point d&#39;accès et au serveur Web a démarré.\n\n\nDe liaison à capteur-net ........ lié\nla toile serveur commencé, ouvert 192.168.1.104 dans une la toile navigateur\n\n\n\nEntrez l&#39;adresse IP fournie dans un navigateur Web. Vous devriez voir la page servie par ESP8266:\n\n\n\nLa page serait actualisée toutes les 5 secondes. Chaque fois que cela se produit, une requête du client (votre navigateur Web) doit être imprimée sur le moniteur série:\n\n\n[[[[Client lié]\nOBTENIR / HTTP/1.1\nAcceptez: texte/html, application/xhtml+xml, * / *\nAcceptez-La langue: en-NOUS\nUtilisateur-Agent: Mozilla/5.0 (les fenêtres NT 6.1; WOW64; Trident/7,0; VR:11.0) comme Gecko\nAcceptez-Codage: gzip, dégonfler\nHôte: 192.168.1.104\nDNT: 1\nLien: Garder-Vivant\n[[[[client déconnecté]\n\n\n\n\n\nQuoi d&#39;autre?\nSe penche sur exemples de clients vous découvrirez rapidement les similitudes de protocole avec le serveur. Le protocole commence par un en-tête contenant des informations sur la communication. Il contient quel type de contenu est communiqué ou accepté comme texte / html. Il indique si la connexion sera maintenue ou fermée après la soumission de l&#39;en-tête. Il contient l&#39;identification de l&#39;expéditeur comme Agent utilisateur: Mozilla / 5.0 (Les fenêtres NT 6.1), etc.\n\n\nConclusion\nL&#39;exemple ci-dessus montre qu&#39;un serveur Web sur l&#39;ESP8266 peut être configuré en un rien de temps. Un tel serveur peut facilement répondre aux demandes de matériel et de logiciels beaucoup plus puissants, tels qu&#39;un PC doté d&#39;un navigateur Web. Découvrez d&#39;autres classes comme ESP8266WebServer qui vous permettent de programmer des applications plus avancées.\nSi vous souhaitez essayer un autre exemple de serveur, consultez WiFiWebServer.ino, qui offre la fonctionnalité d&#39;activation et de désactivation de la broche GPIO à partir d&#39;un navigateur Web.\nPour la liste des fonctions fournies pour implémenter et gérer les serveurs, veuillez vous référer à la Classe de serveur Documentation.\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["La configuration Web d&#39;un serveur sur l&#39;ESP8266 nécessite très peu de code et est étonnamment simple. C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi.\nLe but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web. Cette page doit indiquer la lecture brute actuelle de la broche d’entrée analogique de l’ESP.","L&#39;object\nNous allons commencer par créer un objet serveur.\nLe serveur répond aux clients (dans ce cas, les navigateurs Web) sur le port 80, qui est un port standard. Les navigateurs Web communiquent avec les serveurs Web.","La page\nPuis écrivons une courte fonction prepareHtmlPage (), qui retournera un Chaîne    variable de classe contenant le contenu de la page Web. Nous allons ensuite transmettre cette variable au serveur pour la transmettre à un client.","Chaîne prepareHtmlPage()","Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;","La fonction ne fait rien d&#39;extraordinaire mais rassemble simplement un en-tête de texte et le contenu HTML de la page.","La page est servie\nLa diffusion de cette page Web se fera dans le boucle()    où le serveur attend qu&#39;un nouveau client se connecte et envoie des données contenant une requête:","vide boucle()","WiFiClient client = serveur.disponible();\n  si (client)\n  \n    // nous avons un nouveau client qui envoie une requête","Une fois qu&#39;un nouveau client est connecté, le serveur lira la demande du client et l’imprimera sur un moniteur série.","tandis que (client.lié())","si (client.disponible())\n  \n    Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n    En série.impression(ligne)","La demande du client est marquée par une nouvelle ligne vide. Si nous trouvons cette marque, nous pouvons renvoyer la page Web et quitter. tandis que()    boucle en utilisant Pause.","si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)","client.imprimer(prepareHtmlPage());\n    Pause;","L&#39;ensemble du processus est terminé en arrêtant la connexion avec le client:","Mettre ensemble\nLe croquis complet est présenté ci-dessous.","#comprendre","const carboniser* ssid = &quot;********&quot;;\nconst carboniser* mot de passe = &quot;********&quot;;","WiFiServer serveur(80)","vide installer()","En série.commencer(115200)\n  En série.imprimer();","En série.printf(&quot;Connexion à% s&quot;, ssid)\n  Wifi.commencer(ssid, mot de passe)\n  tandis que (Wifi.statut() ! = WL_CONNECTED)\n  \n    retard(500)\n    En série.impression(&quot;.&quot;)\n  \n  En série.imprimer(&quot; lié&quot;)","serveur.commencer();\n  En série.printf(&quot;Le serveur Web a démarré, ouvrez% s dans un navigateur Web n&quot;, Wifi.localIP()toString()c_str());","// prépare une page Web à envoyer à un client (navigateur Web)\nChaîne prepareHtmlPage()","Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;","vide boucle()\n{\n  WiFiClient client = serveur.disponible();\n  // attend qu&#39;un client (navigateur Web) se connecte\n  si (client)\n  \n    En série.imprimer(&quot; n[Client connected]&quot;)\n    tandis que (client.lié())\n    \n      // lit ligne par ligne ce que le client (navigateur Web) demande\n      si (client.disponible())\n      \n        Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n        En série.impression(ligne)\n        // attend la fin de la demande du client, qui est marquée avec une ligne vide\n        si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)\n        \n          client.imprimer(prepareHtmlPage());\n          Pause;\n        \n      \n    \n    retard(1) // donne le temps au navigateur Web pour recevoir les données","// ferme la connexion:\n    client.Arrêtez();\n    En série.imprimer(&quot;[Client disonnected]&quot;)\n  \n}","Faites-le courir\nMise à jour ssid    et mot de passe    dans l&#39;esquisse pour faire correspondre les informations d&#39;identification de votre point d&#39;accès. Chargez l&#39;esquisse sur le module ESP et ouvrez un moniteur série. Tout d&#39;abord, vous devriez voir la confirmation que le module connecté au point d&#39;accès et au serveur Web a démarré.","De liaison à capteur-net ........ lié\nla toile serveur commencé, ouvert 192.168.1.104 dans une la toile navigateur","Entrez l&#39;adresse IP fournie dans un navigateur Web. Vous devriez voir la page servie par ESP8266:","La page serait actualisée toutes les 5 secondes. Chaque fois que cela se produit, une requête du client (votre navigateur Web) doit être imprimée sur le moniteur série:","[[[[Client lié]\nOBTENIR / HTTP/1.1\nAcceptez: texte/html, application/xhtml+xml, * / *\nAcceptez-La langue: en-NOUS\nUtilisateur-Agent: Mozilla/5.0 (les fenêtres NT 6.1; WOW64; Trident/7,0; VR:11.0) comme Gecko\nAcceptez-Codage: gzip, dégonfler\nHôte: 192.168.1.104\nDNT: 1\nLien: Garder-Vivant\n[[[[client déconnecté]","Quoi d&#39;autre?\nSe penche sur exemples de clients vous découvrirez rapidement les similitudes de protocole avec le serveur. Le protocole commence par un en-tête contenant des informations sur la communication. Il contient quel type de contenu est communiqué ou accepté comme texte / html. Il indique si la connexion sera maintenue ou fermée après la soumission de l&#39;en-tête. Il contient l&#39;identification de l&#39;expéditeur comme Agent utilisateur: Mozilla / 5.0 (Les fenêtres NT 6.1), etc.","Conclusion\nL&#39;exemple ci-dessus montre qu&#39;un serveur Web sur l&#39;ESP8266 peut être configuré en un rien de temps. Un tel serveur peut facilement répondre aux demandes de matériel et de logiciels beaucoup plus puissants, tels qu&#39;un PC doté d&#39;un navigateur Web. Découvrez d&#39;autres classes comme ESP8266WebServer qui vous permettent de programmer des applications plus avancées.\nSi vous souhaitez essayer un autre exemple de serveur, consultez WiFiWebServer.ino, qui offre la fonctionnalité d&#39;activation et de désactivation de la broche GPIO à partir d&#39;un navigateur Web.\nPour la liste des fonctions fournies pour implémenter et gérer les serveurs, veuillez vous référer à la Classe de serveur Documentation.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"La configuration Web d&#39;un serveur sur l&#39;ESP8266 nécessite très peu de code et est étonnamment simple. C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi.\nLe but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web. Cette page doit indiquer la lecture brute actuelle de la broche d’entrée analogique de l’ESP.","html":"<p>La configuration Web d&#039;un serveur sur l&#039;ESP8266 nécessite très peu de code et est étonnamment simple. C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi.\nLe but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web. Cette page doit indiquer la lecture brute actuelle de la broche d’entrée analogique de l’ESP.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"L&#39;object\nNous allons commencer par créer un objet serveur.\nLe serveur répond aux clients (dans ce cas, les navigateurs Web) sur le port 80, qui est un port standard. Les navigateurs Web communiquent avec les serveurs Web.","html":"<p>L&#039;object\nNous allons commencer par créer un objet serveur.\nLe serveur répond aux clients (dans ce cas, les navigateurs Web) sur le port 80, qui est un port standard. Les navigateurs Web communiquent avec les serveurs Web.</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"La page\nPuis écrivons une courte fonction prepareHtmlPage (), qui retournera un Chaîne    variable de classe contenant le contenu de la page Web. Nous allons ensuite transmettre cette variable au serveur pour la transmettre à un client.","html":"<p>La page\nPuis écrivons une courte fonction prepareHtmlPage (), qui retournera un Chaîne    variable de classe contenant le contenu de la page Web. Nous allons ensuite transmettre cette variable au serveur pour la transmettre à un client.</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Chaîne prepareHtmlPage()","html":"<p>Chaîne prepareHtmlPage()</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;","html":"<p>Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#039;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"La fonction ne fait rien d&#39;extraordinaire mais rassemble simplement un en-tête de texte et le contenu HTML de la page.","html":"<p>La fonction ne fait rien d&#039;extraordinaire mais rassemble simplement un en-tête de texte et le contenu HTML de la page.</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"La page est servie\nLa diffusion de cette page Web se fera dans le boucle()    où le serveur attend qu&#39;un nouveau client se connecte et envoie des données contenant une requête:","html":"<p>La page est servie\nLa diffusion de cette page Web se fera dans le boucle()    où le serveur attend qu&#039;un nouveau client se connecte et envoie des données contenant une requête:</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"vide boucle()","html":"<p>vide boucle()</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"WiFiClient client = serveur.disponible();\n  si (client)\n  \n    // nous avons un nouveau client qui envoie une requête","html":"<p>WiFiClient client = serveur.disponible();\n  si (client)\n  \n    // nous avons un nouveau client qui envoie une requête</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Une fois qu&#39;un nouveau client est connecté, le serveur lira la demande du client et l’imprimera sur un moniteur série.","html":"<p>Une fois qu&#039;un nouveau client est connecté, le serveur lira la demande du client et l’imprimera sur un moniteur série.</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"tandis que (client.lié())","html":"<p>tandis que (client.lié())</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"si (client.disponible())\n  \n    Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n    En série.impression(ligne)","html":"<p>si (client.disponible())\n  \n    Chaîne ligne = client.readStringUntil(&#039; r&#039;)\n    En série.impression(ligne)</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"La demande du client est marquée par une nouvelle ligne vide. Si nous trouvons cette marque, nous pouvons renvoyer la page Web et quitter. tandis que()    boucle en utilisant Pause.","html":"<p>La demande du client est marquée par une nouvelle ligne vide. Si nous trouvons cette marque, nous pouvons renvoyer la page Web et quitter. tandis que()    boucle en utilisant Pause.</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)","html":"<p>si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#039; n&#039;)</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"client.imprimer(prepareHtmlPage());\n    Pause;","html":"<p>client.imprimer(prepareHtmlPage());\n    Pause;</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"L&#39;ensemble du processus est terminé en arrêtant la connexion avec le client:","html":"<p>L&#039;ensemble du processus est terminé en arrêtant la connexion avec le client:</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"Mettre ensemble\nLe croquis complet est présenté ci-dessous.","html":"<p>Mettre ensemble\nLe croquis complet est présenté ci-dessous.</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"#comprendre","html":"<p>#comprendre</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"const carboniser* ssid = &quot;********&quot;;\nconst carboniser* mot de passe = &quot;********&quot;;","html":"<p>const carboniser* ssid = &quot;********&quot;;\nconst carboniser* mot de passe = &quot;********&quot;;</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"WiFiServer serveur(80)","html":"<p>WiFiServer serveur(80)</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"vide installer()","html":"<p>vide installer()</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"En série.commencer(115200)\n  En série.imprimer();","html":"<p>En série.commencer(115200)\n  En série.imprimer();</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"En série.printf(&quot;Connexion à% s&quot;, ssid)\n  Wifi.commencer(ssid, mot de passe)\n  tandis que (Wifi.statut() ! = WL_CONNECTED)\n  \n    retard(500)\n    En série.impression(&quot;.&quot;)\n  \n  En série.imprimer(&quot; lié&quot;)","html":"<p>En série.printf(&quot;Connexion à% s&quot;, ssid)\n  Wifi.commencer(ssid, mot de passe)\n  tandis que (Wifi.statut() ! = WL_CONNECTED)\n  \n    retard(500)\n    En série.impression(&quot;.&quot;)\n  \n  En série.imprimer(&quot; lié&quot;)</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"serveur.commencer();\n  En série.printf(&quot;Le serveur Web a démarré, ouvrez% s dans un navigateur Web n&quot;, Wifi.localIP()toString()c_str());","html":"<p>serveur.commencer();\n  En série.printf(&quot;Le serveur Web a démarré, ouvrez% s dans un navigateur Web n&quot;, Wifi.localIP()toString()c_str());</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"// prépare une page Web à envoyer à un client (navigateur Web)\nChaîne prepareHtmlPage()","html":"<p>// prépare une page Web à envoyer à un client (navigateur Web)\nChaîne prepareHtmlPage()</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;","html":"<p>Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#039;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"vide boucle()\n{\n  WiFiClient client = serveur.disponible();\n  // attend qu&#39;un client (navigateur Web) se connecte\n  si (client)\n  \n    En série.imprimer(&quot; n[Client connected]&quot;)\n    tandis que (client.lié())\n    \n      // lit ligne par ligne ce que le client (navigateur Web) demande\n      si (client.disponible())\n      \n        Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n        En série.impression(ligne)\n        // attend la fin de la demande du client, qui est marquée avec une ligne vide\n        si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)\n        \n          client.imprimer(prepareHtmlPage());\n          Pause;\n        \n      \n    \n    retard(1) // donne le temps au navigateur Web pour recevoir les données","html":"<p>vide boucle()\n{\n  WiFiClient client = serveur.disponible();\n  // attend qu&#039;un client (navigateur Web) se connecte\n  si (client)\n  \n    En série.imprimer(&quot; n[Client connected]&quot;)\n    tandis que (client.lié())\n    \n      // lit ligne par ligne ce que le client (navigateur Web) demande\n      si (client.disponible())\n      \n        Chaîne ligne = client.readStringUntil(&#039; r&#039;)\n        En série.impression(ligne)\n        // attend la fin de la demande du client, qui est marquée avec une ligne vide\n        si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#039; n&#039;)\n        \n          client.imprimer(prepareHtmlPage());\n          Pause;\n        \n      \n    \n    retard(1) // donne le temps au navigateur Web pour recevoir les données</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"// ferme la connexion:\n    client.Arrêtez();\n    En série.imprimer(&quot;[Client disonnected]&quot;)\n  \n}","html":"<p>// ferme la connexion:\n    client.Arrêtez();\n    En série.imprimer(&quot;[Client disonnected]&quot;)\n  \n}</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"Faites-le courir\nMise à jour ssid    et mot de passe    dans l&#39;esquisse pour faire correspondre les informations d&#39;identification de votre point d&#39;accès. Chargez l&#39;esquisse sur le module ESP et ouvrez un moniteur série. Tout d&#39;abord, vous devriez voir la confirmation que le module connecté au point d&#39;accès et au serveur Web a démarré.","html":"<p>Faites-le courir\nMise à jour ssid    et mot de passe    dans l&#039;esquisse pour faire correspondre les informations d&#039;identification de votre point d&#039;accès. Chargez l&#039;esquisse sur le module ESP et ouvrez un moniteur série. Tout d&#039;abord, vous devriez voir la confirmation que le module connecté au point d&#039;accès et au serveur Web a démarré.</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"De liaison à capteur-net ........ lié\nla toile serveur commencé, ouvert 192.168.1.104 dans une la toile navigateur","html":"<p>De liaison à capteur-net ........ lié\nla toile serveur commencé, ouvert 192.168.1.104 dans une la toile navigateur</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"Entrez l&#39;adresse IP fournie dans un navigateur Web. Vous devriez voir la page servie par ESP8266:","html":"<p>Entrez l&#039;adresse IP fournie dans un navigateur Web. Vous devriez voir la page servie par ESP8266:</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"La page serait actualisée toutes les 5 secondes. Chaque fois que cela se produit, une requête du client (votre navigateur Web) doit être imprimée sur le moniteur série:","html":"<p>La page serait actualisée toutes les 5 secondes. Chaque fois que cela se produit, une requête du client (votre navigateur Web) doit être imprimée sur le moniteur série:</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"[[[[Client lié]\nOBTENIR / HTTP/1.1\nAcceptez: texte/html, application/xhtml+xml, * / *\nAcceptez-La langue: en-NOUS\nUtilisateur-Agent: Mozilla/5.0 (les fenêtres NT 6.1; WOW64; Trident/7,0; VR:11.0) comme Gecko\nAcceptez-Codage: gzip, dégonfler\nHôte: 192.168.1.104\nDNT: 1\nLien: Garder-Vivant\n[[[[client déconnecté]","html":"<p>[[[[Client lié]\nOBTENIR / HTTP/1.1\nAcceptez: texte/html, application/xhtml+xml, * / *\nAcceptez-La langue: en-NOUS\nUtilisateur-Agent: Mozilla/5.0 (les fenêtres NT 6.1; WOW64; Trident/7,0; VR:11.0) comme Gecko\nAcceptez-Codage: gzip, dégonfler\nHôte: 192.168.1.104\nDNT: 1\nLien: Garder-Vivant\n[[[[client déconnecté]</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"Quoi d&#39;autre?\nSe penche sur exemples de clients vous découvrirez rapidement les similitudes de protocole avec le serveur. Le protocole commence par un en-tête contenant des informations sur la communication. Il contient quel type de contenu est communiqué ou accepté comme texte / html. Il indique si la connexion sera maintenue ou fermée après la soumission de l&#39;en-tête. Il contient l&#39;identification de l&#39;expéditeur comme Agent utilisateur: Mozilla / 5.0 (Les fenêtres NT 6.1), etc.","html":"<p>Quoi d&#039;autre?\nSe penche sur exemples de clients vous découvrirez rapidement les similitudes de protocole avec le serveur. Le protocole commence par un en-tête contenant des informations sur la communication. Il contient quel type de contenu est communiqué ou accepté comme texte / html. Il indique si la connexion sera maintenue ou fermée après la soumission de l&#039;en-tête. Il contient l&#039;identification de l&#039;expéditeur comme Agent utilisateur: Mozilla / 5.0 (Les fenêtres NT 6.1), etc.</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"Conclusion\nL&#39;exemple ci-dessus montre qu&#39;un serveur Web sur l&#39;ESP8266 peut être configuré en un rien de temps. Un tel serveur peut facilement répondre aux demandes de matériel et de logiciels beaucoup plus puissants, tels qu&#39;un PC doté d&#39;un navigateur Web. Découvrez d&#39;autres classes comme ESP8266WebServer qui vous permettent de programmer des applications plus avancées.\nSi vous souhaitez essayer un autre exemple de serveur, consultez WiFiWebServer.ino, qui offre la fonctionnalité d&#39;activation et de désactivation de la broche GPIO à partir d&#39;un navigateur Web.\nPour la liste des fonctions fournies pour implémenter et gérer les serveurs, veuillez vous référer à la Classe de serveur Documentation.","html":"<p>Conclusion\nL&#039;exemple ci-dessus montre qu&#039;un serveur Web sur l&#039;ESP8266 peut être configuré en un rien de temps. Un tel serveur peut facilement répondre aux demandes de matériel et de logiciels beaucoup plus puissants, tels qu&#039;un PC doté d&#039;un navigateur Web. Découvrez d&#039;autres classes comme ESP8266WebServer qui vous permettent de programmer des applications plus avancées.\nSi vous souhaitez essayer un autre exemple de serveur, consultez WiFiWebServer.ino, qui offre la fonctionnalité d&#039;activation et de désactivation de la broche GPIO à partir d&#039;un navigateur Web.\nPour la liste des fonctions fournies pour implémenter et gérer les serveurs, veuillez vous référer à la Classe de serveur Documentation.</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"La configuration Web d&#39;un serveur sur l&#39;ESP8266 nécessite très peu de code et est étonnamment simple. C’est grâce aux fonctionnalités fournies par la bibliothèque polyvalente ESP8266WiFi.\nLe but de cet exemple sera de préparer une page Web pouvant être ouverte dans un navigateur Web. Cette page doit indiquer la lecture brute actuelle de la broche d’entrée analogique de l’ESP."},{"id":"text-2","heading":"Text","content":"L&#39;object\nNous allons commencer par créer un objet serveur.\nLe serveur répond aux clients (dans ce cas, les navigateurs Web) sur le port 80, qui est un port standard. Les navigateurs Web communiquent avec les serveurs Web."},{"id":"text-3","heading":"Text","content":"La page\nPuis écrivons une courte fonction prepareHtmlPage (), qui retournera un Chaîne    variable de classe contenant le contenu de la page Web. Nous allons ensuite transmettre cette variable au serveur pour la transmettre à un client."},{"id":"text-4","heading":"Text","content":"Chaîne prepareHtmlPage()"},{"id":"text-5","heading":"Text","content":"Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;"},{"id":"text-6","heading":"Text","content":"La fonction ne fait rien d&#39;extraordinaire mais rassemble simplement un en-tête de texte et le contenu HTML de la page."},{"id":"text-7","heading":"Text","content":"La page est servie\nLa diffusion de cette page Web se fera dans le boucle()    où le serveur attend qu&#39;un nouveau client se connecte et envoie des données contenant une requête:"},{"id":"text-8","heading":"Text","content":"vide boucle()"},{"id":"text-9","heading":"Text","content":"WiFiClient client = serveur.disponible();\n  si (client)\n  \n    // nous avons un nouveau client qui envoie une requête"},{"id":"text-10","heading":"Text","content":"Une fois qu&#39;un nouveau client est connecté, le serveur lira la demande du client et l’imprimera sur un moniteur série."},{"id":"text-11","heading":"Text","content":"tandis que (client.lié())"},{"id":"text-12","heading":"Text","content":"si (client.disponible())\n  \n    Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n    En série.impression(ligne)"},{"id":"text-13","heading":"Text","content":"La demande du client est marquée par une nouvelle ligne vide. Si nous trouvons cette marque, nous pouvons renvoyer la page Web et quitter. tandis que()    boucle en utilisant Pause."},{"id":"text-14","heading":"Text","content":"si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)"},{"id":"text-15","heading":"Text","content":"client.imprimer(prepareHtmlPage());\n    Pause;"},{"id":"text-16","heading":"Text","content":"L&#39;ensemble du processus est terminé en arrêtant la connexion avec le client:"},{"id":"text-17","heading":"Text","content":"Mettre ensemble\nLe croquis complet est présenté ci-dessous."},{"id":"text-18","heading":"Text","content":"#comprendre"},{"id":"text-19","heading":"Text","content":"const carboniser* ssid = &quot;********&quot;;\nconst carboniser* mot de passe = &quot;********&quot;;"},{"id":"text-20","heading":"Text","content":"WiFiServer serveur(80)"},{"id":"text-21","heading":"Text","content":"vide installer()"},{"id":"text-22","heading":"Text","content":"En série.commencer(115200)\n  En série.imprimer();"},{"id":"text-23","heading":"Text","content":"En série.printf(&quot;Connexion à% s&quot;, ssid)\n  Wifi.commencer(ssid, mot de passe)\n  tandis que (Wifi.statut() ! = WL_CONNECTED)\n  \n    retard(500)\n    En série.impression(&quot;.&quot;)\n  \n  En série.imprimer(&quot; lié&quot;)"},{"id":"text-24","heading":"Text","content":"serveur.commencer();\n  En série.printf(&quot;Le serveur Web a démarré, ouvrez% s dans un navigateur Web n&quot;, Wifi.localIP()toString()c_str());"},{"id":"text-25","heading":"Text","content":"// prépare une page Web à envoyer à un client (navigateur Web)\nChaîne prepareHtmlPage()"},{"id":"text-26","heading":"Text","content":"Chaîne htmlPage =\n     Chaîne(&quot;HTTP / 1.1 200 OK r  n&quot;) +\n            &quot;Type de contenu: text / html r  n&quot; +\n            &quot;Connexion: proche r  n&quot; +  // la connexion sera fermée après l&#39;achèvement de la réponse\n            &quot;Actualiser: 5 r  n&quot; +  // actualise la page automatiquement toutes les 5 secondes\n            &quot; r  n&quot; +\n            &quot;&quot; +\n            &quot;&quot; +\n            &quot;Entrée analogique:&quot; + Chaîne(analogiqueRead(A0)) +\n            &quot;&quot; +\n            &quot; r  n&quot;;\n  revenir htmlPage;"},{"id":"text-27","heading":"Text","content":"vide boucle()\n{\n  WiFiClient client = serveur.disponible();\n  // attend qu&#39;un client (navigateur Web) se connecte\n  si (client)\n  \n    En série.imprimer(&quot; n[Client connected]&quot;)\n    tandis que (client.lié())\n    \n      // lit ligne par ligne ce que le client (navigateur Web) demande\n      si (client.disponible())\n      \n        Chaîne ligne = client.readStringUntil(&#39; r&#39;)\n        En série.impression(ligne)\n        // attend la fin de la demande du client, qui est marquée avec une ligne vide\n        si (ligne.longueur() == 1 &amp;&amp; ligne[[[[0] == &#39; n&#39;)\n        \n          client.imprimer(prepareHtmlPage());\n          Pause;\n        \n      \n    \n    retard(1) // donne le temps au navigateur Web pour recevoir les données"},{"id":"text-28","heading":"Text","content":"// ferme la connexion:\n    client.Arrêtez();\n    En série.imprimer(&quot;[Client disonnected]&quot;)\n  \n}"},{"id":"text-29","heading":"Text","content":"Faites-le courir\nMise à jour ssid    et mot de passe    dans l&#39;esquisse pour faire correspondre les informations d&#39;identification de votre point d&#39;accès. Chargez l&#39;esquisse sur le module ESP et ouvrez un moniteur série. Tout d&#39;abord, vous devriez voir la confirmation que le module connecté au point d&#39;accès et au serveur Web a démarré."},{"id":"text-30","heading":"Text","content":"De liaison à capteur-net ........ lié\nla toile serveur commencé, ouvert 192.168.1.104 dans une la toile navigateur"},{"id":"text-31","heading":"Text","content":"Entrez l&#39;adresse IP fournie dans un navigateur Web. Vous devriez voir la page servie par ESP8266:"},{"id":"text-32","heading":"Text","content":"La page serait actualisée toutes les 5 secondes. Chaque fois que cela se produit, une requête du client (votre navigateur Web) doit être imprimée sur le moniteur série:"},{"id":"text-33","heading":"Text","content":"[[[[Client lié]\nOBTENIR / HTTP/1.1\nAcceptez: texte/html, application/xhtml+xml, * / *\nAcceptez-La langue: en-NOUS\nUtilisateur-Agent: Mozilla/5.0 (les fenêtres NT 6.1; WOW64; Trident/7,0; VR:11.0) comme Gecko\nAcceptez-Codage: gzip, dégonfler\nHôte: 192.168.1.104\nDNT: 1\nLien: Garder-Vivant\n[[[[client déconnecté]"},{"id":"text-34","heading":"Text","content":"Quoi d&#39;autre?\nSe penche sur exemples de clients vous découvrirez rapidement les similitudes de protocole avec le serveur. Le protocole commence par un en-tête contenant des informations sur la communication. Il contient quel type de contenu est communiqué ou accepté comme texte / html. Il indique si la connexion sera maintenue ou fermée après la soumission de l&#39;en-tête. Il contient l&#39;identification de l&#39;expéditeur comme Agent utilisateur: Mozilla / 5.0 (Les fenêtres NT 6.1), etc."},{"id":"text-35","heading":"Text","content":"Conclusion\nL&#39;exemple ci-dessus montre qu&#39;un serveur Web sur l&#39;ESP8266 peut être configuré en un rien de temps. Un tel serveur peut facilement répondre aux demandes de matériel et de logiciels beaucoup plus puissants, tels qu&#39;un PC doté d&#39;un navigateur Web. Découvrez d&#39;autres classes comme ESP8266WebServer qui vous permettent de programmer des applications plus avancées.\nSi vous souhaitez essayer un autre exemple de serveur, consultez WiFiWebServer.ino, qui offre la fonctionnalité d&#39;activation et de désactivation de la broche GPIO à partir d&#39;un navigateur Web.\nPour la liste des fonctions fournies pour implémenter et gérer les serveurs, veuillez vous référer à la Classe de serveur Documentation."},{"id":"text-36","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":""},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/10/12/server-documentation-esp8266-arduino-core-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/10/12/server-documentation-esp8266-arduino-core-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/10/12/server-documentation-esp8266-arduino-core-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}