Table des matières:
- Fournitures
- Étape 1: Faites en sorte que cela fonctionne
- Étape 2: Comment fonctionne le code
- Étape 3: Définir le NODEMCU en tant que serveur
- Étape 4: Charger le fichier HTML
- Étape 5: Essayez-le
Vidéo: Comment utiliser ESP8266 en tant que serveur Web : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Bonjour, j'utilise actuellement Windows 10, NodeMCU 1.0 et voici la liste des logiciels que j'ai utilisés et les guides d'installation que j'ai suivis:
- IDE Arduino
- Cartes supplémentaires pour esp8266
- Spiff
Bibliothèque utilisée:
Websocket
J'ai utilisé NodeMCU comme serveur pour servir un fichier HTML que j'ai créé à partir de ce tutoriel. Pour servir ce fichier, j'ai téléchargé le fichier sur le système de fichiers nodemcu à l'aide de Spiffs. Le fichier HTML envoie des données au nodemcu à l'aide de Websockets à imprimer sur le moniteur série pour cela. La communication bidirectionnelle rapide via les Websockets du serveur et du client a permis de l'utiliser comme télécommande. Sur les étapes suivantes, je vais expliquer comment fonctionne mon code
Fournitures
NodeMCU
Étape 1: Faites en sorte que cela fonctionne
Voici les étapes sur la façon dont cela fonctionne
- Téléchargez le fichier joint et ouvrez le fichier mousebot.ino
- Allez dans sketch> show sketch folder et créez un nouveau dossier nommé data
- Enregistrez le fichier html de ce tutoriel dans le dossier nommé. J'ai nommé le mien comme " Joystick"
- Assurez-vous que votre spiff est déjà fonctionnel en allant dans les outils et en voyant le "téléchargement de données de croquis esp8266"
- Téléchargez le fichier html sur nodemcu en cliquant sur "esp8266 sketch data upload"
- Après le téléchargement du fichier, téléchargez sur le nodemcu le fichier mousebot.ino en vous connectant à l'IDE arduino et en appuyant sur ctrl U
Étape 2: Comment fonctionne le code
Tout d'abord, nous incluons les bibliothèques que ce code utilisera
//pour permettre à l'ESP8266 de se connecter au WIFI
#include #include #include //Permet à l'ESP8266 d'agir en tant que serveur #include //permet la communication avec le serveur et le client (votre appareil connecté) #include #include //Pour ouvrir le fichier téléchargé sur le nodemcu #include
Définissez l'esp8266 en tant que serveur Web ouvert sur le port 80. Les ports sont les chemins par lesquels les données passeront. En tant que port de serveur, il enverra le fichier HTML au client (les appareils qui y sont connectés).
Ajoute une connexion Websocket utilisant le port 81 pour écouter les messages du client
Les websockets ont le paramètre num, WStype_t, payload et size. Le num détermine le numéro du client, la charge utile est le message qu'il envoie, la taille est la longueur du message et WStype_t est pour différents événements tels que
- WStype_DISCONNECTED - lors de la déconnexion d'un client.
- WStype_CONNECTED: - lorsqu'un client se connecte
- WStype_TEXT - Données reçues du client
Selon le type d'événement, différentes actions sont effectuées et sont commentées ici
void webSocketEvent(uint8_t num, type WStype_t, uint8_t * charge utile, longueur size_t) {
switch (type) { case WStype_DISCONNECTED: Serial.printf("[%u] Déconnecté !\n", num); //imprime les données sur le moniteur série break; case WStype_CONNECTED: { IPAddress ip = webSocket.remoteIP(num); // obtient l'IP du client Serial.printf("[%u] Connecté depuis %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], charge utile); webSocket.sendTXT(num, "Connecté"); //envoie "connecté" à la console du navigateur } break; case WStype_TEXT: Serial.printf("[%u] Data: %s\n", num, payload); //imprime le numéro de client dans %u et les données reçues sous forme de chaînes dans %s\n break;}}
Étape 3: Définir le NODEMCU en tant que serveur
définit le ssid et le mot de passe que vous utiliserez pour vous y connecter plus tard
const char *ssid = "Essayer";
const char *mot de passe = "12345678";
lors de la configuration, nous spécifions la vitesse à laquelle notre nodemcu et pc communiqueront, qui est de 115200.
configuration vide (void){
Serial.begin(115200); Serial.print("\n");
mis à vrai aussi voir la sortie de diagnostic wifi sur le terminal Serila
Serial.setDebugOutput(true);
initialiser le système de fichiers
SPIFFS.begin();
Configurez le nodemcu en tant que point d'accès avec ssid et mot de passe defiend plus tôt et imprime l'adresse IP du nodemcu avec lequel vous vous connecterez plus tôt. par défaut c'est 192.168.4.1
Serial.print("Configuration du point d'accès…");
WiFi.mode(WIFI_AP); WiFi.softAP(ssid, mot de passe); Adresse IP monIP = WiFi.softAPIP(); Serial.print("Adresse IP AP: "); Serial.println(monIP);
Initialiser le websocket sur le nodemcu, qui est pur serveur
webSocket.begin();
Appelle la fonction webSocketEvent lorsqu'un événement websocket se produit.
webSocket.onEvent(webSocketEvent);
Pour le débogage, imprimez " Serveur WebSocket démarré" sur une nouvelle ligne. Il s'agit de déterminer la ligne de code que le nodemcu traite
Serial.println("Serveur WebSocket démarré.");
lorsqu'un client visite 192.168.4.1, il appellera la fonction handleFileRead et enverra avec lui l'URI du serveur de paramètres qui dans ce cas est notre information nodemcu. La fonction handleFileRead servira le fichier html du système de fichiers nodemcu
server.onNotFound((){
if(!handleFileRead(server.uri()))
s'il ne peut pas être trouvé, il affichera "FileNotFound"
server.send(404, "text/plain", "FileNotFound");
});
Démarre le serveur et le serveur HTTP d'impression démarre.
serveur.begin(); Serial.println("Serveur HTTP démarré");
Sur notre boucle void, nous permettons au serveur de gérer en continu le client et ses communications Websockets comme suit:
boucle vide (vide){
server.handleClient(); webSocket.loop();}
Étape 4: Charger le fichier HTML
nous utiliserons une fonction nommée handleFileRead pour ouvrir et le fichier html du système de fichiers nodemcu. il renverra un booléen de valeur pour déterminer s'il est chargé ou non.
Lorsque "192.168.4.1/" est ouvert par le client, nous définissons le chemin du fichier sur "/Joystick.html, le nom de notre fichier dans le dossier de données
bool handleFileRead(String path){
Serial.println("handleFileRead: " + chemin); if(path.endsWith("/")) path += "Joystick.html"; if(SPIFFS.exists(chemin)){ Fichier fichier = SPIFFS.open(chemin, "r"); size_t envoyé = server.streamFile(fichier, "text/html"); fichier.close(); renvoie vrai; } renvoie faux; }
Vérifiez si le chemin du fichier "/Joystick.html" existe
if(SPIFFS.existe(chemin)){
S'il existe, ouvrez le chemin dans le but de le lire qui est spécifié par le "r". Allez ici pour plus d'objectifs.
Fichier fichier = SPIFFS.open(chemin, "r");
Envoie le fichier au serveur comme avec un type de contenu "text/html"
size_t envoyé = server.streamFile(fichier, "text/html");
fermer le fichier
fichier.close();
la fonction handleFileRead renvoie true
renvoie vrai;}
si le chemin du fichier n'existe pas, la fonction handleFileRead renvoie false
renvoie vrai; }
Étape 5: Essayez-le
Connectez-vous au nodeMCU et accédez à "192.168.4.1" et essayez-le !:)
Conseillé:
Arduino en tant que FAI -- Graver un fichier hexadécimal dans AVR -- Fusible dans l'AVR -- Arduino en tant que programmeur : 10 étapes
Arduino en tant que FAI || Graver un fichier hexadécimal dans AVR || Fusible dans l'AVR || Arduino en tant que programmeur :………………………Veuillez vous abonner à ma chaîne YouTube pour plus de vidéos……..Cet article est tout à propos d'arduino en tant que fournisseur d'accès Internet. Si vous souhaitez télécharger un fichier hexadécimal ou si vous souhaitez configurer votre fusible dans l'AVR, vous n'avez pas besoin d'acheter un programmeur, vous pouvez le faire
Tutoriel : Comment utiliser ESP32-CAM dans un serveur Web de streaming vidéo : 3 étapes
Tutoriel : Comment utiliser ESP32-CAM dans un serveur Web de streaming vidéo : Description : ESP32-CAM est une carte de développement de vision IoT sans fil ESP32 dans un très petit facteur de forme, conçue pour être utilisée dans divers projets IoT, tels que les appareils intelligents domestiques, industriels contrôle sans fil, surveillance sans fil, identification sans fil QR
Comment utiliser le terminal Mac et comment utiliser les fonctions clés : 4 étapes
Comment utiliser le terminal Mac et comment utiliser les fonctions clés : Nous allons vous montrer comment ouvrir le terminal MAC. Nous vous montrerons également quelques fonctionnalités du terminal, telles que ifconfig, le changement de répertoire, l'accès aux fichiers et arp. Ifconfig vous permettra de vérifier votre adresse IP, et votre annonce MAC
Comment obtenir de la musique à partir de PRESQUE N'IMPORTE QUEL (Haha) site Web (tant que vous pouvez l'entendre, vous pouvez l'obtenir Ok très bien s'il est intégré dans Flash, vous ne pourrez peut-être pas) ÉDITÉ !!!!! Informations ajoutées : 4 étapes
Comment obtenir de la musique à partir de PRESQUE N'IMPORTE QUEL (Haha) site Web (tant que vous pouvez l'entendre, vous pouvez l'obtenir… Ok très bien s'il est intégré dans Flash, vous ne pourrez peut-être pas) ÉDITÉ !!!!! Informations supplémentaires : si jamais vous allez sur un site Web et qu'il joue une chanson que vous aimez et que vous voulez, voici l'instructable pour vous pas de ma faute si vous gâchez quelque chose (la seule façon dont cela se produira est si vous commencez à supprimer des éléments sans raison ) J'ai pu obtenir de la musique pour
FreeNAS en tant que serveur d'impression : 11 étapes
FreeNAS en tant que serveur d'impression : FreeNAS est une excellente solution de stockage réseau assez simple à installer pour n'importe qui. Le système et l'espace requis sont ridiculement petits pour cette version allégée de FreeBSD. Il a toutes sortes de fonctionnalités accessibles grâce à son propre w