সুচিপত্র:

কিভাবে ESP8266 ওয়েবসাইট সার্ভার হিসাবে ব্যবহার করবেন: 5 টি ধাপ
কিভাবে ESP8266 ওয়েবসাইট সার্ভার হিসাবে ব্যবহার করবেন: 5 টি ধাপ

ভিডিও: কিভাবে ESP8266 ওয়েবসাইট সার্ভার হিসাবে ব্যবহার করবেন: 5 টি ধাপ

ভিডিও: কিভাবে ESP8266 ওয়েবসাইট সার্ভার হিসাবে ব্যবহার করবেন: 5 টি ধাপ
ভিডিও: PCA9685 এবং আরডুইনো: ভি 3 ব্যবহার করে 32 সার্ভো মোটর নিয়ন্ত্রণ করছে 2024, ডিসেম্বর
Anonim
কিভাবে ESP8266 ওয়েবসাইট সার্ভার হিসেবে ব্যবহার করবেন
কিভাবে ESP8266 ওয়েবসাইট সার্ভার হিসেবে ব্যবহার করবেন

হাই, আমি বর্তমানে উইন্ডোজ 10, নোডএমসিইউ 1.0 ব্যবহার করছি এবং এখানে আমি যে সফ্টওয়্যার ব্যবহার করেছি এবং ইনস্টলেশন গাইড আমি অনুসরণ করেছি তার তালিকা:

  • Arduino IDE
  • Esp8266 এর জন্য অতিরিক্ত বোর্ড
  • স্পিফ

ব্যবহৃত লাইব্রেরি:

ওয়েবসকেট

আমি থিস্টুটোরিয়াল থেকে তৈরি একটি HTML ফাইল পরিবেশন করার জন্য আমি একটি সার্ভার হিসাবে NodeMCU ব্যবহার করেছি। এই ফাইলটি পরিবেশন করার জন্য, আমি স্পিডগুলি ব্যবহার করে ফাইলটি নোডেমকু ফাইল সিস্টেমে আপলোড করেছি। এইচটিএমএল ফাইল নোডেমকুতে ডেটা পাঠায় ওয়েবসকেট ব্যবহার করে এর জন্য সিরিয়াল মনিটরে মুদ্রণ করা হয়। সার্ভার এবং ক্লায়েন্টের ওয়েবসকেটের মাধ্যমে দ্রুত দ্বিমুখী যোগাযোগ এটিকে রিমোট কন্ট্রোল হিসাবে ব্যবহার করতে সক্ষম করেছে। নিম্নলিখিত ধাপগুলিতে, আমার কোড কীভাবে কাজ করে তা ব্যাখ্যা করা হচ্ছে

সরবরাহ

NodeMCU

ধাপ 1: এটি কাজ করুন

এটি কাজ করা
এটি কাজ করা
এটি কাজ করা
এটি কাজ করা
এটি কাজ করা
এটি কাজ করা

এটি কীভাবে কাজ করে তার পদক্ষেপগুলি এখানে

  1. সংযুক্ত ফাইলটি ডাউনলোড করুন এবং mousebot.ino ফাইলটি খুলুন
  2. স্কেচ> শো স্কেচ ফোল্ডারে যান এবং ডেটা নামে একটি নতুন ফোল্ডার তৈরি করুন
  3. এই টিউটোরিয়াল থেকে html ফাইলটি নামের ফোল্ডারে সেভ করুন। আমি আমার নাম দিয়েছিলাম "জয়স্টিক"
  4. "Esp8266 স্কেচ ডেটা আপলোড" দেখে টুলস এ গিয়ে আপনার স্পিফ ইতিমধ্যেই কাজ করছে তা নিশ্চিত করুন
  5. "Esp8266 স্কেচ ডেটা আপলোড" ক্লিক করে HTML ফাইলটি নোডেমকুতে আপলোড করুন
  6. ফাইল আপলোড করার পরে, nodemcu এ মাউসবট.ইনো ফাইলটি আপলোড করুন আরডুইনো আইডিই -তে এবং ctrl U টিপে

ধাপ 2: কোড কিভাবে কাজ করে

প্রথমত, আমরা লাইব্রেরিগুলি অন্তর্ভুক্ত করি যা এই কোডটি ব্যবহার করবে

