آموزش
اتصال Node-RED به بروکر MQTT
۱۰ آبان ۱۴۰۵۶ دقیقه مطالعه
راهنمای تنظیم گرههای mqtt in و mqtt out در Node-RED برای اتصال امن به بروکر روی پورت 8883، همراه با یک جریان نمونه برای دریافت و پردازش داده دستگاهها.
چرا Node-RED؟#
Node-RED ابزاری بصری برای ساخت جریانهای داده است: گرهها را روی صفحه میکشید و به هم وصل میکنید. گرههای MQTT آن بهصورت پیشفرض نصب هستند، پس بدون کدنویسی میتوانید داده دستگاهها را دریافت کنید، پردازش کنید و فرمان بفرستید.
تعریف بروکر#
یک گره mqtt in روی صفحه بگذارید و روی آن دوبار کلیک کنید. کنار فیلد Server روی آیکون مداد بزنید تا یک بروکر جدید تعریف کنید:
- Server:
mqtt.mqttcloud.irو Port:8883 - گزینه Use TLS را فعال کنید. برای گواهی معتبر Let's Encrypt بروکر لازم نیست فایل CA بدهید.
- Protocol را روی MQTT V3.1.1 بگذارید؛ بروکر از همین نسخه پشتیبانی میکند.
- Client ID: شناسه دستگاهی که در داشبورد ثبت کردهاید، مثلاً
node-red-01. اگر این فیلد خالی بماند، Node-RED یک شناسه تصادفی میسازد که بروکر آن را رد میکند. - در زبانه Security، نام کاربری و رمز عبور اکانت MQTT را وارد کنید.
هر بروکر تعریفشده در Node-RED یک اتصال است. اگر Node-RED را در دو جا اجرا میکنید، برای هرکدام شناسه جدا ثبت کنید.
یک جریان نمونه#
- گره
mqtt in: تاپیکalice/sensors/#، QoS 1 و Output روی «a parsed JSON object» تا داده JSON به شیء تبدیل شود. - یک گره
functionبرای پردازش، مثلاً هشدار وقتی دما از حدی بالاتر رفت. - گره
mqtt out: با همان بروکر و تاپیکalice/alerts/tempبرای انتشار نتیجه.
کد نمونه گره function:
js
if (msg.payload.c > 30) {
msg.payload = { alert: "high temperature", value: msg.payload.c };
return msg;
}
return null;بعد از Deploy، زیر گرههای MQTT باید وضعیت connected را ببینید.
اگر وصل نشد#
- اگر وضعیت مدام بین connecting و disconnected عوض میشود، Client ID و نام کاربری و رمز را بررسی کنید.
- تاپیکهای گرههای in و out هر دو باید با
نامکاربری/شروع شوند؛ انتشار روی تاپیک خارج از این فضا اتصال را قطع میکند. - برای جزئیات بیشتر، عیبیابی اتصال MQTT را ببینید.
#NodeRED#MQTT#اتوماسیون
