آموزش رزبری پای پروژه رزبری پای

ارتباط برد رزبری پای Raspberry Pi با ربات تلگرام Bot

Telegram-rpi-bot-iot- Digispark
نوشته شده توسط اروند طباطبایی

تلگرام به یک شبکه مجازی دارای روح و جان تبدیل شده است. قدرت نفوذ تلگرام به حریم خصوصی اکثر کاربران در سرعت منحصر به فرد یا رابط کاربری جذاب نیست. بلکه به دلیل در دسترس بودن است. به این معنی که در کف دست تمامی کاربران قرار می‌گیرد و با یک الی دو انگشت تمامی فعالیت‌های مورد نظر کاربران را انجام می‌دهد. در این میان جامعه کاربری روبه رشد آن باعث شده که تلگرام به یک برند ارزشمند تبدیل شود. همچنین سرعت رشد و توسعه آن هم به دلیل پاسخگویی به انواع نیازهای کاربران شتاب گرفته است. دانستن این نکته مهم است که تلگرام فقط یک شبکه اجتماعی برای ارتباط بین کاربران نیست. بلکه توانایی ارتباط M to M یعنی ارتباط بین ماشینی را فراهم میکند. همانطور که قبلا بارها و بارها توضیح داده‌ام. در وب نسل ۳ علاوه بر ارتباط بین انسان‌ها دو نوع ارتباط دیگر بوجود می‌آید. ارتباط ماشین با انسان و ارتباط ماشین با ماشین یا شیئ با شیئ یعنی همان اینترنت اشیاء IOT

ارتباط بین اشیاء با تلگرام

تلگرام یک بخش تحت عنوان ربات دارد. ربات تلگرام یک پلتفرم آماده و قدرتمند برای ارتباط بین اشیاء است. استفاده از ربات تلگرام برای کلیه کاربران رایگان است. کافیست در تلگرام خودتان واژه @Botfather را جستجو کنید. این ربات اقتباسی از دون کورله‌نو (مارلون براندو) در فیلم پدر خوانده است. در نگاه اول ابهت و قدرت پدرخوانده را در لوگو این ربات مشاهده می‌کنید. تمامی المان‌ها در طراحی این لوگو مبتنی بر فاکتورهای پدرخوانده است. از این مباحث که بگذریم، همانند چت معمولی وارد محیط چت میشوید. BotFather is the one bot to rule them all. Use it to create new bot accounts and manage your existing bots. این متن معرفی ربات اصلی تلگرام است. بات فادر تنها ربات برای قانون گذاری میباشد. از این ربات برای ساخت ربات‌‌های شخصی ‌می‌توانید استفاده کنید.

این ربات برای هر فعالیتی میتواند استفاده شود. فقط کافیست  API که توسط ربات BotFather برای شما ساخته میشود را در سرور یا MCU در پروژه اینترنت اشیاء یا پروژه مانیتورینگ و… وارد کنید. امروز در این آموزش شیوه استفاده از ربات تلگرام در پروژه‌های اینترنت اشیاء IOT مبتنی برد برد رزبری پای Raspberry Pi را به شما آموزش خواهم داد. در ادامه با مرجع تخصصی اینترنت اشیاء IOT ، دیجی اسپارک همراه باشید.

تعریف پروژه اینترنت اشیاء IOT

همانطور که بارها گفته‌‌ام، پروژه اینترنت اشیاء در دو حالت ارتباط شیئ با انسان و ارتباط شیئ با شیئ تعریف میشود. در حالت ارتباط شیئ با انسان تصمیم گیرنده اصلی انسان است. به عنوان مثال سنسور دما اطلاعات دمایی محیط را روی تلفن همراه و بخصوص تلگرام برای شخص مربوطه ارسال می‌کند. حالا انسان باید تصمیم بگیرد که چه اتفاقی رخ دهد. آیا با اطلاعاتی که سنسور دما از محیط برای من ارسال کرده‌ است، سیستم تهویه را روشن کنم یا خیر.

