{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2020/05/05/programmation-de-lesp8266-avec-lide-arduino-bibliotheques-gpio-serveur-web-client-web-pilotes-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2020/05/05/programmation-de-lesp8266-avec-lide-arduino-bibliotheques-gpio-serveur-web-client-web-pilotes-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2020/05/05/programmation-de-lesp8266-avec-lide-arduino-bibliotheques-gpio-serveur-web-client-web-pilotes-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: bibliothèques, GPIO, serveur Web, client Web, pilotes\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-05-05T03:46:05+00:00","modified_at":"2020-05-05T03:46:05+00:00","word_count":4423,"reading_time_seconds":1327,"summary":"RecordEnregistréEffacé 4 Les modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner [&hellip;]","summary_points":["RecordEnregistréEffacé 4 \n\n\n\n\nLes modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût.","Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!).","Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l&#39;ESP8266.","Article mis à jour le 24 avril 2020\nAujourd&#39;hui, il est aussi simple de programmer un module ESP8266 qu&#39;un Arduino en C ++."],"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":"8eadb46eddec3f0dd47ed344e9a7080d","plain_text":"RecordEnregistréEffacé 4 \n\n\n\n\nLes modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l&#39;ESP8266.\n\nArticle mis à jour le 24 avril 2020\nAujourd&#39;hui, il est aussi simple de programmer un module ESP8266 qu&#39;un Arduino en C ++. Nous allons découvrir dans ce tutoriel comment installer les bibliothèques nécessaires sur l&#39;IDE Arduino, et découvrir à travers des exemples simples les bases de la programmation de l&#39;ESP8266.\nInstaller des cartes et des bibliothèques pour les modules ESP8266 sur l&#39;IDE Arduino\nLancez l&#39;IDE Arduino et ouvrez les préférences dans le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences &#8230; Cliquez sur l&#39;icône indiquée par la flèche rouge sur la photo ci-dessous.\n\nDans le champ de saisie, collez l&#39;adresse internet suivante puis validez\nhttps://arduino.esp8266.com/stable/package_esp8266com_index.json\nhttp://arduino.esp8266.com/staging/package_esp8266com_index.json\n\nPour les cartes ESP32, ajoutez la source suivante\nhttps://dl.espressif.com/dl/package_esp32_index.json\nCela indique à l&#39;IDE Arduino qu&#39;il doit se rendre sur le site arduino.esp8266.com afin de récupérer d&#39;autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de cartes et enfin Gestionnaire de cartes\n\nDans le champ de recherche, entrez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n&#39;apparaissent pas, vérifiez dans les préférences que l&#39;URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer.\n\nL&#39;installation ne prend que quelques minutes. Une fois l&#39;installation terminée, fermez le gestionnaire de cartes et ouvrez à nouveau le menu Outils. Dans le sous-menu Type de carte, vous avez maintenant une nouvelle section appelée Modules ESP8266.\n\nLes principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) sont au menu. Pour les autres modules, choisissez simplement le module ESP8266 générique.\nPour afficher les exemples installés avec les cartes ESP826, si vous n&#39;avez qu&#39;à choisir dans la liste puis allez sur le Fichier -&gt; Exemples.\n\nProblèmes avec le bus I2C et la bibliothèque SD à partir de la version 2.5\nLa version 2.5 du SDK ESP8266 semble introduire des modifications importantes pouvant entraîner des problèmes d&#39;incompatibilité avec certains libraires. Par exemple, j&#39;ai rencontré des problèmes de compilation avec la bibliothèque SD qui permet l&#39;enregistrement et la lecture sur une carte micro SD. Un problème similaire a été signalé en 2016 sur le forum officiel. Le compilateur refuse de compiler le programme sans que la sélection de puce de la carte SD ne soit indiquée. ce paramètre est normalement facultatif. Si une sélection de puce est indiquée, la compilation et le téléchargement sont effectués correctement mais la communication avec le bus I2C est perdue.\nSi vous rencontrez un problème similaire, vous pouvez (temporairement) revenir à une version précédente du SDK.\nComment installer une version précédente du SDK ESP8266\nCependant, si vous rencontrez un problème, vous pouvez utiliser une version précédente du SDK. Pour ce faire, ouvrez le gestionnaire de cartes et recherchez la carte ESP8266. Cliquez sur Supprimer pour supprimer l&#39;intégralité du SDK.\n\nChoisissez ensuite la version souhaitée, par exemple la version 2.4.2 et cliquez sur installer. Ne cliquez pas sur la mise à jour car l&#39;IDE Arduino installe automatiquement la dernière version publiée (la plus récente)!\n\nAvant d&#39;aller plus loin, note sur ESP-01\nL&#39;ESP-01 est une version plus limitée de l&#39;ESP8266. Il ne dispose que de 2 GPIO. Le module a une mémoire flash plus petite (de 512 Ko à 1 Mo). La programmation est identique mais «plus pénible» car il faut mettre le module dans un mode particulier avant de pouvoir télécharger le programme (mode Bootload). Ce n&#39;est pas un module approprié pour apprendre et démarrer avec l&#39;ESP8266. Cependant, si vous avez besoin de plus d&#39;informations, vous pouvez trouver plusieurs tutoriels sur le blog en recherchant avec le mot-clé ESP-01.\nDifférences entre Arduino et ESP8266, identification des broches\nL&#39;ESP8266 possède 9 E / S numériques au lieu de 14 pour l&#39;Arduino Uno. Alors que sur l&#39;Arduino Uno, il n&#39;y a que 6 sorties qui prennent en charge le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l&#39;ESP8266 peuvent générer un signal PWM. Si vous avez besoin de plus d&#39;E / S, vous pouvez passer à ESP32.\nEn résumé\n\n\n\n\n\nArduino / Genuino 101\nESP8266 (ESP-12x)\n\n\nMicro-contrôleur\nArduio Uno et la plupart des cartes compatible: ATmel ATmega328p\nLe nouveau Genuino 101: Intel Curie\n\nTensilica Xtensa LX106\n\n\nSans fil\n&#8211;\n\n\n\nBluetooth\nLE\n&#8211;\n\n\nAdressage\n8… 32 bits\n32bits\n\n\nFréquence d&#39;horloge\n16 MHz\n80 MHz\n\n\nMémoire flash\n32kb\n512… 4 Mo (1)\n\n\nNombre d&#39;E / S\nx14\nx11 (D0… D8 + RX / TX)\n\n\nNombre de sorties PWM\nArduino Uno et clones: x6 (3, 5, 6, 9, 10, 11)\nArduino 101: x4\n\nToutes les sorties sont PWM\n\n\nNombre d&#39;entrées analogiques\nx6 (A0..A5), 10 bits, 5 V max.\nx1 (A0), 10 bits, 1 V max. (2) \n\n\nUART (port série)\nx1\nx1 (3)\n\n\nI2C\nx1\nx1\n\n\nSPI\nx1\nx1\n\n\nDocumentation technique\nArduino Uno R3\nGenuino 101\n\nversion 5.4\n\n\n\n\nL&#39;identification des broches est légèrement différente sur l&#39;ESP8266. Chaque sortie est précédée d&#39;un ré (pour rénumérique probablement). Dans un programme Arduino, vous pouvez directement utiliser le marqueur indiqué sur la carte D1 ou l&#39;équivalent Arduino 5.\n(1) Mémoire externe. Aujourd&#39;hui, presque tous les modèles ont 4 Mo de mémoire flash. Cependant, tout n&#39;est pas utilisable. Une partie est réservée au stockage des données (stockage des données utilisateur, interface HTML et code d&#39;interface javascript, etc.). Il s&#39;agit de la zone SPIFFS présentée dans cet article.\n(2) L&#39;ESP8266 accepte 1V maximum sur la broche analogique. Certains modules intègrent un pont diviseur de tension qui permet d&#39;augmenter la tension. Par exemple, le Wemos d1 mini accepte 3,3 V max. \n(3) Un seul port série utilisable. L&#39;autre broche TX est utilisée lors de l&#39;écriture de la mémoire flash\n\n\n\t\t\tAttention. Chaque fabricant est libre d&#39;attribuer les broches. C&#39;est notamment le cas pour les broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui résume les broches des principales cartes en vente\n\t\t\t\n\n\n\n\n\nESP8266 broches\nRemarque\nÉquivalent Arduino / Genuino 101\nAutre usage\n\n\nTX\n\n1\nCS1, TXD0\n\n\nRX\n\n3\nRXD0\n\n\nD0\nPWM (1)\n16\nRÉVEILLER\n\n\nD1\nPWM\n5\n\n\n\nD2\nPWM\n4\n\n\n\nD3\nPWM\n0\nCS2\n\n\nD4\nPWM\n2\nTXD1\n\n\nD5\nPWM\n14\nCLK\n\n\nD6\nPWM\n12\nMISO\n\n\nD7\nPWM\n13\nMOSI, RXD2, CTS0\n\n\nD8\nPWM\n15\nCS, TXD2, RTS0\n\n\nRST\n\nRST\n\n\n\nA0\n3,3 V max.\nA0\n\n\n\n3V3\n\n3V\n\n\n\n5V\n800 mA max.\n\n\n\n\ng\n\nGND (x3)\n\n\n\n\n\n(1) Connecté à la broche GND à la mise sous tension pour mettre ESP en mode bootload. Ce mode vous permet de réinstaller le firmware d&#39;origine ou de charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de cartes. Cette opération est donc inutile, le téléchargement est transparent.\nGénéralement, les fabricants publient un schéma de brochage qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d&#39;un LoLin WeMos d1 mini. Ce schéma de connexion est valable pour toutes les cartes basées sur le module ESP-12x.\n\n\n\t\t\tSi vous souhaitez vous lancer dans la programmation Lua, le numéro de broche à utiliser dans le code est également indiqué.\n\t\t\t\n\nAttention, le GPIO fonctionne avec une tension de 3,3V\nParticularité de l&#39;ESP8266 par rapport à l&#39;Arduino Uno (ce n&#39;est plus le cas pour le Genuino 101 et les nouvelles cartes à base d&#39;Intel Curie), le GPIO fonctionne à une tension de 3,3V. Il faudra donc dans certains cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V à 3,3V) ou inversement (3,3V à 5V).\nComment programmer l&#39;ESP8266 avec l&#39;IDE Arduino?\nÉquipement et circuit d&#39;essai\nVoici un petit montage à réaliser avec un ESP8266 et une Led qui vous permettront de tester les différents codes proposés dans ce tutoriel.\n\nPour mémoire, voici un tableau récapitulatif de la tension d&#39;alimentation typique en fonction de la couleur et du diamètre de la LED.\n\n\n\n\nCouleur\nLongueur d&#39;onde (nm)\nTension (V) pour diamètre 3 mm\nTension (V) pour diamètre 5 mm\n\n\nrouge\n625-630\n  1.9-2.1\n2.1-2.2\n\n\nBleu\n460-470\n3.0-3.2\n3.2-3.4\n\n\nvert\n520-525\n2.0-2.2\n2.0-2.2\n\n\nJaune\n585-595\n2.0-2.2\n3.0-3.2\n\n\nblanc\n  460-470\n3.0-3.2\n1.9-2.1\n\n\n\n\nProgrammation «classique»\nLa première chose à savoir lors du démarrage avec un module ESP8266 est que vous pouvez le programmer exactement comme un Arduino. Contrairement aux microcontrôleurs ATTiny moins puissants, le SoC de l&#39;ESP8266 est capable d&#39;exécuter toutes les commandes C ++ du code Arduino. La seule condition à respecter est d&#39;utiliser la bibliothèque adaptée à ces derniers dès que vous souhaitez utiliser le WiFi (paragraphe suivant).\nOuvrez l&#39;IDE Arduino et collez ce code dans un nouveau projet avant de le télécharger.\nQue fait ce programme?\n\nUne variable entière (int) permet d&#39;indiquer sur quelle sortie la Led est connectée\nDans la boucle setup (), nous indiquons que la broche (ici 16) est une sortie (OUTPUT)\nLa boucle loop () s&#39;exécute sans fin. A chaque passage\n\nOn met la sortie (16) à bas niveau (LOW), c&#39;est-à-dire que la tension de sortie est nulle (pas de courant)\nNous attendons 1 seconde. Le délai est indiqué en millisecondes (1000 ms = 1 s)\nOn met la sortie (16) haute (HIGH), c&#39;est-à-dire que la tension de sortie est de 5V (le courant circule)\nNous attendons 2 secondes\nEtc\n\n\n\nint led = 16;\n\nvoid setup () \npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie\n\n\n// Cette boucle fonctionne sans fin\n// la fonction de boucle se répète indéfiniment\nboucle vide () \ndigitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (2000); // 2 secondes de pause - Attendez 2 secondes\n\nRemplacez maintenant dans la sortie 16 par le marquage équivalent de ESP8266, à savoir D0, qui donne int led = D0;\nComme vous pouvez le voir, le programme fonctionne de la même manière.\n\n\t\t\tRemarque. Même si la variable est de type int (entier), nous écrivons une chaîne de caractères dans le code. C&#39;est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la bibliothèque ESP8266.\n\t\t\t\n\nProgrammation du serveur Web: connectez l&#39;ESP8266 au réseau WiFi\nLa programmation du serveur Web vous permet d&#39;ajouter une interface Web (écrite en HTML et javascript) à un projet ESP8266. C&#39;est également possible avec un Arduino mais c&#39;est parfaitement logique avec un ESP8266 qui a nativement une connexion WiFi.\nPrenons le code précédent et ajoutons les deux bibliothèques nécessaires\n#comprendre \n#comprendre \nNous allons créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui contiendra le serveur Web (objet C ++)\nconst char * ssid = &quot;xxxx&quot;; // Identifiant WiFi\nconst char * password = &quot;xxxxxxxxx&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\nLe code de fonction de configuration effectue les opérations suivantes\n\nSerial.begin (115200)  nous ouvrons le port série à 115200 bauds\nWiFi.begin (ssid, mot de passe)  ESP8266 se connecte au réseau WiFi\nLa boucle while écrit un point sur le port série toutes les 500 ms jusqu&#39;à ce que l&#39;ESP8266 soit connecté au WiFi WiFi.status ()! = WL_CONNECTED (très mauvaise idée quand on fonctionne sur batterie ailleurs, mais c&#39;est juste pour comprendre comment ça marche)\nSerial.println (WiFi.localIP ()) écrit l&#39;adresse IP attribuée par la box Internet ou le routeur à l&#39;ESP8266 sur le port série\n\nserver.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;); // Ajouter un point d&#39;entrée, une page web\n);\nNous ajoutons un point d&#39;entrée, c&#39;est-à-dire une adresse internet (URL) sur laquelle nous afficherons pour l&#39;instant un simple texte\n\n\nserver.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\nUne deuxième page qui pourrait être une page de paramètres\n\nserver.begin () enfin, on démarre le serveur web\n\nIl ne reste plus qu&#39;à demander à l&#39;ESP8266 d&#39;écouter les requêtes et d&#39;afficher les pages correspondantes. À cela, nous ajoutons la commande server.handleClient () dans la fonction loop ().\nCollez le code complet dans un nouveau projet et téléchargez-le sur WeMos.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\n\nint led = D0;\n\nvoid setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\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// nous affichons l&#39;adresse IP attribuée au serveur DSN\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());\n\n// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;);\n);\nserver.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\n// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie\n\n\n// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, la fonction handleClient traite les requêtes\nserver.handleClient ();\n\ndigitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (1000); // 2 secondes de pause - Attendez 2 secondes\n\nOuvrez le moniteur série pour récupérer l&#39;adresse IP de l&#39;ESP8266 sur le réseau local.\n\nOuvrez maintenant un navigateur Internet et entrez l&#39;adresse IP ou IP_ESP8266 / paramètres.\n\nEt voilà, en quelques lignes de code, vous venez de connecter l&#39;ESP8266 au réseau local (et à Internet en même temps). Vous pouvez accéder à une interface WEB depuis n&#39;importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box Internet ou votre routeur, vous pouvez même accéder à l&#39;interface extérieure à votre domicile avec une connexion 3G / 4G.\n\n\t\t\tAttention. La connexion n&#39;est pas cryptée. Il n&#39;est pas protégé. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)\n\t\t\t\n\nProgrammation de serveur Web: contrôlez le GPIO depuis un smartphone depuis Internet!\nNous allons maintenant voir comment ajouter des commandes pour contrôler le GPIO à partir d&#39;une interface. Il existe plusieurs méthodes pour générer le code HTML de l&#39;interface qui sera envoyé au navigateur Internet. Ici, nous allons simplement créer une chaîne qui contiendra le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce que vous devez vous rappeler :\n\nLe code HTML est construit en assemblant des chaînes\nIl est possible d&#39;intégrer un contenu variable. Voici l&#39;état de la sortie D0 contenue dans la chaîne etatD0.\nChaque changement d&#39;état est envoyé au serveur web qui s&#39;exécute sur l&#39;ESP8266 à l&#39;aide d&#39;un formulaire sous la forme d&#39;une requête HTTP de type POST.\nIci, la mise à jour est déclenchée manuellement en appuyant sur un bouton (soumettre)\n\nString getPage () \nPage de chaîne = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266&quot;;\npage + = &quot;GPIO&quot;;\npage + = &quot;&quot;;\npage + = &quot;D0 (indiquer: &quot;;\npage + = stateD0;\npage + = &quot;)&quot;;\npage + = &quot;NOUS&quot;;\npage + = &quot;DE&quot;;\npage + = &quot;&quot;;\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;\n\nMaintenant, nous modifions dans la configuration le point d&#39;entrée vers la page d&#39;accueil. Nous connectons le point d&#39;entrée «/» à la fonction handleRoot.\nserver.on (&quot;/&quot;, handleRoot);\nLorsque la page principale («/») s&#39;affiche ou que le serveur Web reçoit une demande POST (mise à jour GPIO), la fonction handleRoot est appelée. La fonction server.hasArg est utilisée pour connecter des actions. Ici, si la requête contient l&#39;argument (hasArg), alors nous devons changer l&#39;état du GPIO. Nous exécutons la fonction handleSubmit, sinon nous actualisons la page.\nvoid handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());\n\n\nLa fonction handleSubmit récupère la valeur de l&#39;argument &quot;D0&quot; avec la fonction server.arg, puis il suffit de tester sa valeur pour effectuer le traitement correct. Veuillez noter qu&#39;il s&#39;agit d&#39;une chaîne de caractères. Il faut donc tester comme ça == &quot;1&quot; et non == 1. Nous en profitons pour stocker l&#39;état de la sortie dans la variable etatD0.\nvoid handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);\n\n\nCollez le code complet suivant en modifiant l&#39;identifiant WiFi et le mot de passe.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\n\nint led = D0;\nString etatD0 = &quot;Off&quot;;\n\nString getPage () \nPage de chaîne = &quot;&quot;; // Il s&#39;agit du code HTML, la page s&#39;actualise automatiquement\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;; // Titre de la barre du navigateur\npage + = &quot;&quot;; // style de page\npage + = &quot;Démonstration du serveur Web ESP8266&quot;; // Titre de la page (H1)\npage + = &quot;GPIO&quot;; // Sous-titre (H3)\npage + = &quot;&quot;; // Le formulaire sera envoyé avec une requête POST\npage + = &quot;D0 (état: &quot;; // Première ligne de la liste (ul) avec D0\npage + = stateD0; // on concatène la chaîne contenant l&#39;état de la sortie\npage + = &quot;)&quot;;\npage + = &quot;ON &quot;; // Bouton pour activer D0\npage + = &quot;DE&quot;; // et désactivez-le\npage + = &quot;&quot;; // Bouton Actualiser\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;\n\nvoid handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());\n\n\n\nvoid handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);\n\n\n\nvoid setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\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// 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// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, handleRoot);\n\n// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie\n\n\n// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();\n\nVoici l&#39;interface obtenue\n\nMaintenant que c&#39;est plus clair, vous pouvez aller un peu plus loin dans les détails de la programmation du serveur Web ESP8266 en lisant cet article. Vous pouvez réaliser ce type d&#39;interface en suivant ce projet de station météo en 5 étapes.\n\nTous les didacticiels de programmation du serveur Web ESP8266\nServeur Web (Interface)\nProgrammation client Web:\nLa programmation Web client permet à un module ESP8266 de communiquer avec un autre serveur, un autre ESP8266, une application mobile, etc. Voici quelques exemples d&#39;application:\n\nTransmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit, etc.)\nÉtats de transmission (détecteur d&#39;ouverture de porte ou de fenêtre, contacteur, etc.)\n\nVoici plusieurs articles sur le sujet avec des exemples d&#39;applications pour communiquer ESP8266 avec Jeedom ou Domoticz (affichage à distance)\nClient Web (communication)\nFoire aux questions (FAQ)\nSur quelles plateformes l&#39;IDE Arduino est-il disponible?\nL&#39;IDE Arduino est disponible sur tous les systèmes d&#39;exploitation (Windows, macOS, Linux, Linux ARM). Quel que soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l&#39;IDE Arduino. Accédez au site des fonctions Arduino pour récupérer la version qui convient à votre ordinateur ou mini-PC. Il existe également une version en ligne si vous ne souhaitez rien installer sur votre ordinateur.\nPouvez-vous programmer un ESP8266 sur un Mac?\nOui, l&#39;IDE Arduino est également disponible sur macOS. Comme le SDK expressif est écrit en python, il est possible de programmer des modules ESP8266 comme sur un PC Windows.\nPeut-on programmer l&#39;ESP8266 depuis Linux ARM (Raspberry Pi par exemple)?\nOui, si vous avez un Raspberry Pi ou un mini-PC équivalent exécutant Linux ARM (un Orange Pi par exemple), il est tout à fait possible d&#39;utiliser l&#39;IDE Arduino.\nJe ne sais rien de la programmation, essayez le projet ESP Easy!\nSi vous débutez avec les microcontrôleurs et que tout ce que vous avez lu précédemment vous fait un peu peur, pas de problème. Le projet ESP Easy est fait pour vous! ESP Easy est une interface qui permet le développement de sondes ou d&#39;actionneurs par simple configuration. L&#39;interface est en anglais mais tout est expliqué dans ces tutoriels en français.\nQuel modèle ESP8266 ou ESP32 choisir pour commencer?\nSi votre projet nécessite une connectivité WiFi ou Bluetooth, l&#39;ESP8266 (guide complet) est un module compatible avec le code Arduino. L&#39;ESP32 est une version améliorée qui a plus d&#39;entrées / sorties (GPIO), plus de puissance et consomme encore moins.\nQuelques tutoriels et projets basés sur ESP8266\n\nCommencez avec des objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits  \n# Test IAQ CCS811, capteur de qualité de l&#39;air TVOC, bus eCO2 i2C (Arduino, ESP8266)  \nBibliothèque Arduino Telegram Bot universelle compatible avec les mises à niveau Arduino, ESP32 et ESP8266 vers la version 1.1.0  \nInstallez facilement ESP Easy R120 ou Mega v2 avec PlatformIO sur ESP8266 [MàJ]  \nDéballage du clone Wemos ESP32 LoLin avec écran OLED monochrome SSD1306 de 0,96 pouces  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)  \nDéballage du Wemos D1 R2, du clone ESPDuino, de la carte de développement ESP8266 au format Arduino Uno  \nProjet MicroPython ESP32, lire la température sur plusieurs sondes DS18B20 et publier les mesures sur Domoticz  \nDéballage du blindage Geekcreit PCA9685 I2C 16 servos + 2 moteurs pour Arduino ou ESPDuino (ESP8266)  \nAffichage OLED SSD1306 en MicroPython, exemple avec un baromètre numérique BME280 I2C  \n\nTous les projets ESP8266\nQuelques tutoriels et projets basés sur ESP32\n\nNouvelle carte de développement expressive ESP32-Vaquita-DSPG pour l&#39;interface utilisateur vocale  \nESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED  \nProgrammation des cartes ESP32 avec l&#39;IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Cadre ESP-IDF  \nQuel ESP32 choisir pour développer des objets connectés DIY en 2020  \nWemos LoLin D32 Pro ESP32 avec support d&#39;écran TFT, connecteur et chargeur de batterie LiPo et lecteur de carte SD  \n#Guider. Concevoir, fabriquer et assembler des circuits et des PCB pour des projets de bricolage basés sur ESP32 ou ESP8266  \nMH-Z19, mesure la concentration de CO2. Test avec Domoticz, code Arduino compatible avec ESP32 / ESP8266  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)  \n\nTous les projets ESP32\nPeut-on utiliser des cartes NodeMCU ou micropython?\nAbsolument oui. Ce sont d&#39;autres firmwares. NodeMCU vous permet d&#39;exécuter du code Lua. Dès le premier téléchargement, le firmware sera remplacé par le code Arduino. Vous pouvez réinstaller le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython plus tard.\nTutoriels et projets MicroPython\nTous les projets Micro Pyton\nQuelques livres pour débuter en C / C ++\nLa programmation Arduino utilise des concepts de programmation d&#39;objets C / C ++. Il existe de très bons livres d&#39;introduction ainsi que des tutoriels sur le Web pour aller plus loin que les concepts abordés ici\n\n\n\n\n                                            \n                            \n                        \n                                    \n\n\n6,99 €\n15,99€\n                                en stock                            \n                                1 nouveau\nà partir de 6,99 €                                                            \n                                Enregistré le 18 novembre 2019 12 h 03 min                                                            \n\n\n\n\n                             Amazon.fr\n                        \nLivraison gratuite\n\n\n\n\nMises à jour\n[24/04/2020]    Mise à jour de l&#39;article\n[3/06/2019]    Nouvelle URL vers le SDK ESP8266. Régression du SDK constatée depuis la version 2.5.x. Comment installer une version précédente du SDK\n\n\n\n                                            As-tu aimé cet article ?\n                                        \n[Total:[Total:[Total:[Total:  Moyenne: ]\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["RecordEnregistréEffacé 4","Les modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l&#39;ESP8266.","Article mis à jour le 24 avril 2020\nAujourd&#39;hui, il est aussi simple de programmer un module ESP8266 qu&#39;un Arduino en C ++. Nous allons découvrir dans ce tutoriel comment installer les bibliothèques nécessaires sur l&#39;IDE Arduino, et découvrir à travers des exemples simples les bases de la programmation de l&#39;ESP8266.\nInstaller des cartes et des bibliothèques pour les modules ESP8266 sur l&#39;IDE Arduino\nLancez l&#39;IDE Arduino et ouvrez les préférences dans le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences &#8230; Cliquez sur l&#39;icône indiquée par la flèche rouge sur la photo ci-dessous.","Dans le champ de saisie, collez l&#39;adresse internet suivante puis validez\nhttps://arduino.esp8266.com/stable/package_esp8266com_index.json\nhttp://arduino.esp8266.com/staging/package_esp8266com_index.json","Pour les cartes ESP32, ajoutez la source suivante\nhttps://dl.espressif.com/dl/package_esp32_index.json\nCela indique à l&#39;IDE Arduino qu&#39;il doit se rendre sur le site arduino.esp8266.com afin de récupérer d&#39;autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de cartes et enfin Gestionnaire de cartes","Dans le champ de recherche, entrez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n&#39;apparaissent pas, vérifiez dans les préférences que l&#39;URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer.","L&#39;installation ne prend que quelques minutes. Une fois l&#39;installation terminée, fermez le gestionnaire de cartes et ouvrez à nouveau le menu Outils. Dans le sous-menu Type de carte, vous avez maintenant une nouvelle section appelée Modules ESP8266.","Les principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) sont au menu. Pour les autres modules, choisissez simplement le module ESP8266 générique.\nPour afficher les exemples installés avec les cartes ESP826, si vous n&#39;avez qu&#39;à choisir dans la liste puis allez sur le Fichier -&gt; Exemples.","Problèmes avec le bus I2C et la bibliothèque SD à partir de la version 2.5\nLa version 2.5 du SDK ESP8266 semble introduire des modifications importantes pouvant entraîner des problèmes d&#39;incompatibilité avec certains libraires. Par exemple, j&#39;ai rencontré des problèmes de compilation avec la bibliothèque SD qui permet l&#39;enregistrement et la lecture sur une carte micro SD. Un problème similaire a été signalé en 2016 sur le forum officiel. Le compilateur refuse de compiler le programme sans que la sélection de puce de la carte SD ne soit indiquée. ce paramètre est normalement facultatif. Si une sélection de puce est indiquée, la compilation et le téléchargement sont effectués correctement mais la communication avec le bus I2C est perdue.\nSi vous rencontrez un problème similaire, vous pouvez (temporairement) revenir à une version précédente du SDK.\nComment installer une version précédente du SDK ESP8266\nCependant, si vous rencontrez un problème, vous pouvez utiliser une version précédente du SDK. Pour ce faire, ouvrez le gestionnaire de cartes et recherchez la carte ESP8266. Cliquez sur Supprimer pour supprimer l&#39;intégralité du SDK.","Choisissez ensuite la version souhaitée, par exemple la version 2.4.2 et cliquez sur installer. Ne cliquez pas sur la mise à jour car l&#39;IDE Arduino installe automatiquement la dernière version publiée (la plus récente)!","Avant d&#39;aller plus loin, note sur ESP-01\nL&#39;ESP-01 est une version plus limitée de l&#39;ESP8266. Il ne dispose que de 2 GPIO. Le module a une mémoire flash plus petite (de 512 Ko à 1 Mo). La programmation est identique mais «plus pénible» car il faut mettre le module dans un mode particulier avant de pouvoir télécharger le programme (mode Bootload). Ce n&#39;est pas un module approprié pour apprendre et démarrer avec l&#39;ESP8266. Cependant, si vous avez besoin de plus d&#39;informations, vous pouvez trouver plusieurs tutoriels sur le blog en recherchant avec le mot-clé ESP-01.\nDifférences entre Arduino et ESP8266, identification des broches\nL&#39;ESP8266 possède 9 E / S numériques au lieu de 14 pour l&#39;Arduino Uno. Alors que sur l&#39;Arduino Uno, il n&#39;y a que 6 sorties qui prennent en charge le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l&#39;ESP8266 peuvent générer un signal PWM. Si vous avez besoin de plus d&#39;E / S, vous pouvez passer à ESP32.\nEn résumé","Arduino / Genuino 101\nESP8266 (ESP-12x)","Micro-contrôleur\nArduio Uno et la plupart des cartes compatible: ATmel ATmega328p\nLe nouveau Genuino 101: Intel Curie","Tensilica Xtensa LX106","Sans fil\n&#8211;","Bluetooth\nLE\n&#8211;","Adressage\n8… 32 bits\n32bits","Fréquence d&#39;horloge\n16 MHz\n80 MHz","Mémoire flash\n32kb\n512… 4 Mo (1)","Nombre d&#39;E / S\nx14\nx11 (D0… D8 + RX / TX)","Nombre de sorties PWM\nArduino Uno et clones: x6 (3, 5, 6, 9, 10, 11)\nArduino 101: x4","Toutes les sorties sont PWM","Nombre d&#39;entrées analogiques\nx6 (A0..A5), 10 bits, 5 V max.\nx1 (A0), 10 bits, 1 V max. (2)","UART (port série)\nx1\nx1 (3)","I2C\nx1\nx1","SPI\nx1\nx1","Documentation technique\nArduino Uno R3\nGenuino 101","version 5.4","L&#39;identification des broches est légèrement différente sur l&#39;ESP8266. Chaque sortie est précédée d&#39;un ré (pour rénumérique probablement). Dans un programme Arduino, vous pouvez directement utiliser le marqueur indiqué sur la carte D1 ou l&#39;équivalent Arduino 5.\n(1) Mémoire externe. Aujourd&#39;hui, presque tous les modèles ont 4 Mo de mémoire flash. Cependant, tout n&#39;est pas utilisable. Une partie est réservée au stockage des données (stockage des données utilisateur, interface HTML et code d&#39;interface javascript, etc.). Il s&#39;agit de la zone SPIFFS présentée dans cet article.\n(2) L&#39;ESP8266 accepte 1V maximum sur la broche analogique. Certains modules intègrent un pont diviseur de tension qui permet d&#39;augmenter la tension. Par exemple, le Wemos d1 mini accepte 3,3 V max. \n(3) Un seul port série utilisable. L&#39;autre broche TX est utilisée lors de l&#39;écriture de la mémoire flash","Attention. Chaque fabricant est libre d&#39;attribuer les broches. C&#39;est notamment le cas pour les broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui résume les broches des principales cartes en vente","ESP8266 broches\nRemarque\nÉquivalent Arduino / Genuino 101\nAutre usage","TX","1\nCS1, TXD0","RX","3\nRXD0","D0\nPWM (1)\n16\nRÉVEILLER","D1\nPWM\n5","D2\nPWM\n4","D3\nPWM\n0\nCS2","D4\nPWM\n2\nTXD1","D5\nPWM\n14\nCLK","D6\nPWM\n12\nMISO","D7\nPWM\n13\nMOSI, RXD2, CTS0","D8\nPWM\n15\nCS, TXD2, RTS0","RST","RST","A0\n3,3 V max.\nA0","3V3","3V","5V\n800 mA max.","g","GND (x3)","(1) Connecté à la broche GND à la mise sous tension pour mettre ESP en mode bootload. Ce mode vous permet de réinstaller le firmware d&#39;origine ou de charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de cartes. Cette opération est donc inutile, le téléchargement est transparent.\nGénéralement, les fabricants publient un schéma de brochage qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d&#39;un LoLin WeMos d1 mini. Ce schéma de connexion est valable pour toutes les cartes basées sur le module ESP-12x.","Si vous souhaitez vous lancer dans la programmation Lua, le numéro de broche à utiliser dans le code est également indiqué.","Attention, le GPIO fonctionne avec une tension de 3,3V\nParticularité de l&#39;ESP8266 par rapport à l&#39;Arduino Uno (ce n&#39;est plus le cas pour le Genuino 101 et les nouvelles cartes à base d&#39;Intel Curie), le GPIO fonctionne à une tension de 3,3V. Il faudra donc dans certains cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V à 3,3V) ou inversement (3,3V à 5V).\nComment programmer l&#39;ESP8266 avec l&#39;IDE Arduino?\nÉquipement et circuit d&#39;essai\nVoici un petit montage à réaliser avec un ESP8266 et une Led qui vous permettront de tester les différents codes proposés dans ce tutoriel.","Pour mémoire, voici un tableau récapitulatif de la tension d&#39;alimentation typique en fonction de la couleur et du diamètre de la LED.","Couleur\nLongueur d&#39;onde (nm)\nTension (V) pour diamètre 3 mm\nTension (V) pour diamètre 5 mm","rouge\n625-630\n  1.9-2.1\n2.1-2.2","Bleu\n460-470\n3.0-3.2\n3.2-3.4","vert\n520-525\n2.0-2.2\n2.0-2.2","Jaune\n585-595\n2.0-2.2\n3.0-3.2","blanc\n  460-470\n3.0-3.2\n1.9-2.1","Programmation «classique»\nLa première chose à savoir lors du démarrage avec un module ESP8266 est que vous pouvez le programmer exactement comme un Arduino. Contrairement aux microcontrôleurs ATTiny moins puissants, le SoC de l&#39;ESP8266 est capable d&#39;exécuter toutes les commandes C ++ du code Arduino. La seule condition à respecter est d&#39;utiliser la bibliothèque adaptée à ces derniers dès que vous souhaitez utiliser le WiFi (paragraphe suivant).\nOuvrez l&#39;IDE Arduino et collez ce code dans un nouveau projet avant de le télécharger.\nQue fait ce programme?","Une variable entière (int) permet d&#39;indiquer sur quelle sortie la Led est connectée\nDans la boucle setup (), nous indiquons que la broche (ici 16) est une sortie (OUTPUT)\nLa boucle loop () s&#39;exécute sans fin. A chaque passage","On met la sortie (16) à bas niveau (LOW), c&#39;est-à-dire que la tension de sortie est nulle (pas de courant)\nNous attendons 1 seconde. Le délai est indiqué en millisecondes (1000 ms = 1 s)\nOn met la sortie (16) haute (HIGH), c&#39;est-à-dire que la tension de sortie est de 5V (le courant circule)\nNous attendons 2 secondes\nEtc","int led = 16;","void setup () \npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie","// Cette boucle fonctionne sans fin\n// la fonction de boucle se répète indéfiniment\nboucle vide () \ndigitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (2000); // 2 secondes de pause - Attendez 2 secondes","Remplacez maintenant dans la sortie 16 par le marquage équivalent de ESP8266, à savoir D0, qui donne int led = D0;\nComme vous pouvez le voir, le programme fonctionne de la même manière.","Remarque. Même si la variable est de type int (entier), nous écrivons une chaîne de caractères dans le code. C&#39;est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la bibliothèque ESP8266.","Programmation du serveur Web: connectez l&#39;ESP8266 au réseau WiFi\nLa programmation du serveur Web vous permet d&#39;ajouter une interface Web (écrite en HTML et javascript) à un projet ESP8266. C&#39;est également possible avec un Arduino mais c&#39;est parfaitement logique avec un ESP8266 qui a nativement une connexion WiFi.\nPrenons le code précédent et ajoutons les deux bibliothèques nécessaires\n#comprendre \n#comprendre \nNous allons créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui contiendra le serveur Web (objet C ++)\nconst char * ssid = &quot;xxxx&quot;; // Identifiant WiFi\nconst char * password = &quot;xxxxxxxxx&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\nLe code de fonction de configuration effectue les opérations suivantes","Serial.begin (115200)  nous ouvrons le port série à 115200 bauds\nWiFi.begin (ssid, mot de passe)  ESP8266 se connecte au réseau WiFi\nLa boucle while écrit un point sur le port série toutes les 500 ms jusqu&#39;à ce que l&#39;ESP8266 soit connecté au WiFi WiFi.status ()! = WL_CONNECTED (très mauvaise idée quand on fonctionne sur batterie ailleurs, mais c&#39;est juste pour comprendre comment ça marche)\nSerial.println (WiFi.localIP ()) écrit l&#39;adresse IP attribuée par la box Internet ou le routeur à l&#39;ESP8266 sur le port série","server.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;); // Ajouter un point d&#39;entrée, une page web\n);\nNous ajoutons un point d&#39;entrée, c&#39;est-à-dire une adresse internet (URL) sur laquelle nous afficherons pour l&#39;instant un simple texte","server.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\nUne deuxième page qui pourrait être une page de paramètres","server.begin () enfin, on démarre le serveur web","Il ne reste plus qu&#39;à demander à l&#39;ESP8266 d&#39;écouter les requêtes et d&#39;afficher les pages correspondantes. À cela, nous ajoutons la commande server.handleClient () dans la fonction loop ().\nCollez le code complet dans un nouveau projet et téléchargez-le sur WeMos.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80","int led = D0;","void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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 attribuée au serveur DSN\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());","// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;);\n);\nserver.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\n// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie","// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, la fonction handleClient traite les requêtes\nserver.handleClient ();","digitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (1000); // 2 secondes de pause - Attendez 2 secondes","Ouvrez le moniteur série pour récupérer l&#39;adresse IP de l&#39;ESP8266 sur le réseau local.","Ouvrez maintenant un navigateur Internet et entrez l&#39;adresse IP ou IP_ESP8266 / paramètres.","Et voilà, en quelques lignes de code, vous venez de connecter l&#39;ESP8266 au réseau local (et à Internet en même temps). Vous pouvez accéder à une interface WEB depuis n&#39;importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box Internet ou votre routeur, vous pouvez même accéder à l&#39;interface extérieure à votre domicile avec une connexion 3G / 4G.","Attention. La connexion n&#39;est pas cryptée. Il n&#39;est pas protégé. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)","Programmation de serveur Web: contrôlez le GPIO depuis un smartphone depuis Internet!\nNous allons maintenant voir comment ajouter des commandes pour contrôler le GPIO à partir d&#39;une interface. Il existe plusieurs méthodes pour générer le code HTML de l&#39;interface qui sera envoyé au navigateur Internet. Ici, nous allons simplement créer une chaîne qui contiendra le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce que vous devez vous rappeler :","Le code HTML est construit en assemblant des chaînes\nIl est possible d&#39;intégrer un contenu variable. Voici l&#39;état de la sortie D0 contenue dans la chaîne etatD0.\nChaque changement d&#39;état est envoyé au serveur web qui s&#39;exécute sur l&#39;ESP8266 à l&#39;aide d&#39;un formulaire sous la forme d&#39;une requête HTTP de type POST.\nIci, la mise à jour est déclenchée manuellement en appuyant sur un bouton (soumettre)","String getPage () \nPage de chaîne = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266&quot;;\npage + = &quot;GPIO&quot;;\npage + = &quot;&quot;;\npage + = &quot;D0 (indiquer: &quot;;\npage + = stateD0;\npage + = &quot;)&quot;;\npage + = &quot;NOUS&quot;;\npage + = &quot;DE&quot;;\npage + = &quot;&quot;;\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;","Maintenant, nous modifions dans la configuration le point d&#39;entrée vers la page d&#39;accueil. Nous connectons le point d&#39;entrée «/» à la fonction handleRoot.\nserver.on (&quot;/&quot;, handleRoot);\nLorsque la page principale («/») s&#39;affiche ou que le serveur Web reçoit une demande POST (mise à jour GPIO), la fonction handleRoot est appelée. La fonction server.hasArg est utilisée pour connecter des actions. Ici, si la requête contient l&#39;argument (hasArg), alors nous devons changer l&#39;état du GPIO. Nous exécutons la fonction handleSubmit, sinon nous actualisons la page.\nvoid handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());","La fonction handleSubmit récupère la valeur de l&#39;argument &quot;D0&quot; avec la fonction server.arg, puis il suffit de tester sa valeur pour effectuer le traitement correct. Veuillez noter qu&#39;il s&#39;agit d&#39;une chaîne de caractères. Il faut donc tester comme ça == &quot;1&quot; et non == 1. Nous en profitons pour stocker l&#39;état de la sortie dans la variable etatD0.\nvoid handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);","Collez le code complet suivant en modifiant l&#39;identifiant WiFi et le mot de passe.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80","int led = D0;\nString etatD0 = &quot;Off&quot;;","String getPage () \nPage de chaîne = &quot;&quot;; // Il s&#39;agit du code HTML, la page s&#39;actualise automatiquement\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;; // Titre de la barre du navigateur\npage + = &quot;&quot;; // style de page\npage + = &quot;Démonstration du serveur Web ESP8266&quot;; // Titre de la page (H1)\npage + = &quot;GPIO&quot;; // Sous-titre (H3)\npage + = &quot;&quot;; // Le formulaire sera envoyé avec une requête POST\npage + = &quot;D0 (état: &quot;; // Première ligne de la liste (ul) avec D0\npage + = stateD0; // on concatène la chaîne contenant l&#39;état de la sortie\npage + = &quot;)&quot;;\npage + = &quot;ON &quot;; // Bouton pour activer D0\npage + = &quot;DE&quot;; // et désactivez-le\npage + = &quot;&quot;; // Bouton Actualiser\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;","void handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());","void handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);","void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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 ());","// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, handleRoot);","// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie","// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();","Voici l&#39;interface obtenue","Maintenant que c&#39;est plus clair, vous pouvez aller un peu plus loin dans les détails de la programmation du serveur Web ESP8266 en lisant cet article. Vous pouvez réaliser ce type d&#39;interface en suivant ce projet de station météo en 5 étapes.","Tous les didacticiels de programmation du serveur Web ESP8266\nServeur Web (Interface)\nProgrammation client Web:\nLa programmation Web client permet à un module ESP8266 de communiquer avec un autre serveur, un autre ESP8266, une application mobile, etc. Voici quelques exemples d&#39;application:","Transmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit, etc.)\nÉtats de transmission (détecteur d&#39;ouverture de porte ou de fenêtre, contacteur, etc.)","Voici plusieurs articles sur le sujet avec des exemples d&#39;applications pour communiquer ESP8266 avec Jeedom ou Domoticz (affichage à distance)\nClient Web (communication)\nFoire aux questions (FAQ)\nSur quelles plateformes l&#39;IDE Arduino est-il disponible?\nL&#39;IDE Arduino est disponible sur tous les systèmes d&#39;exploitation (Windows, macOS, Linux, Linux ARM). Quel que soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l&#39;IDE Arduino. Accédez au site des fonctions Arduino pour récupérer la version qui convient à votre ordinateur ou mini-PC. Il existe également une version en ligne si vous ne souhaitez rien installer sur votre ordinateur.\nPouvez-vous programmer un ESP8266 sur un Mac?\nOui, l&#39;IDE Arduino est également disponible sur macOS. Comme le SDK expressif est écrit en python, il est possible de programmer des modules ESP8266 comme sur un PC Windows.\nPeut-on programmer l&#39;ESP8266 depuis Linux ARM (Raspberry Pi par exemple)?\nOui, si vous avez un Raspberry Pi ou un mini-PC équivalent exécutant Linux ARM (un Orange Pi par exemple), il est tout à fait possible d&#39;utiliser l&#39;IDE Arduino.\nJe ne sais rien de la programmation, essayez le projet ESP Easy!\nSi vous débutez avec les microcontrôleurs et que tout ce que vous avez lu précédemment vous fait un peu peur, pas de problème. Le projet ESP Easy est fait pour vous! ESP Easy est une interface qui permet le développement de sondes ou d&#39;actionneurs par simple configuration. L&#39;interface est en anglais mais tout est expliqué dans ces tutoriels en français.\nQuel modèle ESP8266 ou ESP32 choisir pour commencer?\nSi votre projet nécessite une connectivité WiFi ou Bluetooth, l&#39;ESP8266 (guide complet) est un module compatible avec le code Arduino. L&#39;ESP32 est une version améliorée qui a plus d&#39;entrées / sorties (GPIO), plus de puissance et consomme encore moins.\nQuelques tutoriels et projets basés sur ESP8266","Commencez avec des objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits  \n# Test IAQ CCS811, capteur de qualité de l&#39;air TVOC, bus eCO2 i2C (Arduino, ESP8266)  \nBibliothèque Arduino Telegram Bot universelle compatible avec les mises à niveau Arduino, ESP32 et ESP8266 vers la version 1.1.0  \nInstallez facilement ESP Easy R120 ou Mega v2 avec PlatformIO sur ESP8266 [MàJ]  \nDéballage du clone Wemos ESP32 LoLin avec écran OLED monochrome SSD1306 de 0,96 pouces  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)  \nDéballage du Wemos D1 R2, du clone ESPDuino, de la carte de développement ESP8266 au format Arduino Uno  \nProjet MicroPython ESP32, lire la température sur plusieurs sondes DS18B20 et publier les mesures sur Domoticz  \nDéballage du blindage Geekcreit PCA9685 I2C 16 servos + 2 moteurs pour Arduino ou ESPDuino (ESP8266)  \nAffichage OLED SSD1306 en MicroPython, exemple avec un baromètre numérique BME280 I2C","Tous les projets ESP8266\nQuelques tutoriels et projets basés sur ESP32","Nouvelle carte de développement expressive ESP32-Vaquita-DSPG pour l&#39;interface utilisateur vocale  \nESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED  \nProgrammation des cartes ESP32 avec l&#39;IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Cadre ESP-IDF  \nQuel ESP32 choisir pour développer des objets connectés DIY en 2020  \nWemos LoLin D32 Pro ESP32 avec support d&#39;écran TFT, connecteur et chargeur de batterie LiPo et lecteur de carte SD  \n#Guider. Concevoir, fabriquer et assembler des circuits et des PCB pour des projets de bricolage basés sur ESP32 ou ESP8266  \nMH-Z19, mesure la concentration de CO2. Test avec Domoticz, code Arduino compatible avec ESP32 / ESP8266  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)","Tous les projets ESP32\nPeut-on utiliser des cartes NodeMCU ou micropython?\nAbsolument oui. Ce sont d&#39;autres firmwares. NodeMCU vous permet d&#39;exécuter du code Lua. Dès le premier téléchargement, le firmware sera remplacé par le code Arduino. Vous pouvez réinstaller le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython plus tard.\nTutoriels et projets MicroPython\nTous les projets Micro Pyton\nQuelques livres pour débuter en C / C ++\nLa programmation Arduino utilise des concepts de programmation d&#39;objets C / C ++. Il existe de très bons livres d&#39;introduction ainsi que des tutoriels sur le Web pour aller plus loin que les concepts abordés ici","6,99 €\n15,99€\n                                en stock                            \n                                1 nouveau\nà partir de 6,99 €                                                            \n                                Enregistré le 18 novembre 2019 12 h 03 min","Amazon.fr\n                        \nLivraison gratuite","Mises à jour\n[24/04/2020]    Mise à jour de l&#39;article\n[3/06/2019]    Nouvelle URL vers le SDK ESP8266. Régression du SDK constatée depuis la version 2.5.x. Comment installer une version précédente du SDK","As-tu aimé cet article ?\n                                        \n[Total:[Total:[Total:[Total:  Moyenne: ]","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"RecordEnregistréEffacé 4","html":"<p>RecordEnregistréEffacé 4</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Les modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l&#39;ESP8266.","html":"<p>Les modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l&#039;ESP8266.</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Article mis à jour le 24 avril 2020\nAujourd&#39;hui, il est aussi simple de programmer un module ESP8266 qu&#39;un Arduino en C ++. Nous allons découvrir dans ce tutoriel comment installer les bibliothèques nécessaires sur l&#39;IDE Arduino, et découvrir à travers des exemples simples les bases de la programmation de l&#39;ESP8266.\nInstaller des cartes et des bibliothèques pour les modules ESP8266 sur l&#39;IDE Arduino\nLancez l&#39;IDE Arduino et ouvrez les préférences dans le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences &#8230; Cliquez sur l&#39;icône indiquée par la flèche rouge sur la photo ci-dessous.","html":"<p>Article mis à jour le 24 avril 2020\nAujourd&#039;hui, il est aussi simple de programmer un module ESP8266 qu&#039;un Arduino en C ++. Nous allons découvrir dans ce tutoriel comment installer les bibliothèques nécessaires sur l&#039;IDE Arduino, et découvrir à travers des exemples simples les bases de la programmation de l&#039;ESP8266.\nInstaller des cartes et des bibliothèques pour les modules ESP8266 sur l&#039;IDE Arduino\nLancez l&#039;IDE Arduino et ouvrez les préférences dans le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences &#8230; Cliquez sur l&#039;icône indiquée par la flèche rouge sur la photo ci-dessous.</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Dans le champ de saisie, collez l&#39;adresse internet suivante puis validez\nhttps://arduino.esp8266.com/stable/package_esp8266com_index.json\nhttp://arduino.esp8266.com/staging/package_esp8266com_index.json","html":"<p>Dans le champ de saisie, collez l&#039;adresse internet suivante puis validez\nhttps://arduino.esp8266.com/stable/package_esp8266com_index.json\nhttp://arduino.esp8266.com/staging/package_esp8266com_index.json</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Pour les cartes ESP32, ajoutez la source suivante\nhttps://dl.espressif.com/dl/package_esp32_index.json\nCela indique à l&#39;IDE Arduino qu&#39;il doit se rendre sur le site arduino.esp8266.com afin de récupérer d&#39;autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de cartes et enfin Gestionnaire de cartes","html":"<p>Pour les cartes ESP32, ajoutez la source suivante\nhttps://dl.espressif.com/dl/package_esp32_index.json\nCela indique à l&#039;IDE Arduino qu&#039;il doit se rendre sur le site arduino.esp8266.com afin de récupérer d&#039;autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de cartes et enfin Gestionnaire de cartes</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Dans le champ de recherche, entrez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n&#39;apparaissent pas, vérifiez dans les préférences que l&#39;URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer.","html":"<p>Dans le champ de recherche, entrez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n&#039;apparaissent pas, vérifiez dans les préférences que l&#039;URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer.</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"L&#39;installation ne prend que quelques minutes. Une fois l&#39;installation terminée, fermez le gestionnaire de cartes et ouvrez à nouveau le menu Outils. Dans le sous-menu Type de carte, vous avez maintenant une nouvelle section appelée Modules ESP8266.","html":"<p>L&#039;installation ne prend que quelques minutes. Une fois l&#039;installation terminée, fermez le gestionnaire de cartes et ouvrez à nouveau le menu Outils. Dans le sous-menu Type de carte, vous avez maintenant une nouvelle section appelée Modules ESP8266.</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Les principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) sont au menu. Pour les autres modules, choisissez simplement le module ESP8266 générique.\nPour afficher les exemples installés avec les cartes ESP826, si vous n&#39;avez qu&#39;à choisir dans la liste puis allez sur le Fichier -&gt; Exemples.","html":"<p>Les principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) sont au menu. Pour les autres modules, choisissez simplement le module ESP8266 générique.\nPour afficher les exemples installés avec les cartes ESP826, si vous n&#039;avez qu&#039;à choisir dans la liste puis allez sur le Fichier -&gt; Exemples.</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Problèmes avec le bus I2C et la bibliothèque SD à partir de la version 2.5\nLa version 2.5 du SDK ESP8266 semble introduire des modifications importantes pouvant entraîner des problèmes d&#39;incompatibilité avec certains libraires. Par exemple, j&#39;ai rencontré des problèmes de compilation avec la bibliothèque SD qui permet l&#39;enregistrement et la lecture sur une carte micro SD. Un problème similaire a été signalé en 2016 sur le forum officiel. Le compilateur refuse de compiler le programme sans que la sélection de puce de la carte SD ne soit indiquée. ce paramètre est normalement facultatif. Si une sélection de puce est indiquée, la compilation et le téléchargement sont effectués correctement mais la communication avec le bus I2C est perdue.\nSi vous rencontrez un problème similaire, vous pouvez (temporairement) revenir à une version précédente du SDK.\nComment installer une version précédente du SDK ESP8266\nCependant, si vous rencontrez un problème, vous pouvez utiliser une version précédente du SDK. Pour ce faire, ouvrez le gestionnaire de cartes et recherchez la carte ESP8266. Cliquez sur Supprimer pour supprimer l&#39;intégralité du SDK.","html":"<p>Problèmes avec le bus I2C et la bibliothèque SD à partir de la version 2.5\nLa version 2.5 du SDK ESP8266 semble introduire des modifications importantes pouvant entraîner des problèmes d&#039;incompatibilité avec certains libraires. Par exemple, j&#039;ai rencontré des problèmes de compilation avec la bibliothèque SD qui permet l&#039;enregistrement et la lecture sur une carte micro SD. Un problème similaire a été signalé en 2016 sur le forum officiel. Le compilateur refuse de compiler le programme sans que la sélection de puce de la carte SD ne soit indiquée. ce paramètre est normalement facultatif. Si une sélection de puce est indiquée, la compilation et le téléchargement sont effectués correctement mais la communication avec le bus I2C est perdue.\nSi vous rencontrez un problème similaire, vous pouvez (temporairement) revenir à une version précédente du SDK.\nComment installer une version précédente du SDK ESP8266\nCependant, si vous rencontrez un problème, vous pouvez utiliser une version précédente du SDK. Pour ce faire, ouvrez le gestionnaire de cartes et recherchez la carte ESP8266. Cliquez sur Supprimer pour supprimer l&#039;intégralité du SDK.</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Choisissez ensuite la version souhaitée, par exemple la version 2.4.2 et cliquez sur installer. Ne cliquez pas sur la mise à jour car l&#39;IDE Arduino installe automatiquement la dernière version publiée (la plus récente)!","html":"<p>Choisissez ensuite la version souhaitée, par exemple la version 2.4.2 et cliquez sur installer. Ne cliquez pas sur la mise à jour car l&#039;IDE Arduino installe automatiquement la dernière version publiée (la plus récente)!</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Avant d&#39;aller plus loin, note sur ESP-01\nL&#39;ESP-01 est une version plus limitée de l&#39;ESP8266. Il ne dispose que de 2 GPIO. Le module a une mémoire flash plus petite (de 512 Ko à 1 Mo). La programmation est identique mais «plus pénible» car il faut mettre le module dans un mode particulier avant de pouvoir télécharger le programme (mode Bootload). Ce n&#39;est pas un module approprié pour apprendre et démarrer avec l&#39;ESP8266. Cependant, si vous avez besoin de plus d&#39;informations, vous pouvez trouver plusieurs tutoriels sur le blog en recherchant avec le mot-clé ESP-01.\nDifférences entre Arduino et ESP8266, identification des broches\nL&#39;ESP8266 possède 9 E / S numériques au lieu de 14 pour l&#39;Arduino Uno. Alors que sur l&#39;Arduino Uno, il n&#39;y a que 6 sorties qui prennent en charge le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l&#39;ESP8266 peuvent générer un signal PWM. Si vous avez besoin de plus d&#39;E / S, vous pouvez passer à ESP32.\nEn résumé","html":"<p>Avant d&#039;aller plus loin, note sur ESP-01\nL&#039;ESP-01 est une version plus limitée de l&#039;ESP8266. Il ne dispose que de 2 GPIO. Le module a une mémoire flash plus petite (de 512 Ko à 1 Mo). La programmation est identique mais «plus pénible» car il faut mettre le module dans un mode particulier avant de pouvoir télécharger le programme (mode Bootload). Ce n&#039;est pas un module approprié pour apprendre et démarrer avec l&#039;ESP8266. Cependant, si vous avez besoin de plus d&#039;informations, vous pouvez trouver plusieurs tutoriels sur le blog en recherchant avec le mot-clé ESP-01.\nDifférences entre Arduino et ESP8266, identification des broches\nL&#039;ESP8266 possède 9 E / S numériques au lieu de 14 pour l&#039;Arduino Uno. Alors que sur l&#039;Arduino Uno, il n&#039;y a que 6 sorties qui prennent en charge le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l&#039;ESP8266 peuvent générer un signal PWM. Si vous avez besoin de plus d&#039;E / S, vous pouvez passer à ESP32.\nEn résumé</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Arduino / Genuino 101\nESP8266 (ESP-12x)","html":"<p>Arduino / Genuino 101\nESP8266 (ESP-12x)</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Micro-contrôleur\nArduio Uno et la plupart des cartes compatible: ATmel ATmega328p\nLe nouveau Genuino 101: Intel Curie","html":"<p>Micro-contrôleur\nArduio Uno et la plupart des cartes compatible: ATmel ATmega328p\nLe nouveau Genuino 101: Intel Curie</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"Tensilica Xtensa LX106","html":"<p>Tensilica Xtensa LX106</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"Sans fil\n&#8211;","html":"<p>Sans fil\n&#8211;</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"Bluetooth\nLE\n&#8211;","html":"<p>Bluetooth\nLE\n&#8211;</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"Adressage\n8… 32 bits\n32bits","html":"<p>Adressage\n8… 32 bits\n32bits</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"Fréquence d&#39;horloge\n16 MHz\n80 MHz","html":"<p>Fréquence d&#039;horloge\n16 MHz\n80 MHz</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"Mémoire flash\n32kb\n512… 4 Mo (1)","html":"<p>Mémoire flash\n32kb\n512… 4 Mo (1)</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"Nombre d&#39;E / S\nx14\nx11 (D0… D8 + RX / TX)","html":"<p>Nombre d&#039;E / S\nx14\nx11 (D0… D8 + RX / TX)</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"Nombre de sorties PWM\nArduino Uno et clones: x6 (3, 5, 6, 9, 10, 11)\nArduino 101: x4","html":"<p>Nombre de sorties PWM\nArduino Uno et clones: x6 (3, 5, 6, 9, 10, 11)\nArduino 101: x4</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"Toutes les sorties sont PWM","html":"<p>Toutes les sorties sont PWM</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"Nombre d&#39;entrées analogiques\nx6 (A0..A5), 10 bits, 5 V max.\nx1 (A0), 10 bits, 1 V max. (2)","html":"<p>Nombre d&#039;entrées analogiques\nx6 (A0..A5), 10 bits, 5 V max.\nx1 (A0), 10 bits, 1 V max. (2)</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"UART (port série)\nx1\nx1 (3)","html":"<p>UART (port série)\nx1\nx1 (3)</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"I2C\nx1\nx1","html":"<p>I2C\nx1\nx1</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"SPI\nx1\nx1","html":"<p>SPI\nx1\nx1</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"Documentation technique\nArduino Uno R3\nGenuino 101","html":"<p>Documentation technique\nArduino Uno R3\nGenuino 101</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"version 5.4","html":"<p>version 5.4</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"L&#39;identification des broches est légèrement différente sur l&#39;ESP8266. Chaque sortie est précédée d&#39;un ré (pour rénumérique probablement). Dans un programme Arduino, vous pouvez directement utiliser le marqueur indiqué sur la carte D1 ou l&#39;équivalent Arduino 5.\n(1) Mémoire externe. Aujourd&#39;hui, presque tous les modèles ont 4 Mo de mémoire flash. Cependant, tout n&#39;est pas utilisable. Une partie est réservée au stockage des données (stockage des données utilisateur, interface HTML et code d&#39;interface javascript, etc.). Il s&#39;agit de la zone SPIFFS présentée dans cet article.\n(2) L&#39;ESP8266 accepte 1V maximum sur la broche analogique. Certains modules intègrent un pont diviseur de tension qui permet d&#39;augmenter la tension. Par exemple, le Wemos d1 mini accepte 3,3 V max. \n(3) Un seul port série utilisable. L&#39;autre broche TX est utilisée lors de l&#39;écriture de la mémoire flash","html":"<p>L&#039;identification des broches est légèrement différente sur l&#039;ESP8266. Chaque sortie est précédée d&#039;un ré (pour rénumérique probablement). Dans un programme Arduino, vous pouvez directement utiliser le marqueur indiqué sur la carte D1 ou l&#039;équivalent Arduino 5.\n(1) Mémoire externe. Aujourd&#039;hui, presque tous les modèles ont 4 Mo de mémoire flash. Cependant, tout n&#039;est pas utilisable. Une partie est réservée au stockage des données (stockage des données utilisateur, interface HTML et code d&#039;interface javascript, etc.). Il s&#039;agit de la zone SPIFFS présentée dans cet article.\n(2) L&#039;ESP8266 accepte 1V maximum sur la broche analogique. Certains modules intègrent un pont diviseur de tension qui permet d&#039;augmenter la tension. Par exemple, le Wemos d1 mini accepte 3,3 V max. \n(3) Un seul port série utilisable. L&#039;autre broche TX est utilisée lors de l&#039;écriture de la mémoire flash</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"Attention. Chaque fabricant est libre d&#39;attribuer les broches. C&#39;est notamment le cas pour les broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui résume les broches des principales cartes en vente","html":"<p>Attention. Chaque fabricant est libre d&#039;attribuer les broches. C&#039;est notamment le cas pour les broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui résume les broches des principales cartes en vente</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"ESP8266 broches\nRemarque\nÉquivalent Arduino / Genuino 101\nAutre usage","html":"<p>ESP8266 broches\nRemarque\nÉquivalent Arduino / Genuino 101\nAutre usage</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"TX","html":"<p>TX</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"1\nCS1, TXD0","html":"<p>1\nCS1, TXD0</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"RX","html":"<p>RX</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"3\nRXD0","html":"<p>3\nRXD0</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"D0\nPWM (1)\n16\nRÉVEILLER","html":"<p>D0\nPWM (1)\n16\nRÉVEILLER</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"D1\nPWM\n5","html":"<p>D1\nPWM\n5</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"D2\nPWM\n4","html":"<p>D2\nPWM\n4</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"D3\nPWM\n0\nCS2","html":"<p>D3\nPWM\n0\nCS2</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"D4\nPWM\n2\nTXD1","html":"<p>D4\nPWM\n2\nTXD1</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"D5\nPWM\n14\nCLK","html":"<p>D5\nPWM\n14\nCLK</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"D6\nPWM\n12\nMISO","html":"<p>D6\nPWM\n12\nMISO</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"D7\nPWM\n13\nMOSI, RXD2, CTS0","html":"<p>D7\nPWM\n13\nMOSI, RXD2, CTS0</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"D8\nPWM\n15\nCS, TXD2, RTS0","html":"<p>D8\nPWM\n15\nCS, TXD2, RTS0</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"RST","html":"<p>RST</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"RST","html":"<p>RST</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"A0\n3,3 V max.\nA0","html":"<p>A0\n3,3 V max.\nA0</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"3V3","html":"<p>3V3</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"3V","html":"<p>3V</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"5V\n800 mA max.","html":"<p>5V\n800 mA max.</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"g","html":"<p>g</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"GND (x3)","html":"<p>GND (x3)</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"(1) Connecté à la broche GND à la mise sous tension pour mettre ESP en mode bootload. Ce mode vous permet de réinstaller le firmware d&#39;origine ou de charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de cartes. Cette opération est donc inutile, le téléchargement est transparent.\nGénéralement, les fabricants publient un schéma de brochage qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d&#39;un LoLin WeMos d1 mini. Ce schéma de connexion est valable pour toutes les cartes basées sur le module ESP-12x.","html":"<p>(1) Connecté à la broche GND à la mise sous tension pour mettre ESP en mode bootload. Ce mode vous permet de réinstaller le firmware d&#039;origine ou de charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de cartes. Cette opération est donc inutile, le téléchargement est transparent.\nGénéralement, les fabricants publient un schéma de brochage qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d&#039;un LoLin WeMos d1 mini. Ce schéma de connexion est valable pour toutes les cartes basées sur le module ESP-12x.</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"Si vous souhaitez vous lancer dans la programmation Lua, le numéro de broche à utiliser dans le code est également indiqué.","html":"<p>Si vous souhaitez vous lancer dans la programmation Lua, le numéro de broche à utiliser dans le code est également indiqué.</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"Attention, le GPIO fonctionne avec une tension de 3,3V\nParticularité de l&#39;ESP8266 par rapport à l&#39;Arduino Uno (ce n&#39;est plus le cas pour le Genuino 101 et les nouvelles cartes à base d&#39;Intel Curie), le GPIO fonctionne à une tension de 3,3V. Il faudra donc dans certains cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V à 3,3V) ou inversement (3,3V à 5V).\nComment programmer l&#39;ESP8266 avec l&#39;IDE Arduino?\nÉquipement et circuit d&#39;essai\nVoici un petit montage à réaliser avec un ESP8266 et une Led qui vous permettront de tester les différents codes proposés dans ce tutoriel.","html":"<p>Attention, le GPIO fonctionne avec une tension de 3,3V\nParticularité de l&#039;ESP8266 par rapport à l&#039;Arduino Uno (ce n&#039;est plus le cas pour le Genuino 101 et les nouvelles cartes à base d&#039;Intel Curie), le GPIO fonctionne à une tension de 3,3V. Il faudra donc dans certains cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V à 3,3V) ou inversement (3,3V à 5V).\nComment programmer l&#039;ESP8266 avec l&#039;IDE Arduino?\nÉquipement et circuit d&#039;essai\nVoici un petit montage à réaliser avec un ESP8266 et une Led qui vous permettront de tester les différents codes proposés dans ce tutoriel.</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"Pour mémoire, voici un tableau récapitulatif de la tension d&#39;alimentation typique en fonction de la couleur et du diamètre de la LED.","html":"<p>Pour mémoire, voici un tableau récapitulatif de la tension d&#039;alimentation typique en fonction de la couleur et du diamètre de la LED.</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"Couleur\nLongueur d&#39;onde (nm)\nTension (V) pour diamètre 3 mm\nTension (V) pour diamètre 5 mm","html":"<p>Couleur\nLongueur d&#039;onde (nm)\nTension (V) pour diamètre 3 mm\nTension (V) pour diamètre 5 mm</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"rouge\n625-630\n  1.9-2.1\n2.1-2.2","html":"<p>rouge\n625-630\n  1.9-2.1\n2.1-2.2</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"Bleu\n460-470\n3.0-3.2\n3.2-3.4","html":"<p>Bleu\n460-470\n3.0-3.2\n3.2-3.4</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"vert\n520-525\n2.0-2.2\n2.0-2.2","html":"<p>vert\n520-525\n2.0-2.2\n2.0-2.2</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"Jaune\n585-595\n2.0-2.2\n3.0-3.2","html":"<p>Jaune\n585-595\n2.0-2.2\n3.0-3.2</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"blanc\n  460-470\n3.0-3.2\n1.9-2.1","html":"<p>blanc\n  460-470\n3.0-3.2\n1.9-2.1</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"Programmation «classique»\nLa première chose à savoir lors du démarrage avec un module ESP8266 est que vous pouvez le programmer exactement comme un Arduino. Contrairement aux microcontrôleurs ATTiny moins puissants, le SoC de l&#39;ESP8266 est capable d&#39;exécuter toutes les commandes C ++ du code Arduino. La seule condition à respecter est d&#39;utiliser la bibliothèque adaptée à ces derniers dès que vous souhaitez utiliser le WiFi (paragraphe suivant).\nOuvrez l&#39;IDE Arduino et collez ce code dans un nouveau projet avant de le télécharger.\nQue fait ce programme?","html":"<p>Programmation «classique»\nLa première chose à savoir lors du démarrage avec un module ESP8266 est que vous pouvez le programmer exactement comme un Arduino. Contrairement aux microcontrôleurs ATTiny moins puissants, le SoC de l&#039;ESP8266 est capable d&#039;exécuter toutes les commandes C ++ du code Arduino. La seule condition à respecter est d&#039;utiliser la bibliothèque adaptée à ces derniers dès que vous souhaitez utiliser le WiFi (paragraphe suivant).\nOuvrez l&#039;IDE Arduino et collez ce code dans un nouveau projet avant de le télécharger.\nQue fait ce programme?</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"Une variable entière (int) permet d&#39;indiquer sur quelle sortie la Led est connectée\nDans la boucle setup (), nous indiquons que la broche (ici 16) est une sortie (OUTPUT)\nLa boucle loop () s&#39;exécute sans fin. A chaque passage","html":"<p>Une variable entière (int) permet d&#039;indiquer sur quelle sortie la Led est connectée\nDans la boucle setup (), nous indiquons que la broche (ici 16) est une sortie (OUTPUT)\nLa boucle loop () s&#039;exécute sans fin. A chaque passage</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"On met la sortie (16) à bas niveau (LOW), c&#39;est-à-dire que la tension de sortie est nulle (pas de courant)\nNous attendons 1 seconde. Le délai est indiqué en millisecondes (1000 ms = 1 s)\nOn met la sortie (16) haute (HIGH), c&#39;est-à-dire que la tension de sortie est de 5V (le courant circule)\nNous attendons 2 secondes\nEtc","html":"<p>On met la sortie (16) à bas niveau (LOW), c&#039;est-à-dire que la tension de sortie est nulle (pas de courant)\nNous attendons 1 seconde. Le délai est indiqué en millisecondes (1000 ms = 1 s)\nOn met la sortie (16) haute (HIGH), c&#039;est-à-dire que la tension de sortie est de 5V (le courant circule)\nNous attendons 2 secondes\nEtc</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"int led = 16;","html":"<p>int led = 16;</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"void setup () \npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie","html":"<p>void setup () \npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"// Cette boucle fonctionne sans fin\n// la fonction de boucle se répète indéfiniment\nboucle vide () \ndigitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (2000); // 2 secondes de pause - Attendez 2 secondes","html":"<p>// Cette boucle fonctionne sans fin\n// la fonction de boucle se répète indéfiniment\nboucle vide () \ndigitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (2000); // 2 secondes de pause - Attendez 2 secondes</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"Remplacez maintenant dans la sortie 16 par le marquage équivalent de ESP8266, à savoir D0, qui donne int led = D0;\nComme vous pouvez le voir, le programme fonctionne de la même manière.","html":"<p>Remplacez maintenant dans la sortie 16 par le marquage équivalent de ESP8266, à savoir D0, qui donne int led = D0;\nComme vous pouvez le voir, le programme fonctionne de la même manière.</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"Remarque. Même si la variable est de type int (entier), nous écrivons une chaîne de caractères dans le code. C&#39;est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la bibliothèque ESP8266.","html":"<p>Remarque. Même si la variable est de type int (entier), nous écrivons une chaîne de caractères dans le code. C&#039;est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la bibliothèque ESP8266.</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"Programmation du serveur Web: connectez l&#39;ESP8266 au réseau WiFi\nLa programmation du serveur Web vous permet d&#39;ajouter une interface Web (écrite en HTML et javascript) à un projet ESP8266. C&#39;est également possible avec un Arduino mais c&#39;est parfaitement logique avec un ESP8266 qui a nativement une connexion WiFi.\nPrenons le code précédent et ajoutons les deux bibliothèques nécessaires\n#comprendre \n#comprendre \nNous allons créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui contiendra le serveur Web (objet C ++)\nconst char * ssid = &quot;xxxx&quot;; // Identifiant WiFi\nconst char * password = &quot;xxxxxxxxx&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\nLe code de fonction de configuration effectue les opérations suivantes","html":"<p>Programmation du serveur Web: connectez l&#039;ESP8266 au réseau WiFi\nLa programmation du serveur Web vous permet d&#039;ajouter une interface Web (écrite en HTML et javascript) à un projet ESP8266. C&#039;est également possible avec un Arduino mais c&#039;est parfaitement logique avec un ESP8266 qui a nativement une connexion WiFi.\nPrenons le code précédent et ajoutons les deux bibliothèques nécessaires\n#comprendre \n#comprendre \nNous allons créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui contiendra le serveur Web (objet C ++)\nconst char * ssid = &quot;xxxx&quot;; // Identifiant WiFi\nconst char * password = &quot;xxxxxxxxx&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\nLe code de fonction de configuration effectue les opérations suivantes</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"Serial.begin (115200)  nous ouvrons le port série à 115200 bauds\nWiFi.begin (ssid, mot de passe)  ESP8266 se connecte au réseau WiFi\nLa boucle while écrit un point sur le port série toutes les 500 ms jusqu&#39;à ce que l&#39;ESP8266 soit connecté au WiFi WiFi.status ()! = WL_CONNECTED (très mauvaise idée quand on fonctionne sur batterie ailleurs, mais c&#39;est juste pour comprendre comment ça marche)\nSerial.println (WiFi.localIP ()) écrit l&#39;adresse IP attribuée par la box Internet ou le routeur à l&#39;ESP8266 sur le port série","html":"<p>Serial.begin (115200)  nous ouvrons le port série à 115200 bauds\nWiFi.begin (ssid, mot de passe)  ESP8266 se connecte au réseau WiFi\nLa boucle while écrit un point sur le port série toutes les 500 ms jusqu&#039;à ce que l&#039;ESP8266 soit connecté au WiFi WiFi.status ()! = WL_CONNECTED (très mauvaise idée quand on fonctionne sur batterie ailleurs, mais c&#039;est juste pour comprendre comment ça marche)\nSerial.println (WiFi.localIP ()) écrit l&#039;adresse IP attribuée par la box Internet ou le routeur à l&#039;ESP8266 sur le port série</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"server.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;); // Ajouter un point d&#39;entrée, une page web\n);\nNous ajoutons un point d&#39;entrée, c&#39;est-à-dire une adresse internet (URL) sur laquelle nous afficherons pour l&#39;instant un simple texte","html":"<p>server.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;); // Ajouter un point d&#039;entrée, une page web\n);\nNous ajoutons un point d&#039;entrée, c&#039;est-à-dire une adresse internet (URL) sur laquelle nous afficherons pour l&#039;instant un simple texte</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"server.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\nUne deuxième page qui pourrait être une page de paramètres","html":"<p>server.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\nUne deuxième page qui pourrait être une page de paramètres</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"server.begin () enfin, on démarre le serveur web","html":"<p>server.begin () enfin, on démarre le serveur web</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"Il ne reste plus qu&#39;à demander à l&#39;ESP8266 d&#39;écouter les requêtes et d&#39;afficher les pages correspondantes. À cela, nous ajoutons la commande server.handleClient () dans la fonction loop ().\nCollez le code complet dans un nouveau projet et téléchargez-le sur WeMos.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80","html":"<p>Il ne reste plus qu&#039;à demander à l&#039;ESP8266 d&#039;écouter les requêtes et d&#039;afficher les pages correspondantes. À cela, nous ajoutons la commande server.handleClient () dans la fonction loop ().\nCollez le code complet dans un nouveau projet et téléchargez-le sur WeMos.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80</p>"},{"id":"text-77","type":"text","heading":"","plain_text":"int led = D0;","html":"<p>int led = D0;</p>"},{"id":"text-78","type":"text","heading":"","plain_text":"void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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>void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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-79","type":"text","heading":"","plain_text":"// nous affichons l&#39;adresse IP attribuée au serveur DSN\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());","html":"<p>// nous affichons l&#039;adresse IP attribuée au serveur DSN\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());</p>"},{"id":"text-80","type":"text","heading":"","plain_text":"// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;);\n);\nserver.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\n// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie","html":"<p>// on définit les points d&#039;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;);\n);\nserver.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\n// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie</p>"},{"id":"text-81","type":"text","heading":"","plain_text":"// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, la fonction handleClient traite les requêtes\nserver.handleClient ();","html":"<p>// Cette boucle s&#039;exécute sans fin - la fonction de boucle s&#039;exécute indéfiniment\nboucle vide () \n// à chaque itération, la fonction handleClient traite les requêtes\nserver.handleClient ();</p>"},{"id":"text-82","type":"text","heading":"","plain_text":"digitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (1000); // 2 secondes de pause - Attendez 2 secondes","html":"<p>digitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (1000); // 2 secondes de pause - Attendez 2 secondes</p>"},{"id":"text-83","type":"text","heading":"","plain_text":"Ouvrez le moniteur série pour récupérer l&#39;adresse IP de l&#39;ESP8266 sur le réseau local.","html":"<p>Ouvrez le moniteur série pour récupérer l&#039;adresse IP de l&#039;ESP8266 sur le réseau local.</p>"},{"id":"text-84","type":"text","heading":"","plain_text":"Ouvrez maintenant un navigateur Internet et entrez l&#39;adresse IP ou IP_ESP8266 / paramètres.","html":"<p>Ouvrez maintenant un navigateur Internet et entrez l&#039;adresse IP ou IP_ESP8266 / paramètres.</p>"},{"id":"text-85","type":"text","heading":"","plain_text":"Et voilà, en quelques lignes de code, vous venez de connecter l&#39;ESP8266 au réseau local (et à Internet en même temps). Vous pouvez accéder à une interface WEB depuis n&#39;importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box Internet ou votre routeur, vous pouvez même accéder à l&#39;interface extérieure à votre domicile avec une connexion 3G / 4G.","html":"<p>Et voilà, en quelques lignes de code, vous venez de connecter l&#039;ESP8266 au réseau local (et à Internet en même temps). Vous pouvez accéder à une interface WEB depuis n&#039;importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box Internet ou votre routeur, vous pouvez même accéder à l&#039;interface extérieure à votre domicile avec une connexion 3G / 4G.</p>"},{"id":"text-86","type":"text","heading":"","plain_text":"Attention. La connexion n&#39;est pas cryptée. Il n&#39;est pas protégé. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)","html":"<p>Attention. La connexion n&#039;est pas cryptée. Il n&#039;est pas protégé. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)</p>"},{"id":"text-87","type":"text","heading":"","plain_text":"Programmation de serveur Web: contrôlez le GPIO depuis un smartphone depuis Internet!\nNous allons maintenant voir comment ajouter des commandes pour contrôler le GPIO à partir d&#39;une interface. Il existe plusieurs méthodes pour générer le code HTML de l&#39;interface qui sera envoyé au navigateur Internet. Ici, nous allons simplement créer une chaîne qui contiendra le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce que vous devez vous rappeler :","html":"<p>Programmation de serveur Web: contrôlez le GPIO depuis un smartphone depuis Internet!\nNous allons maintenant voir comment ajouter des commandes pour contrôler le GPIO à partir d&#039;une interface. Il existe plusieurs méthodes pour générer le code HTML de l&#039;interface qui sera envoyé au navigateur Internet. Ici, nous allons simplement créer une chaîne qui contiendra le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce que vous devez vous rappeler :</p>"},{"id":"text-88","type":"text","heading":"","plain_text":"Le code HTML est construit en assemblant des chaînes\nIl est possible d&#39;intégrer un contenu variable. Voici l&#39;état de la sortie D0 contenue dans la chaîne etatD0.\nChaque changement d&#39;état est envoyé au serveur web qui s&#39;exécute sur l&#39;ESP8266 à l&#39;aide d&#39;un formulaire sous la forme d&#39;une requête HTTP de type POST.\nIci, la mise à jour est déclenchée manuellement en appuyant sur un bouton (soumettre)","html":"<p>Le code HTML est construit en assemblant des chaînes\nIl est possible d&#039;intégrer un contenu variable. Voici l&#039;état de la sortie D0 contenue dans la chaîne etatD0.\nChaque changement d&#039;état est envoyé au serveur web qui s&#039;exécute sur l&#039;ESP8266 à l&#039;aide d&#039;un formulaire sous la forme d&#039;une requête HTTP de type POST.\nIci, la mise à jour est déclenchée manuellement en appuyant sur un bouton (soumettre)</p>"},{"id":"text-89","type":"text","heading":"","plain_text":"String getPage () \nPage de chaîne = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266&quot;;\npage + = &quot;GPIO&quot;;\npage + = &quot;&quot;;\npage + = &quot;D0 (indiquer: &quot;;\npage + = stateD0;\npage + = &quot;)&quot;;\npage + = &quot;NOUS&quot;;\npage + = &quot;DE&quot;;\npage + = &quot;&quot;;\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;","html":"<p>String getPage () \nPage de chaîne = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266&quot;;\npage + = &quot;GPIO&quot;;\npage + = &quot;&quot;;\npage + = &quot;D0 (indiquer: &quot;;\npage + = stateD0;\npage + = &quot;)&quot;;\npage + = &quot;NOUS&quot;;\npage + = &quot;DE&quot;;\npage + = &quot;&quot;;\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;</p>"},{"id":"text-90","type":"text","heading":"","plain_text":"Maintenant, nous modifions dans la configuration le point d&#39;entrée vers la page d&#39;accueil. Nous connectons le point d&#39;entrée «/» à la fonction handleRoot.\nserver.on (&quot;/&quot;, handleRoot);\nLorsque la page principale («/») s&#39;affiche ou que le serveur Web reçoit une demande POST (mise à jour GPIO), la fonction handleRoot est appelée. La fonction server.hasArg est utilisée pour connecter des actions. Ici, si la requête contient l&#39;argument (hasArg), alors nous devons changer l&#39;état du GPIO. Nous exécutons la fonction handleSubmit, sinon nous actualisons la page.\nvoid handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());","html":"<p>Maintenant, nous modifions dans la configuration le point d&#039;entrée vers la page d&#039;accueil. Nous connectons le point d&#039;entrée «/» à la fonction handleRoot.\nserver.on (&quot;/&quot;, handleRoot);\nLorsque la page principale («/») s&#039;affiche ou que le serveur Web reçoit une demande POST (mise à jour GPIO), la fonction handleRoot est appelée. La fonction server.hasArg est utilisée pour connecter des actions. Ici, si la requête contient l&#039;argument (hasArg), alors nous devons changer l&#039;état du GPIO. Nous exécutons la fonction handleSubmit, sinon nous actualisons la page.\nvoid handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());</p>"},{"id":"text-91","type":"text","heading":"","plain_text":"La fonction handleSubmit récupère la valeur de l&#39;argument &quot;D0&quot; avec la fonction server.arg, puis il suffit de tester sa valeur pour effectuer le traitement correct. Veuillez noter qu&#39;il s&#39;agit d&#39;une chaîne de caractères. Il faut donc tester comme ça == &quot;1&quot; et non == 1. Nous en profitons pour stocker l&#39;état de la sortie dans la variable etatD0.\nvoid handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);","html":"<p>La fonction handleSubmit récupère la valeur de l&#039;argument &quot;D0&quot; avec la fonction server.arg, puis il suffit de tester sa valeur pour effectuer le traitement correct. Veuillez noter qu&#039;il s&#039;agit d&#039;une chaîne de caractères. Il faut donc tester comme ça == &quot;1&quot; et non == 1. Nous en profitons pour stocker l&#039;état de la sortie dans la variable etatD0.\nvoid handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);</p>"},{"id":"text-92","type":"text","heading":"","plain_text":"Collez le code complet suivant en modifiant l&#39;identifiant WiFi et le mot de passe.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80","html":"<p>Collez le code complet suivant en modifiant l&#039;identifiant WiFi et le mot de passe.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80</p>"},{"id":"text-93","type":"text","heading":"","plain_text":"int led = D0;\nString etatD0 = &quot;Off&quot;;","html":"<p>int led = D0;\nString etatD0 = &quot;Off&quot;;</p>"},{"id":"text-94","type":"text","heading":"","plain_text":"String getPage () \nPage de chaîne = &quot;&quot;; // Il s&#39;agit du code HTML, la page s&#39;actualise automatiquement\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;; // Titre de la barre du navigateur\npage + = &quot;&quot;; // style de page\npage + = &quot;Démonstration du serveur Web ESP8266&quot;; // Titre de la page (H1)\npage + = &quot;GPIO&quot;; // Sous-titre (H3)\npage + = &quot;&quot;; // Le formulaire sera envoyé avec une requête POST\npage + = &quot;D0 (état: &quot;; // Première ligne de la liste (ul) avec D0\npage + = stateD0; // on concatène la chaîne contenant l&#39;état de la sortie\npage + = &quot;)&quot;;\npage + = &quot;ON &quot;; // Bouton pour activer D0\npage + = &quot;DE&quot;; // et désactivez-le\npage + = &quot;&quot;; // Bouton Actualiser\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;","html":"<p>String getPage () \nPage de chaîne = &quot;&quot;; // Il s&#039;agit du code HTML, la page s&#039;actualise automatiquement\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;; // Titre de la barre du navigateur\npage + = &quot;&quot;; // style de page\npage + = &quot;Démonstration du serveur Web ESP8266&quot;; // Titre de la page (H1)\npage + = &quot;GPIO&quot;; // Sous-titre (H3)\npage + = &quot;&quot;; // Le formulaire sera envoyé avec une requête POST\npage + = &quot;D0 (état: &quot;; // Première ligne de la liste (ul) avec D0\npage + = stateD0; // on concatène la chaîne contenant l&#039;état de la sortie\npage + = &quot;)&quot;;\npage + = &quot;ON &quot;; // Bouton pour activer D0\npage + = &quot;DE&quot;; // et désactivez-le\npage + = &quot;&quot;; // Bouton Actualiser\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;</p>"},{"id":"text-95","type":"text","heading":"","plain_text":"void handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());","html":"<p>void handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());</p>"},{"id":"text-96","type":"text","heading":"","plain_text":"void handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);","html":"<p>void handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);</p>"},{"id":"text-97","type":"text","heading":"","plain_text":"void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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>void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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-98","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-99","type":"text","heading":"","plain_text":"// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, handleRoot);","html":"<p>// on définit les points d&#039;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, handleRoot);</p>"},{"id":"text-100","type":"text","heading":"","plain_text":"// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie","html":"<p>// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie</p>"},{"id":"text-101","type":"text","heading":"","plain_text":"// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();","html":"<p>// Cette boucle s&#039;exécute sans fin - la fonction de boucle s&#039;exécute indéfiniment\nboucle vide () \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();</p>"},{"id":"text-102","type":"text","heading":"","plain_text":"Voici l&#39;interface obtenue","html":"<p>Voici l&#039;interface obtenue</p>"},{"id":"text-103","type":"text","heading":"","plain_text":"Maintenant que c&#39;est plus clair, vous pouvez aller un peu plus loin dans les détails de la programmation du serveur Web ESP8266 en lisant cet article. Vous pouvez réaliser ce type d&#39;interface en suivant ce projet de station météo en 5 étapes.","html":"<p>Maintenant que c&#039;est plus clair, vous pouvez aller un peu plus loin dans les détails de la programmation du serveur Web ESP8266 en lisant cet article. Vous pouvez réaliser ce type d&#039;interface en suivant ce projet de station météo en 5 étapes.</p>"},{"id":"text-104","type":"text","heading":"","plain_text":"Tous les didacticiels de programmation du serveur Web ESP8266\nServeur Web (Interface)\nProgrammation client Web:\nLa programmation Web client permet à un module ESP8266 de communiquer avec un autre serveur, un autre ESP8266, une application mobile, etc. Voici quelques exemples d&#39;application:","html":"<p>Tous les didacticiels de programmation du serveur Web ESP8266\nServeur Web (Interface)\nProgrammation client Web:\nLa programmation Web client permet à un module ESP8266 de communiquer avec un autre serveur, un autre ESP8266, une application mobile, etc. Voici quelques exemples d&#039;application:</p>"},{"id":"text-105","type":"text","heading":"","plain_text":"Transmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit, etc.)\nÉtats de transmission (détecteur d&#39;ouverture de porte ou de fenêtre, contacteur, etc.)","html":"<p>Transmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit, etc.)\nÉtats de transmission (détecteur d&#039;ouverture de porte ou de fenêtre, contacteur, etc.)</p>"},{"id":"text-106","type":"text","heading":"","plain_text":"Voici plusieurs articles sur le sujet avec des exemples d&#39;applications pour communiquer ESP8266 avec Jeedom ou Domoticz (affichage à distance)\nClient Web (communication)\nFoire aux questions (FAQ)\nSur quelles plateformes l&#39;IDE Arduino est-il disponible?\nL&#39;IDE Arduino est disponible sur tous les systèmes d&#39;exploitation (Windows, macOS, Linux, Linux ARM). Quel que soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l&#39;IDE Arduino. Accédez au site des fonctions Arduino pour récupérer la version qui convient à votre ordinateur ou mini-PC. Il existe également une version en ligne si vous ne souhaitez rien installer sur votre ordinateur.\nPouvez-vous programmer un ESP8266 sur un Mac?\nOui, l&#39;IDE Arduino est également disponible sur macOS. Comme le SDK expressif est écrit en python, il est possible de programmer des modules ESP8266 comme sur un PC Windows.\nPeut-on programmer l&#39;ESP8266 depuis Linux ARM (Raspberry Pi par exemple)?\nOui, si vous avez un Raspberry Pi ou un mini-PC équivalent exécutant Linux ARM (un Orange Pi par exemple), il est tout à fait possible d&#39;utiliser l&#39;IDE Arduino.\nJe ne sais rien de la programmation, essayez le projet ESP Easy!\nSi vous débutez avec les microcontrôleurs et que tout ce que vous avez lu précédemment vous fait un peu peur, pas de problème. Le projet ESP Easy est fait pour vous! ESP Easy est une interface qui permet le développement de sondes ou d&#39;actionneurs par simple configuration. L&#39;interface est en anglais mais tout est expliqué dans ces tutoriels en français.\nQuel modèle ESP8266 ou ESP32 choisir pour commencer?\nSi votre projet nécessite une connectivité WiFi ou Bluetooth, l&#39;ESP8266 (guide complet) est un module compatible avec le code Arduino. L&#39;ESP32 est une version améliorée qui a plus d&#39;entrées / sorties (GPIO), plus de puissance et consomme encore moins.\nQuelques tutoriels et projets basés sur ESP8266","html":"<p>Voici plusieurs articles sur le sujet avec des exemples d&#039;applications pour communiquer ESP8266 avec Jeedom ou Domoticz (affichage à distance)\nClient Web (communication)\nFoire aux questions (FAQ)\nSur quelles plateformes l&#039;IDE Arduino est-il disponible?\nL&#039;IDE Arduino est disponible sur tous les systèmes d&#039;exploitation (Windows, macOS, Linux, Linux ARM). Quel que soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l&#039;IDE Arduino. Accédez au site des fonctions Arduino pour récupérer la version qui convient à votre ordinateur ou mini-PC. Il existe également une version en ligne si vous ne souhaitez rien installer sur votre ordinateur.\nPouvez-vous programmer un ESP8266 sur un Mac?\nOui, l&#039;IDE Arduino est également disponible sur macOS. Comme le SDK expressif est écrit en python, il est possible de programmer des modules ESP8266 comme sur un PC Windows.\nPeut-on programmer l&#039;ESP8266 depuis Linux ARM (Raspberry Pi par exemple)?\nOui, si vous avez un Raspberry Pi ou un mini-PC équivalent exécutant Linux ARM (un Orange Pi par exemple), il est tout à fait possible d&#039;utiliser l&#039;IDE Arduino.\nJe ne sais rien de la programmation, essayez le projet ESP Easy!\nSi vous débutez avec les microcontrôleurs et que tout ce que vous avez lu précédemment vous fait un peu peur, pas de problème. Le projet ESP Easy est fait pour vous! ESP Easy est une interface qui permet le développement de sondes ou d&#039;actionneurs par simple configuration. L&#039;interface est en anglais mais tout est expliqué dans ces tutoriels en français.\nQuel modèle ESP8266 ou ESP32 choisir pour commencer?\nSi votre projet nécessite une connectivité WiFi ou Bluetooth, l&#039;ESP8266 (guide complet) est un module compatible avec le code Arduino. L&#039;ESP32 est une version améliorée qui a plus d&#039;entrées / sorties (GPIO), plus de puissance et consomme encore moins.\nQuelques tutoriels et projets basés sur ESP8266</p>"},{"id":"text-107","type":"text","heading":"","plain_text":"Commencez avec des objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits  \n# Test IAQ CCS811, capteur de qualité de l&#39;air TVOC, bus eCO2 i2C (Arduino, ESP8266)  \nBibliothèque Arduino Telegram Bot universelle compatible avec les mises à niveau Arduino, ESP32 et ESP8266 vers la version 1.1.0  \nInstallez facilement ESP Easy R120 ou Mega v2 avec PlatformIO sur ESP8266 [MàJ]  \nDéballage du clone Wemos ESP32 LoLin avec écran OLED monochrome SSD1306 de 0,96 pouces  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)  \nDéballage du Wemos D1 R2, du clone ESPDuino, de la carte de développement ESP8266 au format Arduino Uno  \nProjet MicroPython ESP32, lire la température sur plusieurs sondes DS18B20 et publier les mesures sur Domoticz  \nDéballage du blindage Geekcreit PCA9685 I2C 16 servos + 2 moteurs pour Arduino ou ESPDuino (ESP8266)  \nAffichage OLED SSD1306 en MicroPython, exemple avec un baromètre numérique BME280 I2C","html":"<p>Commencez avec des objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits  \n# Test IAQ CCS811, capteur de qualité de l&#039;air TVOC, bus eCO2 i2C (Arduino, ESP8266)  \nBibliothèque Arduino Telegram Bot universelle compatible avec les mises à niveau Arduino, ESP32 et ESP8266 vers la version 1.1.0  \nInstallez facilement ESP Easy R120 ou Mega v2 avec PlatformIO sur ESP8266 [MàJ]  \nDéballage du clone Wemos ESP32 LoLin avec écran OLED monochrome SSD1306 de 0,96 pouces  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)  \nDéballage du Wemos D1 R2, du clone ESPDuino, de la carte de développement ESP8266 au format Arduino Uno  \nProjet MicroPython ESP32, lire la température sur plusieurs sondes DS18B20 et publier les mesures sur Domoticz  \nDéballage du blindage Geekcreit PCA9685 I2C 16 servos + 2 moteurs pour Arduino ou ESPDuino (ESP8266)  \nAffichage OLED SSD1306 en MicroPython, exemple avec un baromètre numérique BME280 I2C</p>"},{"id":"text-108","type":"text","heading":"","plain_text":"Tous les projets ESP8266\nQuelques tutoriels et projets basés sur ESP32","html":"<p>Tous les projets ESP8266\nQuelques tutoriels et projets basés sur ESP32</p>"},{"id":"text-109","type":"text","heading":"","plain_text":"Nouvelle carte de développement expressive ESP32-Vaquita-DSPG pour l&#39;interface utilisateur vocale  \nESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED  \nProgrammation des cartes ESP32 avec l&#39;IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Cadre ESP-IDF  \nQuel ESP32 choisir pour développer des objets connectés DIY en 2020  \nWemos LoLin D32 Pro ESP32 avec support d&#39;écran TFT, connecteur et chargeur de batterie LiPo et lecteur de carte SD  \n#Guider. Concevoir, fabriquer et assembler des circuits et des PCB pour des projets de bricolage basés sur ESP32 ou ESP8266  \nMH-Z19, mesure la concentration de CO2. Test avec Domoticz, code Arduino compatible avec ESP32 / ESP8266  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)","html":"<p>Nouvelle carte de développement expressive ESP32-Vaquita-DSPG pour l&#039;interface utilisateur vocale  \nESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED  \nProgrammation des cartes ESP32 avec l&#039;IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Cadre ESP-IDF  \nQuel ESP32 choisir pour développer des objets connectés DIY en 2020  \nWemos LoLin D32 Pro ESP32 avec support d&#039;écran TFT, connecteur et chargeur de batterie LiPo et lecteur de carte SD  \n#Guider. Concevoir, fabriquer et assembler des circuits et des PCB pour des projets de bricolage basés sur ESP32 ou ESP8266  \nMH-Z19, mesure la concentration de CO2. Test avec Domoticz, code Arduino compatible avec ESP32 / ESP8266  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)</p>"},{"id":"text-110","type":"text","heading":"","plain_text":"Tous les projets ESP32\nPeut-on utiliser des cartes NodeMCU ou micropython?\nAbsolument oui. Ce sont d&#39;autres firmwares. NodeMCU vous permet d&#39;exécuter du code Lua. Dès le premier téléchargement, le firmware sera remplacé par le code Arduino. Vous pouvez réinstaller le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython plus tard.\nTutoriels et projets MicroPython\nTous les projets Micro Pyton\nQuelques livres pour débuter en C / C ++\nLa programmation Arduino utilise des concepts de programmation d&#39;objets C / C ++. Il existe de très bons livres d&#39;introduction ainsi que des tutoriels sur le Web pour aller plus loin que les concepts abordés ici","html":"<p>Tous les projets ESP32\nPeut-on utiliser des cartes NodeMCU ou micropython?\nAbsolument oui. Ce sont d&#039;autres firmwares. NodeMCU vous permet d&#039;exécuter du code Lua. Dès le premier téléchargement, le firmware sera remplacé par le code Arduino. Vous pouvez réinstaller le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython plus tard.\nTutoriels et projets MicroPython\nTous les projets Micro Pyton\nQuelques livres pour débuter en C / C ++\nLa programmation Arduino utilise des concepts de programmation d&#039;objets C / C ++. Il existe de très bons livres d&#039;introduction ainsi que des tutoriels sur le Web pour aller plus loin que les concepts abordés ici</p>"},{"id":"text-111","type":"text","heading":"","plain_text":"6,99 €\n15,99€\n                                en stock                            \n                                1 nouveau\nà partir de 6,99 €                                                            \n                                Enregistré le 18 novembre 2019 12 h 03 min","html":"<p>6,99 €\n15,99€\n                                en stock                            \n                                1 nouveau\nà partir de 6,99 €                                                            \n                                Enregistré le 18 novembre 2019 12 h 03 min</p>"},{"id":"text-112","type":"text","heading":"","plain_text":"Amazon.fr\n                        \nLivraison gratuite","html":"<p>Amazon.fr\n                        \nLivraison gratuite</p>"},{"id":"text-113","type":"text","heading":"","plain_text":"Mises à jour\n[24/04/2020]    Mise à jour de l&#39;article\n[3/06/2019]    Nouvelle URL vers le SDK ESP8266. Régression du SDK constatée depuis la version 2.5.x. Comment installer une version précédente du SDK","html":"<p>Mises à jour\n[24/04/2020]    Mise à jour de l&#039;article\n[3/06/2019]    Nouvelle URL vers le SDK ESP8266. Régression du SDK constatée depuis la version 2.5.x. Comment installer une version précédente du SDK</p>"},{"id":"text-114","type":"text","heading":"","plain_text":"As-tu aimé cet article ?\n                                        \n[Total:[Total:[Total:[Total:  Moyenne: ]","html":"<p>As-tu aimé cet article ?\n                                        \n[Total:[Total:[Total:[Total:  Moyenne: ]</p>"},{"id":"text-115","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":"RecordEnregistréEffacé 4"},{"id":"text-2","heading":"Text","content":"Les modules WiFi ESP8266 peuvent remplacer Arduino dans de nombreuses applications en ajoutant une connectivité Wi-Fi à faible coût. Lors du lancement des modules ESP8266 (en 2014), le langage de programmation préféré était Lua (vous pouvez toujours programmer dans ce langage!). Rapidement, la grande majorité des bibliothèques Arduino ont été adaptées pour fonctionner sur l&#39;ESP8266."},{"id":"text-3","heading":"Text","content":"Article mis à jour le 24 avril 2020\nAujourd&#39;hui, il est aussi simple de programmer un module ESP8266 qu&#39;un Arduino en C ++. Nous allons découvrir dans ce tutoriel comment installer les bibliothèques nécessaires sur l&#39;IDE Arduino, et découvrir à travers des exemples simples les bases de la programmation de l&#39;ESP8266.\nInstaller des cartes et des bibliothèques pour les modules ESP8266 sur l&#39;IDE Arduino\nLancez l&#39;IDE Arduino et ouvrez les préférences dans le menu Fichier. Sur macOS, allez dans le menu Arduino puis Préférences &#8230; Cliquez sur l&#39;icône indiquée par la flèche rouge sur la photo ci-dessous."},{"id":"text-4","heading":"Text","content":"Dans le champ de saisie, collez l&#39;adresse internet suivante puis validez\nhttps://arduino.esp8266.com/stable/package_esp8266com_index.json\nhttp://arduino.esp8266.com/staging/package_esp8266com_index.json"},{"id":"text-5","heading":"Text","content":"Pour les cartes ESP32, ajoutez la source suivante\nhttps://dl.espressif.com/dl/package_esp32_index.json\nCela indique à l&#39;IDE Arduino qu&#39;il doit se rendre sur le site arduino.esp8266.com afin de récupérer d&#39;autres cartes compatibles. Maintenant, allez dans le menu Outils puis Type de cartes et enfin Gestionnaire de cartes"},{"id":"text-6","heading":"Text","content":"Dans le champ de recherche, entrez esp8266 pour trouver les nouvelles cartes à installer. Si les cartes n&#39;apparaissent pas, vérifiez dans les préférences que l&#39;URL est correcte. vérifiez également la connexion Internet. Cliquer sur Installer."},{"id":"text-7","heading":"Text","content":"L&#39;installation ne prend que quelques minutes. Une fois l&#39;installation terminée, fermez le gestionnaire de cartes et ouvrez à nouveau le menu Outils. Dans le sous-menu Type de carte, vous avez maintenant une nouvelle section appelée Modules ESP8266."},{"id":"text-8","heading":"Text","content":"Les principaux fabricants qui contribuent le plus à la communauté (Adafruit, ESPresso, Olimex, Sparkfun, WeMos…) sont au menu. Pour les autres modules, choisissez simplement le module ESP8266 générique.\nPour afficher les exemples installés avec les cartes ESP826, si vous n&#39;avez qu&#39;à choisir dans la liste puis allez sur le Fichier -&gt; Exemples."},{"id":"text-9","heading":"Text","content":"Problèmes avec le bus I2C et la bibliothèque SD à partir de la version 2.5\nLa version 2.5 du SDK ESP8266 semble introduire des modifications importantes pouvant entraîner des problèmes d&#39;incompatibilité avec certains libraires. Par exemple, j&#39;ai rencontré des problèmes de compilation avec la bibliothèque SD qui permet l&#39;enregistrement et la lecture sur une carte micro SD. Un problème similaire a été signalé en 2016 sur le forum officiel. Le compilateur refuse de compiler le programme sans que la sélection de puce de la carte SD ne soit indiquée. ce paramètre est normalement facultatif. Si une sélection de puce est indiquée, la compilation et le téléchargement sont effectués correctement mais la communication avec le bus I2C est perdue.\nSi vous rencontrez un problème similaire, vous pouvez (temporairement) revenir à une version précédente du SDK.\nComment installer une version précédente du SDK ESP8266\nCependant, si vous rencontrez un problème, vous pouvez utiliser une version précédente du SDK. Pour ce faire, ouvrez le gestionnaire de cartes et recherchez la carte ESP8266. Cliquez sur Supprimer pour supprimer l&#39;intégralité du SDK."},{"id":"text-10","heading":"Text","content":"Choisissez ensuite la version souhaitée, par exemple la version 2.4.2 et cliquez sur installer. Ne cliquez pas sur la mise à jour car l&#39;IDE Arduino installe automatiquement la dernière version publiée (la plus récente)!"},{"id":"text-11","heading":"Text","content":"Avant d&#39;aller plus loin, note sur ESP-01\nL&#39;ESP-01 est une version plus limitée de l&#39;ESP8266. Il ne dispose que de 2 GPIO. Le module a une mémoire flash plus petite (de 512 Ko à 1 Mo). La programmation est identique mais «plus pénible» car il faut mettre le module dans un mode particulier avant de pouvoir télécharger le programme (mode Bootload). Ce n&#39;est pas un module approprié pour apprendre et démarrer avec l&#39;ESP8266. Cependant, si vous avez besoin de plus d&#39;informations, vous pouvez trouver plusieurs tutoriels sur le blog en recherchant avec le mot-clé ESP-01.\nDifférences entre Arduino et ESP8266, identification des broches\nL&#39;ESP8266 possède 9 E / S numériques au lieu de 14 pour l&#39;Arduino Uno. Alors que sur l&#39;Arduino Uno, il n&#39;y a que 6 sorties qui prennent en charge le mode PWM (3, 5, 6, 9, 10 et 11), toutes les sorties de l&#39;ESP8266 peuvent générer un signal PWM. Si vous avez besoin de plus d&#39;E / S, vous pouvez passer à ESP32.\nEn résumé"},{"id":"text-12","heading":"Text","content":"Arduino / Genuino 101\nESP8266 (ESP-12x)"},{"id":"text-13","heading":"Text","content":"Micro-contrôleur\nArduio Uno et la plupart des cartes compatible: ATmel ATmega328p\nLe nouveau Genuino 101: Intel Curie"},{"id":"text-14","heading":"Text","content":"Tensilica Xtensa LX106"},{"id":"text-15","heading":"Text","content":"Sans fil\n&#8211;"},{"id":"text-16","heading":"Text","content":"Bluetooth\nLE\n&#8211;"},{"id":"text-17","heading":"Text","content":"Adressage\n8… 32 bits\n32bits"},{"id":"text-18","heading":"Text","content":"Fréquence d&#39;horloge\n16 MHz\n80 MHz"},{"id":"text-19","heading":"Text","content":"Mémoire flash\n32kb\n512… 4 Mo (1)"},{"id":"text-20","heading":"Text","content":"Nombre d&#39;E / S\nx14\nx11 (D0… D8 + RX / TX)"},{"id":"text-21","heading":"Text","content":"Nombre de sorties PWM\nArduino Uno et clones: x6 (3, 5, 6, 9, 10, 11)\nArduino 101: x4"},{"id":"text-22","heading":"Text","content":"Toutes les sorties sont PWM"},{"id":"text-23","heading":"Text","content":"Nombre d&#39;entrées analogiques\nx6 (A0..A5), 10 bits, 5 V max.\nx1 (A0), 10 bits, 1 V max. (2)"},{"id":"text-24","heading":"Text","content":"UART (port série)\nx1\nx1 (3)"},{"id":"text-25","heading":"Text","content":"I2C\nx1\nx1"},{"id":"text-26","heading":"Text","content":"SPI\nx1\nx1"},{"id":"text-27","heading":"Text","content":"Documentation technique\nArduino Uno R3\nGenuino 101"},{"id":"text-28","heading":"Text","content":"version 5.4"},{"id":"text-29","heading":"Text","content":"L&#39;identification des broches est légèrement différente sur l&#39;ESP8266. Chaque sortie est précédée d&#39;un ré (pour rénumérique probablement). Dans un programme Arduino, vous pouvez directement utiliser le marqueur indiqué sur la carte D1 ou l&#39;équivalent Arduino 5.\n(1) Mémoire externe. Aujourd&#39;hui, presque tous les modèles ont 4 Mo de mémoire flash. Cependant, tout n&#39;est pas utilisable. Une partie est réservée au stockage des données (stockage des données utilisateur, interface HTML et code d&#39;interface javascript, etc.). Il s&#39;agit de la zone SPIFFS présentée dans cet article.\n(2) L&#39;ESP8266 accepte 1V maximum sur la broche analogique. Certains modules intègrent un pont diviseur de tension qui permet d&#39;augmenter la tension. Par exemple, le Wemos d1 mini accepte 3,3 V max. \n(3) Un seul port série utilisable. L&#39;autre broche TX est utilisée lors de l&#39;écriture de la mémoire flash"},{"id":"text-30","heading":"Text","content":"Attention. Chaque fabricant est libre d&#39;attribuer les broches. C&#39;est notamment le cas pour les broches des bus I2C et SPI. Il faudra vérifier la documentation technique de la carte. Vous pouvez également consulter cet article qui résume les broches des principales cartes en vente"},{"id":"text-31","heading":"Text","content":"ESP8266 broches\nRemarque\nÉquivalent Arduino / Genuino 101\nAutre usage"},{"id":"text-32","heading":"Text","content":"TX"},{"id":"text-33","heading":"Text","content":"1\nCS1, TXD0"},{"id":"text-34","heading":"Text","content":"RX"},{"id":"text-35","heading":"Text","content":"3\nRXD0"},{"id":"text-36","heading":"Text","content":"D0\nPWM (1)\n16\nRÉVEILLER"},{"id":"text-37","heading":"Text","content":"D1\nPWM\n5"},{"id":"text-38","heading":"Text","content":"D2\nPWM\n4"},{"id":"text-39","heading":"Text","content":"D3\nPWM\n0\nCS2"},{"id":"text-40","heading":"Text","content":"D4\nPWM\n2\nTXD1"},{"id":"text-41","heading":"Text","content":"D5\nPWM\n14\nCLK"},{"id":"text-42","heading":"Text","content":"D6\nPWM\n12\nMISO"},{"id":"text-43","heading":"Text","content":"D7\nPWM\n13\nMOSI, RXD2, CTS0"},{"id":"text-44","heading":"Text","content":"D8\nPWM\n15\nCS, TXD2, RTS0"},{"id":"text-45","heading":"Text","content":"RST"},{"id":"text-46","heading":"Text","content":"RST"},{"id":"text-47","heading":"Text","content":"A0\n3,3 V max.\nA0"},{"id":"text-48","heading":"Text","content":"3V3"},{"id":"text-49","heading":"Text","content":"3V"},{"id":"text-50","heading":"Text","content":"5V\n800 mA max."},{"id":"text-51","heading":"Text","content":"g"},{"id":"text-52","heading":"Text","content":"GND (x3)"},{"id":"text-53","heading":"Text","content":"(1) Connecté à la broche GND à la mise sous tension pour mettre ESP en mode bootload. Ce mode vous permet de réinstaller le firmware d&#39;origine ou de charger un programme Arduino. Sur certaines cartes, WeMos d1 mini par exemple, cette opération est prise en charge par le gestionnaire de cartes. Cette opération est donc inutile, le téléchargement est transparent.\nGénéralement, les fabricants publient un schéma de brochage qui indique la broche équivalente sur un Arduino Uno. Ici, par exemple, les broches d&#39;un LoLin WeMos d1 mini. Ce schéma de connexion est valable pour toutes les cartes basées sur le module ESP-12x."},{"id":"text-54","heading":"Text","content":"Si vous souhaitez vous lancer dans la programmation Lua, le numéro de broche à utiliser dans le code est également indiqué."},{"id":"text-55","heading":"Text","content":"Attention, le GPIO fonctionne avec une tension de 3,3V\nParticularité de l&#39;ESP8266 par rapport à l&#39;Arduino Uno (ce n&#39;est plus le cas pour le Genuino 101 et les nouvelles cartes à base d&#39;Intel Curie), le GPIO fonctionne à une tension de 3,3V. Il faudra donc dans certains cas adapter vos montages. Pour cela, il existe des diviseurs de tension (5V à 3,3V) ou inversement (3,3V à 5V).\nComment programmer l&#39;ESP8266 avec l&#39;IDE Arduino?\nÉquipement et circuit d&#39;essai\nVoici un petit montage à réaliser avec un ESP8266 et une Led qui vous permettront de tester les différents codes proposés dans ce tutoriel."},{"id":"text-56","heading":"Text","content":"Pour mémoire, voici un tableau récapitulatif de la tension d&#39;alimentation typique en fonction de la couleur et du diamètre de la LED."},{"id":"text-57","heading":"Text","content":"Couleur\nLongueur d&#39;onde (nm)\nTension (V) pour diamètre 3 mm\nTension (V) pour diamètre 5 mm"},{"id":"text-58","heading":"Text","content":"rouge\n625-630\n  1.9-2.1\n2.1-2.2"},{"id":"text-59","heading":"Text","content":"Bleu\n460-470\n3.0-3.2\n3.2-3.4"},{"id":"text-60","heading":"Text","content":"vert\n520-525\n2.0-2.2\n2.0-2.2"},{"id":"text-61","heading":"Text","content":"Jaune\n585-595\n2.0-2.2\n3.0-3.2"},{"id":"text-62","heading":"Text","content":"blanc\n  460-470\n3.0-3.2\n1.9-2.1"},{"id":"text-63","heading":"Text","content":"Programmation «classique»\nLa première chose à savoir lors du démarrage avec un module ESP8266 est que vous pouvez le programmer exactement comme un Arduino. Contrairement aux microcontrôleurs ATTiny moins puissants, le SoC de l&#39;ESP8266 est capable d&#39;exécuter toutes les commandes C ++ du code Arduino. La seule condition à respecter est d&#39;utiliser la bibliothèque adaptée à ces derniers dès que vous souhaitez utiliser le WiFi (paragraphe suivant).\nOuvrez l&#39;IDE Arduino et collez ce code dans un nouveau projet avant de le télécharger.\nQue fait ce programme?"},{"id":"text-64","heading":"Text","content":"Une variable entière (int) permet d&#39;indiquer sur quelle sortie la Led est connectée\nDans la boucle setup (), nous indiquons que la broche (ici 16) est une sortie (OUTPUT)\nLa boucle loop () s&#39;exécute sans fin. A chaque passage"},{"id":"text-65","heading":"Text","content":"On met la sortie (16) à bas niveau (LOW), c&#39;est-à-dire que la tension de sortie est nulle (pas de courant)\nNous attendons 1 seconde. Le délai est indiqué en millisecondes (1000 ms = 1 s)\nOn met la sortie (16) haute (HIGH), c&#39;est-à-dire que la tension de sortie est de 5V (le courant circule)\nNous attendons 2 secondes\nEtc"},{"id":"text-66","heading":"Text","content":"int led = 16;"},{"id":"text-67","heading":"Text","content":"void setup () \npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie"},{"id":"text-68","heading":"Text","content":"// Cette boucle fonctionne sans fin\n// la fonction de boucle se répète indéfiniment\nboucle vide () \ndigitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (2000); // 2 secondes de pause - Attendez 2 secondes"},{"id":"text-69","heading":"Text","content":"Remplacez maintenant dans la sortie 16 par le marquage équivalent de ESP8266, à savoir D0, qui donne int led = D0;\nComme vous pouvez le voir, le programme fonctionne de la même manière."},{"id":"text-70","heading":"Text","content":"Remarque. Même si la variable est de type int (entier), nous écrivons une chaîne de caractères dans le code. C&#39;est normal. Au moment de la compilation, la référence à la broche sera remplacée dans le code par la bibliothèque ESP8266."},{"id":"text-71","heading":"Text","content":"Programmation du serveur Web: connectez l&#39;ESP8266 au réseau WiFi\nLa programmation du serveur Web vous permet d&#39;ajouter une interface Web (écrite en HTML et javascript) à un projet ESP8266. C&#39;est également possible avec un Arduino mais c&#39;est parfaitement logique avec un ESP8266 qui a nativement une connexion WiFi.\nPrenons le code précédent et ajoutons les deux bibliothèques nécessaires\n#comprendre \n#comprendre \nNous allons créer deux variables pour définir le SSID (identifiant du réseau WiFi) et le mot de passe avant de créer un objet qui contiendra le serveur Web (objet C ++)\nconst char * ssid = &quot;xxxx&quot;; // Identifiant WiFi\nconst char * password = &quot;xxxxxxxxx&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80\nLe code de fonction de configuration effectue les opérations suivantes"},{"id":"text-72","heading":"Text","content":"Serial.begin (115200)  nous ouvrons le port série à 115200 bauds\nWiFi.begin (ssid, mot de passe)  ESP8266 se connecte au réseau WiFi\nLa boucle while écrit un point sur le port série toutes les 500 ms jusqu&#39;à ce que l&#39;ESP8266 soit connecté au WiFi WiFi.status ()! = WL_CONNECTED (très mauvaise idée quand on fonctionne sur batterie ailleurs, mais c&#39;est juste pour comprendre comment ça marche)\nSerial.println (WiFi.localIP ()) écrit l&#39;adresse IP attribuée par la box Internet ou le routeur à l&#39;ESP8266 sur le port série"},{"id":"text-73","heading":"Text","content":"server.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;); // Ajouter un point d&#39;entrée, une page web\n);\nNous ajoutons un point d&#39;entrée, c&#39;est-à-dire une adresse internet (URL) sur laquelle nous afficherons pour l&#39;instant un simple texte"},{"id":"text-74","heading":"Text","content":"server.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\nUne deuxième page qui pourrait être une page de paramètres"},{"id":"text-75","heading":"Text","content":"server.begin () enfin, on démarre le serveur web"},{"id":"text-76","heading":"Text","content":"Il ne reste plus qu&#39;à demander à l&#39;ESP8266 d&#39;écouter les requêtes et d&#39;afficher les pages correspondantes. À cela, nous ajoutons la commande server.handleClient () dans la fonction loop ().\nCollez le code complet dans un nouveau projet et téléchargez-le sur WeMos.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80"},{"id":"text-77","heading":"Text","content":"int led = D0;"},{"id":"text-78","heading":"Text","content":"void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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-79","heading":"Text","content":"// nous affichons l&#39;adresse IP attribuée au serveur DSN\nSerial.println (&quot;&quot;);\nSerial.print (&quot;adresse IP:&quot;);\nSerial.println (WiFi.localIP ());"},{"id":"text-80","heading":"Text","content":"// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Home page&quot;);\n);\nserver.on (&quot;/ parameters&quot;, []() \nserver.send (200, &quot;text / plain&quot;, &quot;Une page de paramètres&quot;);\n);\n// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie"},{"id":"text-81","heading":"Text","content":"// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, la fonction handleClient traite les requêtes\nserver.handleClient ();"},{"id":"text-82","heading":"Text","content":"digitalWrite (led, LOW); // Éteignez la LED - Éteignez la LED\nretard (1000); // Attendez 1 seconde - Attendez une seconde\ndigitalWrite (led, HIGH); // Allumez la LED - Éteignez la LED en augmentant la tension\nretard (1000); // 2 secondes de pause - Attendez 2 secondes"},{"id":"text-83","heading":"Text","content":"Ouvrez le moniteur série pour récupérer l&#39;adresse IP de l&#39;ESP8266 sur le réseau local."},{"id":"text-84","heading":"Text","content":"Ouvrez maintenant un navigateur Internet et entrez l&#39;adresse IP ou IP_ESP8266 / paramètres."},{"id":"text-85","heading":"Text","content":"Et voilà, en quelques lignes de code, vous venez de connecter l&#39;ESP8266 au réseau local (et à Internet en même temps). Vous pouvez accéder à une interface WEB depuis n&#39;importe quel ordinateur ou smartphone. En faisant une redirection de port sur votre box Internet ou votre routeur, vous pouvez même accéder à l&#39;interface extérieure à votre domicile avec une connexion 3G / 4G."},{"id":"text-86","heading":"Text","content":"Attention. La connexion n&#39;est pas cryptée. Il n&#39;est pas protégé. Tout le monde peut avoir accès aux commandes de votre interface. Il faudra ajouter des protections (mot de passe…)"},{"id":"text-87","heading":"Text","content":"Programmation de serveur Web: contrôlez le GPIO depuis un smartphone depuis Internet!\nNous allons maintenant voir comment ajouter des commandes pour contrôler le GPIO à partir d&#39;une interface. Il existe plusieurs méthodes pour générer le code HTML de l&#39;interface qui sera envoyé au navigateur Internet. Ici, nous allons simplement créer une chaîne qui contiendra le code HTML. Tout est expliqué en détail dans ce tutoriel. Chaque ligne est expliquée dans le code. Ce que vous devez vous rappeler :"},{"id":"text-88","heading":"Text","content":"Le code HTML est construit en assemblant des chaînes\nIl est possible d&#39;intégrer un contenu variable. Voici l&#39;état de la sortie D0 contenue dans la chaîne etatD0.\nChaque changement d&#39;état est envoyé au serveur web qui s&#39;exécute sur l&#39;ESP8266 à l&#39;aide d&#39;un formulaire sous la forme d&#39;une requête HTTP de type POST.\nIci, la mise à jour est déclenchée manuellement en appuyant sur un bouton (soumettre)"},{"id":"text-89","heading":"Text","content":"String getPage () \nPage de chaîne = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage + = &quot;Démonstration du serveur Web ESP8266&quot;;\npage + = &quot;GPIO&quot;;\npage + = &quot;&quot;;\npage + = &quot;D0 (indiquer: &quot;;\npage + = stateD0;\npage + = &quot;)&quot;;\npage + = &quot;NOUS&quot;;\npage + = &quot;DE&quot;;\npage + = &quot;&quot;;\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;"},{"id":"text-90","heading":"Text","content":"Maintenant, nous modifions dans la configuration le point d&#39;entrée vers la page d&#39;accueil. Nous connectons le point d&#39;entrée «/» à la fonction handleRoot.\nserver.on (&quot;/&quot;, handleRoot);\nLorsque la page principale («/») s&#39;affiche ou que le serveur Web reçoit une demande POST (mise à jour GPIO), la fonction handleRoot est appelée. La fonction server.hasArg est utilisée pour connecter des actions. Ici, si la requête contient l&#39;argument (hasArg), alors nous devons changer l&#39;état du GPIO. Nous exécutons la fonction handleSubmit, sinon nous actualisons la page.\nvoid handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());"},{"id":"text-91","heading":"Text","content":"La fonction handleSubmit récupère la valeur de l&#39;argument &quot;D0&quot; avec la fonction server.arg, puis il suffit de tester sa valeur pour effectuer le traitement correct. Veuillez noter qu&#39;il s&#39;agit d&#39;une chaîne de caractères. Il faut donc tester comme ça == &quot;1&quot; et non == 1. Nous en profitons pour stocker l&#39;état de la sortie dans la variable etatD0.\nvoid handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);"},{"id":"text-92","heading":"Text","content":"Collez le code complet suivant en modifiant l&#39;identifiant WiFi et le mot de passe.\n#comprendre \n#comprendre \nconst char * ssid = &quot;XXXX&quot;; // Identifiant WiFi\nconst char * password = &quot;XXXXXXXX&quot;; // Mot de passe WiFi\nESP8266WebServer server (80); // On instancie un serveur en écoute sur le port 80"},{"id":"text-93","heading":"Text","content":"int led = D0;\nString etatD0 = &quot;Off&quot;;"},{"id":"text-94","heading":"Text","content":"String getPage () \nPage de chaîne = &quot;&quot;; // Il s&#39;agit du code HTML, la page s&#39;actualise automatiquement\npage + = &quot;Démonstration du serveur Web ESP8266 - www.projetsdiy.fr&quot;; // Titre de la barre du navigateur\npage + = &quot;&quot;; // style de page\npage + = &quot;Démonstration du serveur Web ESP8266&quot;; // Titre de la page (H1)\npage + = &quot;GPIO&quot;; // Sous-titre (H3)\npage + = &quot;&quot;; // Le formulaire sera envoyé avec une requête POST\npage + = &quot;D0 (état: &quot;; // Première ligne de la liste (ul) avec D0\npage + = stateD0; // on concatène la chaîne contenant l&#39;état de la sortie\npage + = &quot;)&quot;;\npage + = &quot;ON &quot;; // Bouton pour activer D0\npage + = &quot;DE&quot;; // et désactivez-le\npage + = &quot;&quot;; // Bouton Actualiser\npage + = &quot;www.projetsdiy.fr&quot;;\npage + = &quot;&quot;;\npage de retour;"},{"id":"text-95","heading":"Text","content":"void handleRoot () \nif (server.hasArg (&quot;D0&quot;)) \nhandleSubmit ();\n autre \nserver.send (200, &quot;text / html&quot;, getPage ());"},{"id":"text-96","heading":"Text","content":"void handleSubmit () \n// Mettre à jour le GPIO / Mettre à jour le GPIO\nString LEDValue;\nLEDValue = server.arg (&quot;D0&quot;);\nSerial.print (&quot;Définir GPIO sur&quot;); Serial.println (LEDValue);\nif (LEDValue == &quot;1&quot;) \ndigitalWrite (D0, 1);\netatD0 = &quot;On&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n else if (LEDValue == &quot;0&quot;) \ndigitalWrite (D0, 0);\netatD0 = &quot;Off&quot;;\nserver.send (200, &quot;text / html&quot;, getPage ());\n autre \nSerial.println (&quot;Err Led Value&quot;);"},{"id":"text-97","heading":"Text","content":"void setup () \nSerial.begin (115200);\nWiFi.begin (ssid, mot de passe);\nSerial.println (&quot;&quot;);\n// 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-98","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-99","heading":"Text","content":"// on définit les points d&#39;entrée (les URL à saisir dans le navigateur web) et on affiche un texte simple\nserver.on (&quot;/&quot;, handleRoot);"},{"id":"text-100","heading":"Text","content":"// on démarre le serveur web\nserver.begin ();\npinMode (led, SORTIE); // Initialiser la broche &quot;led&quot; en sortie - Initialiser la broche &quot;LED&quot; en sortie"},{"id":"text-101","heading":"Text","content":"// Cette boucle s&#39;exécute sans fin - la fonction de boucle s&#39;exécute indéfiniment\nboucle vide () \n// à chaque itération, nous appelons handleClient pour que les requêtes soient traitées\nserver.handleClient ();"},{"id":"text-102","heading":"Text","content":"Voici l&#39;interface obtenue"},{"id":"text-103","heading":"Text","content":"Maintenant que c&#39;est plus clair, vous pouvez aller un peu plus loin dans les détails de la programmation du serveur Web ESP8266 en lisant cet article. Vous pouvez réaliser ce type d&#39;interface en suivant ce projet de station météo en 5 étapes."},{"id":"text-104","heading":"Text","content":"Tous les didacticiels de programmation du serveur Web ESP8266\nServeur Web (Interface)\nProgrammation client Web:\nLa programmation Web client permet à un module ESP8266 de communiquer avec un autre serveur, un autre ESP8266, une application mobile, etc. Voici quelques exemples d&#39;application:"},{"id":"text-105","heading":"Text","content":"Transmettre des mesures (température, humidité, taux de particules, pression atmosphérique, luminosité, bruit, etc.)\nÉtats de transmission (détecteur d&#39;ouverture de porte ou de fenêtre, contacteur, etc.)"},{"id":"text-106","heading":"Text","content":"Voici plusieurs articles sur le sujet avec des exemples d&#39;applications pour communiquer ESP8266 avec Jeedom ou Domoticz (affichage à distance)\nClient Web (communication)\nFoire aux questions (FAQ)\nSur quelles plateformes l&#39;IDE Arduino est-il disponible?\nL&#39;IDE Arduino est disponible sur tous les systèmes d&#39;exploitation (Windows, macOS, Linux, Linux ARM). Quel que soit votre environnement, vous pouvez donc développer vos projets ESP8266 avec l&#39;IDE Arduino. Accédez au site des fonctions Arduino pour récupérer la version qui convient à votre ordinateur ou mini-PC. Il existe également une version en ligne si vous ne souhaitez rien installer sur votre ordinateur.\nPouvez-vous programmer un ESP8266 sur un Mac?\nOui, l&#39;IDE Arduino est également disponible sur macOS. Comme le SDK expressif est écrit en python, il est possible de programmer des modules ESP8266 comme sur un PC Windows.\nPeut-on programmer l&#39;ESP8266 depuis Linux ARM (Raspberry Pi par exemple)?\nOui, si vous avez un Raspberry Pi ou un mini-PC équivalent exécutant Linux ARM (un Orange Pi par exemple), il est tout à fait possible d&#39;utiliser l&#39;IDE Arduino.\nJe ne sais rien de la programmation, essayez le projet ESP Easy!\nSi vous débutez avec les microcontrôleurs et que tout ce que vous avez lu précédemment vous fait un peu peur, pas de problème. Le projet ESP Easy est fait pour vous! ESP Easy est une interface qui permet le développement de sondes ou d&#39;actionneurs par simple configuration. L&#39;interface est en anglais mais tout est expliqué dans ces tutoriels en français.\nQuel modèle ESP8266 ou ESP32 choisir pour commencer?\nSi votre projet nécessite une connectivité WiFi ou Bluetooth, l&#39;ESP8266 (guide complet) est un module compatible avec le code Arduino. L&#39;ESP32 est une version améliorée qui a plus d&#39;entrées / sorties (GPIO), plus de puissance et consomme encore moins.\nQuelques tutoriels et projets basés sur ESP8266"},{"id":"text-107","heading":"Text","content":"Commencez avec des objets connectés DIY (2). Communiquer, programmer, stocker, visualiser, fabriquer des circuits  \n# Test IAQ CCS811, capteur de qualité de l&#39;air TVOC, bus eCO2 i2C (Arduino, ESP8266)  \nBibliothèque Arduino Telegram Bot universelle compatible avec les mises à niveau Arduino, ESP32 et ESP8266 vers la version 1.1.0  \nInstallez facilement ESP Easy R120 ou Mega v2 avec PlatformIO sur ESP8266 [MàJ]  \nDéballage du clone Wemos ESP32 LoLin avec écran OLED monochrome SSD1306 de 0,96 pouces  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)  \nDéballage du Wemos D1 R2, du clone ESPDuino, de la carte de développement ESP8266 au format Arduino Uno  \nProjet MicroPython ESP32, lire la température sur plusieurs sondes DS18B20 et publier les mesures sur Domoticz  \nDéballage du blindage Geekcreit PCA9685 I2C 16 servos + 2 moteurs pour Arduino ou ESPDuino (ESP8266)  \nAffichage OLED SSD1306 en MicroPython, exemple avec un baromètre numérique BME280 I2C"},{"id":"text-108","heading":"Text","content":"Tous les projets ESP8266\nQuelques tutoriels et projets basés sur ESP32"},{"id":"text-109","heading":"Text","content":"Nouvelle carte de développement expressive ESP32-Vaquita-DSPG pour l&#39;interface utilisateur vocale  \nESP32-CAM, flash du firmware. Test sur Domoticz, Jeedom, Home Assistant, NextDom, Node-RED  \nProgrammation des cartes ESP32 avec l&#39;IDE Arduino sur macOS, Windows 10, Linux ARM [MàJ]. Cadre ESP-IDF  \nQuel ESP32 choisir pour développer des objets connectés DIY en 2020  \nWemos LoLin D32 Pro ESP32 avec support d&#39;écran TFT, connecteur et chargeur de batterie LiPo et lecteur de carte SD  \n#Guider. Concevoir, fabriquer et assembler des circuits et des PCB pour des projets de bricolage basés sur ESP32 ou ESP8266  \nMH-Z19, mesure la concentration de CO2. Test avec Domoticz, code Arduino compatible avec ESP32 / ESP8266  \nProjet MicroPython, publier le taux de CO2 avec un capteur MH-Z19 sur Domoticz (ESP32 / ESP8266)"},{"id":"text-110","heading":"Text","content":"Tous les projets ESP32\nPeut-on utiliser des cartes NodeMCU ou micropython?\nAbsolument oui. Ce sont d&#39;autres firmwares. NodeMCU vous permet d&#39;exécuter du code Lua. Dès le premier téléchargement, le firmware sera remplacé par le code Arduino. Vous pouvez réinstaller le firmware NodeMCU (suivez ce tutoriel pour cela) ou micropython plus tard.\nTutoriels et projets MicroPython\nTous les projets Micro Pyton\nQuelques livres pour débuter en C / C ++\nLa programmation Arduino utilise des concepts de programmation d&#39;objets C / C ++. Il existe de très bons livres d&#39;introduction ainsi que des tutoriels sur le Web pour aller plus loin que les concepts abordés ici"},{"id":"text-111","heading":"Text","content":"6,99 €\n15,99€\n                                en stock                            \n                                1 nouveau\nà partir de 6,99 €                                                            \n                                Enregistré le 18 novembre 2019 12 h 03 min"},{"id":"text-112","heading":"Text","content":"Amazon.fr\n                        \nLivraison gratuite"},{"id":"text-113","heading":"Text","content":"Mises à jour\n[24/04/2020]    Mise à jour de l&#39;article\n[3/06/2019]    Nouvelle URL vers le SDK ESP8266. Régression du SDK constatée depuis la version 2.5.x. Comment installer une version précédente du SDK"},{"id":"text-114","heading":"Text","content":"As-tu aimé cet article ?\n                                        \n[Total:[Total:[Total:[Total:  Moyenne: ]"},{"id":"text-115","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/05/Wemos_D1_mini.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2020/05/05/programmation-de-lesp8266-avec-lide-arduino-bibliotheques-gpio-serveur-web-client-web-pilotes-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/05/05/programmation-de-lesp8266-avec-lide-arduino-bibliotheques-gpio-serveur-web-client-web-pilotes-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/05/05/programmation-de-lesp8266-avec-lide-arduino-bibliotheques-gpio-serveur-web-client-web-pilotes-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}