اتصال Node-RED به بروکر MQTT
آموزش

اتصال 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#اتوماسیون