Blynk یک بستر، زیر ساخت و پلت فرم آماده با امکانات فراوان برای توسعه اینترنت اشیاء میباشد. در واقع بلینک با عرضه نرم افزار برای گوشیهای اندروید و ios امکان مدیریت اینترنت اشیاء را با بهترین و پیشرفتهترین امکانات در اختیار کاربر قرار میدهد. اما متأسفانه در ایران دسترسی به سرور این برنامه رایگان و متن باز، محدود شده است. در این مقاله قصد داریم تا با ایجاد یک سرور محلی یا لوکال سرور (Local Server)، مشکل اپلیکیشن Blynk را برطرف کنیم.
معرفی کوتاه پلتفرم Blynk
Blynk یک اپلیکیشن و پلت فرم است که به شما این امکان را میدهد تا در کمترین زمان ممکن، یک رابط کاربری برای مشاهده و کنترل پروژههای سخت افزاری خود در تلفن هوشمند اندرویدی یا IOS داشته باشید. پس از دانلود اپلیکیشن بلینک، شما قادر خواهید بود تا در آن ثبت نام کنید و سپس یک پروژه جدید در آن ایجاد کنید. شما در این نرم افزار پنل مدیریتی (داشبورد)، دکمههای گوناگون، اسلایدر، نمودار، ابزارک و … در اختیار خواهید داشت تا بتوانید برد اینترنت اشیاء خود را مدیریت کنید.
در واقع مهمترین نقطه قوت این برنامه، وجود رابط کاربری گرافیکی و کاربر پسند آن است که به کاربر اجازه میدهد به راحتی با آن کار کند! برای نمایش اشکال گرافیکی، نیازی به دانش برنامه نویسی موبایل نخواهید داشت.
برای مثال، در تصویر دما و رطوبت دریافت شده از سنسور DHT11 را در نرم افزار اندرویدی میبینید:
دانلود نرم افزار Blynk
نرم افزار اندرویدی blynk را میتوانید از طریق مارکت های معتبر اندرویدی، مثل گوگل پلی دریافت کنید و همچنین نسخه ios از طریق itunes قابل نصب میباشد.
پس از دانلود و نصب نرم افزار، شما میبایست در آن ثبت نام کرده و سپس توکن دریافتی را در برنامه آردوینو وارد نمایید. اما نرم افزار به سرور Blynk متصل نمیشود و نمیتوانید ثبت نام خود را تکمیل کنید:
در این مقاله قصد داریم تا نحوه ساخت سرور محلی (لوکال یا خصوصی) بر روی کامپیوتر شخصی برای Blynk را آموزش دهیم.
ساخت سرور محلی
نیازمندی ها
هر سیستم عاملی که جاوا را اجرا کند.
نصب داشتن جاوا 11.8
حداقل 30 مگابایت حافظه آزاد رم.
باز بودن پورت 9443 (برای اتصال ایمن نرم افزار و سخت افزار از طریق SSL) یا 8080 برای اتصالات غیر ایمن.
راه اندازی
برای راه اندازی سرور، ابتدا خط فرمان سیستم عامل (برای مثال CMD ویندوز) را باز کرده و دستورات زیر را در آن وارد کنید:
ابتدا با استفاده از دستور زیر، اطمینان حاصل کنید که جاوا نسخه 11 را نصب دارید:
java -version
خروجی دستور:
java version “11”
اگر جاوا را نصب نداشتید و یا نسخه آن بروز نیست، پس از دانلود و نصب جاوا، مجدداً امتحان نمایید. سپس به مرحله بعدی بروید. در غیر این صورت ممکن است سرور به درستی را اندازی نشود.
دانلود راه انداز سرور محلی Blynk
ابتدا از آدرس گیت هاب پروژه، فایل آخرین نسخه منتشر شده را (که نامی شبیه به server-0.41.12-java8.jar دارد)، دانلود کنید و در فولدر مناسبی روی کامپیوتر خود ذخیره کنید. بهتر است این فایل را در درایو C ذخیره نمایید.
راه اندازی سرور
فرض کنید فایل جاوا را در درایو C و در فولدری به نام server ذخیره کردهاید. با استفاده از دستور cd به فولدر مورد نظر بروید.
1 | cd c:/server |
سپس با استفاده از دستور زیر، فایل راه انداز سرور را در محیط خط فرمان اجرا کنید تا سرور شما توسط جاوا ایجاد گردد:
1 | java -jar server-0.41.12.jar -dataFolder /path |
توضیح پارامتر به پارامتر دستور بالا:
java: یعنی این دستور باید توسط java اجرا گردد.
-jar: این آپشن به جاوا اطلاع میدهد که فایل برنامه مورد نظر، از نوع jar میباشد.
server-0.41.12.jar: نام فایل راه انداز سروری است که از گیت هاب دانلود کردهاید. نکته: با توجه به نسخه دانلودی شما، ممکن است نام ورژن این فایل متفاوت باشد.
-dataFolder: این پارامتر یا آپشن، مسیر پوشه اطلاعات سرور را مشخص میکند. شما میتوانید آدرس فولدر دلخواهی را نسبت به آدرس فعلی، آدرس دهی کنید. اگر این آپشن یا مقدار آن را وارد نکنید، آدرس اشتباه باشد و یا فولدری که آدرس دادهاید، وجود نداشته باشد، جاوا به شما اخطار میدهد ولی پوشه اطلاعات سرور را در مسیر موقتی در Temp ایجاد میکند.
پاسخ CMD برای راه اندازی سرور محلی Blynk با جاوا
1 2 | WARNING : '/path' does not exists. Please specify correct -dataFolder parameter. Your data may be lost during server restart. Using temp folder : C:\Users\admin\AppData\Local\Temp\blynk |
در صورتی که همه چیز درست باشد، در ادامه پیامی مشابه پیام زیر دریافت خواهید کرد:
1 2 3 4 5 | Blynk Server 0.41.13-SNAPSHOT successfully started. All server output is stored in folder 'c:\server\.\logs' file. Your Admin url is https://192.168.1.101:9443/admin Your Admin login email is admin@blynk.cc Your Admin password is admin |
این بدان معنی است که سرور محلی با موفقیت راه اندازی شده است و که آی پی سرور محلی (لوکال)، نام کاربری و رمز عبور ورود به نرم افزار بلینک شما را میدهد!
ورود به نرم افزار
دقت داشته باشید که سرور ایجاد شده، فقط در شبکه محلی خودتان قابل دسترسی است. برای مثال اگر با وای فای به همان اینترنتی که به کامپیوتر شخصیتان متصل است، وصل شوید، میتوانید از آن استفاده کنید، نه با دیتای سیم کارت! حال میتوانید درگوشی هوشمند خود وارد نرم افزار Blynk شده و هنگام ورود، آدرس سرور محلی (خصوصی) خود را به همراه پورت اعلام شده در مرحله قبل وارد کنید. سپس با مشخصات لاگین مرحله قبل وارد شوید.
مزایا و معایب ایجاد سرور محلی یا لوکال
یکی از مزایای ایجاد سرور در شبکه محلی، خصوصی و امن بودن ارتباط است. شما در این روش اطلاعات خود را برای سرور Blynk ارسال نمیکنید و همه چیز درون شبکه خصوصی خودتان است. اما عیب اصلی این روش، محدود بودن به شبکه محلی است. یعنی شما نمیتوانید از بیرون و از طریق اینترنت به آن متصل شوید، مگر این که با تنظیمات روتر (router) آشنا باشید. در این صورت با تنظیم روتر میتوانید از طریق آی پی اینترنت نیز به سرور محلی خود متصل شوید. همچنین یکی دیگر از معایب این روش این است که شما همیشه باید کامپیوتر خود را به عنوان سرور روشن نگه دارید! دیگر معایب و مزایا را شما در نظرات بیان کنید!
سلام پروژه گیتهاب رو باز نمیکنه
اگه دارید لطفا خودتون داخل سایت آپلود کنید
امکان نگهداری همه ریسورس ها رو نداریم
سلام برای من موقع ساخت سرور ارور زیر رو میده:
unable to access jarfile server
مشکل چیه؟ اخرین نسخه جاوا هم نصب کردم. نمیدونم منظورش از نسخه جاوا یازده کدومه؟!
چون jre جاوا اخرین نسخش 8 و 10عه یازده نداره
ولی jdk تا نسخه 14 اش هم اومده
همشم نصب کردم ولی باز این مشکل هست لطفا راهنمایی کنید
درود بر شما.
به احتمال خیلی زیاد، شما به فولدری که فایل جاوا در آن قرار دارد، با دستور cd جابجا نشدهاید. اگر ویندوزی هستید، سعی کنید این فایل را در درایو C قرار دهید.
همین طور ممکن است ورژن و نام فایلی که دانلود کردید، متفاوت باشد، به این نکته نیز دقت فرمایید.
سلام اگر مودم از نوعی باشه که بشه یک اکانت اتصال خصوصی مجازی روش ست کرد کلا دیگه نیاز به سرور لوکال و داستانهای بعدی نیست؟
درود بر شما.
اگر منظورتون شبکه guest هست که نه، اون یه بحث دیگه ایه.
اگر قابلیت port forwarding داشته باشه، میتونید.
همین طور اگر آی پی استاتیک ندارید از یک سرویس DDNS میتونید استفاده کنید.
ساام وخسته نباشید مقاله بسیار مفیدی بود تشکر اگر میشد به این سازمانی که فیلتر میکنه بگیم این سرورو از فیلتر بیاره بیرون خیلی خوب میشه
درود بر شما.
البته احتمال داره که خود سرور بلینک ایران رو تحریم کرده باشه.
سلام ممنون میشم درباره لینوکس و آموزشش رو هم بزارین،و این که چه چیز شگفت انگیزی در لینوکس هست که حتی حاضر به مقایسه با ویندوز هم نیستن من و خیلی های دیگه استقبال میکنیم با تشکر
درود بر شما، میتونید آموزش های امبدد لینوکس سیسوگ که به تازگی شروع شده اند رو دنبال کنید:
https://sisoog.com/embedded-linux-training-course/
دمتون گرم خیلی ممنون از مطلب مفیدتوون واقعا کاربردیه بالاخره موفق شدم رو لبتابم سرور لوکال راه بندازم بلینکم راه افتاد خیلی حال کردم!!! قبلش هر چقدر میخواستم خودم این کارو بکنم نمیتونستم
از اینکه آموزش براتون مفید بوده خوش حالم!
سلام مهندس
مطلب خیلی خوب و جالبی بود.برای اون مورد آخر که گفتید نمیشه از خارج از شبکه محلی به این سیستم متصل شد یه پیشنهاد دارم که احتمالا حل میکنه این مشکل رو.
به نظرم اگه به جای اینکه از کامپیوتر خونه به عنوان سرور استفاده کنیم از سرورهای رایگان که تو اینترنت هستند استفاده کنیم میتونیم دو تا مشکل رو همزمان حل کنیم.مشکل اول اینکه دسترسی از خارج از شبکه امکان پذیر میشه و مشکل دوم اینکه لازم نیست یه کامپیوتر رو برا یه سرور ساده همیشه روشن نگه داریم.
سرورهایی که من باهاشون کار کردم مثه Portmap.io خیلی ساده میتونن این مشکل رو حل کنن و چون محل این سرورها هم خارج از ایران هستش اون مشکلات احتمالی که میگفتید رو نخواهد داشت.
اون قسمتی هم که گفتید از طریق تنظیمات روتر مشکل دسترسی رو حل کنیم احتمالا منظورتون روش Port Forwarding بوده.این روش برای روترهای خونگی جواب میده ولی اگه شما بخواید از مودم های USB مثلا استفاده کنید امکان این کار رو به احتمال زیاد ندارید (ISP های مخابراتی معمولا اجازه این کار رو نمیدن) و به همین خاطر عملا شاید این روش تو سیستم هایی که قراره قابل حمل باشن اجرایی نیست.
ممنون از مطلب خوبتون و اینکه دانشتون رو به بقیه یاد میدید
درود بر شما.
خوشحالم که مطلب براتون مفید بوده.
البته هاست های رایگان هم از لحاظ امنیتی ممکنه مشکلاتی رو داشته باشن.
ممنون از اینکه شما هم با تجربیاتتون هم افزایی می کنید.
سلام
ممنون از توضیحات با جزئیات عالی تون.
من خیلی حسی بهش ندارم، معمولا هم پوست ام کنده میشه خودم ui میزنم برا همه چی.
اما میشه برا استفاده ی صنعتی یا تجاری، یه سرور خیلی ارزون از یه جا مثل “ابر آروان ” اجاره کرد و روش نصب کرد.
اینطوری احتمالا میشه توی چند پروژه هم ازش استفاده کرد. آنلاین و بی دغدغه
مرسی
درود بر شما
بله، قطعاً اگر کسی بتونه خودش UI رو بنویسه خیلی بهتره و خیال خودش هم از هر نظر راحت تره. اما به هر حال این هم یک ابزاره که میتونه برای خیلیها که UI نمیتون بنویسن مفید باشه و سرعت اجرای پروژشون رو بیشتر کنه.
سلام، با این اپ فقط برد های pi, arduino,, رو میتونیم مدیریت کنیم؟
بردهایی ک خودمون طراحی کردیم رو نمیتونیم
درود بر شما.
چیزی که متن بازه رو قطعاً میشه ازش استفادههای مفیدتری هم کرد.
فقط شما کافیه بدونید بردهای دیگه چه اطلاعاتی رو و با چه فرمتی به سرور ارسال می کنن، شما هم همون ها رو ارسال کنید، همین!
مستندات و کدهای آردوینو برای پروژههای ساده بلینک رو هم که نگاه کنید، به راحتی با طرز کارشون آشنا می شید.
خیلی ممنون از توضیح کاملتون
سلام
ممنون بابت اشتراک دانشتون
میشه از طرق ip forwarding و یک قدم جلو تر از طریق dynamic dns با یک دامنه به سرور لوکال کانکت شد
من اطلاعات دقیقی ندارم در این باره ولی میگم: احتمالا بشه این سرور رو سرویس ابری فندق که پلن رایگان هم داره راه اندازی کرد ولی فک کنم باید داکر و یه سری ابزار دیگه هم بلد باشیم
درود بر شما
فکر میکنم برای راه اندازی باید دسترسی خاصی هم به سرورها داشته باشید که این موضوع رو باید روی سرویس مربوطه تست کنید.
متشکرم.
سلام مرسی بابت مطلب خوبتون
ایا میشه این فایل جاوا روی سرور لینوکسی خودمون اجرا کنیم و از حالت سرور محلی درش بیاریم؟؟
اگه امکانش هست یه راهنمایی بفرمایین??
درود بر شما
توی readme گیت هاب توضیحاتی برای لینوکسی ها هم وجود داره که بدنیست اون ها رو هم مطالعه کنید:
https://github.com/blynkkk/blynk-server