meta données pour cette page
L'idée est de paramétrer votre Wemos ou tout autre micro-controleur esp8266 pour en faire un serveur websocket est ainsi envoyer des données qui seront exploité en javascript.
1-Installation de la librairie - Aller via l’onglet croquis sur : inclure une bibliotheque/gérer les bibliothèques - Dans le bloc de saisie en haut à droite tapez « websocket » - Doit apparaitre dans la liste situé dessous : websocket by Markus Sattler. - Cliquer sur installer
2-Le code pour Arduino
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <WebSocketsServer.h>
#include <Hash.h>
WebSocketsServer webSocket = WebSocketsServer(81);
const char *ssid = "testAP"; //changer le nom ssid pour un autre nom unique
const char *password = "1234testAP";
bool plug = false;
void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght) {
switch(type) {
case WStype_DISCONNECTED:
plug=false;
Serial.printf("[%u] Disconnected!\n", num);
break;
case WStype_CONNECTED:{
plug=true;
IPAddress ip = webSocket.remoteIP(num);
Serial.printf("[%u] Connected from %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], payload);
// send message to client
webSocket.sendTXT(num, "Connected");
}
break;
case WStype_TEXT:
Serial.printf("[%u] get Text: %s\n", num, payload);
if(payload[0] == '#') {
}
break;
}
}
void setup() {
Serial.begin(115200);
Serial.setDebugOutput(true);
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("Adresse IP du serveur: ");
Serial.println(myIP);
webSocket.begin();
webSocket.onEvent(webSocketEvent);
}
void loop() {
webSocket.loop();
if(plug){
//lancement d'un message
webSocket.sendTXT(0,"ca marche");
}
}
3-Le code html
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>test websocket</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script src="main.js"></script> </head> <body> </body> </html>
3-Le code javascript
//déclaration de la variable message
var msg;
$(document).ready(function() {
listenSocket();
});
function listenSocket(){
//adresse du websocket >>>> changer adresse ip par l'adresse ip de votre arduino (cf la console dans arduino ou l'adresse sera indiqué) . ¡¡¡ Attention bien garder le :81 qui est le port du serveur websocket !!!
var exampleSocket = new WebSocket("ws://adresseip:81/", ['arduino']);
//gestion des messages reçus
exampleSocket.onopen = function() {
console.log('connected');
};
exampleSocket.onmessage = function(e) {
//msg = JSON.parse(e.data)>>> si le message reçu est un json;
console.log('message received : ', e.data);
};
exampleSocket.onclose = function() {
console.log('disconnected');
};
}
Have fun !!!