جدول المحتويات:
- اللوازم
- الخطوة 1: اجعلها تعمل
- الخطوة 2: كيف يعمل الكود
- الخطوة 3: قم بتعيين NODEMCU كخادم
- الخطوة الرابعة: تحميل ملف HTML
- الخطوة الخامسة: جربها
فيديو: كيفية استخدام ESP8266 كخادم ويب: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
مرحبًا ، أنا أستخدم حاليًا Windows 10 و NodeMCU 1.0 وهنا قائمة بالبرامج التي استخدمتها وأدلة التثبيت التي اتبعتها:
- اردوينو IDE
- لوحات إضافية لـ esp8266
- Spiff
المكتبة المستخدمة:
مقبس ويب
لقد استخدمت NodeMCU كخادم لخدمة ملف HTML قمت بإنشائه من هذا البرنامج التعليمي. لخدمة هذا الملف ، قمت بتحميل الملف إلى نظام ملفات nodemcu باستخدام Spiffs. يرسل ملف HTML البيانات إلى nodemcu باستخدام مآخذ ويب ليتم طباعتها على الشاشة التسلسلية لهذا الغرض ، وقد مكن الاتصال السريع ثنائي الاتجاه عبر مآخذ الويب للخادم والعميل من استخدام هذا كوحدة تحكم عن بعد. في الخطوات التالية ، سأشرح كيفية عمل الكود الخاص بي
اللوازم
NodeMCU
الخطوة 1: اجعلها تعمل
فيما يلي خطوات كيفية عمله
- قم بتنزيل الملف المرفق وافتح ملف mousebot.ino
- انتقل إلى الرسم> إظهار مجلد الرسم وإنشاء مجلد جديد باسم البيانات
- احفظ ملف html من هذا البرنامج التعليمي في المجلد المسمى. سميت خاصتي باسم "جويستيك"
- تأكد من أن spiff الخاص بك يعمل بالفعل بالانتقال إلى الأدوات التي ترى "esp8266 تحميل بيانات الرسم"
- قم بتحميل ملف html إلى nodemcu بالنقر فوق "esp8266 تحميل بيانات الرسم"
- بعد تحميل الملف ، قم بتحميل ملف mousebot.ino إلى nodemcu عن طريق oing إلى arduino IDE والضغط على ctrl U
الخطوة 2: كيف يعمل الكود
أولاً ، نقوم بتضمين المكتبات التي سيستخدمها هذا الرمز
// لتمكين ESP8266 من الاتصال بشبكة WIFI
#include #include #include // لتمكين ESP8266 من العمل كخادم #include // يتيح الاتصال بالخادم والعميل (جهازك المتصل) #include #include // لفتح الملف الذي تم ترميزه على nodemcu #include
قم بتعيين esp8266 كخادم ويب مفتوح على المنفذ 80. المنافذ هي مسارات تمر البيانات من خلالها. كمنفذ خادم ، سيرسل ملف HTML إلى العميل (الأجهزة المتصلة به).
يضيف اتصال websocket باستخدام المنفذ 81 للاستماع إلى الرسائل من العميل
تحتوي مآخذ الويب على المعلمة num و WStype_t والحمولة والحجم. الرقم يحدد رقم العميل ، الحمولة هي الرسالة التي يرسلها ، الحجم هو طول الرسالة و WStype_t للأحداث المختلفة مثل
- WStype_DISCONNECTED - عند قطع اتصال العميل.
- WStype_CONNECTED: - عند اتصال العميل
- WStype_TEXT - البيانات المتلقاة من العميل
اعتمادًا على نوع الحدث ، يتم تنفيذ إجراءات مختلفة ويتم التعليق عليها هنا
webSocketEvent باطل (uint8_t num، WStype_t type، uint8_t * payload، size_t length) {
التبديل (النوع) {case WStype_DISCONNECTED: Serial.printf ("[٪ u] Disconnected! / n"، num)؛ // يطبع البيانات إلى فاصل الشاشة التسلسلي ؛ الحالة 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 (الأسطوانات ، "متصل") ؛ // يرسل "conencted" إلى كسر وحدة تحكم المتصفح} ؛ الحالة WStype_TEXT: Serial.printf ("[٪ u] البيانات:٪ s / n" ، الأسطوانات ، الحمولة) ؛ // يطبع رقم العميل في٪ u والبيانات المتلقاة كسلاسل في٪ s / n فاصل ؛}}
الخطوة 3: قم بتعيين NODEMCU كخادم
يعيّن SSID وكلمة المرور اللذين ستستخدمهما للاتصال به لاحقًا
const char * ssid = "جرب" ؛
const char * password = "12345678" ؛
عند الإعداد ، نحدد المعدل الذي سيتواصل به nodemcu والكمبيوتر الخاص بنا ، وهو 115200.
إعداد باطل (باطل) {
Serial.begin (115200) ؛ Serial.print ("\ n") ؛
ضبط على صواب أيضًا شاهد إخراج تشخيص wifi على محطة serila
Serial.setDebugOutput (صحيح) ،
initaliaze نظام الملفات
SPIFFS.begin () ،
قم بإعداد nodemcu كنقطة وصول باستخدام ssid وكلمة المرور defiend مسبقًا وطباعة عنوان IP الخاص بـ nodemcu الذي ستتصل به سابقًا. بشكل افتراضي هو 192.168.4.1
Serial.print ("تكوين نقطة الوصول …") ؛
WiFi.mode (WIFI_AP) ؛ WiFi.softAP (SSID ، كلمة المرور) ؛ IPAddress myIP = WiFi.softAPIP () ، Serial.print ("عنوان IP لـ AP:") ؛ Serial.println (myIP) ؛
تهيئة websocket على nodemcu ، وهو خادم محض
webSocket.begin () ،
لاستدعاء الوظيفة webSocketEvent عند وقوع حدث websocket.
webSocket.onEvent (webSocketEvent) ؛
لتصحيح الأخطاء ، اطبع "WebSocket server started" (بدأ خادم WebSocket ") على سطر جديد. هذا لتحديد سطر الكود الذي يعالجه nodemcu
Serial.println ("بدأ خادم WebSocket.") ؛
عندما يزور العميل 192.168.4.1 ، فإنه يستدعي الوظيفة handleFileRead ويرسل معها خادم URI الذي يمثل في هذه الحالة معلومات nodemcu الخاصة بنا. تخدم الوظيفة handleFileRead ملف html من نظام ملفات nodemcu
server.onNotFound ( () {
إذا (! handleFileRead (server.uri ()))
إذا تعذر العثور عليه ، فسيظهر "FileNotFound"
server.send (404، "نص / عادي"، "FileNotFound") ؛
});
يبدأ الخادم وبدأ خادم طباعة
server.begin () ، Serial.println ("بدأ خادم HTTP") ؛
في الحلقة الفارغة الخاصة بنا ، نقوم بتمكين الخادم من التعامل المستمر مع العميل واتصالات مآخذ الويب الخاصة به على النحو التالي:
حلقة باطلة (باطلة) {
server.handleClient () ، webSocket.loop () ؛}
الخطوة الرابعة: تحميل ملف HTML
سنستخدم وظيفة تسمى handleFileRead لفتح وملف html من نظام ملفات nodemcu. ستعيد قيمة منطقية لتحديد ما إذا كانت محملة أم لا.
عند فتح "192.168.4.1/" بواسطة العميل ، نقوم بتعيين مسار الملف على "/Joystick.html ، اسم ملفنا في مجلد البيانات
bool handleFileRead (مسار السلسلة) {
Serial.println ("handleFileRead:" + مسار) ؛ if (path.endsWith ("/")) path + = "Joystick.html" ؛ if (SPIFFS.exists (path)) {File file = SPIFFS.open (path، "r") ؛ size_t sent = server.streamFile (ملف ، "text / html") ؛ file.close () ؛ العودة صحيح } عودة كاذبة؛ }
تحقق مما إذا كان مسار الملف "/Joystick.html" موجودًا
إذا كان (SPIFFS.exists (مسار)) {
إذا كان موجودًا ، افتح المسار بغرض قراءته المحدد بواسطة "r". اذهب هنا لمزيد من الأغراض.
ملف الملف = SPIFFS.open (المسار ، "r") ؛
يرسل الملف إلى الخادم كما هو الحال مع نوع محتوى "text / html"
size_t sent = server.streamFile (ملف ، "text / html") ؛
أغلق الملف
file.close () ؛
تعيد الدالة handleFileRead صحيحًا
عودة صحيحة؛}
إذا كان مسار الملف غير موجود ، فإن الوظيفة handleFileRead ترجع false
العودة صحيح }
الخطوة الخامسة: جربها
اتصل بـ nodeMCU وانتقل إلى "192.168.4.1" وجربه!:)
موصى به:
فتحت باب المرآب مع ملاحظات باستخدام Esp8266 كخادم ويب: 6 خطوات
فتح باب المرآب مع ملاحظات باستخدام Esp8266 كخادم ويب: مرحبًا ، سأوضح لك كيفية عمل طريقة بسيطة للقيام بفتح باب المرآب. - ESP8266 مشفر كخادم ويب ، يمكن فتح الباب في كل مكان في العالم - باستخدام ملاحظات ، ستعرف أن الباب مفتوح أو مغلق في الوقت الفعلي - بسيط ، اختصار واحد فقط لجعلني
كيفية استخدام هاتف Android ككاميرا ويب باستخدام Skype: 5 خطوات
كيفية استخدام هاتف Android ككاميرا ويب باستخدام Skype: هناك مقولة قديمة مفادها أن الصورة تساوي ألف كلمة … وهناك مقولة جديدة مفادها أن قيمة الفيديو تبلغ مليون كلمة. قد يبدو هذا من قبيل المبالغة الآن ، ولكن هناك فرق كبير بين التحدث إلى شخص ما في مكالمة والتحدث إلى
كيفية استخدام Mac Terminal ، وكيفية استخدام الوظائف الرئيسية: 4 خطوات
كيفية استخدام Mac Terminal ، وكيفية استخدام الوظائف الرئيسية: سنعرض لك كيفية فتح محطة MAC. سنعرض لك أيضًا بعض الميزات داخل Terminal ، مثل ifconfig وتغيير الأدلة والوصول إلى الملفات و arp. سيسمح لك Ifconfig بالتحقق من عنوان IP الخاص بك وإعلان MAC الخاص بك
أعد استخدام وحدة كاميرا الويب HP WebCam 101 Aka 679257-330 كوحدة كاميرا ويب USB عامة: 5 خطوات
أعد استخدام وحدة كاميرا الويب HP WebCam 101 Aka 679257-330 ككاميرا ويب USB عامة: أرغب في إضفاء الإثارة على جهاز Panasonic CF-18 البالغ من العمر 14 عامًا بكاميرا ويب جديدة تمامًا ، لكن Panasonic لم تعد تدعم هذا الجهاز الرائع ، لذلك لا بد لي من ذلك استخدم المادة الرمادية في شيء أسهل من b & amp؛ b (البيرة والبرغر) هذا هو الجزء الأول
كيفية استخدام كاميرا الفيديو الخاصة بك ككاميرا ويب: 4 خطوات
كيفية استخدام كاميرا الفيديو الخاصة بك ككاميرا ويب: إذا كنت مثلي ، فلديك الكثير من الأصدقاء الذين انتقلوا بعيدًا عن المنزل ، ويعيشون على بعد آلاف الكيلومترات ، أو لديك أصدقاء ذهبت إلى الجامعة معهم ويعيشون جميعًا فيها أماكن مختلفة. أنا شخصياً أكره الهواتف والمعلومات الإضافية