{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/05/03/comment-faire-bricolage-domotique-avec-nodemcu-et-amazon-alexa-13-etapes-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2019/05/03/comment-faire-bricolage-domotique-avec-nodemcu-et-amazon-alexa-13-etapes-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/05/03/comment-faire-bricolage-domotique-avec-nodemcu-et-amazon-alexa-13-etapes-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":"Comment faire: Bricolage domotique avec NodeMCU et Amazon Alexa: 13 étapes\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":"2019-05-03T12:23:34+00:00","modified_at":"2019-05-03T12:23:34+00:00","word_count":1520,"reading_time_seconds":456,"summary":"Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code. S&#39;il vous plaît visitez mon GitHub pour télécharger une archive zip de tous les fichiers nécessaires. Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces [&hellip;]","summary_points":["Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code.","S&#39;il vous plaît visitez mon GitHub pour télécharger    une archive zip de tous les fichiers nécessaires.","Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces fichiers supplémentaires.","Allez donc dans mon github pour les récupérer tous."],"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":"4f229e4a104ad850c18720828f026823","plain_text":"Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code. S&#39;il vous plaît visitez mon GitHub pour télécharger    une archive zip de tous les fichiers nécessaires. Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces fichiers supplémentaires. Allez donc dans mon github pour les récupérer tous. \nJe vais partager le croquis Arduino principal que j&#39;ai utilisé afin que vous puissiez avoir une idée de la façon dont tout se lie. Je ne détaillerai pas tout le code, mais je ferai remarquer que je crée quatre rappels avec des noms uniques, quatre commutateurs portant des noms uniques et quatre entiers définissant les relais. Je définis également quatre noms d&#39;appel uniques à comprendre pour Alexa, qui sont mappés sur des ports distincts sur le serveur Web et chaque nom d&#39;appel unique comporte deux paramètres, Activé et Désactivé.  \nEnfin, j&#39;ai défini le mode pin pour chacune des quatre broches du relais en tant que sortie. Il suffit ensuite de configurer huit fonctions différentes pour chaque relais. Avec le type de carte de relais que j&#39;utilise, je dois également régler les quatre broches du relais sur HIGH dans le code de configuration. Cela est nécessaire en raison de la manière dont les bobines sont câblées à l&#39;intérieur des relais utilisés sur la carte. Un signal HIGH éteint les relais et un signal faible les allume.  \nPar exemple, lorsque Alexa entend la commande «Turn on lightOne», l&#39;ESP8266 sur le NodeMCU exécute la fonction lightOneOn. Le code qui gère l&#39;émulation FauxMo Belkin WeMo est beaucoup plus complexe et, pour être tout à fait honnête, je ne suis pas tout à fait sûr de comprendre tous les aspects de celui-ci pour l&#39;instant. Je sais que cela fonctionne et ajouter de nouveaux appareils (WeMo et Alexa prennent en charge jusqu&#39;à 14) est aussi simple que de dupliquer les éléments que j&#39;ai mentionnés ci-dessus et d&#39;attribuer un nom unique à chaque nouvel appareil. Donc, sans plus tarder, voici le croquis Arduino qui exploite la magie que vous avez vue dans la vidéo ci-dessus. Rappelez-vous que ce code est inutile sans les cinq autres fichiers que vous pouvez trouver sur mon dépôt Github pour ce projet.  \nLe code LCD et le matériel LCD sont complètement optionnels et aucun n&#39;est nécessaire pour que ce projet fonctionne. J&#39;ai inclus un écran LCD dans le projet à des fins de débogage / d&#39;aide visuelle uniquement. Si vous ne souhaitez pas utiliser d&#39;écran LCD dans votre projet, commentez simplement le code associé à l&#39;écran LCD ou supprimez-le complètement du fichier .ino. Remarque: si vous rencontrez des problèmes avec le code non compilé, assurez-vous que l&#39;ensemble complet de fichiers, six au total, est ouvert dans l&#39;EDI Arduino et que le dossier dans lequel ils sont stockés porte un nom identique à celui du fichier .ino principal. fichier. Certains utilisateurs ont rencontré des problèmes en raison du nom de dossier et du nom de fichier .ino différents.\nRemarque: Ce code ne sera pas compilé ni téléchargé sur votre appareil sans télécharger les cinq fichiers supplémentaires nécessaires au fonctionnement du code FauxMos. Téléchargez ce code depuis mon GitHub en cliquant ici. \n/ ******************************************\n   La version non modifiée de ce code est à l&#39;origine\n   par kakopappa et peut être trouvé à  http://bit.ly/2kKQiRg.\n\n   Cette version du code a été modifiée par Charles Gantt\n   et nécessite cinq fichiers supplémentaires qui peuvent être trouvés à  http://bit.ly/2kKQiRg.\n\n   En savoir plus sur ce projet sur le site de Charles\n    http://bit.ly/2kKQiRg.\n\n   Suivez Charles et TheMakersWorkbench sur les sites suivants:\n   YouTube: bit.ly/TMWB-on-YouTube\n   TMWB sur Facebook: bit.ly/TMWB-on-Facebook\n   CJGanttMakes sur Facebook: bit.ly/CJGanttMakes\n   TMWB sur Twitter: bit.ly/TMWB-on-Twitter\n   Charles Gantt sur Twitter: bit.ly/CJGanttOnTwitter\n   Instructables: bit.ly/CJGanttOnInstructables\n   Site Web de TMWB: bit.ly/TheMakersWorkbench\n   Charles Gantt sur Element14: bit.ly/CJGantt-On-E14\n   Charles Gantt sur GitHub: bit.ly/CJGantt-on-Github\n* /\n\n#comprendre \n#comprendre \n#comprendre \n#comprendre \n#include &quot;switch.h&quot;\n#include &quot;UpnpBroadcastResponder.h&quot;\n#include &quot;CallbackFunction.h&quot;\n#comprendre \n#comprendre \n\n// prototypes\nbooléen connectWifi ();\n\n// rappels on / off\nvoid lightOneOn ();\nvoid lightOneOff ();\nvoid lightTwoOn ();\nvoid lightTwoOff ();\nvide outletOneOn ();\nvoid outletOneOff ();\nvide outletTwoOn ();\nvide outletTwoOff ();\n\n// Change ceci avant de clignoter\nconst char * ssid = &quot;Skynet&quot;;\nconst char * password = &quot;8039795700&quot;;\n\nbooléen wifiConnected = false;\n\nUpnpBroadcastResponder upnpBroadcastResponder;\n\nCommutateur * lightOne = NULL;\nCommutateur * lightTwo = NULL;\nCommutateur * outletOne = NULL;\nCommutateur * outletTwo = NULL;\n\n// Définir les broches de relais\nint relayOne = 14;\nint relayTwo = 15;\nint relayThree = 03;\nint relayFour = 01;\n\n// Addr: 0x3F, 20 caractères et 4 lignes. Parfois, les tableaux d&#39;affichage utilisent l&#39;adresse 0x27\nLiquidCrystal_I2C LCD (0x3F, 4, 20); // Franchement afficher, utilisez 0x3F si ne fonctionne pas essayez 0x27\n\nvoid setup()\n\n  // Initalize LCD\n  lcd.init ();\n  lcd.noBacklight ();\n  LCD rétro-éclairage();\n  lcd.begin (20, 4);\n\n  //Serial.begin(115200);\n\n  // Initialise la connexion wifi\n  wifiConnected = connectWifi ();\n  //Serial.print(&quot;WiFi Connected &quot;);\n\n  si (wificonnecté) \n    upnpBroadcastResponder.beginUdpMulticast ();\n\n    // Afficher l&#39;état WiFi sur l&#39;écran LCD avec le SSID du réseau\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;WiFi connecté&quot;);\n    lcd.print (ssid);\n\n    // Définissez vos commutateurs ici. Max 14\n    // Format: nom de l&#39;invocation Alexa, numéro de port local, rappel, rappel\n    lightOne = nouveau commutateur (&quot;Light One&quot;, 80, lightOneOn, lightOneOff);\n    lightTwo = new Switch (&quot;Lumière deux&quot;, 81, lightTwoOn, lightTwoOff);\n    outletOne = nouveau commutateur (&quot;Outlet One&quot;, 82, outletOneOn, outletOneOff);\n    outletTwo = nouveau commutateur (&quot;Outlet Two&quot;, 83, outletTwoOn, outletTwoOff);\n\n    //Serial.println(&quot;Adding change de répondeur de diffusion upnp &quot;);\n    upnpBroadcastResponder.addDevice (* lightOne);\n    upnpBroadcastResponder.addDevice (* lightTwo);\n    upnpBroadcastResponder.addDevice (* outletOne);\n    upnpBroadcastResponder.addDevice (* outletTwo);\n\n    // Définir les broches de relais sur les sorties\n    pinMode (14, OUTPUT);\n    pinMode (15, OUTPUT);\n    pinMode (03, OUTPUT);\n    pinMode (01, OUTPUT);\n\n    // Créer un message d&#39;interrogation\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;Polling Status&quot;);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Of Smart Devices&quot;);\n    délai (2000);\n\n    // Définissez chaque broche de relais sur HIGH ce message d&#39;état d&#39;affichage pour chaque relais\n    digitalWrite (relayOne, HIGH); // active relayOne\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    digitalWrite (relayTwo, HIGH); // active relayOne\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    digitalWrite (relayThree, HIGH); // active relayOne\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    digitalWrite (relayFour, HIGH); // active relayOne\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);\n\n    // Créer un message initialisé du système\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    délai (1000);\n    lcd.print (&quot;Système initialisé&quot;);\n    délai (1000);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Prêt pour les commandes&quot;);\n    délai (2000);\n\n    // Configurer le message d&#39;état de l&#39;appareil\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);\n\n\n  \n\n\nboucle vide ()\n\n  si (wificonnecté) \n    upnpBroadcastResponder.serverLoop ();\n    lightOne-&gt; serverLoop ();\n    lightTwo-&gt; serverLoop ();\n    outletOne-&gt; serverLoop ();\n    outletTwo-&gt; serverLoop ();\n  \n\n\nvoid lightOneOn () \n  // Serial.print (&quot;Switch 1 turn on ...&quot;);\n  digitalWrite (relayOne, LOW); // active relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: On&quot;);\n\n\nvoid lightOneOff () \n  // Serial.print (&quot;Switch 1 off off ...&quot;);\n  digitalWrite (relayOne, HIGH); // désactive relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: Off&quot;);\n\n\nvoid lightTwoOn () \n  // Serial.print (&quot;Switch 2 turn on ...&quot;);\n  digitalWrite (relayThree, LOW); // active le relais deux\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: On&quot;);\n\n\nvoid lightTwoOff () \n  // Serial.print (&quot;Switch 2 off off ...&quot;);\n  digitalWrite (relayThree, HIGH); // met le relais à deux off\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: Off&quot;);\n\n\n// prises de courant\n\nvoid outletOneOn () \n  // Serial.print (&quot;Socket 1 turn on ...&quot;);\n  digitalWrite (relayFour, LOW); // active le relais trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Prise 1: On&quot;);\n\n\nvoid outletOneOff () \n  // Serial.print (&quot;Socket 1 off off ...&quot;);\n  digitalWrite (relayFour, HIGH); // désactive le relais Trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Outlet One: Off&quot;);\n\n\nvoid outletTwoOn () \n  // Serial.print (&quot;Socket 2 turn on ...&quot;);\n  digitalWrite (relayTwo, LOW); // met relayFour sur\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: On&quot;);\n\n\nvoid outletTwoOff () \n  // Serial.print (&quot;Socket 2 off off ...&quot;);\n  digitalWrite (relayTwo, HIGH); // met le relais à quatre\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: Off&quot;);\n\n\n// se connecter au wifi - retourne true en cas de succès ou false sinon\nbooléen connectWifi () \n  état booléen = vrai;\n  int i = 0;\n\n  WiFi.mode (WIFI_STA);\n  WiFi.begin (ssid, mot de passe);\n  Serial.println (&quot;&quot;);\n  Serial.println (&quot;Connexion au WiFi&quot;);\n\n  // attendre la connexion\n  // Serial.print (&quot;Connecting ...&quot;);\n  while (WiFi.status ()! = WL_CONNECTED) \n    retard (500);\n    //Serial.print (&quot;.&quot;);\n    si (i&gt; 10) \n      state = false;\n      Pause;\n    \n    i ++;\n  \n\n  si (indiquer) \n    // Serial.println (&quot;&quot;);\n    // Serial.print (&quot;Connecté à&quot;);\n    // Serial.println (ssid);\n    // Serial.print (&quot;adresse IP:&quot;);\n    // Serial.println (WiFi.localIP ());\n  \n  autre \n    // Serial.println (&quot;&quot;);\n    //Serial.println(&quot;Connection failed. &quot;);\n  \n\n  état de retour;\n\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code. S&#39;il vous plaît visitez mon GitHub pour télécharger    une archive zip de tous les fichiers nécessaires. Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces fichiers supplémentaires. Allez donc dans mon github pour les récupérer tous. \nJe vais partager le croquis Arduino principal que j&#39;ai utilisé afin que vous puissiez avoir une idée de la façon dont tout se lie. Je ne détaillerai pas tout le code, mais je ferai remarquer que je crée quatre rappels avec des noms uniques, quatre commutateurs portant des noms uniques et quatre entiers définissant les relais. Je définis également quatre noms d&#39;appel uniques à comprendre pour Alexa, qui sont mappés sur des ports distincts sur le serveur Web et chaque nom d&#39;appel unique comporte deux paramètres, Activé et Désactivé.  \nEnfin, j&#39;ai défini le mode pin pour chacune des quatre broches du relais en tant que sortie. Il suffit ensuite de configurer huit fonctions différentes pour chaque relais. Avec le type de carte de relais que j&#39;utilise, je dois également régler les quatre broches du relais sur HIGH dans le code de configuration. Cela est nécessaire en raison de la manière dont les bobines sont câblées à l&#39;intérieur des relais utilisés sur la carte. Un signal HIGH éteint les relais et un signal faible les allume.  \nPar exemple, lorsque Alexa entend la commande «Turn on lightOne», l&#39;ESP8266 sur le NodeMCU exécute la fonction lightOneOn. Le code qui gère l&#39;émulation FauxMo Belkin WeMo est beaucoup plus complexe et, pour être tout à fait honnête, je ne suis pas tout à fait sûr de comprendre tous les aspects de celui-ci pour l&#39;instant. Je sais que cela fonctionne et ajouter de nouveaux appareils (WeMo et Alexa prennent en charge jusqu&#39;à 14) est aussi simple que de dupliquer les éléments que j&#39;ai mentionnés ci-dessus et d&#39;attribuer un nom unique à chaque nouvel appareil. Donc, sans plus tarder, voici le croquis Arduino qui exploite la magie que vous avez vue dans la vidéo ci-dessus. Rappelez-vous que ce code est inutile sans les cinq autres fichiers que vous pouvez trouver sur mon dépôt Github pour ce projet.  \nLe code LCD et le matériel LCD sont complètement optionnels et aucun n&#39;est nécessaire pour que ce projet fonctionne. J&#39;ai inclus un écran LCD dans le projet à des fins de débogage / d&#39;aide visuelle uniquement. Si vous ne souhaitez pas utiliser d&#39;écran LCD dans votre projet, commentez simplement le code associé à l&#39;écran LCD ou supprimez-le complètement du fichier .ino. Remarque: si vous rencontrez des problèmes avec le code non compilé, assurez-vous que l&#39;ensemble complet de fichiers, six au total, est ouvert dans l&#39;EDI Arduino et que le dossier dans lequel ils sont stockés porte un nom identique à celui du fichier .ino principal. fichier. Certains utilisateurs ont rencontré des problèmes en raison du nom de dossier et du nom de fichier .ino différents.\nRemarque: Ce code ne sera pas compilé ni téléchargé sur votre appareil sans télécharger les cinq fichiers supplémentaires nécessaires au fonctionnement du code FauxMos. Téléchargez ce code depuis mon GitHub en cliquant ici. \n/ ******************************************\n   La version non modifiée de ce code est à l&#39;origine\n   par kakopappa et peut être trouvé à  http://bit.ly/2kKQiRg.","Cette version du code a été modifiée par Charles Gantt\n   et nécessite cinq fichiers supplémentaires qui peuvent être trouvés à  http://bit.ly/2kKQiRg.","En savoir plus sur ce projet sur le site de Charles\n    http://bit.ly/2kKQiRg.","Suivez Charles et TheMakersWorkbench sur les sites suivants:\n   YouTube: bit.ly/TMWB-on-YouTube\n   TMWB sur Facebook: bit.ly/TMWB-on-Facebook\n   CJGanttMakes sur Facebook: bit.ly/CJGanttMakes\n   TMWB sur Twitter: bit.ly/TMWB-on-Twitter\n   Charles Gantt sur Twitter: bit.ly/CJGanttOnTwitter\n   Instructables: bit.ly/CJGanttOnInstructables\n   Site Web de TMWB: bit.ly/TheMakersWorkbench\n   Charles Gantt sur Element14: bit.ly/CJGantt-On-E14\n   Charles Gantt sur GitHub: bit.ly/CJGantt-on-Github\n* /","#comprendre \n#comprendre \n#comprendre \n#comprendre \n#include &quot;switch.h&quot;\n#include &quot;UpnpBroadcastResponder.h&quot;\n#include &quot;CallbackFunction.h&quot;\n#comprendre \n#comprendre","// prototypes\nbooléen connectWifi ();","// rappels on / off\nvoid lightOneOn ();\nvoid lightOneOff ();\nvoid lightTwoOn ();\nvoid lightTwoOff ();\nvide outletOneOn ();\nvoid outletOneOff ();\nvide outletTwoOn ();\nvide outletTwoOff ();","// Change ceci avant de clignoter\nconst char * ssid = &quot;Skynet&quot;;\nconst char * password = &quot;8039795700&quot;;","booléen wifiConnected = false;","UpnpBroadcastResponder upnpBroadcastResponder;","Commutateur * lightOne = NULL;\nCommutateur * lightTwo = NULL;\nCommutateur * outletOne = NULL;\nCommutateur * outletTwo = NULL;","// Définir les broches de relais\nint relayOne = 14;\nint relayTwo = 15;\nint relayThree = 03;\nint relayFour = 01;","// Addr: 0x3F, 20 caractères et 4 lignes. Parfois, les tableaux d&#39;affichage utilisent l&#39;adresse 0x27\nLiquidCrystal_I2C LCD (0x3F, 4, 20); // Franchement afficher, utilisez 0x3F si ne fonctionne pas essayez 0x27","void setup()","  // Initalize LCD\n  lcd.init ();\n  lcd.noBacklight ();\n  LCD rétro-éclairage();\n  lcd.begin (20, 4);","  //Serial.begin(115200);","  // Initialise la connexion wifi\n  wifiConnected = connectWifi ();\n  //Serial.print(&quot;WiFi Connected &quot;);","  si (wificonnecté) \n    upnpBroadcastResponder.beginUdpMulticast ();","    // Afficher l&#39;état WiFi sur l&#39;écran LCD avec le SSID du réseau\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;WiFi connecté&quot;);\n    lcd.print (ssid);","    // Définissez vos commutateurs ici. Max 14\n    // Format: nom de l&#39;invocation Alexa, numéro de port local, rappel, rappel\n    lightOne = nouveau commutateur (&quot;Light One&quot;, 80, lightOneOn, lightOneOff);\n    lightTwo = new Switch (&quot;Lumière deux&quot;, 81, lightTwoOn, lightTwoOff);\n    outletOne = nouveau commutateur (&quot;Outlet One&quot;, 82, outletOneOn, outletOneOff);\n    outletTwo = nouveau commutateur (&quot;Outlet Two&quot;, 83, outletTwoOn, outletTwoOff);","    //Serial.println(&quot;Adding change de répondeur de diffusion upnp &quot;);\n    upnpBroadcastResponder.addDevice (* lightOne);\n    upnpBroadcastResponder.addDevice (* lightTwo);\n    upnpBroadcastResponder.addDevice (* outletOne);\n    upnpBroadcastResponder.addDevice (* outletTwo);","    // Définir les broches de relais sur les sorties\n    pinMode (14, OUTPUT);\n    pinMode (15, OUTPUT);\n    pinMode (03, OUTPUT);\n    pinMode (01, OUTPUT);","    // Créer un message d&#39;interrogation\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;Polling Status&quot;);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Of Smart Devices&quot;);\n    délai (2000);","    // Définissez chaque broche de relais sur HIGH ce message d&#39;état d&#39;affichage pour chaque relais\n    digitalWrite (relayOne, HIGH); // active relayOne\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    digitalWrite (relayTwo, HIGH); // active relayOne\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    digitalWrite (relayThree, HIGH); // active relayOne\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    digitalWrite (relayFour, HIGH); // active relayOne\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);","    // Créer un message initialisé du système\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    délai (1000);\n    lcd.print (&quot;Système initialisé&quot;);\n    délai (1000);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Prêt pour les commandes&quot;);\n    délai (2000);","    // Configurer le message d&#39;état de l&#39;appareil\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);","  ","boucle vide ()","  si (wificonnecté) \n    upnpBroadcastResponder.serverLoop ();\n    lightOne-&gt; serverLoop ();\n    lightTwo-&gt; serverLoop ();\n    outletOne-&gt; serverLoop ();\n    outletTwo-&gt; serverLoop ();\n  ","void lightOneOn () \n  // Serial.print (&quot;Switch 1 turn on ...&quot;);\n  digitalWrite (relayOne, LOW); // active relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: On&quot;);","void lightOneOff () \n  // Serial.print (&quot;Switch 1 off off ...&quot;);\n  digitalWrite (relayOne, HIGH); // désactive relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: Off&quot;);","void lightTwoOn () \n  // Serial.print (&quot;Switch 2 turn on ...&quot;);\n  digitalWrite (relayThree, LOW); // active le relais deux\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: On&quot;);","void lightTwoOff () \n  // Serial.print (&quot;Switch 2 off off ...&quot;);\n  digitalWrite (relayThree, HIGH); // met le relais à deux off\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: Off&quot;);","// prises de courant","void outletOneOn () \n  // Serial.print (&quot;Socket 1 turn on ...&quot;);\n  digitalWrite (relayFour, LOW); // active le relais trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Prise 1: On&quot;);","void outletOneOff () \n  // Serial.print (&quot;Socket 1 off off ...&quot;);\n  digitalWrite (relayFour, HIGH); // désactive le relais Trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Outlet One: Off&quot;);","void outletTwoOn () \n  // Serial.print (&quot;Socket 2 turn on ...&quot;);\n  digitalWrite (relayTwo, LOW); // met relayFour sur\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: On&quot;);","void outletTwoOff () \n  // Serial.print (&quot;Socket 2 off off ...&quot;);\n  digitalWrite (relayTwo, HIGH); // met le relais à quatre\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: Off&quot;);","// se connecter au wifi - retourne true en cas de succès ou false sinon\nbooléen connectWifi () \n  état booléen = vrai;\n  int i = 0;","  WiFi.mode (WIFI_STA);\n  WiFi.begin (ssid, mot de passe);\n  Serial.println (&quot;&quot;);\n  Serial.println (&quot;Connexion au WiFi&quot;);","  // attendre la connexion\n  // Serial.print (&quot;Connecting ...&quot;);\n  while (WiFi.status ()! = WL_CONNECTED) \n    retard (500);\n    //Serial.print (&quot;.&quot;);\n    si (i&gt; 10) \n      state = false;\n      Pause;\n    \n    i ++;\n  ","  si (indiquer) \n    // Serial.println (&quot;&quot;);\n    // Serial.print (&quot;Connecté à&quot;);\n    // Serial.println (ssid);\n    // Serial.print (&quot;adresse IP:&quot;);\n    // Serial.println (WiFi.localIP ());\n  \n  autre \n    // Serial.println (&quot;&quot;);\n    //Serial.println(&quot;Connection failed. &quot;);\n  ","  état de retour;","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code. S&#39;il vous plaît visitez mon GitHub pour télécharger    une archive zip de tous les fichiers nécessaires. Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces fichiers supplémentaires. Allez donc dans mon github pour les récupérer tous. \nJe vais partager le croquis Arduino principal que j&#39;ai utilisé afin que vous puissiez avoir une idée de la façon dont tout se lie. Je ne détaillerai pas tout le code, mais je ferai remarquer que je crée quatre rappels avec des noms uniques, quatre commutateurs portant des noms uniques et quatre entiers définissant les relais. Je définis également quatre noms d&#39;appel uniques à comprendre pour Alexa, qui sont mappés sur des ports distincts sur le serveur Web et chaque nom d&#39;appel unique comporte deux paramètres, Activé et Désactivé.  \nEnfin, j&#39;ai défini le mode pin pour chacune des quatre broches du relais en tant que sortie. Il suffit ensuite de configurer huit fonctions différentes pour chaque relais. Avec le type de carte de relais que j&#39;utilise, je dois également régler les quatre broches du relais sur HIGH dans le code de configuration. Cela est nécessaire en raison de la manière dont les bobines sont câblées à l&#39;intérieur des relais utilisés sur la carte. Un signal HIGH éteint les relais et un signal faible les allume.  \nPar exemple, lorsque Alexa entend la commande «Turn on lightOne», l&#39;ESP8266 sur le NodeMCU exécute la fonction lightOneOn. Le code qui gère l&#39;émulation FauxMo Belkin WeMo est beaucoup plus complexe et, pour être tout à fait honnête, je ne suis pas tout à fait sûr de comprendre tous les aspects de celui-ci pour l&#39;instant. Je sais que cela fonctionne et ajouter de nouveaux appareils (WeMo et Alexa prennent en charge jusqu&#39;à 14) est aussi simple que de dupliquer les éléments que j&#39;ai mentionnés ci-dessus et d&#39;attribuer un nom unique à chaque nouvel appareil. Donc, sans plus tarder, voici le croquis Arduino qui exploite la magie que vous avez vue dans la vidéo ci-dessus. Rappelez-vous que ce code est inutile sans les cinq autres fichiers que vous pouvez trouver sur mon dépôt Github pour ce projet.  \nLe code LCD et le matériel LCD sont complètement optionnels et aucun n&#39;est nécessaire pour que ce projet fonctionne. J&#39;ai inclus un écran LCD dans le projet à des fins de débogage / d&#39;aide visuelle uniquement. Si vous ne souhaitez pas utiliser d&#39;écran LCD dans votre projet, commentez simplement le code associé à l&#39;écran LCD ou supprimez-le complètement du fichier .ino. Remarque: si vous rencontrez des problèmes avec le code non compilé, assurez-vous que l&#39;ensemble complet de fichiers, six au total, est ouvert dans l&#39;EDI Arduino et que le dossier dans lequel ils sont stockés porte un nom identique à celui du fichier .ino principal. fichier. Certains utilisateurs ont rencontré des problèmes en raison du nom de dossier et du nom de fichier .ino différents.\nRemarque: Ce code ne sera pas compilé ni téléchargé sur votre appareil sans télécharger les cinq fichiers supplémentaires nécessaires au fonctionnement du code FauxMos. Téléchargez ce code depuis mon GitHub en cliquant ici. \n/ ******************************************\n   La version non modifiée de ce code est à l&#39;origine\n   par kakopappa et peut être trouvé à  http://bit.ly/2kKQiRg.","html":"<p>Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code. S&#039;il vous plaît visitez mon GitHub pour télécharger    une archive zip de tous les fichiers nécessaires. Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces fichiers supplémentaires. Allez donc dans mon github pour les récupérer tous. \nJe vais partager le croquis Arduino principal que j&#039;ai utilisé afin que vous puissiez avoir une idée de la façon dont tout se lie. Je ne détaillerai pas tout le code, mais je ferai remarquer que je crée quatre rappels avec des noms uniques, quatre commutateurs portant des noms uniques et quatre entiers définissant les relais. Je définis également quatre noms d&#039;appel uniques à comprendre pour Alexa, qui sont mappés sur des ports distincts sur le serveur Web et chaque nom d&#039;appel unique comporte deux paramètres, Activé et Désactivé.  \nEnfin, j&#039;ai défini le mode pin pour chacune des quatre broches du relais en tant que sortie. Il suffit ensuite de configurer huit fonctions différentes pour chaque relais. Avec le type de carte de relais que j&#039;utilise, je dois également régler les quatre broches du relais sur HIGH dans le code de configuration. Cela est nécessaire en raison de la manière dont les bobines sont câblées à l&#039;intérieur des relais utilisés sur la carte. Un signal HIGH éteint les relais et un signal faible les allume.  \nPar exemple, lorsque Alexa entend la commande «Turn on lightOne», l&#039;ESP8266 sur le NodeMCU exécute la fonction lightOneOn. Le code qui gère l&#039;émulation FauxMo Belkin WeMo est beaucoup plus complexe et, pour être tout à fait honnête, je ne suis pas tout à fait sûr de comprendre tous les aspects de celui-ci pour l&#039;instant. Je sais que cela fonctionne et ajouter de nouveaux appareils (WeMo et Alexa prennent en charge jusqu&#039;à 14) est aussi simple que de dupliquer les éléments que j&#039;ai mentionnés ci-dessus et d&#039;attribuer un nom unique à chaque nouvel appareil. Donc, sans plus tarder, voici le croquis Arduino qui exploite la magie que vous avez vue dans la vidéo ci-dessus. Rappelez-vous que ce code est inutile sans les cinq autres fichiers que vous pouvez trouver sur mon dépôt Github pour ce projet.  \nLe code LCD et le matériel LCD sont complètement optionnels et aucun n&#039;est nécessaire pour que ce projet fonctionne. J&#039;ai inclus un écran LCD dans le projet à des fins de débogage / d&#039;aide visuelle uniquement. Si vous ne souhaitez pas utiliser d&#039;écran LCD dans votre projet, commentez simplement le code associé à l&#039;écran LCD ou supprimez-le complètement du fichier .ino. Remarque: si vous rencontrez des problèmes avec le code non compilé, assurez-vous que l&#039;ensemble complet de fichiers, six au total, est ouvert dans l&#039;EDI Arduino et que le dossier dans lequel ils sont stockés porte un nom identique à celui du fichier .ino principal. fichier. Certains utilisateurs ont rencontré des problèmes en raison du nom de dossier et du nom de fichier .ino différents.\nRemarque: Ce code ne sera pas compilé ni téléchargé sur votre appareil sans télécharger les cinq fichiers supplémentaires nécessaires au fonctionnement du code FauxMos. Téléchargez ce code depuis mon GitHub en cliquant ici. \n/ ******************************************\n   La version non modifiée de ce code est à l&#039;origine\n   par kakopappa et peut être trouvé à  http://bit.ly/2kKQiRg.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Cette version du code a été modifiée par Charles Gantt\n   et nécessite cinq fichiers supplémentaires qui peuvent être trouvés à  http://bit.ly/2kKQiRg.","html":"<p>Cette version du code a été modifiée par Charles Gantt\n   et nécessite cinq fichiers supplémentaires qui peuvent être trouvés à  http://bit.ly/2kKQiRg.</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"En savoir plus sur ce projet sur le site de Charles\n    http://bit.ly/2kKQiRg.","html":"<p>En savoir plus sur ce projet sur le site de Charles\n    http://bit.ly/2kKQiRg.</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Suivez Charles et TheMakersWorkbench sur les sites suivants:\n   YouTube: bit.ly/TMWB-on-YouTube\n   TMWB sur Facebook: bit.ly/TMWB-on-Facebook\n   CJGanttMakes sur Facebook: bit.ly/CJGanttMakes\n   TMWB sur Twitter: bit.ly/TMWB-on-Twitter\n   Charles Gantt sur Twitter: bit.ly/CJGanttOnTwitter\n   Instructables: bit.ly/CJGanttOnInstructables\n   Site Web de TMWB: bit.ly/TheMakersWorkbench\n   Charles Gantt sur Element14: bit.ly/CJGantt-On-E14\n   Charles Gantt sur GitHub: bit.ly/CJGantt-on-Github\n* /","html":"<p>Suivez Charles et TheMakersWorkbench sur les sites suivants:\n   YouTube: bit.ly/TMWB-on-YouTube\n   TMWB sur Facebook: bit.ly/TMWB-on-Facebook\n   CJGanttMakes sur Facebook: bit.ly/CJGanttMakes\n   TMWB sur Twitter: bit.ly/TMWB-on-Twitter\n   Charles Gantt sur Twitter: bit.ly/CJGanttOnTwitter\n   Instructables: bit.ly/CJGanttOnInstructables\n   Site Web de TMWB: bit.ly/TheMakersWorkbench\n   Charles Gantt sur Element14: bit.ly/CJGantt-On-E14\n   Charles Gantt sur GitHub: bit.ly/CJGantt-on-Github\n* /</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"#comprendre \n#comprendre \n#comprendre \n#comprendre \n#include &quot;switch.h&quot;\n#include &quot;UpnpBroadcastResponder.h&quot;\n#include &quot;CallbackFunction.h&quot;\n#comprendre \n#comprendre","html":"<p>#comprendre \n#comprendre \n#comprendre \n#comprendre \n#include &quot;switch.h&quot;\n#include &quot;UpnpBroadcastResponder.h&quot;\n#include &quot;CallbackFunction.h&quot;\n#comprendre \n#comprendre</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"// prototypes\nbooléen connectWifi ();","html":"<p>// prototypes\nbooléen connectWifi ();</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"// rappels on / off\nvoid lightOneOn ();\nvoid lightOneOff ();\nvoid lightTwoOn ();\nvoid lightTwoOff ();\nvide outletOneOn ();\nvoid outletOneOff ();\nvide outletTwoOn ();\nvide outletTwoOff ();","html":"<p>// rappels on / off\nvoid lightOneOn ();\nvoid lightOneOff ();\nvoid lightTwoOn ();\nvoid lightTwoOff ();\nvide outletOneOn ();\nvoid outletOneOff ();\nvide outletTwoOn ();\nvide outletTwoOff ();</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"// Change ceci avant de clignoter\nconst char * ssid = &quot;Skynet&quot;;\nconst char * password = &quot;8039795700&quot;;","html":"<p>// Change ceci avant de clignoter\nconst char * ssid = &quot;Skynet&quot;;\nconst char * password = &quot;8039795700&quot;;</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"booléen wifiConnected = false;","html":"<p>booléen wifiConnected = false;</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"UpnpBroadcastResponder upnpBroadcastResponder;","html":"<p>UpnpBroadcastResponder upnpBroadcastResponder;</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Commutateur * lightOne = NULL;\nCommutateur * lightTwo = NULL;\nCommutateur * outletOne = NULL;\nCommutateur * outletTwo = NULL;","html":"<p>Commutateur * lightOne = NULL;\nCommutateur * lightTwo = NULL;\nCommutateur * outletOne = NULL;\nCommutateur * outletTwo = NULL;</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"// Définir les broches de relais\nint relayOne = 14;\nint relayTwo = 15;\nint relayThree = 03;\nint relayFour = 01;","html":"<p>// Définir les broches de relais\nint relayOne = 14;\nint relayTwo = 15;\nint relayThree = 03;\nint relayFour = 01;</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"// Addr: 0x3F, 20 caractères et 4 lignes. Parfois, les tableaux d&#39;affichage utilisent l&#39;adresse 0x27\nLiquidCrystal_I2C LCD (0x3F, 4, 20); // Franchement afficher, utilisez 0x3F si ne fonctionne pas essayez 0x27","html":"<p>// Addr: 0x3F, 20 caractères et 4 lignes. Parfois, les tableaux d&#039;affichage utilisent l&#039;adresse 0x27\nLiquidCrystal_I2C LCD (0x3F, 4, 20); // Franchement afficher, utilisez 0x3F si ne fonctionne pas essayez 0x27</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"void setup()","html":"<p>void setup()</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"  // Initalize LCD\n  lcd.init ();\n  lcd.noBacklight ();\n  LCD rétro-éclairage();\n  lcd.begin (20, 4);","html":"<p>  // Initalize LCD\n  lcd.init ();\n  lcd.noBacklight ();\n  LCD rétro-éclairage();\n  lcd.begin (20, 4);</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"  //Serial.begin(115200);","html":"<p>  //Serial.begin(115200);</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"  // Initialise la connexion wifi\n  wifiConnected = connectWifi ();\n  //Serial.print(&quot;WiFi Connected &quot;);","html":"<p>  // Initialise la connexion wifi\n  wifiConnected = connectWifi ();\n  //Serial.print(&quot;WiFi Connected &quot;);</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"  si (wificonnecté) \n    upnpBroadcastResponder.beginUdpMulticast ();","html":"<p>  si (wificonnecté) \n    upnpBroadcastResponder.beginUdpMulticast ();</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"    // Afficher l&#39;état WiFi sur l&#39;écran LCD avec le SSID du réseau\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;WiFi connecté&quot;);\n    lcd.print (ssid);","html":"<p>    // Afficher l&#039;état WiFi sur l&#039;écran LCD avec le SSID du réseau\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;WiFi connecté&quot;);\n    lcd.print (ssid);</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"    // Définissez vos commutateurs ici. Max 14\n    // Format: nom de l&#39;invocation Alexa, numéro de port local, rappel, rappel\n    lightOne = nouveau commutateur (&quot;Light One&quot;, 80, lightOneOn, lightOneOff);\n    lightTwo = new Switch (&quot;Lumière deux&quot;, 81, lightTwoOn, lightTwoOff);\n    outletOne = nouveau commutateur (&quot;Outlet One&quot;, 82, outletOneOn, outletOneOff);\n    outletTwo = nouveau commutateur (&quot;Outlet Two&quot;, 83, outletTwoOn, outletTwoOff);","html":"<p>    // Définissez vos commutateurs ici. Max 14\n    // Format: nom de l&#039;invocation Alexa, numéro de port local, rappel, rappel\n    lightOne = nouveau commutateur (&quot;Light One&quot;, 80, lightOneOn, lightOneOff);\n    lightTwo = new Switch (&quot;Lumière deux&quot;, 81, lightTwoOn, lightTwoOff);\n    outletOne = nouveau commutateur (&quot;Outlet One&quot;, 82, outletOneOn, outletOneOff);\n    outletTwo = nouveau commutateur (&quot;Outlet Two&quot;, 83, outletTwoOn, outletTwoOff);</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"    //Serial.println(&quot;Adding change de répondeur de diffusion upnp &quot;);\n    upnpBroadcastResponder.addDevice (* lightOne);\n    upnpBroadcastResponder.addDevice (* lightTwo);\n    upnpBroadcastResponder.addDevice (* outletOne);\n    upnpBroadcastResponder.addDevice (* outletTwo);","html":"<p>    //Serial.println(&quot;Adding change de répondeur de diffusion upnp &quot;);\n    upnpBroadcastResponder.addDevice (* lightOne);\n    upnpBroadcastResponder.addDevice (* lightTwo);\n    upnpBroadcastResponder.addDevice (* outletOne);\n    upnpBroadcastResponder.addDevice (* outletTwo);</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"    // Définir les broches de relais sur les sorties\n    pinMode (14, OUTPUT);\n    pinMode (15, OUTPUT);\n    pinMode (03, OUTPUT);\n    pinMode (01, OUTPUT);","html":"<p>    // Définir les broches de relais sur les sorties\n    pinMode (14, OUTPUT);\n    pinMode (15, OUTPUT);\n    pinMode (03, OUTPUT);\n    pinMode (01, OUTPUT);</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"    // Créer un message d&#39;interrogation\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;Polling Status&quot;);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Of Smart Devices&quot;);\n    délai (2000);","html":"<p>    // Créer un message d&#039;interrogation\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;Polling Status&quot;);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Of Smart Devices&quot;);\n    délai (2000);</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"    // Définissez chaque broche de relais sur HIGH ce message d&#39;état d&#39;affichage pour chaque relais\n    digitalWrite (relayOne, HIGH); // active relayOne\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    digitalWrite (relayTwo, HIGH); // active relayOne\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    digitalWrite (relayThree, HIGH); // active relayOne\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    digitalWrite (relayFour, HIGH); // active relayOne\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);","html":"<p>    // Définissez chaque broche de relais sur HIGH ce message d&#039;état d&#039;affichage pour chaque relais\n    digitalWrite (relayOne, HIGH); // active relayOne\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    digitalWrite (relayTwo, HIGH); // active relayOne\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    digitalWrite (relayThree, HIGH); // active relayOne\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    digitalWrite (relayFour, HIGH); // active relayOne\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"    // Créer un message initialisé du système\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    délai (1000);\n    lcd.print (&quot;Système initialisé&quot;);\n    délai (1000);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Prêt pour les commandes&quot;);\n    délai (2000);","html":"<p>    // Créer un message initialisé du système\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    délai (1000);\n    lcd.print (&quot;Système initialisé&quot;);\n    délai (1000);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Prêt pour les commandes&quot;);\n    délai (2000);</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"    // Configurer le message d&#39;état de l&#39;appareil\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);","html":"<p>    // Configurer le message d&#039;état de l&#039;appareil\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"  ","html":"<p>  </p>"},{"id":"text-28","type":"text","heading":"","plain_text":"boucle vide ()","html":"<p>boucle vide ()</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"  si (wificonnecté) \n    upnpBroadcastResponder.serverLoop ();\n    lightOne-&gt; serverLoop ();\n    lightTwo-&gt; serverLoop ();\n    outletOne-&gt; serverLoop ();\n    outletTwo-&gt; serverLoop ();\n  ","html":"<p>  si (wificonnecté) \n    upnpBroadcastResponder.serverLoop ();\n    lightOne-&gt; serverLoop ();\n    lightTwo-&gt; serverLoop ();\n    outletOne-&gt; serverLoop ();\n    outletTwo-&gt; serverLoop ();\n  </p>"},{"id":"text-30","type":"text","heading":"","plain_text":"void lightOneOn () \n  // Serial.print (&quot;Switch 1 turn on ...&quot;);\n  digitalWrite (relayOne, LOW); // active relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: On&quot;);","html":"<p>void lightOneOn () \n  // Serial.print (&quot;Switch 1 turn on ...&quot;);\n  digitalWrite (relayOne, LOW); // active relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: On&quot;);</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"void lightOneOff () \n  // Serial.print (&quot;Switch 1 off off ...&quot;);\n  digitalWrite (relayOne, HIGH); // désactive relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: Off&quot;);","html":"<p>void lightOneOff () \n  // Serial.print (&quot;Switch 1 off off ...&quot;);\n  digitalWrite (relayOne, HIGH); // désactive relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: Off&quot;);</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"void lightTwoOn () \n  // Serial.print (&quot;Switch 2 turn on ...&quot;);\n  digitalWrite (relayThree, LOW); // active le relais deux\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: On&quot;);","html":"<p>void lightTwoOn () \n  // Serial.print (&quot;Switch 2 turn on ...&quot;);\n  digitalWrite (relayThree, LOW); // active le relais deux\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: On&quot;);</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"void lightTwoOff () \n  // Serial.print (&quot;Switch 2 off off ...&quot;);\n  digitalWrite (relayThree, HIGH); // met le relais à deux off\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: Off&quot;);","html":"<p>void lightTwoOff () \n  // Serial.print (&quot;Switch 2 off off ...&quot;);\n  digitalWrite (relayThree, HIGH); // met le relais à deux off\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: Off&quot;);</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"// prises de courant","html":"<p>// prises de courant</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"void outletOneOn () \n  // Serial.print (&quot;Socket 1 turn on ...&quot;);\n  digitalWrite (relayFour, LOW); // active le relais trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Prise 1: On&quot;);","html":"<p>void outletOneOn () \n  // Serial.print (&quot;Socket 1 turn on ...&quot;);\n  digitalWrite (relayFour, LOW); // active le relais trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Prise 1: On&quot;);</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"void outletOneOff () \n  // Serial.print (&quot;Socket 1 off off ...&quot;);\n  digitalWrite (relayFour, HIGH); // désactive le relais Trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Outlet One: Off&quot;);","html":"<p>void outletOneOff () \n  // Serial.print (&quot;Socket 1 off off ...&quot;);\n  digitalWrite (relayFour, HIGH); // désactive le relais Trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Outlet One: Off&quot;);</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"void outletTwoOn () \n  // Serial.print (&quot;Socket 2 turn on ...&quot;);\n  digitalWrite (relayTwo, LOW); // met relayFour sur\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: On&quot;);","html":"<p>void outletTwoOn () \n  // Serial.print (&quot;Socket 2 turn on ...&quot;);\n  digitalWrite (relayTwo, LOW); // met relayFour sur\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: On&quot;);</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"void outletTwoOff () \n  // Serial.print (&quot;Socket 2 off off ...&quot;);\n  digitalWrite (relayTwo, HIGH); // met le relais à quatre\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: Off&quot;);","html":"<p>void outletTwoOff () \n  // Serial.print (&quot;Socket 2 off off ...&quot;);\n  digitalWrite (relayTwo, HIGH); // met le relais à quatre\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: Off&quot;);</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"// se connecter au wifi - retourne true en cas de succès ou false sinon\nbooléen connectWifi () \n  état booléen = vrai;\n  int i = 0;","html":"<p>// se connecter au wifi - retourne true en cas de succès ou false sinon\nbooléen connectWifi () \n  état booléen = vrai;\n  int i = 0;</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"  WiFi.mode (WIFI_STA);\n  WiFi.begin (ssid, mot de passe);\n  Serial.println (&quot;&quot;);\n  Serial.println (&quot;Connexion au WiFi&quot;);","html":"<p>  WiFi.mode (WIFI_STA);\n  WiFi.begin (ssid, mot de passe);\n  Serial.println (&quot;&quot;);\n  Serial.println (&quot;Connexion au WiFi&quot;);</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"  // attendre la connexion\n  // Serial.print (&quot;Connecting ...&quot;);\n  while (WiFi.status ()! = WL_CONNECTED) \n    retard (500);\n    //Serial.print (&quot;.&quot;);\n    si (i&gt; 10) \n      state = false;\n      Pause;\n    \n    i ++;\n  ","html":"<p>  // attendre la connexion\n  // Serial.print (&quot;Connecting ...&quot;);\n  while (WiFi.status ()! = WL_CONNECTED) \n    retard (500);\n    //Serial.print (&quot;.&quot;);\n    si (i&gt; 10) \n      state = false;\n      Pause;\n    \n    i ++;\n  </p>"},{"id":"text-42","type":"text","heading":"","plain_text":"  si (indiquer) \n    // Serial.println (&quot;&quot;);\n    // Serial.print (&quot;Connecté à&quot;);\n    // Serial.println (ssid);\n    // Serial.print (&quot;adresse IP:&quot;);\n    // Serial.println (WiFi.localIP ());\n  \n  autre \n    // Serial.println (&quot;&quot;);\n    //Serial.println(&quot;Connection failed. &quot;);\n  ","html":"<p>  si (indiquer) \n    // Serial.println (&quot;&quot;);\n    // Serial.print (&quot;Connecté à&quot;);\n    // Serial.println (ssid);\n    // Serial.print (&quot;adresse IP:&quot;);\n    // Serial.println (WiFi.localIP ());\n  \n  autre \n    // Serial.println (&quot;&quot;);\n    //Serial.println(&quot;Connection failed. &quot;);\n  </p>"},{"id":"text-43","type":"text","heading":"","plain_text":"  état de retour;","html":"<p>  état de retour;</p>"},{"id":"text-44","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":"Je ne partagerai pas tous les fichiers nécessaires à la mise en place de NodeMCU avec Amazon Alexa ici, car ce serait beaucoup de code. S&#39;il vous plaît visitez mon GitHub pour télécharger    une archive zip de tous les fichiers nécessaires. Notez que le code ci-dessous ne compilera pas et ne téléchargera pas sans ces fichiers supplémentaires. Allez donc dans mon github pour les récupérer tous. \nJe vais partager le croquis Arduino principal que j&#39;ai utilisé afin que vous puissiez avoir une idée de la façon dont tout se lie. Je ne détaillerai pas tout le code, mais je ferai remarquer que je crée quatre rappels avec des noms uniques, quatre commutateurs portant des noms uniques et quatre entiers définissant les relais. Je définis également quatre noms d&#39;appel uniques à comprendre pour Alexa, qui sont mappés sur des ports distincts sur le serveur Web et chaque nom d&#39;appel unique comporte deux paramètres, Activé et Désactivé.  \nEnfin, j&#39;ai défini le mode pin pour chacune des quatre broches du relais en tant que sortie. Il suffit ensuite de configurer huit fonctions différentes pour chaque relais. Avec le type de carte de relais que j&#39;utilise, je dois également régler les quatre broches du relais sur HIGH dans le code de configuration. Cela est nécessaire en raison de la manière dont les bobines sont câblées à l&#39;intérieur des relais utilisés sur la carte. Un signal HIGH éteint les relais et un signal faible les allume.  \nPar exemple, lorsque Alexa entend la commande «Turn on lightOne», l&#39;ESP8266 sur le NodeMCU exécute la fonction lightOneOn. Le code qui gère l&#39;émulation FauxMo Belkin WeMo est beaucoup plus complexe et, pour être tout à fait honnête, je ne suis pas tout à fait sûr de comprendre tous les aspects de celui-ci pour l&#39;instant. Je sais que cela fonctionne et ajouter de nouveaux appareils (WeMo et Alexa prennent en charge jusqu&#39;à 14) est aussi simple que de dupliquer les éléments que j&#39;ai mentionnés ci-dessus et d&#39;attribuer un nom unique à chaque nouvel appareil. Donc, sans plus tarder, voici le croquis Arduino qui exploite la magie que vous avez vue dans la vidéo ci-dessus. Rappelez-vous que ce code est inutile sans les cinq autres fichiers que vous pouvez trouver sur mon dépôt Github pour ce projet.  \nLe code LCD et le matériel LCD sont complètement optionnels et aucun n&#39;est nécessaire pour que ce projet fonctionne. J&#39;ai inclus un écran LCD dans le projet à des fins de débogage / d&#39;aide visuelle uniquement. Si vous ne souhaitez pas utiliser d&#39;écran LCD dans votre projet, commentez simplement le code associé à l&#39;écran LCD ou supprimez-le complètement du fichier .ino. Remarque: si vous rencontrez des problèmes avec le code non compilé, assurez-vous que l&#39;ensemble complet de fichiers, six au total, est ouvert dans l&#39;EDI Arduino et que le dossier dans lequel ils sont stockés porte un nom identique à celui du fichier .ino principal. fichier. Certains utilisateurs ont rencontré des problèmes en raison du nom de dossier et du nom de fichier .ino différents.\nRemarque: Ce code ne sera pas compilé ni téléchargé sur votre appareil sans télécharger les cinq fichiers supplémentaires nécessaires au fonctionnement du code FauxMos. Téléchargez ce code depuis mon GitHub en cliquant ici. \n/ ******************************************\n   La version non modifiée de ce code est à l&#39;origine\n   par kakopappa et peut être trouvé à  http://bit.ly/2kKQiRg."},{"id":"text-2","heading":"Text","content":"Cette version du code a été modifiée par Charles Gantt\n   et nécessite cinq fichiers supplémentaires qui peuvent être trouvés à  http://bit.ly/2kKQiRg."},{"id":"text-3","heading":"Text","content":"En savoir plus sur ce projet sur le site de Charles\n    http://bit.ly/2kKQiRg."},{"id":"text-4","heading":"Text","content":"Suivez Charles et TheMakersWorkbench sur les sites suivants:\n   YouTube: bit.ly/TMWB-on-YouTube\n   TMWB sur Facebook: bit.ly/TMWB-on-Facebook\n   CJGanttMakes sur Facebook: bit.ly/CJGanttMakes\n   TMWB sur Twitter: bit.ly/TMWB-on-Twitter\n   Charles Gantt sur Twitter: bit.ly/CJGanttOnTwitter\n   Instructables: bit.ly/CJGanttOnInstructables\n   Site Web de TMWB: bit.ly/TheMakersWorkbench\n   Charles Gantt sur Element14: bit.ly/CJGantt-On-E14\n   Charles Gantt sur GitHub: bit.ly/CJGantt-on-Github\n* /"},{"id":"text-5","heading":"Text","content":"#comprendre \n#comprendre \n#comprendre \n#comprendre \n#include &quot;switch.h&quot;\n#include &quot;UpnpBroadcastResponder.h&quot;\n#include &quot;CallbackFunction.h&quot;\n#comprendre \n#comprendre"},{"id":"text-6","heading":"Text","content":"// prototypes\nbooléen connectWifi ();"},{"id":"text-7","heading":"Text","content":"// rappels on / off\nvoid lightOneOn ();\nvoid lightOneOff ();\nvoid lightTwoOn ();\nvoid lightTwoOff ();\nvide outletOneOn ();\nvoid outletOneOff ();\nvide outletTwoOn ();\nvide outletTwoOff ();"},{"id":"text-8","heading":"Text","content":"// Change ceci avant de clignoter\nconst char * ssid = &quot;Skynet&quot;;\nconst char * password = &quot;8039795700&quot;;"},{"id":"text-9","heading":"Text","content":"booléen wifiConnected = false;"},{"id":"text-10","heading":"Text","content":"UpnpBroadcastResponder upnpBroadcastResponder;"},{"id":"text-11","heading":"Text","content":"Commutateur * lightOne = NULL;\nCommutateur * lightTwo = NULL;\nCommutateur * outletOne = NULL;\nCommutateur * outletTwo = NULL;"},{"id":"text-12","heading":"Text","content":"// Définir les broches de relais\nint relayOne = 14;\nint relayTwo = 15;\nint relayThree = 03;\nint relayFour = 01;"},{"id":"text-13","heading":"Text","content":"// Addr: 0x3F, 20 caractères et 4 lignes. Parfois, les tableaux d&#39;affichage utilisent l&#39;adresse 0x27\nLiquidCrystal_I2C LCD (0x3F, 4, 20); // Franchement afficher, utilisez 0x3F si ne fonctionne pas essayez 0x27"},{"id":"text-14","heading":"Text","content":"void setup()"},{"id":"text-15","heading":"Text","content":"  // Initalize LCD\n  lcd.init ();\n  lcd.noBacklight ();\n  LCD rétro-éclairage();\n  lcd.begin (20, 4);"},{"id":"text-16","heading":"Text","content":"  //Serial.begin(115200);"},{"id":"text-17","heading":"Text","content":"  // Initialise la connexion wifi\n  wifiConnected = connectWifi ();\n  //Serial.print(&quot;WiFi Connected &quot;);"},{"id":"text-18","heading":"Text","content":"  si (wificonnecté) \n    upnpBroadcastResponder.beginUdpMulticast ();"},{"id":"text-19","heading":"Text","content":"    // Afficher l&#39;état WiFi sur l&#39;écran LCD avec le SSID du réseau\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;WiFi connecté&quot;);\n    lcd.print (ssid);"},{"id":"text-20","heading":"Text","content":"    // Définissez vos commutateurs ici. Max 14\n    // Format: nom de l&#39;invocation Alexa, numéro de port local, rappel, rappel\n    lightOne = nouveau commutateur (&quot;Light One&quot;, 80, lightOneOn, lightOneOff);\n    lightTwo = new Switch (&quot;Lumière deux&quot;, 81, lightTwoOn, lightTwoOff);\n    outletOne = nouveau commutateur (&quot;Outlet One&quot;, 82, outletOneOn, outletOneOff);\n    outletTwo = nouveau commutateur (&quot;Outlet Two&quot;, 83, outletTwoOn, outletTwoOff);"},{"id":"text-21","heading":"Text","content":"    //Serial.println(&quot;Adding change de répondeur de diffusion upnp &quot;);\n    upnpBroadcastResponder.addDevice (* lightOne);\n    upnpBroadcastResponder.addDevice (* lightTwo);\n    upnpBroadcastResponder.addDevice (* outletOne);\n    upnpBroadcastResponder.addDevice (* outletTwo);"},{"id":"text-22","heading":"Text","content":"    // Définir les broches de relais sur les sorties\n    pinMode (14, OUTPUT);\n    pinMode (15, OUTPUT);\n    pinMode (03, OUTPUT);\n    pinMode (01, OUTPUT);"},{"id":"text-23","heading":"Text","content":"    // Créer un message d&#39;interrogation\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    lcd.print (&quot;Polling Status&quot;);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Of Smart Devices&quot;);\n    délai (2000);"},{"id":"text-24","heading":"Text","content":"    // Définissez chaque broche de relais sur HIGH ce message d&#39;état d&#39;affichage pour chaque relais\n    digitalWrite (relayOne, HIGH); // active relayOne\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    digitalWrite (relayTwo, HIGH); // active relayOne\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    digitalWrite (relayThree, HIGH); // active relayOne\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    digitalWrite (relayFour, HIGH); // active relayOne\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);"},{"id":"text-25","heading":"Text","content":"    // Créer un message initialisé du système\n    lcd.clear ();\n    lcd.setCursor (0, 0);\n    délai (1000);\n    lcd.print (&quot;Système initialisé&quot;);\n    délai (1000);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Prêt pour les commandes&quot;);\n    délai (2000);"},{"id":"text-26","heading":"Text","content":"    // Configurer le message d&#39;état de l&#39;appareil\n    lcd.clear ();\n    lcd.print (&quot;Light One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 1);\n    lcd.print (&quot;Light Two: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 2);\n    lcd.print (&quot;Outlet One: Off&quot;);\n    retard (500);\n    lcd.setCursor (0, 3);\n    lcd.print (&quot;Outlet Two: Off&quot;);"},{"id":"text-27","heading":"Text","content":"  "},{"id":"text-28","heading":"Text","content":"boucle vide ()"},{"id":"text-29","heading":"Text","content":"  si (wificonnecté) \n    upnpBroadcastResponder.serverLoop ();\n    lightOne-&gt; serverLoop ();\n    lightTwo-&gt; serverLoop ();\n    outletOne-&gt; serverLoop ();\n    outletTwo-&gt; serverLoop ();\n  "},{"id":"text-30","heading":"Text","content":"void lightOneOn () \n  // Serial.print (&quot;Switch 1 turn on ...&quot;);\n  digitalWrite (relayOne, LOW); // active relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: On&quot;);"},{"id":"text-31","heading":"Text","content":"void lightOneOff () \n  // Serial.print (&quot;Switch 1 off off ...&quot;);\n  digitalWrite (relayOne, HIGH); // désactive relayOne\n  lcd.setCursor (0, 0);\n  lcd.print (&quot;Light One: Off&quot;);"},{"id":"text-32","heading":"Text","content":"void lightTwoOn () \n  // Serial.print (&quot;Switch 2 turn on ...&quot;);\n  digitalWrite (relayThree, LOW); // active le relais deux\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: On&quot;);"},{"id":"text-33","heading":"Text","content":"void lightTwoOff () \n  // Serial.print (&quot;Switch 2 off off ...&quot;);\n  digitalWrite (relayThree, HIGH); // met le relais à deux off\n  lcd.setCursor (0, 1);\n  lcd.print (&quot;Light Two: Off&quot;);"},{"id":"text-34","heading":"Text","content":"// prises de courant"},{"id":"text-35","heading":"Text","content":"void outletOneOn () \n  // Serial.print (&quot;Socket 1 turn on ...&quot;);\n  digitalWrite (relayFour, LOW); // active le relais trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Prise 1: On&quot;);"},{"id":"text-36","heading":"Text","content":"void outletOneOff () \n  // Serial.print (&quot;Socket 1 off off ...&quot;);\n  digitalWrite (relayFour, HIGH); // désactive le relais Trois\n  lcd.setCursor (0, 2);\n  lcd.print (&quot;Outlet One: Off&quot;);"},{"id":"text-37","heading":"Text","content":"void outletTwoOn () \n  // Serial.print (&quot;Socket 2 turn on ...&quot;);\n  digitalWrite (relayTwo, LOW); // met relayFour sur\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: On&quot;);"},{"id":"text-38","heading":"Text","content":"void outletTwoOff () \n  // Serial.print (&quot;Socket 2 off off ...&quot;);\n  digitalWrite (relayTwo, HIGH); // met le relais à quatre\n  lcd.setCursor (0, 3);\n  lcd.print (&quot;Outlet Two: Off&quot;);"},{"id":"text-39","heading":"Text","content":"// se connecter au wifi - retourne true en cas de succès ou false sinon\nbooléen connectWifi () \n  état booléen = vrai;\n  int i = 0;"},{"id":"text-40","heading":"Text","content":"  WiFi.mode (WIFI_STA);\n  WiFi.begin (ssid, mot de passe);\n  Serial.println (&quot;&quot;);\n  Serial.println (&quot;Connexion au WiFi&quot;);"},{"id":"text-41","heading":"Text","content":"  // attendre la connexion\n  // Serial.print (&quot;Connecting ...&quot;);\n  while (WiFi.status ()! = WL_CONNECTED) \n    retard (500);\n    //Serial.print (&quot;.&quot;);\n    si (i&gt; 10) \n      state = false;\n      Pause;\n    \n    i ++;\n  "},{"id":"text-42","heading":"Text","content":"  si (indiquer) \n    // Serial.println (&quot;&quot;);\n    // Serial.print (&quot;Connecté à&quot;);\n    // Serial.println (ssid);\n    // Serial.print (&quot;adresse IP:&quot;);\n    // Serial.println (WiFi.localIP ());\n  \n  autre \n    // Serial.println (&quot;&quot;);\n    //Serial.println(&quot;Connection failed. &quot;);\n  "},{"id":"text-43","heading":"Text","content":"  état de retour;"},{"id":"text-44","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/05/F1V9TTLIZ6CB7YG.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/05/03/comment-faire-bricolage-domotique-avec-nodemcu-et-amazon-alexa-13-etapes-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/03/comment-faire-bricolage-domotique-avec-nodemcu-et-amazon-alexa-13-etapes-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/03/comment-faire-bricolage-domotique-avec-nodemcu-et-amazon-alexa-13-etapes-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}