جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
سيوضح هذا الدرس استخدام بروتوكول MQTT الأساسي على لوحة NodeMCU ، ونستخدم MQTTBox كعميل MQTT هنا ، وسنستخدم NodeMCU لإكمال العمليات التالية:
انشر "hello world" في موضوع "outTopic" كل ثانيتين ، واشترك في الموضوع "inTopic" واطبع أي رسائل مستلمة ، وتفترض أن الحمولات المستلمة هي سلاسل وليست ثنائيات ، وإذا كانت الرسالة المشتركة "1" ، فاضغط على LED onboards. قم بإيقاف تشغيل مؤشر LED الموجود على اللوحة إذا كانت رسالة الاشتراك "0".
التحضير: Osoyoo NodeMCU x1
كبل USB x1
كمبيوتر x1
Arduino IDE (الإصدار 1.6.4+)
قم بتوصيل NodeMCU بجهاز الكمبيوتر عبر كابل USB.
الخطوة 1: تثبيت المكتبة
قم بتثبيت PubSubClientlibrary
نحتاج إلى تثبيت مكتبة نقطة النهاية MQTT (PubSubClient) للتواصل مع وسيط MQTT ، يرجى تنزيل المكتبة من الرابط التالي: https://osoyoo.com/wp-content/uploads/samplecode/pu …
قم بفك ضغط الملف أعلاه ، وانقل المجلد الذي تم فك ضغطه إلى مجلد مكتبة Arduino IDE.
افتح Arduino IED ، يمكنك العثور على "pubsubclient" في عمود "أمثلة".
تثبيت عميل MQTT:
سوف نستخدم MQTTBox كعميل MQTT. يرجى التنزيل من: https://workswithweb.com/html/mqttbox/installing_ap …
الخطوة 2: الكود
افتح Arduino IDE–> File–> Example–> pubsubclient–> mqtt esp8266 ، ستحصل على نموذج التعليمات البرمجية.
قم بتحرير الكود ليناسب إعدادات WiFi و MQTT الخاصة بك على النحو التالي: 1) Hotspot Configration: ابحث عن سطر الكود أدناه ، ضع ssid وكلمة المرور الخاصة بك هناك.
const char * ssid = "your_hotspot_ssid" ؛ const char * password = "your_hotspot_password" ؛
2) إعداد عنوان خادم MQTT ، هنا نستخدم وسيط MQTT المجاني "broker.mqtt-dashboard.com". يمكنك استخدام عنوان URL الخاص بوسيط MQTT أو عنوان IP الخاص بك لتعيين قيمة mqtt_server أعلاه. يمكنك أيضًا استخدام بعض خوادم MQTT المجانية الشهيرة لاختبار المشروع مثل "broker.mqtt-dashboard.com" و "iot.eclipse.org" وما إلى ذلك.
const char * mqtt_server = “broker.mqtt-dashboard.com” ؛
3) إعدادات عميل MQTT إذا كان وسيط MQTT يتطلب مصادقة معرّف العميل واسم المستخدم وكلمة المرور ، فأنت بحاجة إلى
يتغيرون
إذا (client.connect (clientId.c_str ()))
إلى
if (client.connect (clientId، userName، passWord)) // ضع clientId / userName / passWord هنا
إذا لم يكن الأمر كذلك ، فقط احتفظ بها كإعداد افتراضي ، بعد القيام بذلك ، اختر نوع اللوحة المقابلة ونوع المنفذ كما هو موضح أدناه ، ثم قم بتحميل الرسم التخطيطي إلى NodeMCU.
- اللوحة: "NodeMCU 0.9 (وحدة ESP-12)"
- تردد وحدة المعالجة المركزية: "80 ميجا هرتز" حجم الفلاش: "4 ميجا (3 ميجا SPIFFS)"
- سرعة الرفع: 115200
- المنفذ: اختر المنفذ التسلسلي الخاص بك لـ NodeMCU
الخطوة 3: تكوين عميل MQTT (MQTTBOX)
في هذه الخطوة ، سنوضح كيفية إنشاء عميل MQTT على MQTTBox.
افتح MQTTBox الخاص بك وانقر فوق الزر الأزرق لإضافة عميل MQTT جديد.
قم بتكوين إعدادات العميل MQTT على النحو التالي:
- MQTT Client Name - اختر أي اسم تريده
- البروتوكول - اختر "mqtt / tcp"
- المضيف - اكتب "mqtt_server" في هذا العمود ، وتأكد من أنه مطابق للرسم. (نستخدم "broker.mqtt-dashboard.com" هنا)
- احتفظ بالإعدادات الأخرى كإعدادات افتراضية
- انقر لحفظ التغييرات الخاصة بك.
بعد ذلك ، ستدخل الصفحة الجديدة تلقائيًا. إذا كان كل التكوين أعلاه صحيحًا ، فسيتغير "غير متصل" إلى "متصل" ، وسيتم عرض اسم عميل MQTT واسم المضيف أعلى هذه الصفحة.
إعداد الموضوع: تأكد من أن موضوع نشر عميل MQTT الخاص بك هو نفس موضوع الاشتراك في رسم Arduino الخاص بك (inTopic هنا). تأكد من أن موضوع اشتراك عميل MQTT الخاص بك هو نفسه موضوع نشر رسم Arduino الخاص بك (خارج الموضوع هنا).
الخطوة 4: نتيجة تشغيل البرنامج
بمجرد الانتهاء من التحميل ، إذا كان اسم نقطة اتصال wifi وإعداد كلمة المرور على ما يرام ، وكان وسيط MQTT متصلاً ، فافتح Serial Monitor ، وسترى رسالة النشر "hello world" على الشاشة التسلسلية.
ثم افتح عميل MQTT وانشر الحمولة "1" للموضوع ، وستتلقى NodeMCU هذه الرسائل من خلال الاشتراك في "inTopic" ، وسيضيء مؤشر LED.
نشر الحمولة "0" لهذا الموضوع ، سيتم إيقاف تشغيل NodeMCU LED.