- ما هو اياكس؟
- كيف تعمل أجاكس؟
- المكونات المطلوبة لبناء خادم ويب يعتمد على AJAX و ESP8266
- Ajax and ESP8266 Web Server - مخطط الدائرة
- كود خادم الويب المستند إلى AJAX لـ ESP8266
في العديد من تطبيقات إنترنت الأشياء ، هناك مواقف تحتاج فيها بيانات المستشعر إلى المراقبة المستمرة ، وأبسط طريقة للقيام بذلك هي عن طريق تمكين خادم ويب ESP8266 الذي يخدم صفحة ويب HTML لكن المشكلة في هذه المنهجية هي أن متصفح الويب يحتاج إلى التحديث في فترة زمنية معينة للحصول على بيانات مستشعر محدثة. هذا ليس فقط غير فعال ولكنه يستغرق الكثير من دورات الساعة حيث يمكن أداء المهام الأخرى. يُعرف حل هذه المشكلة باسم "Asynchronous JavaScript and XML" أو AJAX للاختصار. باستخدام AJAX ، يمكننا مراقبة البيانات في الوقت الفعلي دون تحديث صفحة الويب بأكملها ، وهذا لا يوفر الوقت فحسب ، بل يوفر أيضًا دورات الساعة الثمينة. تابع معنا وفي هذه المقالة ، ستتعلم كيفية تنفيذ خادم الويب المستند إلى AJAX على ESP8266.
ما هو اياكس؟
كما ناقشنا سابقًا ، AJAX تعني "Asynchronous JavaScript and XML" والتي يمكن استخدامها لتحديث جزء من صفحة الويب دون إعادة تحميل الصفحة المطلوبة. يقوم بذلك عن طريق طلب واستلام البيانات من الخادم تلقائيًا. وظيفة AJAX هي تحديث محتوى الويب بشكل غير متزامن. هذا يعني أن مستعرض الويب الخاص بالمستخدم لا يحتاج إلى تحديث صفحة ويب بأكملها عندما يحتاج فقط إلى تحديث جزء من المحتوى على الصفحة.
من الأمثلة اليومية على AJAX ميزة اقتراح Google ، حيث نكتب في شريط بحث Google ، ويبدأ Google في اقتراح سلاسل البحث ذات الصلة. أثناء هذه العملية ، لا يتم إعادة تحميل صفحة الويب ، ولكن يتم تحديث المعلومات التي يلزم تغييرها في الخلفية باستخدام AJAX.
كيف تعمل أجاكس؟
تستخدم AJAX مزيجًا من-
- XML (لغة الترميز الموسعة)
- جافا سكريبت و HTML
- XML (لغة الترميز الموسعة):
XML هي لغة ترميز. يستخدم XML في الغالب لتلقي بيانات الخادم بتنسيق معين. على الرغم من أنه يمكن أن تتلقى البيانات في شكل نص عادي. عندما يزور المستخدم صفحة ويب ويحدث حدث ما ، في حالتنا ، يكون "الضغط على زر" ، يقوم JavaScript بإنشاء كائن XMLHttpRequest ، والذي ينقل بعد ذلك المعلومات بتنسيق XML بين متصفح الويب وخادم الويب. يرسل كائن XMLHttpRequest طلبًا لبيانات الصفحة المحدثة إلى خادم الويب ، ويقوم الخادم بمعالجة الطلب ، ويتم إنشاء استجابة من جانب الخادم وإرسالها مرة أخرى إلى المتصفح ، والذي يستخدم بعد ذلك JavaScript لمعالجة الاستجابة وعرضها على صفحة الويب.
- جافا سكريبت و HTML:
يقوم JavaScript بعملية التحديث في AJAX. يتم تنسيق طلب المحتوى المحدث في XML لجعله مفهومًا ، ويقوم JavaScript بتحديث المحتوى للمستخدم الذي يعرض الصفحة المحدثة.
عمل أجاكس:
كما هو موضح في الرسم البياني أعلاه ، بالنسبة لطلب AJAX ، يرسل المتصفح طلب XMLHttpRequest إلى الخادم باستخدام جافا سكريبت. يتضمن هذا الكائن البيانات التي تخبر الخادم بما هو مطلوب. يستجيب الخادم بالبيانات التي تم طلبها من جانب العميل فقط. ثم يتلقى المتصفح البيانات ، ويحدّث فقط الجزء الذي يحتاج إلى تحديث من الصفحة بدلاً من إعادة تحميل صفحة الويب بأكملها.
المكونات المطلوبة لبناء خادم ويب يعتمد على AJAX و ESP8266
نظرًا لأننا نبني المشروع لإثبات قدرة esp8266 على التعامل مع AJAX ، فإن متطلبات المكون صغيرة جدًا ، ويمكنك العثور على معظمها في متجر الهوايات المحلي الخاص بك.
- NodeMCU X 1
- مستشعر درجة الحرارة LM35 X 1
- الصمام X 1
- اللوح X 1
- صداري X 4
- كابل البرمجة X 1
Ajax and ESP8266 Web Server - مخطط الدائرة
يظهر أدناه مخطط الدائرة لخادم الويب المستند إلى AJAX.
نظرًا لأن الدائرة بسيطة جدًا ، فلا يوجد الكثير لشرحها. لقد قمنا بتوصيل مصباح LED بمقاوم مقيد للتيار 150 أوم إلى Pin D0 من ESP8266 ، كما سترى ، يمكننا تبديله باستخدام خادم الويب. بعد ذلك ، لدينا مستشعر درجة الحرارة LM35 الخاص بنا والذي من خلاله سنقرأ قيمة درجة الحرارة ونحدثها على صفحة الويب. يتم تشغيل مستشعر درجة الحرارة من سكة 3.3 فولت ، وبما أن LM35 عبارة عن مستشعر تناظري ، فقد استخدمنا دبوس A0 من لوحة ESP8266 لقياس البيانات. إذا صادفت مستشعر درجة الحرارة LM35 لأول مرة ، أو إذا كنت ترغب في معرفة المزيد عن هذا المستشعر الصغير الرائع جدًا ، يمكنك التحقق من المنشور السابق على مقياس الحرارة الرقمي باستخدام NodeMCU و LM35 حيث ناقشنا عمل هذا المستشعر في التفاصيل.
كود خادم الويب المستند إلى AJAX لـ ESP8266
قبل المضي قدمًا ، دعنا نتعمق في البرنامج لفهم كيفية عمل خادم الويب NodeMCU. ولكن قبل ذلك ، يرجى التأكد من أن لديك إعداد Arduino IDE لـ ESP8266 ، إذا لم يكن لديك الإعداد ، يمكنك اتباع الجزء التالي ، وإلا يمكنك تخطي هذا الجزء. إذا كنت مهتمًا بمعرفة المزيد حول خادم الويب والمشاريع القائمة على إنترنت الأشياء ، فيمكنك التحقق من المنشور السابق الذي ناقشناه