ولی در حالت ارتباط شیئ با شیئ، پس از اینکه سنسور دما اطلاعات محیط را دریافت می‌کند. آن‌ها را جهت تحلیل به سرور ارسال می‌کند. در این شرایط سرور به عنوان تصمیم گیرنده در این سیستم عمل می‌کند. طبق الگوهایی که از پیش تعریف شده است. بهترین تصمیم را در کمترین زمان ممکن گرفته و نسبت به انجام آن اقدام می‌کند. در این حالت سرور تصمیم میگیرد که آیا سیستم تهویه را روشن یا خاموش کند.

پروژه اینرنت اشیاء با برد رزبری پای

برد رزبری پای Raspberry Pi (به تعبیر برخی از دوستان رسپبری پای!) قابلیت‌های جذابی دارد. هرچند که از یک کامپیوتر رو میزی یا لپ تاپ قدرت بسیار کمتری دارد. ولی در عین حال پروژه‌هایی که راه اندازی آن‌ها با همان کامپیوترها مشکل است را به سادگی پیاده سازی میکند. سنسورها در پروژه اینترنت اشیاء IOT به عنوان جمع آوری کننده‌های اطلاعات محیطی نقش مهمی دارند. برد رزبری پای Raspberry Pi قرار است به عنوان MCU اطلاعات تمامی سنسورهایی که به آن مرتبط هستند را جمع آوری و به سرور ارسال کند. از این رو سنسورها به پایه‌های GPIO برد رزبری پای متصل می‌شوند. رزبری پای هم از طریق پورت شبکه یا وای فای از طریق شبکه اینترنت به سرور دسترسی خواهد داشت. در پروژه مدیریت مصرف انرژی یک ساختمان مسکونی دو خوابه، برای هر اتاق خواب یک سنسور دما و یک سنسور لوکس متر (سنجش روشنایی محیط)، برای حمام و دستشویی به همین صورت در آشپزخانه و سالن پذیرایی هم هر کدام یک سنسور دما و یک سنسور تشخیص شدت نور نیاز است. تا اینجا در این پروژه به ۵ سنسور دما و ۵ سنسور تشخیص شدت نور نیاز است. یک سنسور تشخیص جریان هم در کابل برق ورودی ساختمان قرار خواهد گرفت.

به این صورت دمای منزل از ۵ نقطه و شدت نور هر محیط از ۵ نقطه در حال مطالعه و بررسی است. در حالت ایده‌آل برای هر اتاق یک سیستم تهویه و برای سالن و آشپزخانه و سرویس بهداشتی به صورت مجزا سیستم تهویه قرار خواهد داشت. این سیستم میتواند به صورت مرکزی باشد و فقط باز و بسته کردن دریچه تهویه بر عهده سیستم اینترنت اشیاء IOT میباشد. در چنین حالتی اطلاعات این سنسورها پس از ورود به برد رزبری پای Raspberry Pi به سرور ارسال می‌شوند. میزان مصرف برق براساس شدت روشنایی هر محیط و دمای هر محیط در سرور تحلیل و بررسی میشوند. در ارتباط شیئ با شیئ سرور به برد رزبری پای فرمان روشن یا خاموش کردن روشنایی و تهویه هر کدام از ۵ نقطه منزل را ارسال می‌کند.

ارتباط برد رزبری پای با ربات تلگرام

همانطور که در بالا توضیح دادم، ابتدا وارد ربات BotFather می‌شویم. دستور استارت را به صورت زیر وارد میکنیم.

ربات پاسخ زیر را ارسال میکند.

در این آموزش میخواهیم یک API برای مدیریت از طریق برد رزبری پای Raspberry Pi تولید کنیم. دستور زیر را وارد میکنیم.

سپس ربات درخواست میکند که یک اسم برای این ربات در نظر بگیرید. دقت کنید که این اسم با Username متفاوت است. پس هر اسمی که میخواهید وارد کنید.

سپس ربات درخواست Username میکند. چنانچه نام کاربری یا همان Username تکراری باشد، قبول نمیکند. مراحل را تا آنجایی ادامه میدهد که نام کاربری یکتا و منحصر به فرد انتخاب شود. البته دقت کنید که در انتهای نام کاربری از واژه bot حتما استفاده شود.

