विषयसूची:

वेबसर्वर के रूप में ESP8266 का उपयोग कैसे करें: 5 कदम
वेबसर्वर के रूप में ESP8266 का उपयोग कैसे करें: 5 कदम

वीडियो: वेबसर्वर के रूप में ESP8266 का उपयोग कैसे करें: 5 कदम

वीडियो: वेबसर्वर के रूप में ESP8266 का उपयोग कैसे करें: 5 कदम
वीडियो: ESP8266 Web Server using SPIFFS | Web server using NodeMCU to serve HTML and CSS files | Hindi 2024, नवंबर
Anonim
वेबसर्वर के रूप में ESP8266 का उपयोग कैसे करें
वेबसर्वर के रूप में ESP8266 का उपयोग कैसे करें

नमस्ते, मैं वर्तमान में विंडोज़ 10, नोडएमसीयू 1.0 का उपयोग कर रहा हूं और यहां मेरे द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर की सूची और मेरे द्वारा अनुसरण किए गए इंस्टॉलेशन गाइड हैं:

  • अरुडिनो आईडीई
  • Esp8266. के लिए अतिरिक्त बोर्ड
  • आकर्षक बनाएं

पुस्तकालय का इस्तेमाल किया:

वेबसोकेट

मैंने इस ट्यूटोरियल से बनाई गई एक HTML फ़ाइल की सेवा के लिए सर्वर के रूप में NodeMCU का उपयोग किया। इस फ़ाइल को परोसने के लिए, मैंने Spiffs का उपयोग करके फ़ाइल को nodemcu फ़ाइल सिस्टम में अपलोड किया। HTML फ़ाइल इसके लिए सीरियल मॉनीटर पर मुद्रित किए जाने वाले websockets का उपयोग करके nodemcu को डेटा भेजती है। सर्वर और क्लाइंट के websockets के माध्यम से तेज़ द्विदिश संचार ने इसे रिमोट कंट्रोल के रूप में उपयोग करने में सक्षम बनाया। निम्नलिखित चरणों में, मैं यह बताना चाहता हूं कि मेरा कोड कैसे काम करता है

आपूर्ति

नोडएमसीयू

चरण 1: इसे काम करें

इसे कार्य करने योग्य बनाए
इसे कार्य करने योग्य बनाए
इसे कार्य करने योग्य बनाए
इसे कार्य करने योग्य बनाए
इसे कार्य करने योग्य बनाए
इसे कार्य करने योग्य बनाए

यह कैसे काम करता है, इसके चरण यहां दिए गए हैं

  1. संलग्न फ़ाइल डाउनलोड करें और mousebot.ino फ़ाइल खोलें
  2. स्केच पर जाएं> स्केच फोल्डर दिखाएं और डेटा नाम का एक नया फोल्डर बनाएं
  3. इस ट्यूटोरियल से एचटीएमएल फाइल को नाम के फोल्डर में सेव करें। मैंने अपना नाम "जॉयस्टिक" रखा
  4. सुनिश्चित करें कि "esp8266 स्केच डेटा अपलोड" देखकर टूल पर जाकर आपका स्पिफ़ पहले से ही कार्यात्मक है
  5. "esp8266 स्केच डेटा अपलोड" पर क्लिक करके html फ़ाइल को nodemcu में अपलोड करें
  6. फ़ाइल अपलोड करने के बाद, arduino IDE पर oing करके और ctrl U दबाकर माउसबोट.इनो फ़ाइल को nodemcu पर अपलोड करें

चरण 2: कोड कैसे काम करता है

सबसे पहले, हम उन पुस्तकालयों को शामिल करते हैं जिनका यह कोड उपयोग करेगा

// ESP8266 को वाईफ़ाई से कनेक्ट करने के लिए सक्षम करने के लिए

#include #include #include // ESP8266 को सर्वर की तरह काम करने में सक्षम बनाता है