// ESP8266 কে WIFI এর সাথে সংযুক্ত করতে সক্ষম করুন

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত // ইএসপি 8266 কে একটি সার্ভার হিসাবে কাজ করতে সক্ষম করে #অন্তর্ভুক্ত // সার্ভার এবং ক্লায়েন্টের সাথে যোগাযোগ সক্ষম করে (আপনার সংযুক্ত ডিভাইস) #অন্তর্ভুক্ত #অন্তর্ভুক্ত // নডেমকুতে আপলোড করা ফাইল খুলতে #অন্তর্ভুক্ত করুন

Esp8266 পোর্ট 80 -এ খোলা একটি ওয়েব সার্ভার হিসাবে সেট করুন। একটি সার্ভার পোর্ট হিসাবে, এটি ক্লায়েন্টকে HTML ফাইল পাঠাবে (এর সাথে সংযুক্ত ডেভিস)।

ক্লায়েন্টের বার্তা শোনার জন্য পোর্ট 81 ব্যবহার করে একটি ওয়েবসকেট সংযোগ যুক্ত করে

ওয়েবসকেটের সংখ্যা, WStype_t, পেলোড এবং আকার প্যারামিটার রয়েছে। সংখ্যা ক্লায়েন্ট সংখ্যা নির্ধারণ করে, পেলোড হল বার্তাটি পাঠানো, আকার বার্তার দৈর্ঘ্য এবং WStype_t বিভিন্ন ইভেন্টের জন্য যেমন

  • WStype_DISCONNECTED - একটি ক্লায়েন্টের সংযোগ বিচ্ছিন্ন করার ক্ষেত্রে।
  • WStype_CONNECTED: - যখন একজন ক্লায়েন্ট সংযোগ করে
  • WStype_TEXT - ক্লায়েন্ট থেকে প্রাপ্ত তথ্য

ইভেন্ট টাইপের উপর নির্ভর করে বিভিন্ন কাজ করা হয় এবং এখানে মন্তব্য করা হয়