در اینجا من از اسم خودم استفاده میکنم. arvand_bot

آموزش ارتباط ربات تلگرام با برد رزبری پای -Raspberry pi-Digispark

همانطور که در تصویر مشاهده می‌کنید. من از این نام کاربری در یک پروژه دیگری برای ساخت ربات استفاده کرده‌‌ام. پس یک نام کاربری دیگر وارد میکنم.  arvand_digispark_bot

تا اینجا ربات مورد نظر من ساخته شد و تلگرام یک API در اختیار من قرار داد که در تصویر زیر مشاهده می‌کنیم. برای ایجاد هر ارتباطی با این ربات، به این API نیاز داریم.

آموزش ارتباط ربات تلگرام برد رزبری پای -Raspberry pi-Digispark

تنظیمات ربات تلگرام در برد رزبری پای Rpi

این API بسیار اهمیت دارد. البته در حال حاضر هنوز هیچ برنامه‌ای برای این ربات تعریف نکرده‌ایم. حالا باید API را در برد رزبری پای وارد کنیم. بسته به پروژه‌ای که تعریف کرده‌ایم، از زبان‌های برنامه نویسی مختلفی می‌توانیم استفاده کنیم. من در ادامه از این API در برنامه‌ای که توسط نود رد Node Red نوشته‌ام، استفاده میکنم. اگر با نرم افزار نود رد node Red آشنایی ندارید. به آموزش‌های نود رد Node Red که توسط همکارانم نوشته شده است، مراجعه کنید.

بسیار خب، من میخواهم با ارسال دستور زیر یک ال ای دی را توسط برد رزبری پای روشن کنم.

وارد محیط نرم افزار نود رد Node Red می‌شویم. از نوار سمت چپ، نود تلگرام کامند Telegram Command را جستجو میکنیم. سپس به صورت گرفتن و رها کردن (Drag and Drop) آن را روی صفحه Flow قرار می‌دهیم. همانند تصویر زیر

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-

بر روی نود کامند تلگرام دبل کلیک می‌کنیم. تا پنجره تنظیمات این نود باز شود. سطر دوم گزینه کامند Command مقدار /On را وارد می‌کنیم. در سطر پایینی قسمت Bot روی آیکون به شکل مداد کلیک میکنیم. همانند تصویر زیر در قسمت Bot Name نام کاربری رباتی که ساخته‌ایم را وارد می‌کنیم. سپس در سطر پایینی Token کد API که توسط بات فادر ارسال شد را وارد می‌کنیم.

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-2

پس از انجام این تنظیمات، مجددا از نوار سمت چپ نود Trigger را جستجو و انتخاب می‌کنیم. سپس به صورت گرفتن و رها کردن (Drag and Drop) آن را روی صفحه Flow قرار می‌دهیم. این قسمت بسیار مهم است. نود کامند تلگرام که در مرحله قبلی وارد کردیم، دارای دو خروجی میباشد. از خروجی بالایی با نشانه گر موس کلیک میکنیم و به سمت ورودی نود Trigger آن را ادامه داده و رها می‌کنیم.

پس از آن روی نود تریگر Trigger دبل کلیک می‌کنیم. تا پنجره تنظیمات این نود باز شود. سطر اول گزینه‌ی Send روی حالت Number و عدد ۱ قرار می‌دهیم. از سطر پایینی گزینه Then را روی حالت Wait to be reset قرار می‌دهیم. سپس روی آیکون Done در بالا سمت چپ جهت تایید تنظیمات انجام شده، کلیک می‌کنیم. همانند تصویر زیر

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-3

مجددا از نوار سمت چپ نود Function را جستجو و انتخاب می‌کنیم. سپس به صورت گرفتن و رها کردن (Drag and Drop) آن را روی صفحه Flow قرار می‌دهیم. از خروجی نود قبلی (تریگر Trigger) به ورودی این نود متصل می‌کنیم. سپس با دبل کلیک وارد پنجره تنظیمات این نود می‌شویم.

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-4

