ThingsBoard چیست؟
ThingsBoard یک پلتفرم متنباز اینترنت اشیا برای جمعآوری، پردازش، ذخیرهسازی و نمایش داده دستگاههاست. در پروژههای اینترنت اشیا صنعتی، از آن برای پایش تجهیزات، مصرف انرژی، شرایط محیطی و وضعیت خطوط تولید استفاده میشود. پلتفرم در دو نسخه اصلی عرضه میشود:
| ویژگی | Community Edition (CE) | Professional Edition (PE) |
|---|---|---|
| مجوز | متنباز (Apache 2.0) | تجاری |
| هسته پلتفرم | مدل دستگاه و دارایی، تلهمتری، موتور قواعد، هشدار، داشبورد | همه امکانات CE |
| امکانات افزوده | — | از جمله برندسازی سفارشی (White-labeling)، گروهبندی موجودیتها و دسترسی نقشمحور پیشرفته، یکپارچهسازیهای آماده با سرورهای شبکه و سرویسهای ابری، زمانبندی و گزارشگیری |
| کاربرد مناسب | پایلوت، پروژههای داخلی، تیمهایی با توان توسعه | استقرارهای چندمشتری و پروژههایی که به این امکانات نیاز دارند |
فهرست دقیق امکانات هر نسخه با انتشارهای جدید تغییر میکند؛ پیش از تصمیمگیری، مستندات رسمی نسخه جاری را بررسی کنید.
مدل داده: دستگاه، دارایی، تلهمتری و ویژگیها
درک مدل داده، پایه طراحی هر راهکار مانیتورینگ صنعتی روی ThingsBoard است.
- دستگاه (Device): هر منبع داده، مانند یک حسگر، کنتور یا گیتوی. هر دستگاه اعتبارنامه اتصال خود را دارد.
- دارایی (Asset): موجودیت منطقی مانند سایت، سالن، خط تولید یا ماشین که دستگاهها به آن تعلق دارند.
- رابطه (Relation): پیوند میان موجودیتها، مثلاً «سالن ۲ شامل خط A است». این روابط سلسلهمراتب کارخانه یا معدن را بازسازی میکنند و برای تجمیع داده و ناوبری در داشبورد به کار میروند.
- پروفایل دستگاه و دارایی: تنظیمات مشترک برای گروهی از موجودیتهای همنوع، از جمله پروتکل انتقال، زنجیره قواعد پیشفرض و قواعد هشدار.
دادههای هر موجودیت در دو دسته نگهداری میشوند:
| نوع | ماهیت | نمونه |
|---|---|---|
| تلهمتری (Telemetry) | سری زمانی؛ هر مقدار با برچسب زمانی ذخیره میشود | دما، ارتعاش، جریان، فشار |
| ویژگی (Attribute) | مقدار وضعیتی یا پیکربندی، بدون تاریخچه سری زمانی؛ در سه دامنه client، server و shared | نسخه فریمور، محل نصب، آستانه هشدار، بازه ارسال |
یک قاعده ساده: آنچه در طول زمان تغییر میکند و باید روند آن دیده شود، تلهمتری است؛ آنچه وضعیت یا تنظیم را توصیف میکند، ویژگی است.
در عمل، بهتر است سلسلهمراتب داراییها پیش از اتصال نخستین دستگاه طراحی شود. ساختاری مانند سایت، ناحیه، خط و ماشین، که حسگرها به ماشین مربوط متصل شدهاند، امکان تجمیع مقادیر در سطح خط، فیلتر هشدارها بر اساس ناحیه و استفاده مجدد از داشبوردها در سایتهای مختلف را فراهم میکند. قواعد نامگذاری یکسان برای دستگاهها و کلیدهای تلهمتری، مثلاً استفاده از یک کلید ثابت برای جریان موتور در همه انواع ماشین، از پاکسازی پرهزینه در آینده جلوگیری میکند.
دریافت داده و گیتویها
ThingsBoard پروتکلهای MQTT، HTTP و CoAP را بهصورت بومی پشتیبانی میکند و در نسخههای جاری LwM2M و SNMP نیز در دسترساند. در محیط صنعتی، MQTT به دلیل سبکی، اتصال پایدار و پشتیبانی از الگوی انتشار و اشتراک، رایجترین انتخاب است.
بسیاری از تجهیزات صنعتی مستقیماً به پلتفرم وصل نمیشوند. در این حالت، گیتوی نقش واسط را دارد:
- ThingsBoard IoT Gateway: نرمافزاری متنباز که از طریق کانکتورها داده Modbus، OPC UA، BACnet، CAN و پروتکلهای دیگر را میخواند و با MQTT به پلتفرم میفرستد.
- گیتویهای صنعتی مستقل: سختافزارهایی که داده PLC را جمعآوری کرده و با MQTT یا HTTP ارسال میکنند.
- سرور شبکه LoRaWAN: داده حسگرهای بیسیم از سرور شبکه به پلتفرم منتقل میشود. نوع شبکه، خصوصی یا عمومی، در هر پروژه جداگانه انتخاب میشود.
برای سایتهایی با اتصال ناپایدار، مانند معادن، ThingsBoard Edge امکان پردازش و نمایش محلی و همگامسازی بعدی با سرور مرکزی را فراهم میکند.
قالب داده (Payload) نیز از ابتدا اهمیت دارد. حسگرها اغلب داده فشرده باینری میفرستند که باید به مقادیر نامدار با واحد مشخص تبدیل شود. رمزگشایی میتواند در سرور شبکه، گیتوی یا مبدل داخل پلتفرم انجام شود؛ مهم این است که در یک نقطه مشخص و با کنترل نسخه انجام شود.
موتور قواعد و هشدارها
موتور قواعد قلب پردازش داده در ThingsBoard است. پیامهای ورودی از زنجیرههای قواعد (Rule Chain) عبور میکنند که از گرههای فیلتر، غنیسازی، تبدیل و اقدام تشکیل شدهاند. نمونه کاربردها:
- تبدیل واحد یا محاسبه مقادیر مشتق، مثلاً توان از ولتاژ و جریان؛
- افزودن ویژگیهای دارایی والد به پیام برای تحلیل در سطح خط تولید؛
- ارسال داده به سامانههای بیرونی از طریق REST، MQTT یا Kafka؛
- ایجاد و پاککردن هشدار.
منطق سفارشی در گرههای اسکریپت با JavaScript یا زبان TBEL نوشته میشود. هشدارها را میتوان مستقیماً در پروفایل دستگاه با شرطهای آستانه، مدتزمان یا تکرار تعریف کرد. هر هشدار سطح شدت (از جمله CRITICAL، MAJOR، MINOR و WARNING) و چرخه عمر فعال، تأییدشده و پاکشده دارد. برای جلوگیری از «خستگی هشدار»، آستانهها را بر اساس رفتار واقعی تجهیز تنظیم کنید و برای شرایط گذرا تأخیر زمانی در نظر بگیرید.
داشبوردها و اصول طراحی
داشبوردهای ThingsBoard از ویجتها ساخته میشوند: نمودارهای سری زمانی، نشانگرها، جدولها، نقشهها، جدول هشدار و ویجتهای کنترلی. نامهای مستعار موجودیت (Entity Alias) امکان میدهد یک داشبورد برای چندین ماشین یا سایت مشابه به کار رود، و حالتهای داشبورد (State) ناوبری از نمای کلی به جزئیات را ممکن میکنند. یک داشبورد مانیتورینگ ThingsBoard خوب معمولاً این اصول را رعایت میکند:
- هر داشبورد برای یک مخاطب: اپراتور، تعمیرات و مدیریت به اطلاعات متفاوتی نیاز دارند.
- سلسلهمراتب روشن: نمای کلی سایت، سپس خط یا ماشین، سپس جزئیات حسگر.
- اولویت با استثنا: وضعیت غیرعادی و هشدارهای فعال باید در نگاه اول دیده شوند.
- رنگ معنادار: رنگهای هشدار فقط برای وضعیت هشدار به کار روند.
- واحد و بازه زمانی صریح: هر نمودار واحد و بازه زمانی مشخص داشته باشد.
- کارایی: تعداد ویجتها و حجم داده هر پرسوجو را محدود کنید و برای بازههای طولانی از تجمیع استفاده کنید.
استقرار، مقیاسپذیری و امنیت
ThingsBoard را میتوان بهصورت تکسرور (Monolithic) یا معماری ریزسرویس مستقر کرد. برای پایلوت و پروژههای کوچک، یک سرور با PostgreSQL معمولاً کافی است. با افزایش حجم تلهمتری، ذخیرهسازی ترکیبی با Cassandra یا TimescaleDB برای سریهای زمانی و استفاده از Kafka بهعنوان صف پیام، مقیاسپذیری و پایداری را بهبود میدهد. نکات کلیدی:
- پیش از انتخاب معماری، تعداد دستگاهها، بازه ارسال و مدت نگهداری داده را برآورد کنید.
- سیاست نگهداری (TTL) و پشتیبانگیری منظم را از ابتدا تعریف کنید.
- همه اتصالات را با TLS رمزگذاری کنید و از اعتبارنامه یکتا برای هر دستگاه، مانند توکن دسترسی یا گواهی X.509، استفاده کنید.
- دسترسی کاربران را با مدل Tenant و Customer و نقشهای حداقلی محدود کنید و احراز هویت دومرحلهای را فعال کنید.
- سرور پلتفرم را از شبکه کنترل صنعتی جدا نگه دارید و جریان داده را یکطرفه و از طریق گیتوی طراحی کنید.
- بهروزرسانیهای امنیتی را برنامهریزیشده و پس از آزمون در محیط آزمایشی اعمال کنید.
جمعبندی
ThingsBoard با مدل داده انعطافپذیر، موتور قواعد و داشبوردهای قابل پیکربندی، پایه مناسبی برای مانیتورینگ صنعتی است؛ به شرط آنکه مدل دارایی، قواعد هشدار، معماری استقرار و امنیت از ابتدا سنجیده طراحی شوند. توضیحات بیشتر در صفحههای مانیتورینگ صنعتی و اینترنت اشیا صنعتی آمده است. برای بررسی یک پروژه مشخص، از صفحه تماس استفاده کنید.
پرسشهای متداول
تفاوت نسخه CE و PE در ThingsBoard چیست؟
نسخه Community Edition متنباز و رایگان است و قابلیتهای اصلی پلتفرم را دارد. نسخه Professional Edition تجاری است و امکاناتی مانند برندسازی سفارشی، گروهبندی پیشرفته موجودیتها، یکپارچهسازیهای آماده و گزارشگیری را اضافه میکند.
آیا ThingsBoard میتواند داده PLC و Modbus را دریافت کند؟
بله، معمولاً از طریق ThingsBoard IoT Gateway یا یک گیتوی صنعتی دیگر که داده Modbus یا OPC UA را میخواند و با MQTT به پلتفرم ارسال میکند.
ThingsBoard را روی سرور خودمان نصب کنیم یا از سرویس ابری استفاده کنیم؟
هر دو ممکن است. استقرار روی سرور خودی کنترل کامل بر داده و شبکه میدهد اما نگهداری، پشتیبانگیری و بهروزرسانی بر عهده تیم شماست. انتخاب به الزامات امنیتی، مقررات داده و توان عملیاتی تیم بستگی دارد.