void webSocketEvent (uint8_t num, WStype_t type, uint8_t * payload, size_t length) {

সুইচ (টাইপ) {কেস WStype_DISCONNECTED: Serial.printf ("[%u] সংযোগ বিচ্ছিন্ন! / n", সংখ্যা); // সিরিয়াল মনিটর বিরতিতে ডেটা প্রিন্ট করে; কেস WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // ক্লায়েন্টের IP পায় Serial.printf ("[%u]%d।%d।%d।%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], পেলোড); webSocket.sendTXT (সংখ্যা, "সংযুক্ত"); // ব্রাউজার কনসোল} বিরতিতে "সংযুক্ত" পাঠায়; কেস WStype_TEXT: Serial.printf ("[%u] ডেটা: %s / n", সংখ্যা, প্লেলোড); // ক্লায়েন্ট নম্বরটি %u তে প্রিন্ট করে এবং %s / n বিরতিতে স্ট্রিং হিসাবে প্রাপ্ত ডেটা;}}

ধাপ 3: NODEMCU কে সার্ভার হিসাবে সেট করুন

ssid এবং পাসওয়ার্ড সেট করে যা আপনি পরে এটির সাথে সংযোগ করতে ব্যবহার করবেন

const char *ssid = "চেষ্টা করুন";

const char *password = "12345678";

সেট আপ করার সময়, আমরা আমাদের নডেমকু এবং পিসি যে হারে যোগাযোগ করব তা নির্দিষ্ট করি, যা 115200।

অকার্যকর সেটআপ (অকার্যকর) {

Serial.begin (115200); সিরিয়াল.প্রিন্ট ("\ n");

সত্য সেট করুন সিরিলা টার্মিনালে ওয়াইফাই ডায়াগনস্টিক আউটপুট দেখুন

Serial.setDebugOutput (সত্য);

ফাইল সিস্টেম initaliaze

SPIFFS. শুরু ();

Ssid এবং পাসওয়ার্ড ডিফেন্ডের সাথে একটি অ্যাক্সেসপয়েন্ট হিসাবে nodemcu সেট আপ করুন এবং nodemcu এর আইপি প্রিন্ট করুন যা আপনি আগে সংযোগ করবেন। ডিফল্টরূপে এটি 192.168.4.1

সিরিয়াল.প্রিন্ট ("অ্যাক্সেস পয়েন্ট কনফিগার করা …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, password); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP address:"); Serial.println (myIP);

নোডেমকুতে ওয়েবসকেট শুরু করুন, whcih পুর সার্ভার

webSocket.begin ();

যখন একটি ওয়েবসকেট ইভেন্ট হয় তখন webSocketEvent ফাংশনকে কল করে।

webSocket.onEvent (webSocketEvent);

ডিবাগ করার জন্য, একটি নতুন লাইনে "ওয়েবসকেট সার্ভার শুরু" মুদ্রণ করুন। এটি নডেমকু প্রক্রিয়াকরণ করা কোডের লাইন নির্ধারণ করতে হয়

Serial.println ("ওয়েবসকেট সার্ভার শুরু হয়েছে।");

যখন একজন ক্লায়েন্ট 192.168.4.1 পরিদর্শন করেন, তখন এটি ফাংশন হ্যান্ডেলফিলরেডকে কল করবে এবং এর সাথে প্যারামিটার সার্ভার ইউআরআই পাঠাবে যা এই ক্ষেত্রে আমাদের নোডেমকু তথ্য। ফাংশন হ্যান্ডেলফিলরেড নোডেমকু ফাইল সিস্টেম থেকে এইচটিএমএল ফাইল পরিবেশন করবে

server.onNotFound ( () {

if (! handleFileRead (server.uri ()))

যদি এটি পাওয়া না যায় তবে এটি "FileNotFound" দেখাবে

server.send (404, "টেক্সট/প্লেইন", "FileNotFound");

});

সার্ভার শুরু হয় এবং HTTP সার্ভার প্রিন্ট শুরু হয়।

server.begin (); Serial.println ("HTTP সার্ভার শুরু হয়েছে");

আমাদের অকার্যকর লুপে, আমরা সার্ভারকে ক্লায়েন্ট এবং এর ওয়েবসকেটগুলির যোগাযোগকে সামঞ্জস্যপূর্ণভাবে পরিচালনা করতে সক্ষম করি:

অকার্যকর লুপ (অকার্যকর) {

server.handleClient (); webSocket.loop ();}

ধাপ 4: HTML ফাইল লোড করুন

আমরা খুলতে হ্যান্ডেলফিল রিড নামে একটি ফাংশন ব্যবহার করব এবং নডেমকু ফাইল সিস্টেম থেকে এইচটিএমএল ফাইল। এটি লোড হয়েছে কি না তা নির্ধারণ করার জন্য একটি বুলিয়ান মান ফেরত দেবে।

যখন ক্লায়েন্টের দ্বারা "192.168.4.1/" খোলা হয় তখন আমরা ফাইল পাথ সেট করি "/Joystick.html, ডেটা ফোল্ডারে আমাদের ফাইলের নাম

bool handleFileRead (স্ট্রিং পাথ) {

Serial.println ("handleFileRead:" + path); যদি (path.endsWith ("/")) path += "Joystick.html"; যদি (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t পাঠানো = server.streamFile (ফাইল, "টেক্সট/এইচটিএমএল"); file.close (); সত্য ফিরে; } মিথ্যা প্রত্যাবর্তন; }

ফাইল পাথ "/Joystick.html" আছে কিনা তা পরীক্ষা করুন

যদি (SPIFFS.exists (path)) {

যদি এটি বিদ্যমান থাকে, তাহলে এটি পড়ার উদ্দেশ্যে একটি পথ খুলুন যা "r" দ্বারা নির্দিষ্ট করা হয়েছে। আরো উদ্দেশ্যে এখানে যান।

ফাইল ফাইল = SPIFFS.open (পাথ, "r");

"টেক্সট/এইচটিএমএল" বিষয়বস্তুর মতো ফাইলটি সার্ভারে পাঠায়

size_t পাঠানো = server.streamFile (ফাইল, "টেক্সট/এইচটিএমএল");

ফাইল বন্ধ করুন

file.close ();

ফাংশন handleFileRead সত্য ফিরে আসে

সত্য ফিরে;}

যদি ফাইলের পথ বিদ্যমান না থাকে, ফাংশন হ্যান্ডেলফিলরেড মিথ্যা প্রদান করে

সত্য ফিরে; }

ধাপ 5: এটি চেষ্টা করুন

Image
Image

NodeMCU- এর সাথে সংযোগ করুন এবং "192.168.4.1" -এ যান এবং চেষ্টা করুন!:)

প্রস্তাবিত: