شاید پیش اومده خواسته باشید پروژهای انجام بدید و نیاز به داشبورد IoT داشته باشید. مثلاً خواسته باشین مانیتورینگ دما و رطوبت انجام بدین، نموداری از تغییرات دما و رطوبت بهصورت روزانه – هفتگی – ماهانه داشته باشین. وقتی دما و رطوبت از حدی پایینتر اومد، یا از حدی بالاتر رفت، هشدار بدین و یا دستگاهی رو برای تنظیم دما و رطوبت روشن کنین. شاید خواسته باشین به این اطلاعات روی اینترنت هم دسترسی داشته باشین، تا از طریق کامپیوتر رومیزی یا موبایل هم به اون اطلاعات دسترسی داشته باشین.
حالا هر زمان و مکانی که میخواد باشه.
- پروتکل ارسال و دریافت اطلاعاتتون چیه؟ پروتکل ارسال فرامینتون چیه؟
- چرخ رو از اول اختراع میکردین؟
- روی دستگاه کدهای ارتباطی رو مینوشتین؟
- سرو محلی و سرور اینترنتی رو کدنویسی میکردین؟
- اپلیکیشن داشبورد تحت وب یا موبایل رو کدنویسی میکردین؟
- یعنی پروژهای که میتونست سهماهه تموم بشه تبدیل میشد به پروژهای دوازده ماهه؟
- اگه هم عجله داشتین که بیشتر خرج میکردین؟!
داشبورد های متنباز IoT
کسایی که داشبورد و اپلیکیشن نوشتن میدونن اصلاً کار سادهای نیست! کسایی که پروتکلهای ارتباطی رو کد نوشتن، میدونن چقدر باگ میتونه پیش بیاد! راهحل بهتر از نظر من اینه که سیستمهای موجود، بهخصوص متنباز (Open Source) ها رو باید بررسی کرد و بر اساس نیاز پروژه باید دید.
برای مثال:
- کدوم بیشترین و بهترین امکانات رو میدن؟
- کدومشون واقعاً اپنسورس کاملن؟
- کدومشون فعالترن و مرتب نسخه میدن و مشکلات رو حل میکنن و قابلیت اضافه میکنن؟
- کدومشون مشتری بیشتری دارن؟
- کدومشون مستندات بهتر و کاملتری دارن؟
- کدوم قابلیت توسعه سادهتری دارن؟ (مثلاً شاید نیاز بشه یک نوع نمودار جدید به داشبورد اضافه کنین یا قابلیت بهخصوصی رو به موتور قوانینش اضافه کنین)
من تقریباً این مسیر رو طی کردم و به چند تا سیستم خوب آشنا شدم.
- یکی ThingsBoard
- یکی OpenRemote
- یکی Blynk
اولی و دومی اپنسورس هستن. سومی اپنسورس نیست اما قابلیتهای جذابتری داره و البته پلان رایگان هم میده.
از قابلیتهای مشترکشون ایناست:
- پشتیبانی از پروتکلهای MQTT، CoAP، LoRaWAN، SigFox و NB-IoT
- مدیریت دستگاهها و مشخصکردن موقعیت مکانی روی نقشه
- داشبورد بلادرنگ
- بهصورت زنده میتونین اطلاعات ارسالی دستگاهها رو در انواع نمودار داشته باشین و برای خودتون یک صفحه مدیریتی و مرکز کنترل درست کنین
- حتی از ویجتهایی استفاده کنین که فرامینی رو به سمت دستگاه بفرستن
- پشتیبانی از Rule Engine یا در واقع موتور قوانین
مثلاً میتونین تعریف کنین اگه دمای ارسالی دستگاه از 40 بیشتر شد هشدار بده و این هشدار رو از طریق ایمیل براتون ارسال کنه و یا مثلاً به یک ربات تلگرام متصلش کنید تا اونجا هشدار رو به دستتون برسونه و چندین قابلیت دیگه که گفتنشون خالیازلطف نیست. اما اینجا جاشون نمیشه!
همچنین بخوانید:
ایجاد سرور محلی برای رفع مشکل اپلیکیشن Blynk
کدوم داشبورد IoT رو انتخاب کنیم
کدوم داشبورد IoT رو انتخاب کنیم؟ از بلینک که بگذریم. (چون اپنسورس نیست)
تینگزبورد یا اپنریموت؟
گیتهاب جفتشونو که بررسی کردم به نتایج جالبی رسیدم.
اپن ریموت فعالتره. هر هفته داره توسعه داده میشه. اما تینگزبورد سرعت توسعش پایین تره.
اپن ریموت قابلیتهای موتور قوانینش هم بیشتره! شاید همین دلیلی باشه که مجبورن بیشتر کد بنویسن؟!
باگها و اشکالات گزارش شده برای تینگزبورد از هزار تا بیشتره، اما اپن ریموت زیر دویست تاس.
این به چه معناست؟
ستارههای تینگزبورد بیش از نه هزار تاس و اپن ریموت زیر پانصد تا! احتمالاً محبوبیت تینگزبورد خیلی بیشتره و مشکلات بیشتری براش گزارش میشه! و شاید چون پایداریش بیشتره خیلی کدها رو توسعه نمیدن.
خوب بریم سراغ نصبشون
اپن ریموت فقط گزینه داکر گذاشته! چه بد؟! شاید کسی نخواد از داکر استفاده بکنه! اونوقت کارش سختتر میشه!
همینجا اوپن ریموت امتیاز منفی گرفت و من بیخیال نصبش شدم!
تینگزبورد انواع گزینهها رو گذاشته، هم خدمات ابری میده هم و اجازه میده خودمون روی سرور نصب کنیم و هم گزینه داکر داره، هم گزینه بدون داکر! نصبش خیلی سرراست بود. معماری ذخیرهسازی اطلاعاتشم جالبه. یک ساختار هیبریدی داره که اجازه میده با PostgreSQL کار بشه. اگه لود بره بالا پیشنهاد کرده پوستگره با Cassandra ترکیب بشه. اگه لود خیلی بالاتر بره پیشنهاد کرده روی پوستگره TimeScaleDB فعال بشه! اجازه استفاده از Kafka رو هم میده برای آنالیزهای آماری و هوش مصنوعی! یک تفاوت جالبی که اپن ریموت و تینگزبورد دارن اینه که اپن ریموت یک اپلیکیشن موبایل هم برای مدیریت داشبوردو میده که این قابلیت رو تینگزبورد نداره.
ولی هر دو دیزاینشون ریسپانسیوه و قابل نمایش بر روی موبایل دارن.
مستندات تینگزبورد عالیه، عالی!
یعنی هر موردی که جستجو میکنم بهاحتمالقوی داخل سایت خودش در قسمت مستندات جوابش پیدا میشه!
اما متأسفانه اپن ریموت واقعاً در این زمینه ضعیفه …
مثلاً برای توسعه ویجتها و نوشتن ویجت کاستوم سرچ کردم
تینگزبورد یک صفحه آموزشی اختصاصی برای این کار داره.
ولی برای اپن ریموت چیزی پیدا نکردم!
ارزش شرکتها
خوب مرحله بعدی بریم سراغ ارزش شرکتها
از سایت Crunchbase برای بررسی استفاده کردم.
تینگزبورد توی رنکینگ شرکتها رتبه صد و چهل هزار داره.
اوپن ریموت رتبه دویست و شصت و شش هزار داره. یعنی خیلی عقبه از تینگزبورد!
هر دو در ایالات متحده آمریکا هستن. اپن ریموت سال 2008 بنا نهاده شده
تینگزبورد سال 2016. در سال اخیر هم تینگزبورد بیشتر در اخبار و جراید دیده شده تا اپن ریموت!
هر دو رو با Java نوشتن، انتظار دیگه ای داشتم ولی خوب چه میشه کرد!
ظاهراً برای محصولای سازمانی Java بیشتر امتحان خودشو پس داده ?
پنلشونم با Angular زدند که اونم دشواری خاصی نداره توسعش.
جدای از اینها، قابلیت چندزبانه داره و از زبان فارسی هم پشتیبانی میکنه!
با اینکه کار با جاوا و فریمورک اسپرینگ راحت نیست، من تلاشمو کردم و روی تینگزبورد یکی دو تا قابلیت کوچولو هم کدنویسی کردم و موفق شدم کامپایلش کنم و اجرا بگیرم ?
در آخر هم بگم که تینگزبورد بهشدت fork شده. تعداد بسیار بالایی هم contributor داره. من که همون اول نحوه نصب اپن ریموت زد تو ذوقم. این موارد دیگه رو هم که دیدم، کلاً اپن ریموت رو بوسیدم گذاشتم کنار!
اگه پروژهای برام پیش اومد انتخاب اولم تنیگزبورده
نظر شما چیه؟ شما از چه پلتفرمی برای داشبورد IoT استفاده میکنین؟
اگه این مقاله براتون جالب بود، لطفاً به اشتراک بذاریدش!
اگه در مورد موضوعی خواستید با من ارتباط بگیرید، میتونید از طریق اینستاگرام اقدام کنید: aliep_ir
منبع:سیسوگ