{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2020/03/01/programmation-de-lesp8266-avec-lide-arduino-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2020/03/01/programmation-de-lesp8266-avec-lide-arduino-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2020/03/01/programmation-de-lesp8266-avec-lide-arduino-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Programmation de l&#39;ESP8266 avec l&#39;IDE Arduino\n\n &#8211; Bien choisir son serveur d impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2020-03-01T12:21:42+00:00","modified_at":"2020-03-01T12:21:42+00:00","word_count":2460,"reading_time_seconds":738,"summary":"Dans cet article, nous verrons comment utiliser l&#39;IDE Arduino pour programmer les modules Wi-Fi ESP8266. L&#39;objectif est d&#39;utiliser l&#39;ESP8266 comme microcontrôleur principal et non comme composant périphérique. Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée. Nous verrons d&#39;abord comment configurer l&#39;IDE Arduino pour qu&#39;il considère l&#39;ESP8266 comme un &quot;type [&hellip;]","summary_points":["Dans cet article, nous verrons comment utiliser l&#39;IDE Arduino pour programmer les modules Wi-Fi ESP8266.","L&#39;objectif est d&#39;utiliser l&#39;ESP8266 comme microcontrôleur principal et non comme composant périphérique.","Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée.","Nous verrons d&#39;abord comment configurer l&#39;IDE Arduino pour qu&#39;il considère l&#39;ESP8266 comme un &quot;type de carte&quot; à part entière, comme c&#39;est le cas pour un Arduino Mega ou Uno."],"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":"7dd62550e12b2f89876c10b22dc88dd9","plain_text":"Dans cet article, nous verrons comment utiliser l&#39;IDE Arduino pour programmer les modules Wi-Fi ESP8266. L&#39;objectif est d&#39;utiliser l&#39;ESP8266 comme microcontrôleur principal et non comme composant périphérique. Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée.\nNous verrons d&#39;abord comment configurer l&#39;IDE Arduino pour qu&#39;il considère l&#39;ESP8266 comme un &quot;type de carte&quot; à part entière, comme c&#39;est le cas pour un Arduino Mega ou Uno. Nous ferons ensuite l&#39;édition pour télécharger les programmes sur le module, en utilisant un module d&#39;interface USB / série (le FT232RL). Enfin, nous présenterons certaines des instructions spécifiques à ESP8266 que nous utiliserons dans nos programmes.\nÉquipement\nNous utiliserons la version ESP-12 de l&#39;ESP8266 pour les raisons que nous avons détaillées dans l&#39;article L&#39;ESP8266, un Arduino avec Wifi pour 2 € ?. Les programmes seront téléchargés à l&#39;aide de l&#39;interface USB / série FT232RL. On aurait pu essayer d&#39;alimenter l&#39;ESP8266 grâce à la sortie 3,3v du FT232RL, mais le module Wi-Fi étant parfois assez gourmand, nous avons opté pour une alimentation externe. Nous utilisons 2 régulateurs en série: un régulateur 5v suivi d&#39;un régulateur 5v -&gt; 3,3v. Nous avons fait ce choix car c&#39;est ce que nous avions sous la main, mais n&#39;importe quelle source d&#39;alimentation 3,3 V fera l&#39;affaire, tant qu&#39;elle est suffisamment puissante (comptez 400mA).\n\nConfiguration de l&#39;IDE Arduino\nSi vous ne l&#39;avez pas déjà fait, téléchargez l&#39;IDE Arduino sur le site officiel, ici: Téléchargement IDE Arduino. Nous utilisons la version 1.6.5, mais toutes les versions ultérieures devraient fonctionner.\nUne fois l&#39;IDE installé, ouvrez-le et accédez aux préférences. Dans la zone &quot;URL du gestionnaire de tableaux supplémentaires&quot;, entrez l&#39;adresse suivante:\n\nhttp://arduino.esp8266.com/staging/package_esp8266com_index.json\n.\n\n  &lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_wcQyEpJ.png &quot;/ &gt;\n\nValidez, puis allez dans &quot;Outils&quot;, &quot;Type de carte&quot;, &quot;Gestionnaire de cartes&quot;. Dans le champ de recherche, entrez &quot;esp8266&quot;.\nVous devriez voir le résultat suivant:\n\n  &lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_14XJrZe.png &quot;/ &gt;\n\nCliquez sur &quot;Installer&quot;. Attendez quelques instants et une fois l&#39;installation terminée, si vous allez à nouveau dans &quot;Outils&quot;, &quot;Type de carte&quot;, vous remarquerez l&#39;apparition d&#39;une nouvelle option: &quot;Module ESP8266 générique&quot;. Sélectionnez ce dernier.\nVous y êtes, vous êtes prêt!\nTypes de démarrage ESP8266\nAvant de passer à l&#39;installation proprement dite, arrêtons-nous brièvement sur les différents modes de démarrage de l&#39;ESP8266.\nTrois des GPIO (GPIO0, GPIO2 et GPIO15) de l&#39;ESP8266 ESP-12 ont une fonction particulière lors du démarrage du module. Ils vous permettent de sélectionner le type de démarrage à effectuer.\nVoici les principales combinaisons possibles:\n\n\n\nMode\nGPIO0\nGPIO2\nGPIO15\n\n\n\n\nÉclat (démarrage normal: exécution du programme installé dans Flash)\n3.3v\n3.3v\nGND\n\n\nUART (téléchargement à partir d&#39;un lien série)\nGND\n3.3v\nGND\n\n\nSDIO (à partir d&#39;une carte SD)\npeu importe\npeu importe\n3.3v\n\n\n\nNous utiliserons la première combinaison pour exécuter un programme déjà présent dans le module, et la seconde pour télécharger un nouveau programme.\nModification de notre premier programme\nVoici le tableau de câblage décrivant l&#39;assemblage que nous utiliserons pour notre premier test.\n\n\n\nESP8266\n\nRemarque\n\n\n\n\n3.3v\n\nVCC\n&#8211;\n\n\nGND\n\nGND\n&#8211;\n\n\nTX\n\nRX FT232RL\n&#8211;\n\n\nRX\n\nTX FT232RL\n&#8211;\n\n\nCH_PD\n\nVCC\nLa broche CH_PD doit être haute pour que le module fonctionne\n\n\nGPIO0\n\nVCC ou GND\nGND pour télécharger un nouveau programme,3.3v pour lancer le programme déjà présent\n\n\nGPIO2\n\nVCC\n&#8211;\n\n\nGPIO15\n\nGND\n&#8211;\n\n\nRST\n\nVCC ou GND\nGND pour redémarrer l&#39;ESP8266,3.3v (ou non connecté) le reste du temps\n\n\n\n&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/montage-programmation-esp8266-ide-ar_dwTR2RE.png &quot;/ &gt;\nNous pouvons passer à la programmation, mais d&#39;abord, une petite clarification &#8230;\nAvant de continuer &#8230; serveur ou client?\nAvant de commencer à écrire un programme qui communique via WIFI, vous devrez vous poser cette question: dois-je programmer un serveur ou une client ?\nServeur\nUn serveur (au sens logiciel du terme), est un programme tout au long de son exécution reste attentif aux demandes de l&#39;extérieur. Lorsqu&#39;une demande arrive, elle effectue l&#39;action appropriée.\nVoici quelques exemples de serveurs que vous pourriez créer avec l&#39;ESP8266:\n\nune prise connectée: votre ESP8266 est passif jusqu&#39;à l&#39;arrivée d&#39;une demande. Il prend en charge 2 types de requêtes: &quot;allumer&quot; ou &quot;éteindre&quot;. Lorsqu&#39;une demande de &quot;mise sous tension&quot; arrive, l&#39;ESP8266 commande la fermeture d&#39;un relais, et son ouverture lorsqu&#39;il s&#39;agit d&#39;une demande de &quot;mise hors tension&quot;.\nune thermomètre connecté: lorsqu&#39;une demande arrive, le serveur envoie en réponse la température actuelle (connue grâce à un capteur de température connecté à l&#39;ESP8266)\n\nVous vous demandez peut-être comment ces demandes sont envoyées de l&#39;extérieur. Il peut simplement provenir d&#39;un navigateur Internet. Si nous prenons l&#39;exemple de la prise connectée, on pourrait imaginer les 2 URL suivantes: &quot;http://192.168.0.15/allumer&quot;&amp;&quot;http://192.168.0.15/eteindre&quot;. Si vous accédez au premier à partir d&#39;un navigateur Internet, le relais se ferme et le second l&#39;ouvre.\nLes demandes peuvent également être envoyées par une application installée sur un smartphone, ou par un autre ESP8266 (qui serait alors un client) ou par un logiciel fonctionnant en permanence sur un ordinateur (pourquoi pas un Raspberry Pi). On pourrait imaginer un logiciel qui interroge régulièrement un serveur de température (fonctionnant sur un ESP8266), et qui, selon la réponse, allumerait ou éteindrait un radiateur (via un relais contrôlé par un autre ESP8266). Dans ce cas, nous aurions 3 composants dans notre système: 2 serveurs ESP8266 et un logiciel &quot;orchestrateur&quot; qui fonctionnerait sur un Raspberry PI.\nClient\nContrairement au serveur, le client n&#39;écoute pas les demandes de l&#39;extérieur, mais il fait ses propres demandes lorsqu&#39;il en a besoin.\nExemples de clients que vous pourriez créer avec ESP826:\n\nune détecteur de présence: un détecteur de mouvement (type HC-SR501) est connecté à l&#39;ESP8266. Lorsqu&#39;un mouvement est détecté, l&#39;ESP8266 envoie une demande à un service SMS en ligne &#8230; Vous êtes averti sur votre téléphone\nune bouton connecté (Type de bouton Amazon Dash): vous connectez un bouton-poussoir à un ESP8266. Lorsque le bouton est enfoncé, une demande est envoyée à l&#39;extérieur. Cette demande pourrait être envoyée à un autre ESP8266 qui commanderait un relais pour, par exemple, allumer la lampe du salon &#8230;\n\nTrêve de blabla, un peu de béton!\nVotre premier serveur sur ESP8266\nVous allez créer notre premier serveur. Il ne fera pas grand-chose: il vous répondra simplement lorsque vous lui adresserez une demande. Pas très utile, dites-vous, mais cela constituera une base que vous pourrez réutiliser dans la plupart de vos futurs projets.\nMontage\nNous reprenons le montage décrit au début de l&#39;article. Nous nous connecterons GPIO0 à GND pour envoyer notre programme à l&#39;ESP8266, puis à VCC pour l&#39;exécuter.\nLe code\nVoici le code. Les commentaires décrivent comment cela fonctionne. Vous verrez, c&#39;est assez simple.\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n\nconst char * ssid = &quot;Livebox-XXXX&quot;; // remplacez par le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // remplacez par votre mot de passe WiFi\n\nESP8266WebServer server (80); // on instancie un serveur en écoute sur le port 80\n\nvoid setup (void) \nSerial.begin (115200);\n\n// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n\n// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);\n\n\n// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());\n\n// nous définissons ce qui doit être fait lorsque la route / hello est appelée\n// ici nous allons juste répondre avec un &quot;bonjour!&quot;\nserver.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);\n\n// nous commençons à écouter les demandes de l&#39;extérieur\nserver.begin ();\n\n\nboucle vide (void) \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();\n\n\nTéléchargement et essais\nVérifiez que vous avez sélectionné &quot;Generic ESP8266 Module&quot; dans &quot;Tools&quot;&gt; &quot;Card type&quot;. Connectez votre FT232RL à l&#39;ordinateur à l&#39;aide du câble USB. S&#39;identifier GPIO0 à GND, et envoyez le programme en cliquant sur &quot;Upload&quot; (2ème icône dans la barre d&#39;outils, ou via le menu: &quot;Sketch&quot;&gt; &quot;Upload&quot;).\nUne fois le téléchargement terminé, il est temps de tester. Lancez le moniteur série (&quot;Tools&quot; &amp; &quot;Serial monitor&quot;) et sélectionnez &quot;115200 bauds&quot; dans la liste déroulante en bas à droite de la fenêtre. Connectez-vous ensuite GPIO0 à VCC pour passer du mode &quot;upload&quot; au mode &quot;run&quot;, puis redémarrez le module en vous connectant RST à GND pendant quelques instants (disons une ou deux secondes).\nVous devriez alors voir quelque chose comme ça apparaître sur votre moniteur série:\n&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/moniteur-serie-esp8266_Ip1C1RH.jpg &quot;/&gt;\nLa première ligne nous donne l&#39;adresse IP qui nous a été attribuée: ici 192.168.1.29. La seconde nous indique que le serveur est prêt. Allons-y, testons! Ouvrez votre navigateur Internet préféré et entrez cette URL dans la barre d&#39;adresse: http://192.168.1.29/ bonjour (remplacez 192.168.1.29 par l&#39;adresse IP indiquée sur le moniteur série). Voici ce que vous devriez obtenir:\n&lt;img style = &quot;width: 80%; border: 1px solid #BBB;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/navigateur-esp8266.png &quot;/&gt;\nCela fonctionne: l&#39;ESP8266 a reçu notre demande et nous a envoyé une réponse. Comme vous pouvez le voir, il est assez simple de créer un serveur connecté au WiFi sur l&#39;ESP8266.\nPour réaliser le relais connecté dont nous avons parlé plus haut, très peu de modifications seront nécessaires. Le plus important sera de remplacer: \n\n  \n  \n  \n  server.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);\n\npar quelque chose comme:\n\n  \n  \n  \n  server.on (&quot;/ on&quot;, []() \ndigitalWrite (RELAY_PIN, LOW);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is ON&quot;);\n);\n\nserver.on (&quot;/ off&quot;, []() \ndigitalWrite (RELAY_PIN, HIGH);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is OFF&quot;);\n);  \n\nL&#39;appel de l&#39;url http://192.168.1.29/on fermera le relais, tandis que http://192.168.1.29/off l&#39;ouvrira.\nDeuxième exemple: un serveur avec un écran\nDans ce deuxième exemple, nous verrons comment connecter d&#39;autres composants à notre ESP8266, et comment interagir avec eux en fonction des demandes reçues.\nNous allons connecter un petit écran OLED I2, comme celui-ci: 0.96 &quot;I2C 128X64 OLED LCD à l&#39;ESP8266. A réception d&#39;une demande, nous afficherons le message passé en paramètre dans l&#39;url à l&#39;écran.\nMontage\nNous utiliserons le même assemblage que précédemment, auquel nous ajouterons l&#39;écran qui sera connecté comme ceci:\n\n\n\n\nOLED\n\nESP8266\n\n\n\n\n3.3v\n\n3.3v\n\n\nGND\n\nGND\n\n\nSDA\n\nGPIO04\n\n\nSLC\n\nGPIO05\n\n\n\n\nLe code\nPour contrôler l&#39;écran, nous utiliserons la bibliothèque suivante: https://github.com/squix78/esp8266-oled-ssd1306. Téléchargez l&#39;archive (Clone ou Télécharger&gt; Télécharger le zip) et importez-la dans l&#39;IDE Arduino (Esquisse&gt; Inclure une bibliothèque&gt; Ajouter la bibliothèque .ZIP).\nVoici le code que nous utiliserons:\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n#comprendre  &gt;\n#inclut &quot;SSD1306.h&quot;\n\nconst char * ssid = &quot;Livebox-XXXX&quot;; // mettez ici le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // mettez votre mot de passe WiFi\n\n// instancier l&#39;écran\n// l&#39;adresse I2C (ici 0x3C) peut être différente selon le module que vous utilisez\nAffichage SSD1306 (0x3C, 4, 5);\n\nESP8266WebServer server (80);\n\nvoid setup (void) \nSerial.begin (115200);\n\n// initialisation de l&#39;écran (voir la documentation de la bibliothèque)\ndisplay.init ();\ndisplay.flipScreenVertically ();\ndisplay.setFont (ArialMT_Plain_10);\ndisplay.setTextAlignment (TEXT_ALIGN_CENTER);\n\n// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n\n// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);\n\n\n// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());\n\n// nous définissons ce qui doit être fait lorsque la route &quot;/&quot; est appelée\nserver.on (&quot;/&quot;, []() \n// on obtient le paramètre msg dans l&#39;url\nMessage de chaîne = server.arg (&quot;msg&quot;);\n// on efface l&#39;écran\ndisplay.clear ();\n// on écrit le message à l&#39;écran\ndisplay.drawString (64, 22, message);\ndisplay.display ();\n// nous répondons au client\nserver.send (200, &quot;text / plain&quot;, &quot;message reçu:&quot; + message);\n);\n\nserver.begin ();\nSerial.println (&quot;Le serveur HTTP a démarré&quot;);\n\n\nboucle vide (void) \nserver.handleClient ();\n  \n\nTester\nTéléchargez le programme, ouvrez le moniteur série et redémarrez le module en suivant la procédure décrite dans le premier exemple. Ouvrez ensuite un navigateur Internet et entrez l&#39;URL suivante (en remplaçant l&#39;adresse IP par celle affichée sur le moniteur série): &quot;http://192.168.1.29/?msg=Message from internet :)&quot;. Et là, vous devriez assister au phénomène suivant:\n\n \n\nConclusion\nVous savez maintenant comment créer un serveur sur un ESP8266. Si vous avez aimé cet article, n&#39;hésitez pas à le partager sur les réseaux sociaux :).\nDiscussion\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Dans cet article, nous verrons comment utiliser l&#39;IDE Arduino pour programmer les modules Wi-Fi ESP8266. L&#39;objectif est d&#39;utiliser l&#39;ESP8266 comme microcontrôleur principal et non comme composant périphérique. Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée.\nNous verrons d&#39;abord comment configurer l&#39;IDE Arduino pour qu&#39;il considère l&#39;ESP8266 comme un &quot;type de carte&quot; à part entière, comme c&#39;est le cas pour un Arduino Mega ou Uno. Nous ferons ensuite l&#39;édition pour télécharger les programmes sur le module, en utilisant un module d&#39;interface USB / série (le FT232RL). Enfin, nous présenterons certaines des instructions spécifiques à ESP8266 que nous utiliserons dans nos programmes.\nÉquipement\nNous utiliserons la version ESP-12 de l&#39;ESP8266 pour les raisons que nous avons détaillées dans l&#39;article L&#39;ESP8266, un Arduino avec Wifi pour 2 € ?. Les programmes seront téléchargés à l&#39;aide de l&#39;interface USB / série FT232RL. On aurait pu essayer d&#39;alimenter l&#39;ESP8266 grâce à la sortie 3,3v du FT232RL, mais le module Wi-Fi étant parfois assez gourmand, nous avons opté pour une alimentation externe. Nous utilisons 2 régulateurs en série: un régulateur 5v suivi d&#39;un régulateur 5v -&gt; 3,3v. Nous avons fait ce choix car c&#39;est ce que nous avions sous la main, mais n&#39;importe quelle source d&#39;alimentation 3,3 V fera l&#39;affaire, tant qu&#39;elle est suffisamment puissante (comptez 400mA).","Configuration de l&#39;IDE Arduino\nSi vous ne l&#39;avez pas déjà fait, téléchargez l&#39;IDE Arduino sur le site officiel, ici: Téléchargement IDE Arduino. Nous utilisons la version 1.6.5, mais toutes les versions ultérieures devraient fonctionner.\nUne fois l&#39;IDE installé, ouvrez-le et accédez aux préférences. Dans la zone &quot;URL du gestionnaire de tableaux supplémentaires&quot;, entrez l&#39;adresse suivante:","http://arduino.esp8266.com/staging/package_esp8266com_index.json\n.","&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_wcQyEpJ.png &quot;/ &gt;","Validez, puis allez dans &quot;Outils&quot;, &quot;Type de carte&quot;, &quot;Gestionnaire de cartes&quot;. Dans le champ de recherche, entrez &quot;esp8266&quot;.\nVous devriez voir le résultat suivant:","&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_14XJrZe.png &quot;/ &gt;","Cliquez sur &quot;Installer&quot;. Attendez quelques instants et une fois l&#39;installation terminée, si vous allez à nouveau dans &quot;Outils&quot;, &quot;Type de carte&quot;, vous remarquerez l&#39;apparition d&#39;une nouvelle option: &quot;Module ESP8266 générique&quot;. Sélectionnez ce dernier.\nVous y êtes, vous êtes prêt!\nTypes de démarrage ESP8266\nAvant de passer à l&#39;installation proprement dite, arrêtons-nous brièvement sur les différents modes de démarrage de l&#39;ESP8266.\nTrois des GPIO (GPIO0, GPIO2 et GPIO15) de l&#39;ESP8266 ESP-12 ont une fonction particulière lors du démarrage du module. Ils vous permettent de sélectionner le type de démarrage à effectuer.\nVoici les principales combinaisons possibles:","Mode\nGPIO0\nGPIO2\nGPIO15","Éclat (démarrage normal: exécution du programme installé dans Flash)\n3.3v\n3.3v\nGND","UART (téléchargement à partir d&#39;un lien série)\nGND\n3.3v\nGND","SDIO (à partir d&#39;une carte SD)\npeu importe\npeu importe\n3.3v","Nous utiliserons la première combinaison pour exécuter un programme déjà présent dans le module, et la seconde pour télécharger un nouveau programme.\nModification de notre premier programme\nVoici le tableau de câblage décrivant l&#39;assemblage que nous utiliserons pour notre premier test.","ESP8266","Remarque","3.3v","VCC\n&#8211;","GND","GND\n&#8211;","TX","RX FT232RL\n&#8211;","RX","TX FT232RL\n&#8211;","CH_PD","VCC\nLa broche CH_PD doit être haute pour que le module fonctionne","GPIO0","VCC ou GND\nGND pour télécharger un nouveau programme,3.3v pour lancer le programme déjà présent","GPIO2","VCC\n&#8211;","GPIO15","GND\n&#8211;","RST","VCC ou GND\nGND pour redémarrer l&#39;ESP8266,3.3v (ou non connecté) le reste du temps","&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/montage-programmation-esp8266-ide-ar_dwTR2RE.png &quot;/ &gt;\nNous pouvons passer à la programmation, mais d&#39;abord, une petite clarification &#8230;\nAvant de continuer &#8230; serveur ou client?\nAvant de commencer à écrire un programme qui communique via WIFI, vous devrez vous poser cette question: dois-je programmer un serveur ou une client ?\nServeur\nUn serveur (au sens logiciel du terme), est un programme tout au long de son exécution reste attentif aux demandes de l&#39;extérieur. Lorsqu&#39;une demande arrive, elle effectue l&#39;action appropriée.\nVoici quelques exemples de serveurs que vous pourriez créer avec l&#39;ESP8266:","une prise connectée: votre ESP8266 est passif jusqu&#39;à l&#39;arrivée d&#39;une demande. Il prend en charge 2 types de requêtes: &quot;allumer&quot; ou &quot;éteindre&quot;. Lorsqu&#39;une demande de &quot;mise sous tension&quot; arrive, l&#39;ESP8266 commande la fermeture d&#39;un relais, et son ouverture lorsqu&#39;il s&#39;agit d&#39;une demande de &quot;mise hors tension&quot;.\nune thermomètre connecté: lorsqu&#39;une demande arrive, le serveur envoie en réponse la température actuelle (connue grâce à un capteur de température connecté à l&#39;ESP8266)","Vous vous demandez peut-être comment ces demandes sont envoyées de l&#39;extérieur. Il peut simplement provenir d&#39;un navigateur Internet. Si nous prenons l&#39;exemple de la prise connectée, on pourrait imaginer les 2 URL suivantes: &quot;http://192.168.0.15/allumer&quot;&amp;&quot;http://192.168.0.15/eteindre&quot;. Si vous accédez au premier à partir d&#39;un navigateur Internet, le relais se ferme et le second l&#39;ouvre.\nLes demandes peuvent également être envoyées par une application installée sur un smartphone, ou par un autre ESP8266 (qui serait alors un client) ou par un logiciel fonctionnant en permanence sur un ordinateur (pourquoi pas un Raspberry Pi). On pourrait imaginer un logiciel qui interroge régulièrement un serveur de température (fonctionnant sur un ESP8266), et qui, selon la réponse, allumerait ou éteindrait un radiateur (via un relais contrôlé par un autre ESP8266). Dans ce cas, nous aurions 3 composants dans notre système: 2 serveurs ESP8266 et un logiciel &quot;orchestrateur&quot; qui fonctionnerait sur un Raspberry PI.\nClient\nContrairement au serveur, le client n&#39;écoute pas les demandes de l&#39;extérieur, mais il fait ses propres demandes lorsqu&#39;il en a besoin.\nExemples de clients que vous pourriez créer avec ESP826:","une détecteur de présence: un détecteur de mouvement (type HC-SR501) est connecté à l&#39;ESP8266. Lorsqu&#39;un mouvement est détecté, l&#39;ESP8266 envoie une demande à un service SMS en ligne &#8230; Vous êtes averti sur votre téléphone\nune bouton connecté (Type de bouton Amazon Dash): vous connectez un bouton-poussoir à un ESP8266. Lorsque le bouton est enfoncé, une demande est envoyée à l&#39;extérieur. Cette demande pourrait être envoyée à un autre ESP8266 qui commanderait un relais pour, par exemple, allumer la lampe du salon &#8230;","Trêve de blabla, un peu de béton!\nVotre premier serveur sur ESP8266\nVous allez créer notre premier serveur. Il ne fera pas grand-chose: il vous répondra simplement lorsque vous lui adresserez une demande. Pas très utile, dites-vous, mais cela constituera une base que vous pourrez réutiliser dans la plupart de vos futurs projets.\nMontage\nNous reprenons le montage décrit au début de l&#39;article. Nous nous connecterons GPIO0 à GND pour envoyer notre programme à l&#39;ESP8266, puis à VCC pour l&#39;exécuter.\nLe code\nVoici le code. Les commentaires décrivent comment cela fonctionne. Vous verrez, c&#39;est assez simple.\n#comprendre \n#comprendre \n#comprendre \n#comprendre","const char * ssid = &quot;Livebox-XXXX&quot;; // remplacez par le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // remplacez par votre mot de passe WiFi","ESP8266WebServer server (80); // on instancie un serveur en écoute sur le port 80","void setup (void) \nSerial.begin (115200);","// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);","// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);","// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());","// nous définissons ce qui doit être fait lorsque la route / hello est appelée\n// ici nous allons juste répondre avec un &quot;bonjour!&quot;\nserver.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);","// nous commençons à écouter les demandes de l&#39;extérieur\nserver.begin ();","boucle vide (void) \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();","Téléchargement et essais\nVérifiez que vous avez sélectionné &quot;Generic ESP8266 Module&quot; dans &quot;Tools&quot;&gt; &quot;Card type&quot;. Connectez votre FT232RL à l&#39;ordinateur à l&#39;aide du câble USB. S&#39;identifier GPIO0 à GND, et envoyez le programme en cliquant sur &quot;Upload&quot; (2ème icône dans la barre d&#39;outils, ou via le menu: &quot;Sketch&quot;&gt; &quot;Upload&quot;).\nUne fois le téléchargement terminé, il est temps de tester. Lancez le moniteur série (&quot;Tools&quot; &amp; &quot;Serial monitor&quot;) et sélectionnez &quot;115200 bauds&quot; dans la liste déroulante en bas à droite de la fenêtre. Connectez-vous ensuite GPIO0 à VCC pour passer du mode &quot;upload&quot; au mode &quot;run&quot;, puis redémarrez le module en vous connectant RST à GND pendant quelques instants (disons une ou deux secondes).\nVous devriez alors voir quelque chose comme ça apparaître sur votre moniteur série:\n&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/moniteur-serie-esp8266_Ip1C1RH.jpg &quot;/&gt;\nLa première ligne nous donne l&#39;adresse IP qui nous a été attribuée: ici 192.168.1.29. La seconde nous indique que le serveur est prêt. Allons-y, testons! Ouvrez votre navigateur Internet préféré et entrez cette URL dans la barre d&#39;adresse: http://192.168.1.29/ bonjour (remplacez 192.168.1.29 par l&#39;adresse IP indiquée sur le moniteur série). Voici ce que vous devriez obtenir:\n&lt;img style = &quot;width: 80%; border: 1px solid #BBB;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/navigateur-esp8266.png &quot;/&gt;\nCela fonctionne: l&#39;ESP8266 a reçu notre demande et nous a envoyé une réponse. Comme vous pouvez le voir, il est assez simple de créer un serveur connecté au WiFi sur l&#39;ESP8266.\nPour réaliser le relais connecté dont nous avons parlé plus haut, très peu de modifications seront nécessaires. Le plus important sera de remplacer:","server.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);","par quelque chose comme:","server.on (&quot;/ on&quot;, []() \ndigitalWrite (RELAY_PIN, LOW);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is ON&quot;);\n);","server.on (&quot;/ off&quot;, []() \ndigitalWrite (RELAY_PIN, HIGH);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is OFF&quot;);\n);","L&#39;appel de l&#39;url http://192.168.1.29/on fermera le relais, tandis que http://192.168.1.29/off l&#39;ouvrira.\nDeuxième exemple: un serveur avec un écran\nDans ce deuxième exemple, nous verrons comment connecter d&#39;autres composants à notre ESP8266, et comment interagir avec eux en fonction des demandes reçues.\nNous allons connecter un petit écran OLED I2, comme celui-ci: 0.96 &quot;I2C 128X64 OLED LCD à l&#39;ESP8266. A réception d&#39;une demande, nous afficherons le message passé en paramètre dans l&#39;url à l&#39;écran.\nMontage\nNous utiliserons le même assemblage que précédemment, auquel nous ajouterons l&#39;écran qui sera connecté comme ceci:","OLED","ESP8266","3.3v","3.3v","GND","GND","SDA","GPIO04","SLC","GPIO05","Le code\nPour contrôler l&#39;écran, nous utiliserons la bibliothèque suivante: https://github.com/squix78/esp8266-oled-ssd1306. Téléchargez l&#39;archive (Clone ou Télécharger&gt; Télécharger le zip) et importez-la dans l&#39;IDE Arduino (Esquisse&gt; Inclure une bibliothèque&gt; Ajouter la bibliothèque .ZIP).\nVoici le code que nous utiliserons:\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n#comprendre  &gt;\n#inclut &quot;SSD1306.h&quot;","const char * ssid = &quot;Livebox-XXXX&quot;; // mettez ici le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // mettez votre mot de passe WiFi","// instancier l&#39;écran\n// l&#39;adresse I2C (ici 0x3C) peut être différente selon le module que vous utilisez\nAffichage SSD1306 (0x3C, 4, 5);","ESP8266WebServer server (80);","void setup (void) \nSerial.begin (115200);","// initialisation de l&#39;écran (voir la documentation de la bibliothèque)\ndisplay.init ();\ndisplay.flipScreenVertically ();\ndisplay.setFont (ArialMT_Plain_10);\ndisplay.setTextAlignment (TEXT_ALIGN_CENTER);","// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);","// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);","// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());","// nous définissons ce qui doit être fait lorsque la route &quot;/&quot; est appelée\nserver.on (&quot;/&quot;, []() \n// on obtient le paramètre msg dans l&#39;url\nMessage de chaîne = server.arg (&quot;msg&quot;);\n// on efface l&#39;écran\ndisplay.clear ();\n// on écrit le message à l&#39;écran\ndisplay.drawString (64, 22, message);\ndisplay.display ();\n// nous répondons au client\nserver.send (200, &quot;text / plain&quot;, &quot;message reçu:&quot; + message);\n);","server.begin ();\nSerial.println (&quot;Le serveur HTTP a démarré&quot;);","boucle vide (void) \nserver.handleClient ();","Tester\nTéléchargez le programme, ouvrez le moniteur série et redémarrez le module en suivant la procédure décrite dans le premier exemple. Ouvrez ensuite un navigateur Internet et entrez l&#39;URL suivante (en remplaçant l&#39;adresse IP par celle affichée sur le moniteur série): &quot;http://192.168.1.29/?msg=Message from internet :)&quot;. Et là, vous devriez assister au phénomène suivant:","Conclusion\nVous savez maintenant comment créer un serveur sur un ESP8266. Si vous avez aimé cet article, n&#39;hésitez pas à le partager sur les réseaux sociaux :).\nDiscussion","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Dans cet article, nous verrons comment utiliser l&#39;IDE Arduino pour programmer les modules Wi-Fi ESP8266. L&#39;objectif est d&#39;utiliser l&#39;ESP8266 comme microcontrôleur principal et non comme composant périphérique. Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée.\nNous verrons d&#39;abord comment configurer l&#39;IDE Arduino pour qu&#39;il considère l&#39;ESP8266 comme un &quot;type de carte&quot; à part entière, comme c&#39;est le cas pour un Arduino Mega ou Uno. Nous ferons ensuite l&#39;édition pour télécharger les programmes sur le module, en utilisant un module d&#39;interface USB / série (le FT232RL). Enfin, nous présenterons certaines des instructions spécifiques à ESP8266 que nous utiliserons dans nos programmes.\nÉquipement\nNous utiliserons la version ESP-12 de l&#39;ESP8266 pour les raisons que nous avons détaillées dans l&#39;article L&#39;ESP8266, un Arduino avec Wifi pour 2 € ?. Les programmes seront téléchargés à l&#39;aide de l&#39;interface USB / série FT232RL. On aurait pu essayer d&#39;alimenter l&#39;ESP8266 grâce à la sortie 3,3v du FT232RL, mais le module Wi-Fi étant parfois assez gourmand, nous avons opté pour une alimentation externe. Nous utilisons 2 régulateurs en série: un régulateur 5v suivi d&#39;un régulateur 5v -&gt; 3,3v. Nous avons fait ce choix car c&#39;est ce que nous avions sous la main, mais n&#39;importe quelle source d&#39;alimentation 3,3 V fera l&#39;affaire, tant qu&#39;elle est suffisamment puissante (comptez 400mA).","html":"<p>Dans cet article, nous verrons comment utiliser l&#039;IDE Arduino pour programmer les modules Wi-Fi ESP8266. L&#039;objectif est d&#039;utiliser l&#039;ESP8266 comme microcontrôleur principal et non comme composant périphérique. Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée.\nNous verrons d&#039;abord comment configurer l&#039;IDE Arduino pour qu&#039;il considère l&#039;ESP8266 comme un &quot;type de carte&quot; à part entière, comme c&#039;est le cas pour un Arduino Mega ou Uno. Nous ferons ensuite l&#039;édition pour télécharger les programmes sur le module, en utilisant un module d&#039;interface USB / série (le FT232RL). Enfin, nous présenterons certaines des instructions spécifiques à ESP8266 que nous utiliserons dans nos programmes.\nÉquipement\nNous utiliserons la version ESP-12 de l&#039;ESP8266 pour les raisons que nous avons détaillées dans l&#039;article L&#039;ESP8266, un Arduino avec Wifi pour 2 € ?. Les programmes seront téléchargés à l&#039;aide de l&#039;interface USB / série FT232RL. On aurait pu essayer d&#039;alimenter l&#039;ESP8266 grâce à la sortie 3,3v du FT232RL, mais le module Wi-Fi étant parfois assez gourmand, nous avons opté pour une alimentation externe. Nous utilisons 2 régulateurs en série: un régulateur 5v suivi d&#039;un régulateur 5v -&gt; 3,3v. Nous avons fait ce choix car c&#039;est ce que nous avions sous la main, mais n&#039;importe quelle source d&#039;alimentation 3,3 V fera l&#039;affaire, tant qu&#039;elle est suffisamment puissante (comptez 400mA).</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Configuration de l&#39;IDE Arduino\nSi vous ne l&#39;avez pas déjà fait, téléchargez l&#39;IDE Arduino sur le site officiel, ici: Téléchargement IDE Arduino. Nous utilisons la version 1.6.5, mais toutes les versions ultérieures devraient fonctionner.\nUne fois l&#39;IDE installé, ouvrez-le et accédez aux préférences. Dans la zone &quot;URL du gestionnaire de tableaux supplémentaires&quot;, entrez l&#39;adresse suivante:","html":"<p>Configuration de l&#039;IDE Arduino\nSi vous ne l&#039;avez pas déjà fait, téléchargez l&#039;IDE Arduino sur le site officiel, ici: Téléchargement IDE Arduino. Nous utilisons la version 1.6.5, mais toutes les versions ultérieures devraient fonctionner.\nUne fois l&#039;IDE installé, ouvrez-le et accédez aux préférences. Dans la zone &quot;URL du gestionnaire de tableaux supplémentaires&quot;, entrez l&#039;adresse suivante:</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"http://arduino.esp8266.com/staging/package_esp8266com_index.json\n.","html":"<p>http://arduino.esp8266.com/staging/package_esp8266com_index.json\n.</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_wcQyEpJ.png &quot;/ &gt;","html":"<p>&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_wcQyEpJ.png &quot;/ &gt;</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Validez, puis allez dans &quot;Outils&quot;, &quot;Type de carte&quot;, &quot;Gestionnaire de cartes&quot;. Dans le champ de recherche, entrez &quot;esp8266&quot;.\nVous devriez voir le résultat suivant:","html":"<p>Validez, puis allez dans &quot;Outils&quot;, &quot;Type de carte&quot;, &quot;Gestionnaire de cartes&quot;. Dans le champ de recherche, entrez &quot;esp8266&quot;.\nVous devriez voir le résultat suivant:</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_14XJrZe.png &quot;/ &gt;","html":"<p>&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_14XJrZe.png &quot;/ &gt;</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Cliquez sur &quot;Installer&quot;. Attendez quelques instants et une fois l&#39;installation terminée, si vous allez à nouveau dans &quot;Outils&quot;, &quot;Type de carte&quot;, vous remarquerez l&#39;apparition d&#39;une nouvelle option: &quot;Module ESP8266 générique&quot;. Sélectionnez ce dernier.\nVous y êtes, vous êtes prêt!\nTypes de démarrage ESP8266\nAvant de passer à l&#39;installation proprement dite, arrêtons-nous brièvement sur les différents modes de démarrage de l&#39;ESP8266.\nTrois des GPIO (GPIO0, GPIO2 et GPIO15) de l&#39;ESP8266 ESP-12 ont une fonction particulière lors du démarrage du module. Ils vous permettent de sélectionner le type de démarrage à effectuer.\nVoici les principales combinaisons possibles:","html":"<p>Cliquez sur &quot;Installer&quot;. Attendez quelques instants et une fois l&#039;installation terminée, si vous allez à nouveau dans &quot;Outils&quot;, &quot;Type de carte&quot;, vous remarquerez l&#039;apparition d&#039;une nouvelle option: &quot;Module ESP8266 générique&quot;. Sélectionnez ce dernier.\nVous y êtes, vous êtes prêt!\nTypes de démarrage ESP8266\nAvant de passer à l&#039;installation proprement dite, arrêtons-nous brièvement sur les différents modes de démarrage de l&#039;ESP8266.\nTrois des GPIO (GPIO0, GPIO2 et GPIO15) de l&#039;ESP8266 ESP-12 ont une fonction particulière lors du démarrage du module. Ils vous permettent de sélectionner le type de démarrage à effectuer.\nVoici les principales combinaisons possibles:</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Mode\nGPIO0\nGPIO2\nGPIO15","html":"<p>Mode\nGPIO0\nGPIO2\nGPIO15</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Éclat (démarrage normal: exécution du programme installé dans Flash)\n3.3v\n3.3v\nGND","html":"<p>Éclat (démarrage normal: exécution du programme installé dans Flash)\n3.3v\n3.3v\nGND</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"UART (téléchargement à partir d&#39;un lien série)\nGND\n3.3v\nGND","html":"<p>UART (téléchargement à partir d&#039;un lien série)\nGND\n3.3v\nGND</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"SDIO (à partir d&#39;une carte SD)\npeu importe\npeu importe\n3.3v","html":"<p>SDIO (à partir d&#039;une carte SD)\npeu importe\npeu importe\n3.3v</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Nous utiliserons la première combinaison pour exécuter un programme déjà présent dans le module, et la seconde pour télécharger un nouveau programme.\nModification de notre premier programme\nVoici le tableau de câblage décrivant l&#39;assemblage que nous utiliserons pour notre premier test.","html":"<p>Nous utiliserons la première combinaison pour exécuter un programme déjà présent dans le module, et la seconde pour télécharger un nouveau programme.\nModification de notre premier programme\nVoici le tableau de câblage décrivant l&#039;assemblage que nous utiliserons pour notre premier test.</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"ESP8266","html":"<p>ESP8266</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"Remarque","html":"<p>Remarque</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"3.3v","html":"<p>3.3v</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"VCC\n&#8211;","html":"<p>VCC\n&#8211;</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"GND","html":"<p>GND</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"GND\n&#8211;","html":"<p>GND\n&#8211;</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"TX","html":"<p>TX</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"RX FT232RL\n&#8211;","html":"<p>RX FT232RL\n&#8211;</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"RX","html":"<p>RX</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"TX FT232RL\n&#8211;","html":"<p>TX FT232RL\n&#8211;</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"CH_PD","html":"<p>CH_PD</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"VCC\nLa broche CH_PD doit être haute pour que le module fonctionne","html":"<p>VCC\nLa broche CH_PD doit être haute pour que le module fonctionne</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"GPIO0","html":"<p>GPIO0</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"VCC ou GND\nGND pour télécharger un nouveau programme,3.3v pour lancer le programme déjà présent","html":"<p>VCC ou GND\nGND pour télécharger un nouveau programme,3.3v pour lancer le programme déjà présent</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"GPIO2","html":"<p>GPIO2</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"VCC\n&#8211;","html":"<p>VCC\n&#8211;</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"GPIO15","html":"<p>GPIO15</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"GND\n&#8211;","html":"<p>GND\n&#8211;</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"RST","html":"<p>RST</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"VCC ou GND\nGND pour redémarrer l&#39;ESP8266,3.3v (ou non connecté) le reste du temps","html":"<p>VCC ou GND\nGND pour redémarrer l&#039;ESP8266,3.3v (ou non connecté) le reste du temps</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/montage-programmation-esp8266-ide-ar_dwTR2RE.png &quot;/ &gt;\nNous pouvons passer à la programmation, mais d&#39;abord, une petite clarification &#8230;\nAvant de continuer &#8230; serveur ou client?\nAvant de commencer à écrire un programme qui communique via WIFI, vous devrez vous poser cette question: dois-je programmer un serveur ou une client ?\nServeur\nUn serveur (au sens logiciel du terme), est un programme tout au long de son exécution reste attentif aux demandes de l&#39;extérieur. Lorsqu&#39;une demande arrive, elle effectue l&#39;action appropriée.\nVoici quelques exemples de serveurs que vous pourriez créer avec l&#39;ESP8266:","html":"<p>&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/montage-programmation-esp8266-ide-ar_dwTR2RE.png &quot;/ &gt;\nNous pouvons passer à la programmation, mais d&#039;abord, une petite clarification &#8230;\nAvant de continuer &#8230; serveur ou client?\nAvant de commencer à écrire un programme qui communique via WIFI, vous devrez vous poser cette question: dois-je programmer un serveur ou une client ?\nServeur\nUn serveur (au sens logiciel du terme), est un programme tout au long de son exécution reste attentif aux demandes de l&#039;extérieur. Lorsqu&#039;une demande arrive, elle effectue l&#039;action appropriée.\nVoici quelques exemples de serveurs que vous pourriez créer avec l&#039;ESP8266:</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"une prise connectée: votre ESP8266 est passif jusqu&#39;à l&#39;arrivée d&#39;une demande. Il prend en charge 2 types de requêtes: &quot;allumer&quot; ou &quot;éteindre&quot;. Lorsqu&#39;une demande de &quot;mise sous tension&quot; arrive, l&#39;ESP8266 commande la fermeture d&#39;un relais, et son ouverture lorsqu&#39;il s&#39;agit d&#39;une demande de &quot;mise hors tension&quot;.\nune thermomètre connecté: lorsqu&#39;une demande arrive, le serveur envoie en réponse la température actuelle (connue grâce à un capteur de température connecté à l&#39;ESP8266)","html":"<p>une prise connectée: votre ESP8266 est passif jusqu&#039;à l&#039;arrivée d&#039;une demande. Il prend en charge 2 types de requêtes: &quot;allumer&quot; ou &quot;éteindre&quot;. Lorsqu&#039;une demande de &quot;mise sous tension&quot; arrive, l&#039;ESP8266 commande la fermeture d&#039;un relais, et son ouverture lorsqu&#039;il s&#039;agit d&#039;une demande de &quot;mise hors tension&quot;.\nune thermomètre connecté: lorsqu&#039;une demande arrive, le serveur envoie en réponse la température actuelle (connue grâce à un capteur de température connecté à l&#039;ESP8266)</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"Vous vous demandez peut-être comment ces demandes sont envoyées de l&#39;extérieur. Il peut simplement provenir d&#39;un navigateur Internet. Si nous prenons l&#39;exemple de la prise connectée, on pourrait imaginer les 2 URL suivantes: &quot;http://192.168.0.15/allumer&quot;&amp;&quot;http://192.168.0.15/eteindre&quot;. Si vous accédez au premier à partir d&#39;un navigateur Internet, le relais se ferme et le second l&#39;ouvre.\nLes demandes peuvent également être envoyées par une application installée sur un smartphone, ou par un autre ESP8266 (qui serait alors un client) ou par un logiciel fonctionnant en permanence sur un ordinateur (pourquoi pas un Raspberry Pi). On pourrait imaginer un logiciel qui interroge régulièrement un serveur de température (fonctionnant sur un ESP8266), et qui, selon la réponse, allumerait ou éteindrait un radiateur (via un relais contrôlé par un autre ESP8266). Dans ce cas, nous aurions 3 composants dans notre système: 2 serveurs ESP8266 et un logiciel &quot;orchestrateur&quot; qui fonctionnerait sur un Raspberry PI.\nClient\nContrairement au serveur, le client n&#39;écoute pas les demandes de l&#39;extérieur, mais il fait ses propres demandes lorsqu&#39;il en a besoin.\nExemples de clients que vous pourriez créer avec ESP826:","html":"<p>Vous vous demandez peut-être comment ces demandes sont envoyées de l&#039;extérieur. Il peut simplement provenir d&#039;un navigateur Internet. Si nous prenons l&#039;exemple de la prise connectée, on pourrait imaginer les 2 URL suivantes: &quot;http://192.168.0.15/allumer&quot;&amp;&quot;http://192.168.0.15/eteindre&quot;. Si vous accédez au premier à partir d&#039;un navigateur Internet, le relais se ferme et le second l&#039;ouvre.\nLes demandes peuvent également être envoyées par une application installée sur un smartphone, ou par un autre ESP8266 (qui serait alors un client) ou par un logiciel fonctionnant en permanence sur un ordinateur (pourquoi pas un Raspberry Pi). On pourrait imaginer un logiciel qui interroge régulièrement un serveur de température (fonctionnant sur un ESP8266), et qui, selon la réponse, allumerait ou éteindrait un radiateur (via un relais contrôlé par un autre ESP8266). Dans ce cas, nous aurions 3 composants dans notre système: 2 serveurs ESP8266 et un logiciel &quot;orchestrateur&quot; qui fonctionnerait sur un Raspberry PI.\nClient\nContrairement au serveur, le client n&#039;écoute pas les demandes de l&#039;extérieur, mais il fait ses propres demandes lorsqu&#039;il en a besoin.\nExemples de clients que vous pourriez créer avec ESP826:</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"une détecteur de présence: un détecteur de mouvement (type HC-SR501) est connecté à l&#39;ESP8266. Lorsqu&#39;un mouvement est détecté, l&#39;ESP8266 envoie une demande à un service SMS en ligne &#8230; Vous êtes averti sur votre téléphone\nune bouton connecté (Type de bouton Amazon Dash): vous connectez un bouton-poussoir à un ESP8266. Lorsque le bouton est enfoncé, une demande est envoyée à l&#39;extérieur. Cette demande pourrait être envoyée à un autre ESP8266 qui commanderait un relais pour, par exemple, allumer la lampe du salon &#8230;","html":"<p>une détecteur de présence: un détecteur de mouvement (type HC-SR501) est connecté à l&#039;ESP8266. Lorsqu&#039;un mouvement est détecté, l&#039;ESP8266 envoie une demande à un service SMS en ligne &#8230; Vous êtes averti sur votre téléphone\nune bouton connecté (Type de bouton Amazon Dash): vous connectez un bouton-poussoir à un ESP8266. Lorsque le bouton est enfoncé, une demande est envoyée à l&#039;extérieur. Cette demande pourrait être envoyée à un autre ESP8266 qui commanderait un relais pour, par exemple, allumer la lampe du salon &#8230;</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"Trêve de blabla, un peu de béton!\nVotre premier serveur sur ESP8266\nVous allez créer notre premier serveur. Il ne fera pas grand-chose: il vous répondra simplement lorsque vous lui adresserez une demande. Pas très utile, dites-vous, mais cela constituera une base que vous pourrez réutiliser dans la plupart de vos futurs projets.\nMontage\nNous reprenons le montage décrit au début de l&#39;article. Nous nous connecterons GPIO0 à GND pour envoyer notre programme à l&#39;ESP8266, puis à VCC pour l&#39;exécuter.\nLe code\nVoici le code. Les commentaires décrivent comment cela fonctionne. Vous verrez, c&#39;est assez simple.\n#comprendre \n#comprendre \n#comprendre \n#comprendre","html":"<p>Trêve de blabla, un peu de béton!\nVotre premier serveur sur ESP8266\nVous allez créer notre premier serveur. Il ne fera pas grand-chose: il vous répondra simplement lorsque vous lui adresserez une demande. Pas très utile, dites-vous, mais cela constituera une base que vous pourrez réutiliser dans la plupart de vos futurs projets.\nMontage\nNous reprenons le montage décrit au début de l&#039;article. Nous nous connecterons GPIO0 à GND pour envoyer notre programme à l&#039;ESP8266, puis à VCC pour l&#039;exécuter.\nLe code\nVoici le code. Les commentaires décrivent comment cela fonctionne. Vous verrez, c&#039;est assez simple.\n#comprendre \n#comprendre \n#comprendre \n#comprendre</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"const char * ssid = &quot;Livebox-XXXX&quot;; // remplacez par le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // remplacez par votre mot de passe WiFi","html":"<p>const char * ssid = &quot;Livebox-XXXX&quot;; // remplacez par le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // remplacez par votre mot de passe WiFi</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"ESP8266WebServer server (80); // on instancie un serveur en écoute sur le port 80","html":"<p>ESP8266WebServer server (80); // on instancie un serveur en écoute sur le port 80</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"void setup (void) \nSerial.begin (115200);","html":"<p>void setup (void) \nSerial.begin (115200);</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);","html":"<p>// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);","html":"<p>// nous attendons d&#039;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());","html":"<p>// nous affichons l&#039;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"// nous définissons ce qui doit être fait lorsque la route / hello est appelée\n// ici nous allons juste répondre avec un &quot;bonjour!&quot;\nserver.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);","html":"<p>// nous définissons ce qui doit être fait lorsque la route / hello est appelée\n// ici nous allons juste répondre avec un &quot;bonjour!&quot;\nserver.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"// nous commençons à écouter les demandes de l&#39;extérieur\nserver.begin ();","html":"<p>// nous commençons à écouter les demandes de l&#039;extérieur\nserver.begin ();</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"boucle vide (void) \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();","html":"<p>boucle vide (void) \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"Téléchargement et essais\nVérifiez que vous avez sélectionné &quot;Generic ESP8266 Module&quot; dans &quot;Tools&quot;&gt; &quot;Card type&quot;. Connectez votre FT232RL à l&#39;ordinateur à l&#39;aide du câble USB. S&#39;identifier GPIO0 à GND, et envoyez le programme en cliquant sur &quot;Upload&quot; (2ème icône dans la barre d&#39;outils, ou via le menu: &quot;Sketch&quot;&gt; &quot;Upload&quot;).\nUne fois le téléchargement terminé, il est temps de tester. Lancez le moniteur série (&quot;Tools&quot; &amp; &quot;Serial monitor&quot;) et sélectionnez &quot;115200 bauds&quot; dans la liste déroulante en bas à droite de la fenêtre. Connectez-vous ensuite GPIO0 à VCC pour passer du mode &quot;upload&quot; au mode &quot;run&quot;, puis redémarrez le module en vous connectant RST à GND pendant quelques instants (disons une ou deux secondes).\nVous devriez alors voir quelque chose comme ça apparaître sur votre moniteur série:\n&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/moniteur-serie-esp8266_Ip1C1RH.jpg &quot;/&gt;\nLa première ligne nous donne l&#39;adresse IP qui nous a été attribuée: ici 192.168.1.29. La seconde nous indique que le serveur est prêt. Allons-y, testons! Ouvrez votre navigateur Internet préféré et entrez cette URL dans la barre d&#39;adresse: http://192.168.1.29/ bonjour (remplacez 192.168.1.29 par l&#39;adresse IP indiquée sur le moniteur série). Voici ce que vous devriez obtenir:\n&lt;img style = &quot;width: 80%; border: 1px solid #BBB;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/navigateur-esp8266.png &quot;/&gt;\nCela fonctionne: l&#39;ESP8266 a reçu notre demande et nous a envoyé une réponse. Comme vous pouvez le voir, il est assez simple de créer un serveur connecté au WiFi sur l&#39;ESP8266.\nPour réaliser le relais connecté dont nous avons parlé plus haut, très peu de modifications seront nécessaires. Le plus important sera de remplacer:","html":"<p>Téléchargement et essais\nVérifiez que vous avez sélectionné &quot;Generic ESP8266 Module&quot; dans &quot;Tools&quot;&gt; &quot;Card type&quot;. Connectez votre FT232RL à l&#039;ordinateur à l&#039;aide du câble USB. S&#039;identifier GPIO0 à GND, et envoyez le programme en cliquant sur &quot;Upload&quot; (2ème icône dans la barre d&#039;outils, ou via le menu: &quot;Sketch&quot;&gt; &quot;Upload&quot;).\nUne fois le téléchargement terminé, il est temps de tester. Lancez le moniteur série (&quot;Tools&quot; &amp; &quot;Serial monitor&quot;) et sélectionnez &quot;115200 bauds&quot; dans la liste déroulante en bas à droite de la fenêtre. Connectez-vous ensuite GPIO0 à VCC pour passer du mode &quot;upload&quot; au mode &quot;run&quot;, puis redémarrez le module en vous connectant RST à GND pendant quelques instants (disons une ou deux secondes).\nVous devriez alors voir quelque chose comme ça apparaître sur votre moniteur série:\n&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/moniteur-serie-esp8266_Ip1C1RH.jpg &quot;/&gt;\nLa première ligne nous donne l&#039;adresse IP qui nous a été attribuée: ici 192.168.1.29. La seconde nous indique que le serveur est prêt. Allons-y, testons! Ouvrez votre navigateur Internet préféré et entrez cette URL dans la barre d&#039;adresse: http://192.168.1.29/ bonjour (remplacez 192.168.1.29 par l&#039;adresse IP indiquée sur le moniteur série). Voici ce que vous devriez obtenir:\n&lt;img style = &quot;width: 80%; border: 1px solid #BBB;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/navigateur-esp8266.png &quot;/&gt;\nCela fonctionne: l&#039;ESP8266 a reçu notre demande et nous a envoyé une réponse. Comme vous pouvez le voir, il est assez simple de créer un serveur connecté au WiFi sur l&#039;ESP8266.\nPour réaliser le relais connecté dont nous avons parlé plus haut, très peu de modifications seront nécessaires. Le plus important sera de remplacer:</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"server.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);","html":"<p>server.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"par quelque chose comme:","html":"<p>par quelque chose comme:</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"server.on (&quot;/ on&quot;, []() \ndigitalWrite (RELAY_PIN, LOW);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is ON&quot;);\n);","html":"<p>server.on (&quot;/ on&quot;, []() \ndigitalWrite (RELAY_PIN, LOW);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is ON&quot;);\n);</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"server.on (&quot;/ off&quot;, []() \ndigitalWrite (RELAY_PIN, HIGH);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is OFF&quot;);\n);","html":"<p>server.on (&quot;/ off&quot;, []() \ndigitalWrite (RELAY_PIN, HIGH);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is OFF&quot;);\n);</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"L&#39;appel de l&#39;url http://192.168.1.29/on fermera le relais, tandis que http://192.168.1.29/off l&#39;ouvrira.\nDeuxième exemple: un serveur avec un écran\nDans ce deuxième exemple, nous verrons comment connecter d&#39;autres composants à notre ESP8266, et comment interagir avec eux en fonction des demandes reçues.\nNous allons connecter un petit écran OLED I2, comme celui-ci: 0.96 &quot;I2C 128X64 OLED LCD à l&#39;ESP8266. A réception d&#39;une demande, nous afficherons le message passé en paramètre dans l&#39;url à l&#39;écran.\nMontage\nNous utiliserons le même assemblage que précédemment, auquel nous ajouterons l&#39;écran qui sera connecté comme ceci:","html":"<p>L&#039;appel de l&#039;url http://192.168.1.29/on fermera le relais, tandis que http://192.168.1.29/off l&#039;ouvrira.\nDeuxième exemple: un serveur avec un écran\nDans ce deuxième exemple, nous verrons comment connecter d&#039;autres composants à notre ESP8266, et comment interagir avec eux en fonction des demandes reçues.\nNous allons connecter un petit écran OLED I2, comme celui-ci: 0.96 &quot;I2C 128X64 OLED LCD à l&#039;ESP8266. A réception d&#039;une demande, nous afficherons le message passé en paramètre dans l&#039;url à l&#039;écran.\nMontage\nNous utiliserons le même assemblage que précédemment, auquel nous ajouterons l&#039;écran qui sera connecté comme ceci:</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"OLED","html":"<p>OLED</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"ESP8266","html":"<p>ESP8266</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"3.3v","html":"<p>3.3v</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"3.3v","html":"<p>3.3v</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"GND","html":"<p>GND</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"GND","html":"<p>GND</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"SDA","html":"<p>SDA</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"GPIO04","html":"<p>GPIO04</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"SLC","html":"<p>SLC</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"GPIO05","html":"<p>GPIO05</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"Le code\nPour contrôler l&#39;écran, nous utiliserons la bibliothèque suivante: https://github.com/squix78/esp8266-oled-ssd1306. Téléchargez l&#39;archive (Clone ou Télécharger&gt; Télécharger le zip) et importez-la dans l&#39;IDE Arduino (Esquisse&gt; Inclure une bibliothèque&gt; Ajouter la bibliothèque .ZIP).\nVoici le code que nous utiliserons:\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n#comprendre  &gt;\n#inclut &quot;SSD1306.h&quot;","html":"<p>Le code\nPour contrôler l&#039;écran, nous utiliserons la bibliothèque suivante: https://github.com/squix78/esp8266-oled-ssd1306. Téléchargez l&#039;archive (Clone ou Télécharger&gt; Télécharger le zip) et importez-la dans l&#039;IDE Arduino (Esquisse&gt; Inclure une bibliothèque&gt; Ajouter la bibliothèque .ZIP).\nVoici le code que nous utiliserons:\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n#comprendre  &gt;\n#inclut &quot;SSD1306.h&quot;</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"const char * ssid = &quot;Livebox-XXXX&quot;; // mettez ici le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // mettez votre mot de passe WiFi","html":"<p>const char * ssid = &quot;Livebox-XXXX&quot;; // mettez ici le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // mettez votre mot de passe WiFi</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"// instancier l&#39;écran\n// l&#39;adresse I2C (ici 0x3C) peut être différente selon le module que vous utilisez\nAffichage SSD1306 (0x3C, 4, 5);","html":"<p>// instancier l&#039;écran\n// l&#039;adresse I2C (ici 0x3C) peut être différente selon le module que vous utilisez\nAffichage SSD1306 (0x3C, 4, 5);</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"ESP8266WebServer server (80);","html":"<p>ESP8266WebServer server (80);</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"void setup (void) \nSerial.begin (115200);","html":"<p>void setup (void) \nSerial.begin (115200);</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"// initialisation de l&#39;écran (voir la documentation de la bibliothèque)\ndisplay.init ();\ndisplay.flipScreenVertically ();\ndisplay.setFont (ArialMT_Plain_10);\ndisplay.setTextAlignment (TEXT_ALIGN_CENTER);","html":"<p>// initialisation de l&#039;écran (voir la documentation de la bibliothèque)\ndisplay.init ();\ndisplay.flipScreenVertically ();\ndisplay.setFont (ArialMT_Plain_10);\ndisplay.setTextAlignment (TEXT_ALIGN_CENTER);</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);","html":"<p>// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);","html":"<p>// nous attendons d&#039;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());","html":"<p>// nous affichons l&#039;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"// nous définissons ce qui doit être fait lorsque la route &quot;/&quot; est appelée\nserver.on (&quot;/&quot;, []() \n// on obtient le paramètre msg dans l&#39;url\nMessage de chaîne = server.arg (&quot;msg&quot;);\n// on efface l&#39;écran\ndisplay.clear ();\n// on écrit le message à l&#39;écran\ndisplay.drawString (64, 22, message);\ndisplay.display ();\n// nous répondons au client\nserver.send (200, &quot;text / plain&quot;, &quot;message reçu:&quot; + message);\n);","html":"<p>// nous définissons ce qui doit être fait lorsque la route &quot;/&quot; est appelée\nserver.on (&quot;/&quot;, []() \n// on obtient le paramètre msg dans l&#039;url\nMessage de chaîne = server.arg (&quot;msg&quot;);\n// on efface l&#039;écran\ndisplay.clear ();\n// on écrit le message à l&#039;écran\ndisplay.drawString (64, 22, message);\ndisplay.display ();\n// nous répondons au client\nserver.send (200, &quot;text / plain&quot;, &quot;message reçu:&quot; + message);\n);</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"server.begin ();\nSerial.println (&quot;Le serveur HTTP a démarré&quot;);","html":"<p>server.begin ();\nSerial.println (&quot;Le serveur HTTP a démarré&quot;);</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"boucle vide (void) \nserver.handleClient ();","html":"<p>boucle vide (void) \nserver.handleClient ();</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"Tester\nTéléchargez le programme, ouvrez le moniteur série et redémarrez le module en suivant la procédure décrite dans le premier exemple. Ouvrez ensuite un navigateur Internet et entrez l&#39;URL suivante (en remplaçant l&#39;adresse IP par celle affichée sur le moniteur série): &quot;http://192.168.1.29/?msg=Message from internet :)&quot;. Et là, vous devriez assister au phénomène suivant:","html":"<p>Tester\nTéléchargez le programme, ouvrez le moniteur série et redémarrez le module en suivant la procédure décrite dans le premier exemple. Ouvrez ensuite un navigateur Internet et entrez l&#039;URL suivante (en remplaçant l&#039;adresse IP par celle affichée sur le moniteur série): &quot;http://192.168.1.29/?msg=Message from internet :)&quot;. Et là, vous devriez assister au phénomène suivant:</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"Conclusion\nVous savez maintenant comment créer un serveur sur un ESP8266. Si vous avez aimé cet article, n&#39;hésitez pas à le partager sur les réseaux sociaux :).\nDiscussion","html":"<p>Conclusion\nVous savez maintenant comment créer un serveur sur un ESP8266. Si vous avez aimé cet article, n&#039;hésitez pas à le partager sur les réseaux sociaux :).\nDiscussion</p>"},{"id":"text-77","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":"Dans cet article, nous verrons comment utiliser l&#39;IDE Arduino pour programmer les modules Wi-Fi ESP8266. L&#39;objectif est d&#39;utiliser l&#39;ESP8266 comme microcontrôleur principal et non comme composant périphérique. Nos capteurs y seront directement connectés et toute la partie logicielle y sera exécutée.\nNous verrons d&#39;abord comment configurer l&#39;IDE Arduino pour qu&#39;il considère l&#39;ESP8266 comme un &quot;type de carte&quot; à part entière, comme c&#39;est le cas pour un Arduino Mega ou Uno. Nous ferons ensuite l&#39;édition pour télécharger les programmes sur le module, en utilisant un module d&#39;interface USB / série (le FT232RL). Enfin, nous présenterons certaines des instructions spécifiques à ESP8266 que nous utiliserons dans nos programmes.\nÉquipement\nNous utiliserons la version ESP-12 de l&#39;ESP8266 pour les raisons que nous avons détaillées dans l&#39;article L&#39;ESP8266, un Arduino avec Wifi pour 2 € ?. Les programmes seront téléchargés à l&#39;aide de l&#39;interface USB / série FT232RL. On aurait pu essayer d&#39;alimenter l&#39;ESP8266 grâce à la sortie 3,3v du FT232RL, mais le module Wi-Fi étant parfois assez gourmand, nous avons opté pour une alimentation externe. Nous utilisons 2 régulateurs en série: un régulateur 5v suivi d&#39;un régulateur 5v -&gt; 3,3v. Nous avons fait ce choix car c&#39;est ce que nous avions sous la main, mais n&#39;importe quelle source d&#39;alimentation 3,3 V fera l&#39;affaire, tant qu&#39;elle est suffisamment puissante (comptez 400mA)."},{"id":"text-2","heading":"Text","content":"Configuration de l&#39;IDE Arduino\nSi vous ne l&#39;avez pas déjà fait, téléchargez l&#39;IDE Arduino sur le site officiel, ici: Téléchargement IDE Arduino. Nous utilisons la version 1.6.5, mais toutes les versions ultérieures devraient fonctionner.\nUne fois l&#39;IDE installé, ouvrez-le et accédez aux préférences. Dans la zone &quot;URL du gestionnaire de tableaux supplémentaires&quot;, entrez l&#39;adresse suivante:"},{"id":"text-3","heading":"Text","content":"http://arduino.esp8266.com/staging/package_esp8266com_index.json\n."},{"id":"text-4","heading":"Text","content":"&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_wcQyEpJ.png &quot;/ &gt;"},{"id":"text-5","heading":"Text","content":"Validez, puis allez dans &quot;Outils&quot;, &quot;Type de carte&quot;, &quot;Gestionnaire de cartes&quot;. Dans le champ de recherche, entrez &quot;esp8266&quot;.\nVous devriez voir le résultat suivant:"},{"id":"text-6","heading":"Text","content":"&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/configuration-ide-arduino-esp8266-ad_14XJrZe.png &quot;/ &gt;"},{"id":"text-7","heading":"Text","content":"Cliquez sur &quot;Installer&quot;. Attendez quelques instants et une fois l&#39;installation terminée, si vous allez à nouveau dans &quot;Outils&quot;, &quot;Type de carte&quot;, vous remarquerez l&#39;apparition d&#39;une nouvelle option: &quot;Module ESP8266 générique&quot;. Sélectionnez ce dernier.\nVous y êtes, vous êtes prêt!\nTypes de démarrage ESP8266\nAvant de passer à l&#39;installation proprement dite, arrêtons-nous brièvement sur les différents modes de démarrage de l&#39;ESP8266.\nTrois des GPIO (GPIO0, GPIO2 et GPIO15) de l&#39;ESP8266 ESP-12 ont une fonction particulière lors du démarrage du module. Ils vous permettent de sélectionner le type de démarrage à effectuer.\nVoici les principales combinaisons possibles:"},{"id":"text-8","heading":"Text","content":"Mode\nGPIO0\nGPIO2\nGPIO15"},{"id":"text-9","heading":"Text","content":"Éclat (démarrage normal: exécution du programme installé dans Flash)\n3.3v\n3.3v\nGND"},{"id":"text-10","heading":"Text","content":"UART (téléchargement à partir d&#39;un lien série)\nGND\n3.3v\nGND"},{"id":"text-11","heading":"Text","content":"SDIO (à partir d&#39;une carte SD)\npeu importe\npeu importe\n3.3v"},{"id":"text-12","heading":"Text","content":"Nous utiliserons la première combinaison pour exécuter un programme déjà présent dans le module, et la seconde pour télécharger un nouveau programme.\nModification de notre premier programme\nVoici le tableau de câblage décrivant l&#39;assemblage que nous utiliserons pour notre premier test."},{"id":"text-13","heading":"Text","content":"ESP8266"},{"id":"text-14","heading":"Text","content":"Remarque"},{"id":"text-15","heading":"Text","content":"3.3v"},{"id":"text-16","heading":"Text","content":"VCC\n&#8211;"},{"id":"text-17","heading":"Text","content":"GND"},{"id":"text-18","heading":"Text","content":"GND\n&#8211;"},{"id":"text-19","heading":"Text","content":"TX"},{"id":"text-20","heading":"Text","content":"RX FT232RL\n&#8211;"},{"id":"text-21","heading":"Text","content":"RX"},{"id":"text-22","heading":"Text","content":"TX FT232RL\n&#8211;"},{"id":"text-23","heading":"Text","content":"CH_PD"},{"id":"text-24","heading":"Text","content":"VCC\nLa broche CH_PD doit être haute pour que le module fonctionne"},{"id":"text-25","heading":"Text","content":"GPIO0"},{"id":"text-26","heading":"Text","content":"VCC ou GND\nGND pour télécharger un nouveau programme,3.3v pour lancer le programme déjà présent"},{"id":"text-27","heading":"Text","content":"GPIO2"},{"id":"text-28","heading":"Text","content":"VCC\n&#8211;"},{"id":"text-29","heading":"Text","content":"GPIO15"},{"id":"text-30","heading":"Text","content":"GND\n&#8211;"},{"id":"text-31","heading":"Text","content":"RST"},{"id":"text-32","heading":"Text","content":"VCC ou GND\nGND pour redémarrer l&#39;ESP8266,3.3v (ou non connecté) le reste du temps"},{"id":"text-33","heading":"Text","content":"&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/montage-programmation-esp8266-ide-ar_dwTR2RE.png &quot;/ &gt;\nNous pouvons passer à la programmation, mais d&#39;abord, une petite clarification &#8230;\nAvant de continuer &#8230; serveur ou client?\nAvant de commencer à écrire un programme qui communique via WIFI, vous devrez vous poser cette question: dois-je programmer un serveur ou une client ?\nServeur\nUn serveur (au sens logiciel du terme), est un programme tout au long de son exécution reste attentif aux demandes de l&#39;extérieur. Lorsqu&#39;une demande arrive, elle effectue l&#39;action appropriée.\nVoici quelques exemples de serveurs que vous pourriez créer avec l&#39;ESP8266:"},{"id":"text-34","heading":"Text","content":"une prise connectée: votre ESP8266 est passif jusqu&#39;à l&#39;arrivée d&#39;une demande. Il prend en charge 2 types de requêtes: &quot;allumer&quot; ou &quot;éteindre&quot;. Lorsqu&#39;une demande de &quot;mise sous tension&quot; arrive, l&#39;ESP8266 commande la fermeture d&#39;un relais, et son ouverture lorsqu&#39;il s&#39;agit d&#39;une demande de &quot;mise hors tension&quot;.\nune thermomètre connecté: lorsqu&#39;une demande arrive, le serveur envoie en réponse la température actuelle (connue grâce à un capteur de température connecté à l&#39;ESP8266)"},{"id":"text-35","heading":"Text","content":"Vous vous demandez peut-être comment ces demandes sont envoyées de l&#39;extérieur. Il peut simplement provenir d&#39;un navigateur Internet. Si nous prenons l&#39;exemple de la prise connectée, on pourrait imaginer les 2 URL suivantes: &quot;http://192.168.0.15/allumer&quot;&amp;&quot;http://192.168.0.15/eteindre&quot;. Si vous accédez au premier à partir d&#39;un navigateur Internet, le relais se ferme et le second l&#39;ouvre.\nLes demandes peuvent également être envoyées par une application installée sur un smartphone, ou par un autre ESP8266 (qui serait alors un client) ou par un logiciel fonctionnant en permanence sur un ordinateur (pourquoi pas un Raspberry Pi). On pourrait imaginer un logiciel qui interroge régulièrement un serveur de température (fonctionnant sur un ESP8266), et qui, selon la réponse, allumerait ou éteindrait un radiateur (via un relais contrôlé par un autre ESP8266). Dans ce cas, nous aurions 3 composants dans notre système: 2 serveurs ESP8266 et un logiciel &quot;orchestrateur&quot; qui fonctionnerait sur un Raspberry PI.\nClient\nContrairement au serveur, le client n&#39;écoute pas les demandes de l&#39;extérieur, mais il fait ses propres demandes lorsqu&#39;il en a besoin.\nExemples de clients que vous pourriez créer avec ESP826:"},{"id":"text-36","heading":"Text","content":"une détecteur de présence: un détecteur de mouvement (type HC-SR501) est connecté à l&#39;ESP8266. Lorsqu&#39;un mouvement est détecté, l&#39;ESP8266 envoie une demande à un service SMS en ligne &#8230; Vous êtes averti sur votre téléphone\nune bouton connecté (Type de bouton Amazon Dash): vous connectez un bouton-poussoir à un ESP8266. Lorsque le bouton est enfoncé, une demande est envoyée à l&#39;extérieur. Cette demande pourrait être envoyée à un autre ESP8266 qui commanderait un relais pour, par exemple, allumer la lampe du salon &#8230;"},{"id":"text-37","heading":"Text","content":"Trêve de blabla, un peu de béton!\nVotre premier serveur sur ESP8266\nVous allez créer notre premier serveur. Il ne fera pas grand-chose: il vous répondra simplement lorsque vous lui adresserez une demande. Pas très utile, dites-vous, mais cela constituera une base que vous pourrez réutiliser dans la plupart de vos futurs projets.\nMontage\nNous reprenons le montage décrit au début de l&#39;article. Nous nous connecterons GPIO0 à GND pour envoyer notre programme à l&#39;ESP8266, puis à VCC pour l&#39;exécuter.\nLe code\nVoici le code. Les commentaires décrivent comment cela fonctionne. Vous verrez, c&#39;est assez simple.\n#comprendre \n#comprendre \n#comprendre \n#comprendre"},{"id":"text-38","heading":"Text","content":"const char * ssid = &quot;Livebox-XXXX&quot;; // remplacez par le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // remplacez par votre mot de passe WiFi"},{"id":"text-39","heading":"Text","content":"ESP8266WebServer server (80); // on instancie un serveur en écoute sur le port 80"},{"id":"text-40","heading":"Text","content":"void setup (void) \nSerial.begin (115200);"},{"id":"text-41","heading":"Text","content":"// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);"},{"id":"text-42","heading":"Text","content":"// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);"},{"id":"text-43","heading":"Text","content":"// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());"},{"id":"text-44","heading":"Text","content":"// nous définissons ce qui doit être fait lorsque la route / hello est appelée\n// ici nous allons juste répondre avec un &quot;bonjour!&quot;\nserver.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);"},{"id":"text-45","heading":"Text","content":"// nous commençons à écouter les demandes de l&#39;extérieur\nserver.begin ();"},{"id":"text-46","heading":"Text","content":"boucle vide (void) \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();"},{"id":"text-47","heading":"Text","content":"Téléchargement et essais\nVérifiez que vous avez sélectionné &quot;Generic ESP8266 Module&quot; dans &quot;Tools&quot;&gt; &quot;Card type&quot;. Connectez votre FT232RL à l&#39;ordinateur à l&#39;aide du câble USB. S&#39;identifier GPIO0 à GND, et envoyez le programme en cliquant sur &quot;Upload&quot; (2ème icône dans la barre d&#39;outils, ou via le menu: &quot;Sketch&quot;&gt; &quot;Upload&quot;).\nUne fois le téléchargement terminé, il est temps de tester. Lancez le moniteur série (&quot;Tools&quot; &amp; &quot;Serial monitor&quot;) et sélectionnez &quot;115200 bauds&quot; dans la liste déroulante en bas à droite de la fenêtre. Connectez-vous ensuite GPIO0 à VCC pour passer du mode &quot;upload&quot; au mode &quot;run&quot;, puis redémarrez le module en vous connectant RST à GND pendant quelques instants (disons une ou deux secondes).\nVous devriez alors voir quelque chose comme ça apparaître sur votre moniteur série:\n&lt;img style = &quot;width: 80%;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/moniteur-serie-esp8266_Ip1C1RH.jpg &quot;/&gt;\nLa première ligne nous donne l&#39;adresse IP qui nous a été attribuée: ici 192.168.1.29. La seconde nous indique que le serveur est prêt. Allons-y, testons! Ouvrez votre navigateur Internet préféré et entrez cette URL dans la barre d&#39;adresse: http://192.168.1.29/ bonjour (remplacez 192.168.1.29 par l&#39;adresse IP indiquée sur le moniteur série). Voici ce que vous devriez obtenir:\n&lt;img style = &quot;width: 80%; border: 1px solid #BBB;&quot; alt = &quot;&lt;méthode liée PublicationPicture.alt de &gt; &quot;src =&quot; http://www.fais-le-toi-meme.fr/media/programmes-arduino-executes-sur-esp8266-arduino-ide/navigateur-esp8266.png &quot;/&gt;\nCela fonctionne: l&#39;ESP8266 a reçu notre demande et nous a envoyé une réponse. Comme vous pouvez le voir, il est assez simple de créer un serveur connecté au WiFi sur l&#39;ESP8266.\nPour réaliser le relais connecté dont nous avons parlé plus haut, très peu de modifications seront nécessaires. Le plus important sera de remplacer:"},{"id":"text-48","heading":"Text","content":"server.on (&quot;/ bonjour&quot; []() \nserver.send (200, &quot;text / plain&quot;, &quot;hello!&quot;);\n);"},{"id":"text-49","heading":"Text","content":"par quelque chose comme:"},{"id":"text-50","heading":"Text","content":"server.on (&quot;/ on&quot;, []() \ndigitalWrite (RELAY_PIN, LOW);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is ON&quot;);\n);"},{"id":"text-51","heading":"Text","content":"server.on (&quot;/ off&quot;, []() \ndigitalWrite (RELAY_PIN, HIGH);\nserver.send (200, &quot;text / plain&quot;, &quot;relay is OFF&quot;);\n);"},{"id":"text-52","heading":"Text","content":"L&#39;appel de l&#39;url http://192.168.1.29/on fermera le relais, tandis que http://192.168.1.29/off l&#39;ouvrira.\nDeuxième exemple: un serveur avec un écran\nDans ce deuxième exemple, nous verrons comment connecter d&#39;autres composants à notre ESP8266, et comment interagir avec eux en fonction des demandes reçues.\nNous allons connecter un petit écran OLED I2, comme celui-ci: 0.96 &quot;I2C 128X64 OLED LCD à l&#39;ESP8266. A réception d&#39;une demande, nous afficherons le message passé en paramètre dans l&#39;url à l&#39;écran.\nMontage\nNous utiliserons le même assemblage que précédemment, auquel nous ajouterons l&#39;écran qui sera connecté comme ceci:"},{"id":"text-53","heading":"Text","content":"OLED"},{"id":"text-54","heading":"Text","content":"ESP8266"},{"id":"text-55","heading":"Text","content":"3.3v"},{"id":"text-56","heading":"Text","content":"3.3v"},{"id":"text-57","heading":"Text","content":"GND"},{"id":"text-58","heading":"Text","content":"GND"},{"id":"text-59","heading":"Text","content":"SDA"},{"id":"text-60","heading":"Text","content":"GPIO04"},{"id":"text-61","heading":"Text","content":"SLC"},{"id":"text-62","heading":"Text","content":"GPIO05"},{"id":"text-63","heading":"Text","content":"Le code\nPour contrôler l&#39;écran, nous utiliserons la bibliothèque suivante: https://github.com/squix78/esp8266-oled-ssd1306. Téléchargez l&#39;archive (Clone ou Télécharger&gt; Télécharger le zip) et importez-la dans l&#39;IDE Arduino (Esquisse&gt; Inclure une bibliothèque&gt; Ajouter la bibliothèque .ZIP).\nVoici le code que nous utiliserons:\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n#comprendre  &gt;\n#inclut &quot;SSD1306.h&quot;"},{"id":"text-64","heading":"Text","content":"const char * ssid = &quot;Livebox-XXXX&quot;; // mettez ici le SSID de votre WiFi\nconst char * password = &quot;......&quot;; // mettez votre mot de passe WiFi"},{"id":"text-65","heading":"Text","content":"// instancier l&#39;écran\n// l&#39;adresse I2C (ici 0x3C) peut être différente selon le module que vous utilisez\nAffichage SSD1306 (0x3C, 4, 5);"},{"id":"text-66","heading":"Text","content":"ESP8266WebServer server (80);"},{"id":"text-67","heading":"Text","content":"void setup (void) \nSerial.begin (115200);"},{"id":"text-68","heading":"Text","content":"// initialisation de l&#39;écran (voir la documentation de la bibliothèque)\ndisplay.init ();\ndisplay.flipScreenVertically ();\ndisplay.setFont (ArialMT_Plain_10);\ndisplay.setTextAlignment (TEXT_ALIGN_CENTER);"},{"id":"text-69","heading":"Text","content":"// nous demandons la connexion au WiFi\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);"},{"id":"text-70","heading":"Text","content":"// nous attendons d&#39;être connectés au WiFi avant de continuer\nwhile (WiFi.status ()! = WL_CONNECTED) \nretard (500);\nSerial.print (&quot;.&quot;);"},{"id":"text-71","heading":"Text","content":"// nous affichons l&#39;adresse IP qui nous est attribuée\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());"},{"id":"text-72","heading":"Text","content":"// nous définissons ce qui doit être fait lorsque la route &quot;/&quot; est appelée\nserver.on (&quot;/&quot;, []() \n// on obtient le paramètre msg dans l&#39;url\nMessage de chaîne = server.arg (&quot;msg&quot;);\n// on efface l&#39;écran\ndisplay.clear ();\n// on écrit le message à l&#39;écran\ndisplay.drawString (64, 22, message);\ndisplay.display ();\n// nous répondons au client\nserver.send (200, &quot;text / plain&quot;, &quot;message reçu:&quot; + message);\n);"},{"id":"text-73","heading":"Text","content":"server.begin ();\nSerial.println (&quot;Le serveur HTTP a démarré&quot;);"},{"id":"text-74","heading":"Text","content":"boucle vide (void) \nserver.handleClient ();"},{"id":"text-75","heading":"Text","content":"Tester\nTéléchargez le programme, ouvrez le moniteur série et redémarrez le module en suivant la procédure décrite dans le premier exemple. Ouvrez ensuite un navigateur Internet et entrez l&#39;URL suivante (en remplaçant l&#39;adresse IP par celle affichée sur le moniteur série): &quot;http://192.168.1.29/?msg=Message from internet :)&quot;. Et là, vous devriez assister au phénomène suivant:"},{"id":"text-76","heading":"Text","content":"Conclusion\nVous savez maintenant comment créer un serveur sur un ESP8266. Si vous avez aimé cet article, n&#39;hésitez pas à le partager sur les réseaux sociaux :).\nDiscussion"},{"id":"text-77","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2020/03/esp8266-arduino.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2020/03/01/programmation-de-lesp8266-avec-lide-arduino-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/03/01/programmation-de-lesp8266-avec-lide-arduino-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/03/01/programmation-de-lesp8266-avec-lide-arduino-bien-choisir-son-serveur-d-impression/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}