4.4 KiB
کنترل چراغ خواب خود از طریق اینترنت - Wio Terminal
در این بخش از درس، شما دادههای تلومتری مربوط به سطح نور را از Wio Terminal خود به MQTT broker ارسال خواهید کرد.
نصب کتابخانههای JSON برای Arduino
یک روش محبوب برای ارسال پیامها از طریق MQTT استفاده از JSON است. یک کتابخانه برای Arduino وجود دارد که خواندن و نوشتن اسناد JSON را آسانتر میکند.
وظیفه
کتابخانه JSON برای Arduino را نصب کنید.
-
پروژه چراغ خواب را در VS Code باز کنید.
-
خط زیر را به عنوان یک خط اضافی به لیست
lib_deps
در فایلplatformio.ini
اضافه کنید:bblanchon/ArduinoJson @ 6.17.3
این کتابخانه ArduinoJson، یک کتابخانه JSON برای Arduino را وارد میکند.
ارسال تلومتری
مرحله بعدی ایجاد یک سند JSON با دادههای تلومتری و ارسال آن به MQTT broker است.
وظیفه - ارسال تلومتری
دادههای تلومتری را به MQTT broker ارسال کنید.
-
کد زیر را به انتهای فایل
config.h
اضافه کنید تا نام موضوع تلومتری برای MQTT broker تعریف شود: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 broker استفاده کنید.
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 ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه انسانی حرفهای استفاده کنید. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.