meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
communication_arduino-javascript_par_websocket [2016/10/31 10:58] – créée Guillaume Pascalecommunication_arduino-javascript_par_websocket [2017/10/08 19:35] (Version actuelle) Alexandre Castonguay
Ligne 1: Ligne 1:
-L'idée est de paramétrer votre Wemos ou tout autre micro-controleur esp8266 pour en faire un serveur [[[[https://fr.wikipedia.org/wiki/WebSocket|websocket]] est ainsi envoyer des données qui seront exploité en javascript. Cette méthode vous permet de vous passer d'installer une serveur node.js.+L'idée est de paramétrer votre Wemos ou tout autre micro-controleur esp8266 pour en faire un serveur [[[[https://fr.wikipedia.org/wiki/WebSocket|websocket]] est ainsi envoyer des données qui seront exploité en javascript. 
  
  
Ligne 14: Ligne 14:
 #include <Arduino.h> #include <Arduino.h>
 #include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
-#include <ESP8266WiFiMulti.h>+#include <WiFiClient.h> 
 #include <WebSocketsServer.h> #include <WebSocketsServer.h>
-#include <ESP8266mDNS.h> 
 #include <Hash.h> #include <Hash.h>
-//connexion wifi +
-ESP8266WiFiMulti WiFiMulti; +
-//creation d'un serveur websocket sur le port 81+
 WebSocketsServer webSocket = WebSocketsServer(81); WebSocketsServer webSocket = WebSocketsServer(81);
-//variable pour savoir si le serveur est lancé+ 
 +const char *ssid = "testAP";  //changer le nom ssid pour un autre nom unique  
 +const char *password = "1234testAP"; 
 bool plug = false; bool plug = false;
-//fonction de gestion du serveur websocket+
 void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght) { void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght) {
 +
     switch(type) {     switch(type) {
         case WStype_DISCONNECTED:         case WStype_DISCONNECTED:
-        plug=false;+            plug=false;
             Serial.printf("[%u] Disconnected!\n", num);             Serial.printf("[%u] Disconnected!\n", num);
             break;             break;
-        case WStype_CONNECTED:+ 
-          plug=true; +        case WStype_CONNECTED:
-            IPAddress ip = webSocket.remoteIP(num); +             plug=true; 
-            Serial.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload); +             IPAddress ip = webSocket.remoteIP(num); 
-            // send message to client +             Serial.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload); 
-            webSocket.sendTXT(num, "Connected"); +             // send message to client 
-        }+             webSocket.sendTXT(num, "Connected"); 
 +                                 
 +            }
             break;             break;
 +
         case WStype_TEXT:         case WStype_TEXT:
             Serial.printf("[%u] get Text: %s\n", num, payload);             Serial.printf("[%u] get Text: %s\n", num, payload);
Ligne 44: Ligne 48:
             }             }
             break;             break;
-    }+        }
 } }
 +
 +
 void setup() { void setup() {
 +   
     Serial.begin(115200);     Serial.begin(115200);
-   //option de debuggage du websocket  
     Serial.setDebugOutput(true);     Serial.setDebugOutput(true);
-    Serial.println(); + 
-    Serial.println(); +    WiFi.softAP(ssid, password); 
-    Serial.println(); + 
-    for(uint8_t t 4; t > 0; t--) { +    IPAddress myIP WiFi.softAPIP(); 
-        Serial.printf("[SETUP] BOOT WAIT %d...\n", t); +    Serial.print("Adresse IP du serveur: "); 
-        Serial.flush(); +    Serial.println(myIP);
-        delay(1000); +
-    } +
-    //connexion au wifi +
-    WiFiMulti.addAP("nom de la borne wifi", "motdepasse"); +
-    while(WiFiMulti.run() != WL_CONNECTED) { +
-        delay(100); +
-    } +
-    // lancement du serveur websocket+
     webSocket.begin();     webSocket.begin();
     webSocket.onEvent(webSocketEvent);     webSocket.onEvent(webSocketEvent);
-    if(MDNS.begin("esp8266")) { 
-        Serial.println("MDNS responder started"); 
-    } 
-    // ajout du service 
-    MDNS.addService("ws", "tcp", 81); 
 } }
 +
 void loop() { void loop() {
     webSocket.loop();     webSocket.loop();
     if(plug){     if(plug){
-      //lancement d'un message +        //lancement d'un message 
-      webSocket.sendTXT(0,"ca marche");+        webSocket.sendTXT(0,"ca marche");
     }     }
 } }