esp8266 को पोर्ट 80 पर खोले गए वेबसर्वर के रूप में सेट करें। पोर्ट वे रास्ते हैं जिनसे डेटा गुजरेगा। सर्वर पोर्ट के रूप में, यह क्लाइंट को HTML फ़ाइल भेजेगा (इससे जुड़े डिवाइस)।

क्लाइंट से संदेश सुनने के लिए पोर्ट 81 का उपयोग करके एक वेबसोकेट कनेक्शन जोड़ता है

वेबसोकेट में पैरामीटर संख्या, WStype_t, पेलोड और आकार होता है। संख्या क्लाइंट संख्या निर्धारित करती है, पेलोड वह संदेश है जो इसे भेजता है, आकार संदेश की लंबाई है और WStype_t विभिन्न घटनाओं के लिए है जैसे कि

  • WStype_DISCONNECTED - क्लाइंट के डिसकनेक्शन पर।
  • WStype_CONNECTED: - जब कोई क्लाइंट कनेक्ट होता है
  • WStype_TEXT - क्लाइंट से प्राप्त डेटा

घटना के प्रकार के आधार पर विभिन्न क्रियाएं की जाती हैं और यहां टिप्पणी की जाती है

शून्य webSocketEvent (uint8_t संख्या, WStype_t प्रकार, uint8_t * पेलोड, size_t लंबाई) {

स्विच (प्रकार) {केस WStype_DISCONNECTED: Serial.printf("[%u] डिस्कनेक्ट किया गया!\n", num); // सीरियल मॉनिटर ब्रेक के लिए डेटा प्रिंट करता है; मामला WStype_CONNECTED: { IPAddress ip = webSocket.remoteIP(num); // क्लाइंट सीरियल का आईपी प्राप्त करता है। आईपी [2], आईपी [3], पेलोड); webSocket.sendTXT (संख्या, "कनेक्टेड"); // ब्राउज़र कंसोल पर "कनेक्टेड" भेजता है} ब्रेक; मामला WStype_TEXT: Serial.printf ("[%u] डेटा: %s\n", संख्या, पेलोड); // क्लाइंट नंबर को %u में प्रिंट करता है और डेटा को %s\n ब्रेक में स्ट्रिंग्स के रूप में प्राप्त होता है;}}

चरण 3: NODEMCU को सर्वर के रूप में सेट करें

वह ssid और पासवर्ड सेट करता है जिसका उपयोग आप बाद में उससे कनेक्ट करने के लिए करेंगे

कॉन्स चार * एसएसआईडी = "कोशिश करें";

कास्ट चार * पासवर्ड = "12345678";

सेट अप पर, हम उस दर को निर्दिष्ट करते हैं जिस पर यह हमारा नोडएमसीयू और पीसी संचार करेगा, जो कि 115200 है।

शून्य सेटअप (शून्य) {

सीरियल.बेगिन (115200); सीरियल.प्रिंट ("\ n");

सेरीला टर्मिनल पर वाईफाई डायग्नोस्टिक आउटपुट भी देखें

Serial.setDebugOutput (सच);

फाइल सिस्टम को इनिशियलाइज़ करें

SPIFFS.begin ();

पहले ssid और पासवर्ड डिफेंड के साथ एक एक्सेसपॉइंट के रूप में nodemcu सेट करें और उस nodemcu के ip को प्रिंट करें जिसे आप पहले कनेक्ट करेंगे। डिफ़ॉल्ट रूप से यह 192.168.4.1. है

Serial.print ("एक्सेस पॉइंट कॉन्फ़िगर करना …");

वाईफाई.मोड (WIFI_AP); वाईफाई.सॉफ्टएपी (एसएसआईडी, पासवर्ड); IPAddress myIP = WiFi.softAPIP (); सीरियल.प्रिंट ("एपी आईपी पता:"); Serial.println (myIP);

Nodemcu पर वेबसोकेट को इनिशियलाइज़ करें, जो कि pur सर्वर है

webSocket.begin ();

वेबसोकेट ईवेंट होने पर फ़ंक्शन webSocketEvent को कॉल करता है।

webSocket.onEvent (webSocketEvent);

डिबगिंग के लिए, एक नई लाइन पर "वेबसॉकेट सर्वर शुरू हुआ" प्रिंट करें। यह कोड की लाइन को निर्धारित करने के लिए है जिसे नोडेमकू संसाधित कर रहा है

Serial.println ("वेबसॉकेट सर्वर शुरू हुआ।");

जब कोई क्लाइंट 192.168.4.1 पर जाता है, तो वह फंक्शन हैंडलफाइल रीड को कॉल करेगा और इसके साथ पैरामीटर सर्वर यूआरआई भेजेगा जो इस मामले में हमारी नोडएमसीयू जानकारी है। फ़ंक्शन हैंडलफाइलरेड नोडमक्यू फाइल सिस्टम से एचटीएमएल फाइल की सेवा करेगा

server.onNotFound((){

अगर (! हैंडलफाइल रीड (सर्वर.यूरी ()))

अगर यह नहीं मिला तो यह "FileNotFound" दिखाएगा

server.send(404, "पाठ/सादा", "FileNotFound");

});

सर्वर शुरू होता है और एचटीटीपी सर्वर प्रिंट करना शुरू होता है।

सर्वर। शुरू (); Serial.println ("HTTP सर्वर शुरू हुआ");

हमारे शून्य लूप पर, हम सर्वर को क्लाइंट और उसके वेबसोकेट संचार को लगातार संभालने में सक्षम करते हैं:

शून्य लूप (शून्य) {

सर्वर.हैंडल क्लाइंट (); webSocket.loop ();}

चरण 4: HTML फ़ाइल लोड करें

हम nodemcu फाइल सिस्टम से html फाइल को खोलने के लिए और html फाइल को हैंडलफाइलरेड नाम के एक फंक्शन का उपयोग करेंगे। यह निर्धारित करने के लिए मूल्य का एक बूलियन लौटाएगा कि यह लोड है या नहीं।

जब क्लाइंट द्वारा "192.168.4.1/" खोला जाता है तो हम फ़ाइल पथ को "/Joystick.html" पर सेट करते हैं, डेटा फ़ोल्डर में हमारी फ़ाइल का नाम

बूल हैंडलफाइल रीड (स्ट्रिंग पथ) {

Serial.println ("हैंडलफाइल रीड:" + पथ); if(path.endsWith("/")) path += "Joystick.html"; अगर (SPIFFS.exists (पथ)) {फ़ाइल फ़ाइल = SPIFFS.open (पथ, "आर"); size_t भेजा = server.streamFile (फ़ाइल, "पाठ / html"); फ़ाइल। बंद करें (); सच लौटना; } विवरण झूठा है; }

जांचें कि क्या फ़ाइल पथ"/Joystick.html" मौजूद है

अगर (SPIFFS.exists (पथ)) {

यदि यह मौजूद है, तो इसे पढ़ने के उद्देश्य से पथ खोलें जो "आर" द्वारा निर्दिष्ट है। अधिक उद्देश्यों के लिए यहां जाएं।

फ़ाइल फ़ाइल = SPIFFS.open (पथ, "आर");

"टेक्स्ट/एचटीएमएल" सामग्री प्रकार के साथ फ़ाइल को सर्वर पर भेजता है

size_t भेजा = server.streamFile (फ़ाइल, "पाठ / html");

फ़ाइल बंद करें

फ़ाइल। बंद करें ();

फ़ंक्शन हैंडलफाइल रीड सत्य लौटाता है

सच लौटें;}

यदि फ़ाइल पथ मौजूद नहीं है, तो फ़ंक्शन हैंडलफाइल रीड गलत लौटाता है

सच लौटना; }

चरण 5: कोशिश करो

Image
Image

नोडएमसीयू से कनेक्ट करें और "192.168.4.1" पर जाएं और इसे आजमाएं!:)

सिफारिश की: