4.1 KiB
التحكم في ضوء الليل عبر الإنترنت - Wio Terminal
في هذا الجزء من الدرس، ستقوم بإرسال بيانات التتبع الخاصة بمستويات الضوء من جهاز Wio Terminal إلى وسيط MQTT.
تثبيت مكتبات JSON الخاصة بـ Arduino
طريقة شائعة لإرسال الرسائل عبر MQTT هي استخدام JSON. هناك مكتبة Arduino لـ JSON تسهل قراءة وكتابة مستندات JSON.
المهمة
قم بتثبيت مكتبة Arduino JSON.
-
افتح مشروع ضوء الليل في VS Code.
-
أضف السطر التالي كخط إضافي إلى قائمة
lib_deps
في ملفplatformio.ini
:bblanchon/ArduinoJson @ 6.17.3
هذا يقوم باستيراد ArduinoJson، وهي مكتبة JSON خاصة بـ Arduino.
نشر بيانات التتبع
الخطوة التالية هي إنشاء مستند JSON يحتوي على بيانات التتبع وإرساله إلى وسيط MQTT.
المهمة - نشر بيانات التتبع
قم بنشر بيانات التتبع إلى وسيط MQTT.
-
أضف الكود التالي إلى أسفل ملف
config.h
لتعريف اسم موضوع التتبع الخاص بوسيط MQTT:const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
CLIENT_TELEMETRY_TOPIC
هو الموضوع الذي سيقوم الجهاز بنشر مستويات الضوء عليه. -
افتح ملف
main.cpp
. -
أضف توجيه
#include
التالي إلى أعلى الملف:#include <ArduinoJSON.h>
-
أضف الكود التالي داخل دالة
loop
، مباشرة قبلdelay
:int light = analogRead(WIO_LIGHT); DynamicJsonDocument doc(1024); doc["light"] = light; string telemetry; serializeJson(doc, telemetry); Serial.print("Sending telemetry "); Serial.println(telemetry.c_str()); client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());
يقوم هذا الكود بقراءة مستوى الضوء، وإنشاء مستند JSON باستخدام ArduinoJson يحتوي على هذا المستوى. يتم بعد ذلك تحويله إلى سلسلة نصية ونشره على موضوع التتبع الخاص بـ MQTT بواسطة عميل MQTT.
-
قم برفع الكود إلى جهاز Wio Terminal الخاص بك، واستخدم Serial Monitor لرؤية مستويات الضوء التي يتم إرسالها إلى وسيط MQTT.
Connecting to WiFi.. Connected! Attempting MQTT connection...connected Sending telemetry {"light":652} Sending telemetry {"light":612} Sending telemetry {"light":583}
💁 يمكنك العثور على هذا الكود في المجلد code-telemetry/wio-terminal.
😀 لقد قمت بنجاح بإرسال بيانات التتبع من جهازك.
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.