در سومین بخش آموزش پلتفرم اینترنت اشیا uBeac گیت وی و نقش آن را توضیح خواهیم داد. IOT Gateway یا همان گیت وی اینترنت اشیا مشابه گیت وی شبکه است که ارتباط را بین تکنولوژی های مختلف برای شبکه ی دیتاها فراهم میکند. مهم ترین بخش در پلتفرم ها پیاده سازی گیت وی Gateway به صورت سخت افزاری و نرم افزاری است. در این آموزش روش ساخت گیت وی در پلتفرم یوبیک را یاد خواهیم گرفت. در ادامه ساخت گیت وی در uBeac با مرجع تخصصی IoT پلتفرم uBeac به زبان فارسی، دیجی اسپارک همراه باشید.
گیت وی Gateway
IOT Gateway دیوایس و نرم افزاری هستند که سر راه سیستم هایی مانند دیوایس هایی که به اینترنت متصل هستند، کنترلرها، سنسورها و شبکه هایی ابری Cloud قرار میگیرند. IOT Gateway ها به واسطه ی پروتکل های ارتباطی wifi, bluetooth, ethernet, mqtt, http, serial port برای ارسال دیتا از دیوایس ها استفاده میشوند. اما IOT Gateway هوشمند هستند، آن ها دیتاهای سنسورها را از دیوایس های IOT جمع آوری کرده و پروتکل ها را شناسایی کرده و در نهایت دیتاها را قبل از ارسال به پلتفرم در شبکه پردازش میکند. دیتاها هر لحظه توسط IOT Gateway تولید شده و به Cloud ارسال میشود. اولین هدف گیت وی ها تامین یک رابط میان انواع مختلف تکنولوژی های ارتباطی است. همه ی ما یک گیت وی داریم که همان روتری هست که به عنوان مودم در خانه و محل کار استفاده میکنیم که یک شبکه برای اتصال دیوایس به اینترنت را برای ما فراهم میکند که به عبارتی همین روتر میتواند یک پل ارتباطی باشد. IOT Gateway همانند یک شبکه روتر عمل میکند و دیتاها را بین دیوایس های IOT و سرویس Cloud هدایت میکند. بعضی از دیوایس های گیت وی فقط دیتا را به سرویس Cloud ارسال میکنند. دیوایس های گیت وی بایستی ترافیک دیتا در داخل باند inbound و خارج باند outbound را مدیریت کنند. منظور از ترافیک خارج باند Outbound traffic ارسال دیتای IOT به Cloud است و ترافیک داخل باند برای مدیریت دیوایس در نظر گرفته میشود. اما مهمترین مسئله ای که ما با آن سرو کار داریم ارتباط بین IOT Gateway با Edge computing است. توسط Edge این امکان فراهم میشود تا محاسبات عمیق تری از دیتاها که به منابع دیتا نزدیک تر هستند را انجام داده و سپس دیتاها را از یک مرکز داده به مرکز داده دیگری ارسال میکند که با استفاده از Edge مقدار داده و فاصله ای که باید طی شود، کاهش یافته و پردازش دیتا با سرعت بالاتری انجام میشود. با یک مثال ساده شروع کنیم اگر بخواهیم یک یخچال را مجهز به IOT کنیم، زمانیکه غذای مشخصی در یخچال رو به اتمام است، به نزدیک ترین مرکز داده محلی اطلاع داده و چرخه ی تامین انجام میشود. محاسبات لبه یا همان Edge Computing، داده های پردازش شده را به منبع داده ها نزدیک تر میکند. تمامی دیوایس ها دیتاها را به Edge Gateway Server ارسال کرده و سپس به محل داده های اصلی نزدیک تر میکند. هر روز تعداد دیوایس های هوشمندی که به شبکه اینترنت متصل میشوند رو به افزایش است، تامین یک شبکه ایمن و در درسترس دغدغه بوده است. تمامی این دیوایس های هوشمند مبتنی بر اینترنت اشیا در حال حاضر تبدیل به بخش جدایی ناپذیر از زندگی ما شدند. در یک شبکه ارسال داده، مهم ترین بخش پردازش و ذخیره دیتا در لبه شبکه است تا روند انتقال دیتا همیشگی باشد. توسط Edge Computing داده هایی که نیاز به تغییر فوری دارند و یا دیتاهای فشرده ای از یک دیوایس هستند را به منبع داده نزدیک تر میکند تا تجربه کاربری راحت تری را ارائه دهد.
گیت وی سخت افزاری Hardware Gateway
در دنیای گیت وی ها، دو انتخاب هست. یک اینکه از نوع آماده استفاده کنیم و مشابه یک روتر وای فای از برندهای معتبر خریداری کنیم. روش دوم هم ساخت گیت وی توسط بردهای امبدد هست. پلتفرم uBeac از گیت وی های سخت افزاری متعددی برای ارسال دیتای سنسورها استفاده میکند. در ادامه برخی از بردهایی که امکان ساخت گیت وی در uBeac به عنوان گیت وی دارند را معرفی کردهایم.
- رزبری پای Raspberry Pi
میتوانید رزبری پای را برای ارسال ریکوئست به پنل یوبیک uBeac تنظیم کنید.
- آردوینو Arduino
میتوانید آردوینو را برای ارسال ریکوئست به پنل یوبیک uBeac تنظیم کنید.
- ESP8266
میتوانید esp8266 را برای ارسال ریکوئست به پنل یوبیک uBeac تنظیم کنید.
- ESP32
میتوانید ESP32 را برای ارسال ریکوئست به پنل یوبیک uBeac تنظیم کنید.
- سایر گیت وی های آماده به صورت زیر است:
- Ingics
- April
- Blue Cats
- Mist
- Jaalee
گیت وی نرم افزاری Software
گیت وی های نرم افزاری مانند اپلیکیشن های اندرویدی است که در ادامه اپلیکیشن هایی که از uBeac پشتیبانی میکنند مشخص شده است.
- Beacon Scanner
- Data Collector
- Ruuvi Station
دومین گیت وی های نرم افزاری uBeac Generic Gateways هستند که در ادامه لیست شده است.
- SingleDevice.SingleSensor
از این قابلیت در هر ریکوئست فقط یک دیتا ارسال میشود. مانند دیتای دما، دیتای روطوبت
{ "mac": "1A:2A:3A:4A:5A:6A", "type": 4, "ts": 1542326605, "unit": 2, "prefix": 0, "data": 123 }
- SingleDevice.MultipleSensor
از این قابلیت در هر ریکوئست دیتا از چندین سنسور ارسال میشود.
{ "ip": "1A:2A:3A:4A:5A:6A", "ts": 1542326605, "sensors": [ { "uid": "SignalStrength", "unit": 22, "prefix": 0, "type": 17, "data": { "rssi": -86, "txPower": -59 } }, { "uid": "Temperature", "unit": 2, "prefix": 0, "type": 4, "value": -59 } ] }
- MultipleDevice.MultipleSensor
از این قابلیت در هر ریکوئست دیتا از چندین دیوایس ارسال میشود.
[ { "ip": "1A:2A:3A:4A:5A:6A", "ts": 1542326605, "sensors": [ { "uid": "SignalStrength", "unit": 22, "prefix": 0, "type": 17, "data": { "rssi": -86, "txPower": -59 } }, { "uid": "Temperature", "unit": 2, "prefix": 0, "type": 4, "value": 26 } ] }, { "mac": "1B:2B:3B:4B:5B:6B", "ts": 1542326605, "sensors": [ { "uid": "SignalStrength", "unit": 22, "prefix": 0, "type": 17, "data": { "rssi": -86, "txPower": -59 } }, { "uid": "Temp", "unit": 2, "prefix": 0, "type": 4, "value": 39 } ] } ]
- HTTP clients
از این قابلیت برای ارسال ریکوئست HTTP استفاده میشود. برای این منظور از مدل گیت وی single sensor استفاده کنید. سپس url دریافتی را در postman قرار دهید. سپس از متد GET, POST,PUT,PATCH برای ریکوئست انتخاب کنید. سپس نوع محتوا را در هدر درخواست خود “application/json “مشخص کنید. HTTP یک پروتکل لایهی به صورت هفت شبکه، یعنی لایهی Application است که برای برقراری ارتباط بین Web Client و Web Server استفاده میشود. این پروتکل، با هر دو پروتکل اصلی لایهی Transport، یعنی TCP و UDP سازگار است و میتواند بر پایهی آنها اتصالات را برقرار کند. در پروتکل HTTP برای نمونه یک مرورگر، درخواستی را برای سرور در قالب این پروتکل ارسال میکند. این درخواست میتواند یک Request باشد. در uBeac هر بار یک ریکوئست از سنسور و دیوایس از طریق پروتکل HTTP ارسال میشود. پس از دریافت Request، سرور آن را بررسی میکند و براساس پارامترهایی مانند در دسترس بودن Resource مورد نظر کاربر و درست بودن درخواست ارسال شده، اقدامات بعدی صورت میگیرد. برای ارسال دیتا از متد post استفاده میکنیم. از این متد برای ارسال یک داده به وب سرور استفاده میشود. برای قرار دادن داده در url از متد post استفاده میکنیم.
- MQTT clients
از این قابلیت برای ارسال ریکوئست MQTT استفاده میشود. برای پابلیش دیتا از MQTT CLIENT میتوانید استفاده کنید. روتکل MQTT یک پروتکل اتصالاتی ماشین به ماشین M2M بر پایه اینترنت اشیا است. از پروتکل TCP ,IP بهره میبرد. سیستم MQTT متشکل از کلاینت ( مشتریانی ) است که با یک سرور ارتباط برقرار میکنند؛ به اصطلاح به آن Broker گفته میشود. MQTT بر پایه سیستم publish و subscribe بنا شده است. یک کلاینت میتواند نقش یک انتشار دهنده اطلاعات ( Publisher ) و یا دریافت کننده اطلاعات باشد. دیتا در تاپبکها مرتب شده است. زمانیکه انتشار دهنده یک مورد جدید از دادهها را جهت توزیع فراهم میکند، یک پیام کنترل با دیتا به واسط اتصال دهنده یا همان Broker ارسال میکند. واسطها ( Broker) دیتا را به هر کلاینتی که در آن تاپیک مشترک است، توزیع میکند. انتشار دهنده نیازی به دانستن تعداد و محل مشترکین (Subscriber) ها ندارد و مشترکین به نوبه خود نباید با دیتاهای انتشار دهندگان پیکربندی شوند.
ساخت گیت وی در uBeac
تنظیمات گیت وی در پلتفرم اهمیت زیادی دارند. در بخش ساخت گیت وی در uBeac روش ایجاد را بررسی میکنیم. برای ایجاد Gateway در پلتفرم یوبیک از صفحه اصلی بر روی گزینه Gateways کلیک کنید. سپس گزینه Add را انتخاب کنید. مطابق تصویر زیر اقدام کنید.
بر روی Add Gateway کلیک کنید. در صفحه ی باز شده Firmware را بر اساس نوع داده ارسالی مشخص کنید.
این لیست همان گیت وی های نرم افزاری است که در بالا به آن اشاره شد. بر اساس نوع داده، گیت وی را انتخاب میکنیم. اگر فقط چندین دیوایس داریم گزینه uBeac Multiple Devices کلیک کنید. اگر چندین سنسور داریم گزینه uBeac Multiple Sensors را انتخاب کنید. اگر یک سنسور داریم گزینه uBeac Single Sensor را انتخاب کنید. اگر گیت وی جیسان داریم گزینه uBeac Custom Json Gateway را انتخاب کنید. اگر از اپلیکیشن های اندروید استفاده میکنید، یکی از گیت وی های اندرویدی را انتخاب کنید.
انتخاب نام برای UID دلخواه است. با کلیک بر روی Submit صفحه ی زیر باز میشود. صفحه Live Data به صورت زیر است.
بر روی General اطلاعات Gateway را نمایش میدهد.
مجدد وارد Gateway ساخته شده شوید. بر روی منو Appearance کلیک کنید.
در گزینه map به Building ساخته شده میتوانیم ارجاع دهیم.
و در نهایت گزینه آخر HTTP, MQTT است. نوع گیت وی نرم افزاری خود را انتخاب کنید.
- اگر در کد برنامه نوشته شده بخواهید از پروتکل HTTP برای ارسال داده استفاده کنید، آدرس URL را کپی کنید.
- اگر در کد برنامه نوشته شده بخواهید از پروتکل HTTPS برای ارسال داده استفاده کنید، آدرس URL را کپی کنید.
اطلاعات مربوط به MQTT در پایین صفحه اضافه شده است و میتوانید از آن استفاده کنید.
لوازم مورد نیاز
جمع بندی لیدی پای
در بخش سوم از آموزش کار با پلتفرم uBeac ساخت گیت وی را به صورت نرم افزاری و سخت افزاری تحلیل کردیم. مهمترین بخش در پروژه های IOT ساخت گیت وی اینترنت اشیا است. برای ساخت گیت وی از سخت افزارهایی مانند Arduino, Raspberry Pi, ESP8266, ESP32 استفاده میکنیم. برای گیت وی نرم افزاری از HTTP , MQTT بیشترین استفاده را خواهیم کرد و برای کسانی که تجربه کدنویسی در محیط آردوینو را دارند، ارتباط با پلتفرم uBeac بسیار جذاب خواهد بود. دانش برنامه نویسی در محیط Arduino IDE و نوشتن کد جبسان Json و ساخت گیت وی در کدها به صورت نرم افزاری از چالش های این پلتفرم خواهد بود.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام و نشکر فراوان ، آیا امکانش هست یک پروژه عملی نیز مثال آورده شود و نحوه دریافت اطلاعات توضیح داده شود ترجیحا با آردوینو و یک سنسور ساده
با سلام
البته پروژه های این آموزش پیش از این منتشر شدهاند. لطفا لینکهای زیر را بررسی کنید.
پروژه گلدان هوشمند با پلتفرم اینترنت اشیا uBeac و برد NodeMcu سنسور خاک
پروژه مانیتور شدت نور محیط در پلتفرم اینترنت اشیا uBeac با GY30 و Nodemcu
با سلام چطوری یک گیت وی هم میتونه سخت افزار باشه و هم میتونه پروتکل ارتباطی باشه
لطفا راهنمایی کنید کمی گیج شدم
با سلام
پروتکل ارتباطی به نوعی نرم افزاری است و ارتباطی با سخت افزار ندارد. همین که گیت وی به شبکه متصل باشد (با کابل یا بدون کابل) پروتکل براساس انتقال داده از یک مبدا به یک مقصد عمل میکند.
سلام
آیا رزبری پای چهار با ubeac کار میکند؟؟؟
با سلام
بله از گیت وی سخت افزاری رزبری پای برای تست یوبیک میتوانید استفاده کنید.
چون الکترونیکی هستم درک عمیقی از Gateway نداشتم اما در این آموزش خیلی دقیق بدون کم و کاستی و قابل فهم توضیح دادید
با سلام
کاربر گرامی سپاس از همراهی شما امیدوارم مفید واقع شده باشد.
برای اضافه کردن گیت وی http به آردوینو فقط آدرس url کپی کنیم کافیه تنظیمات دیگری هم نیاز داره؟
با سلام
بله آدرس را کپی میکنید و در کدهایی که روی بردتان میخواهید آپلود کنید، قرار میدهید. در حقیقت ارتباط با سرور را ازطریق این لینک با سخت افزار برقرار میکنید.