حالا دستور زیر را جهت بازخورد در پنجره function و سطر شماره ۱ وارد کنید. همانند تصویر زیر

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-5

تا اینجا مشخص کردیم که برد رزبری پای چطور از تلگرام فرمان دریافت کند. حالا باید مشخص کنیم که این فرمان دریافت شده از تلگرام، چه کاری انجام دهد. به این منظور از نوار سمت چپ نود rpi gpio را جستجو و انتخاب می‌کنیم. دقت کنید که دو نوع نود با این مشخصات داریم. یکی برای ورودی به gpio برد رزبری پای Raspberry Pi و دیگری برای خروجی از پین‌های gpio می‌باشد. همانند تصویر زیر نود خروجی را انتخاب می‌کنیم. سپس به صورت گرفتن و رها کردن (Drag and Drop) آن را روی صفحه Flow قرار می‌دهیم.

سپس از خروجی نود تریگر trigger به ورودی نود gpio متصل می‌کنیم. روی نود gpio دبل کلیک می‌کنیم تا پنجره تنظیمات باز شود. از سطر اول GPIO مقدار را روی GPIO17 تنظیم می‌کنیم. و سطر دوم Typeبر روی دیجیتال باقی می‌ماند. از آنجایی که میخواهیم یک ال ای دی را با فرمان پین GPIO روشن کنیم. به مقدار دیجیتال نیاز داریم. سپس تنظیمات را با آیکون Done ذخیره می‌کنیم.

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-6

و در انتها باید خروجی نود فانکشن Function را جهت ارسال فرمان بازخورد به ربات تلگرام، به یک نود تلگرام متصل کنیم. برای این منظور از نوار سمت چپ نود sender را جستجو می‌کنیم. سپس نود Telegram Sender را به صورت گرفتن و رها کردن (Drag and Drop) آن را روی صفحه Flow قرار می‌دهیم. از خروجی نود فانکشن به ورودی نود تلگرام اتصال می‌دهیم. پس از دبل کلیک روی آن وارد پنجره تنظیمات می‌شویم. از آنجایی که در نود تلگرام در ابتدای برنامه تنظیمات ربات تلگرام را ذخیره کردیم. در اینجا فقط کافیست از لیست ربات‌های تلگرام، ربات مربوطه را انتخاب کنیم.

نود تلگرام کامند در نود رد - node red-raspberry pi-digispark-7

وقتی تمامی این مراحل را انجام دادید. بر روی آیکون Deploy در بالا سمت چپ صفحه کلیک کنید. در این صورت کلیه تنظیمات نود رد بر روی برد رزبری پای Raspberry Pi ذخیره خواهد شد.

پس از انجام این‌کارها وارد تلگرام و رباتی که ساخته‌ایم می‌شویم. arvand_digispark_bot و استارت را میزنیم. سپس دستور /On را وارد می‌کنیم. بلافاصله ال ای دی متصل به پین‌های GPIO رزبری پای روشن میشود.

ارتباط تلگرام با برد رزبری پای در اینترنت اشیاء iot-digispark 1

در مرحله بعدی بازخورد این عمل مشخص می‌شود. ربات پیام روشن شد را ارسال میکند. همانند تصویر زیر

ارتباط تلگرام با برد رزبری پای در اینترنت اشیاء iot-digispark 1

به این صورت برد رزبری پای Raspberry Pi را به ربات تلگرام متصل کردیم. تعداد این دستورات را میتوانیم از همین روش و با افزایش نودها Node خروجی‌های مختلفی از پایه‌های GPIo داشته باشیم و همچنین دستورات متنوع تری در ربات تلگرام تعریف کنیم.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

اروند طباطبایی

هرچه می آموزم میبینم که خیلی کم آموختم. در حال حاضر مدیریت تولید مقطع کارشناسی ارشد هستم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

۲۰ دیدگاه

  • سلام.سال نو مبارک.من سه روز قبل رزبری ۳ خریده ام.sd را هم با رزبین اماده کردم.اتصالات را هم انجام دادم.چراغ سبز چشمک زن را هم دارم.با HDMI به HDMI لب تاپ هم وصل کردم ولی هیچ اعلام نصبی دریافت نکردم.رهنمایی لطفا.ممنونم.

    • با سلام و درود
      ضمن تشکر از تبریک شما، اینجوری که من از سوال شما متوجه شدم، خروجی HDMI را به خروجی HDMI لپ تاپ وصل کرده‌اید. دقت کنید که خروجی HDMI برد رزبری پای را باید به یک نمایشگر HDMI متصل کنید. مثلا به تلویزیون یا مانیتور دارای HDMI، با لپ تاپ هیچ عملکردی ندارد.

    • سلام
      خروجی HDMI برد رزبری پای را قبل از راه اندازی به HDMI یک مانیتور یا تلوزیون متصل کنید، شاید لپ تاپ ورودی را پشتیبانی نمیکند.
      موفق باشید.

    • با سلام و درود
      پس از ورود به محیط نود رد از منو بالا سمت راست، گزینه Manage Palette را انتخاب کنید. سپس در پنجره‌ای که باز میشود، در قسمت Install عبارت Telegram را جستجو کنید. سپس نود تلگرام بات را انتخاب و نصب کنید.

        • سلام
          چنانچه این گزینه را ندارید، باید سیستم عامل رزبین را آپدیت کنید. از دستور Sudo apt-get update و سپس sudo apt-get upgrade استفاده کنید. سپس رزبری پای را ریبوت کنید و مجددا نود رد را راه اندازی کنید.

          • من نتونستم این کارو بکنم اما توی قسمت کیبرد شورتکات کلید های Ctrl+shift+pبرای این کار اند اما وقتی این کلیدارو باهم فشار میدم میخواد صفحه رو پرینت کنه. چیکار باید بکنم؟

  • با سلام خدمت شما
    چطور میتوانم در نود رد چند پایه را به عنوان خروجی تعریف کنم . آیا این نود ها در یک flow تعریف میشوند؟
    لطفا آموزش های نود رد را هم بیشتر کنید . ممنون و خسته نباشید .

    • با سلام و درود
      اولا که تمامی نودها را میتوانید در یک Flow تعریف کنید. برای اینکه خروجی پایه‌های برد رزبری پای را تعریف کنید، از چند نود میتوانید استفاده کنید. نکته مهمتر ارتباط پین با ماژول میباشد. که باید بدانید موج pwm نیاز است ارسال شود یا صفر و یک و یا پالس مشخص و….
      تمامی این موارد در آموزش‌های مربوطه توسط دیگر همکارانم دقیق توضیح داده شده است. شما هم اگر دقیق تر بفرمایید که خروجی را به چه ماژول یا سنسوری نیاز دارید ارتباط دهید، میتوانم پاسخ دقیق با جزئیات را ارسال کنم.
      شاد و پیروز باشید.

  • سلام و خسته نباشید خدمت شما
    چطور میتونم از طریق گوشی به صورت لوکال به محیط node red و در نهایت کنترل پورت ها دسترسی داشته باشم . (منظورم وارد کردن آدرس محیط نود رد در نوار آدرس مرورگر گوشی و دسترسی به صورت محلی و آفلاین)

    • با سلام
      برای این منظور باید از طریق ترمینال رزبری پای دستور ifconfig را وارد کنید تا آی پی رزبری پای را شناسایی کنید.
      سپس همان آی پی را البته پس از فعال کردن نودرد، در مرور گر یک دستگاه دیگر لوکال (موبایل، لپ تاپ و…) وارد کنید سپس در انتهای آی پی :۱۸۸۰ را وارد بفرمایید. حالا شما به محیط نودرد رزبری پای از طریق یک سیستم دیگر دسترسی دارید.

  • سلام
    چطوری میتونم خروجی رزبری روی دیوار نمایش بدم
    مثل ویدیو پروژکتورها
    آیا دستگاه (قطعه الکترونیکی) وجود داره که با اتصال به برد رزبری خروجی رو روی دیوار به من نمایش بده؟
    لطفا معرفی کنید

دیدگاهتان را بنویسید