آردوینو آموزش آردوینو اینترنت اشیا IOT اینترنت اشیاء عملی نرم افزار

ارتباط ربات تلگرام با بردهای آردوینو در پروژه IOT

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

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

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

تلگرام یک بخش تحت عنوان ربات دارد. ربات تلگرام یک پلتفرم آماده و قدرتمند برای ارتباط بین اشیاء است. استفاده از ربات تلگرام برای کلیه کاربران رایگان است. کافیست در تلگرام خودتان واژه @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 مبتنی برد بردهای اینترنت اشیاء از جمله Wemos D1 Mini و آردوینو و ESP8266 را به شما آموزش خواهم داد.

 

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

برد کنترلی اینترنت اشیاء Wemos D1 Mini قابلیت‌های جذابی دارد. این برد بر پایه ESP8266 طراحی شده است. می‌تواند به عنوان اتصال بین سنسورها در پروژه اینترنت اشیاء IOT برای جمع آوری اطلاعات محیطی قرار گیرد. این برد دارای ۱۶ پایه و رابط دیجیتال و آنالوگ برای ارتباط با انواع سنسورها را دارد. به دو صورت میتوان پروژه را انجام داد، اول اینکه اطلاعات هر کدام از این بردها با هر سنسوری به صورت مجزا و در زمان‌های مشخص روی تلگرام ارسال شود. در حالت دوم اطلاعات کلیه سنسورها و بردها به سرور ارسال میشود و در دیتابیس ذخیره شده، سپس در زمان‌های مشخص و یا هرموقع که درخواست ایجاد شود از سرور به تلگرام به صورت دسته بندی شده ارسال شود. در این آموزش شیوه مدیریت یک ال ای دی با ربات تلگرام را توضیح خواهم داد.

 

لوازم مورد نیاز:

برد کنترل اینترنت اشیاء Wemos D1 Mini

شیلد باتری برد Wemos D1 Mini

ال ای دی اوال

باتری لیتیوم پلیمر

 

ارتباط برد Wemos D1 Mini با ربات تلگرام

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

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

در این آموزش میخواهیم یک API برای مدیریت از طریق برد کنترل اینترنت اشیاء Wemos D1 Mini تولید کنیم. دستور /Newbot را وارد می‌کنیم.

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

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

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

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

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

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

 

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

 

تنظیمات ربات تلگرام در برد آردوینو

کدهای زیر برنامه ارتباط برای انواع برد آردوینو با ربات تلگرام میباشد. در این برنامه کامندهای ربات تلگرام تعریف شده‌اند. دو کامند /ledon و /ledoff که به طبع به پین متصل شده در برد فرمان میدهد. این کامندها به کامندهای مورد نیاز شما قابل توسعه است.

پس از وارد کردن کدها و کامپایل روی آردوینو یوزنیم و  پسور وای فای + توکن ربات تلگرام را در کدها وارد کنید. سپس روی برد آپلود کنید. پس از آن همانند تصویر زیر وارد ربات تلگرام که ساخته‌اید بشوید و Start را بزنید. سپس ۳ دستور که در کدهای بالا تعریف شده است برای شما بازگشت میشود.

 

Telegram-Bot-Arduino-digispark

همانطور که در تصویر بالا میبینید ابتدا با دستور ledon فرمان روشن شدن به ال ای دی یعنی پایه D2 در برد wemos D1 Mini ارسال کرده‌ام. سپس بازخورد این دستور پس از روشن شدن ال ای دی یا بهتر بگویم، پس از عبور جریان از پین D2 به صورت پیام متنی باز میگردد. سپس با دستور ledoff فرمان خاموش شدن ال ای دی را ارسال کرده‌ام. به همین ترتیب میتوانید دستورات گسترده تری را تعریف کنید.

 

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

 

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

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

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

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۰۰ دیدگاه

  • سلام خدمت اقای طباطبایی
    و گروه دیجی اسپارک
    یه سوال اینجا پیش میاد که ما نمیتونم به طور مثال اطلاعات مربوط به سنسور دمارو به طور انلاین و زمانی که درخواست میدم مشاهده کنم و اطلاعات به طور ارشیو شده تو سرور تلگرام قرار میگره و قابل مشاهده هست
    لطفا اگه میشه کد مربوط به این قسمت رو بزارد با تشکر

    • با سلام
      ضمن تشکر از توجه شما، در این آموزش فقط شیوه ارسال فرمان به بردها آردوینو مد نظرم بوده است. در آموزش‌های بعدی شیوه دریافت اطلاعات سنسور را هم خواهم گفت.

  • سلام و ارز خسته نباشید
    بنده این در انجام دادم و همه مرحله ها رو درست و در کامپایل برنامه هم اروری نمی دهد به وای فای هم وصل میشه ولی وقتی تو تلگرام در ربات استارت رو می زنم چیزی برایم ارسال نمیشه؟؟؟؟؟
    لطفا کمکم کنید
    با تشکر از سایت و مطالب خوبتون

    • با سلام
      ضمن تشکر از توجه شما، پس از کامپایل و آپلود کردن کدها، سریال مانیتور آردوینو را باز کنید. در آنجا اگر به ربات تلگرام متصل شده باشید. چنانچه استارت بزنید با پیغامل got response
      handleNewMessages در سریال مانیتور مواجه میشوید. این موضوع را چک کنید و مجددا پیغام بگذارید.

  • سلام بنده چک کردم و این پیامو داد:

    handleNewMessages
    ۱

    Exception (29):
    epc1=0x4000df82 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

    ctx: cont
    sp: 3fff15a0 end: 3fff19a0 offset: 01a0

    >>>stack>>>
    ۳fff1740: 3fff092c 00000000 00000000 3fff16d0
    ۳fff1750: 3fff092c 00000a7a 00000a7a 4010020c
    ۳fff1760: 00000009 00000017 00000004 40229b88
    ۳fff1770: 3fff260c 0000001d 0000440c 00000000
    ۳fff1780: 3fff260c 3ffe8fbc 00000009 4022ac53
    ۳fff1790: 00000009 00000000 3fff260c 40229b7a
    ۳fff17a0: 3ffe96a8 3fff7d64 3fff0720 3fff180c
    ۳fff17b0: 3fff187c 3fff2848 3fff0794 402034fc
    ۳fff17c0: 3fff092c 00000c6b 00000c6b 40205c05
    ۳fff17d0: 3ffe8fbc 3fff2848 3fff7d5c 401008c8
    ۳fff17e0: 3fff187c 3fff2848 3fff0794 40206f79
    ۳fff17f0: 0000004c 3fff2848 3fff0720 40205217
    ۳fff1800: 00000000 00000000 00000000 401006d8
    ۳fff1810: 00000060 3fff1870 3fff2374 0000000f
    ۳fff1820: 00000000 0000003c 3fff1870 402078c2
    ۳fff1830: 3fff092c 00000636 3fff1870 402078f2
    ۳fff1840: 3fff0794 3fff2848 3fff1870 402079f4
    ۳fff1850: 3ffe91c0 3fff2848 3fff0720 00000000
    ۳fff1860: 0000aa17 3fff2848 3fff0720 40205420
    ۳fff1870: 3fffbf74 0000003f 0000003c 3fff1acc
    ۳fff1880: 0000000f 00000000 3fffbf24 0000003f
    ۳fff1890: 0000003c 3fff2848 00000000 4020402c
    ۳fff18a0: 00000142 00000001 3fff1900 3fff190c
    ۳fff18b0: 3fff0720 3fff1900 3fff2848 402054f1
    ۳fff18c0: 3ffe9420 0000010d 3fff295c 00000400
    ۳fff18d0: 3fff1918 3ffe9e6c 3fff1900 40207940
    ۳fff18e0: 3ffe8da4 3ffe9e6c 3fff072c 00000001
    ۳fff18f0: 00000000 3ffe9e6c 3fff072c 402026b5
    ۳fff1900: 3fff1aac 0000000f 00000008 3fffbdc4
    ۳fff1910: 0000014f 00000142 3fff1a8c 0000000f
    ۳fff1920: 00000009 3fff26dc 0000014f 00000142
    ۳fff1930: 3fff25a4 0000001f 0000001e 3fff2584
    ۳fff1940: 0000000f 00000006 3fff2174 0000000f
    ۳fff1950: 00000009 00000001 3fff094c 40206f14
    ۳fff1960: 3fffdad0 3fff07b8 3fff094c 3fff0978
    ۳fff1970: 3fff071c 3fff0720 00000001 40202825
    ۳fff1980: 3fffdad0 00000000 3fff0971 40205d18
    ۳fff1990: feefeffe feefeffe 3fff0980 40100958
    <<<stack<<<

    ets Jan 8 2013,rst cause:2, boot mode:(1,6)

    ets Jan 8 2013,rst cause:4, boot mode:(1,6)

    wdt reset
    ولی دوباره چیزی ارسال نشد
    چکار کنم؟؟؟
    با تشکر

    • با سلام، مراحل ساخت ربات را یک بار دیگر چک کنید و API ربات تلگرام که دریافت کردید را مجددا چک کنید. این مشکل در ارتباط با API بوجود آمده است.

  • سلام ببخشید من یه ربات دیگر ساختم و وارد کردم بعد همون پیامه می ده ولی با اولین استارت led روی برد چند ثانیه یکبار چشمک می زند و برنامه هم درست است ولی پیامی بازگشت نمی شود چکار کنم؟؟؟
    با تشکر

    • اگر ال ای دی چشمک میزند، اتصالات مشکل دارد. دقت داشته باشید که به هنگام کپی کردن برنامه از کلیدهای میانبر بالای کدها استفاده کنید. که تگ های HTML به همراه کدها وارد برنامه نشوند. همچنین اگر با وارد کردن استارت در سریال مانیتور آردوینو پیغامی که در پاسخ قبلی گفتم را دریافت میکنید، ارتباط بر قرار است و باید منتظر پاسخ “به برنامه ارتباط اینترنت اشیاء با ربات تلگرام خوش آمدید. برنامه نمونه برای مدیریت ال ای دی.” باشید.

  • با تشکر بسیار مفید بود ولی برای استفاده برای وسایل برقی از چه نوع رله باید استفاده کنیم چون ٣ ولت به ال ای دی میده و در فروشگاه فقط ۵ ولتی موجوده؟؟؟؟؟؟؟؟
    با تشکر فراوان

    • با سلام
      ضمن تشکر از توجه شما، همانطور که میدانید استفاده از ال ای دی به صورت نمادین است و شما میتوانید بجای ال ای دی به دیگر پایه‌های برد کنترل اینترنت اشیاء Wemos D1 Mini فرمان بدهید. همچنین میتوانید از کلیه ماژول‌های رله برای این منظور استفاده کنید.

  • با عرض سلام جناب مهندس،امکان فید بک هم میتونیم داشته باشیم و اگر داریم طی آموزش های آینده منتظر باشیم؟

    • با سلام
      ضمن تشکر از توجه شما، برای دریافت فیدبک کدهای پیچیده تری به این کدها اضافه میشوند. تلاش میکنم که در سر فصل های آینده این موضوع را قرار دهم.

    • با سلام
      برای این منظور کافیست ماژول رله را به پایه‌های مربوطه آدرس دهی کنید. به عنوان مثال در این آموزش با پایه D2 به ال ای دی فرمان میدهیم، برای فرمان به رله میتوانید پایه‌ی مربوطه را در کدها تعریف کنید.

    • تنها روش برای اطلاع رسانی ثبت ایمیلتان در بخش ایمیل‌ها در انتهای هر پست در سایت میباشد. روش دیگر سر زدن به سایت است.

  • سلام
    این اموزش و کد ها روی ماژول WEMOS D1 WIFI BOARD هم کار میکنه؟
    این مدل کامل ولی شما تو اموزش از مدل مینی استفاده کردید.
    ممنون

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

  • سلام وقتتون بخیر باتشکر از سایت خوبتون من برنامه یه ماژول فاصله سنج میخوام که دیتا برداریش خیلی زیاد باشه قبلا از التراسونیک استفاده کردم جواب نگرفتم به نظرتون ماژول mpu6050جواب میده آیا برنامه مشابه برای فاصله سنج دارید اگر در محیط پرتئوس انجامداشته باشید مشابهشو ممنون میشم کمکم کنید

  • سلام
    لطفا این رو اموزش بنویسید که میشه با شرط گذاری برای استرینگ chat_id امنیت دستگاه رو بالا برد به این صورت که ماژول فقط به دستورات صاحب شخص عمل کند و به دستورات فرد متفرقه توجهی نکند.
    ممنون از شما و سایت خوبتون ، این مطلب خیلی بدردم خورد و من این ماژول رو برای این اموزش سفارش دادم تا این اموزش رو تست کنم چون خیلی جالبه و اگه خدا بخواد بتونم از این اموزش استفاده های خوبی بکنم.

    • با سلام
      ضمن تشکر از توجه شما و پیشنهاد شما، بررسى خواهم کرد و نسبت به انتشار آن برنامه ریزى خواهد شد.

    • با سلام
      البته به همین سادگى هم نیست. براى این منظور باید از کتابخانه اترنت با تراشه W5100 استفاده کنید و پین هاى مدار را بر اساس برد اصلى آدرس دهى کنید. همچنین نوع برد را هم در نرم افزار موقع آپلود تغییر دهید.

  • میشه بگید کاربرد کد
    if (from_name == “”) from_name = “Guest”;
    چیه و چرا شرط داخل { و } قرار ندارد.
    اگه این خط کد رو پاک کنم چی میشه؟

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

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

    • با سلام
      ضمن تشکر از توجه شما، براى این منظور باید از آرگومان تاخیر با بازه زمانى مشخصى استفاده کرد. به این صورت که مثلا هر ۵٠ دقیقه مجددا ارتباط با شبکه را بررسى کند.

  • سلام
    میشه سنسور های فرستنده و گیرنده مادون قرمز رو به برد Wemos D1 Mini به صورت مستقیم متصل کرد . و بعد برنامه ای نوشت که در صورتی که سنسور گیرنده موجی را دریافت کند پیامی برای تلگرام ارسال شود؟؟؟؟؟
    اگر می شود میشه توضیح بدین چگونه؟؟؟
    خیلی خیلی متشکر می شوم اگر جواب من را بدهید.

  • متشکرم از پاسختون
    می خواستم بدونم میشه سنسور ها رو(مادون قرمز گیرنده و فرستنده) به برد Wemos D1 Mini l متصل کرد؟ چگونه باید متصل کنم ؟ شما در فیلم این صفحه چراغ LED را به این برد متصل می کنید ولی من نمی دانم این سنسور ها رو به کجای برد متصل کنم؟

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

  • متشکرم از پاسختون
    شما در ویدیو همین صفحه چراغ LED را به این برد لحیم می کنید اما من نمی دانم سنسور های مادون قرمز فرستنده و گیرنده رو به کجای این برد باید متصل کنم؟

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

  • سلام و ادب
    من برنامه رو اجرا میکنم درست انجام میشه ولی ارتباطی با تلگرام ندارم.اسم توکن هم qrsali_bot ساختم و در برنامه قرار دادم.سریال مانیتور هم میزنم فقط میگه که wifi connected و یک ادرس آی پی میده.استارت تلگرام هم میزنم هیچی در سریال مانیتور نمیده.مشگل کجاست؟

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

  • سلام.تشکر. حل شد.عالی کار میکنه.واقعا دستتون درد نکنه.چه پروژه های جالب و عالی
    فقط ای کاش میتونستم ماژول رله ۵ ولت بهش وصل کنم جهت برق منزل.چون هر چی تلاش کردم و تو اینترنت سرچ کردم نتونستم پیداش کنم
    سپاس

  • ببخشید من با این اررور مواجه شدم
    لطفا کمکم کنید

    Arduino: 1.6.5 (Windows 7), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)”

    In file included from Robotizmbot.ino:3:0:
    C:\Users\Green\Documents\Arduino\libraries\Universal-Arduino-Telegram-Bot-master\src/UniversalTelegramBot.h:27:25: fatal error: ArduinoJson.h: No such file or directory
    #include
    ^
    compilation terminated.
    Error compiling.

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.

    • با سلام
      ضمن تشکر از توجه و پیشنهاد شما، ایده‌ی استفاده از چند ماژول ESP و مدیریت از طریق برد رزبری پای بر مبنای IOT بسیار جالب خواهد بود. این سرفصل در برنامه آموزشی دیجی اسپارک قرار دارد. ولی قبل از آن چندین پیش نیاز باید به صورت کامل آموزش داده شوند. منتظر باشید.

  • سلام
    با تشکر از راهنمایی هاتون
    و این که با صبر زیاد جوابگوی دوستان میباشید
    مشکل قبلیم بر طرف شد الان این ارور رو میده
    Arduino: 1.8.3 (Windows 10), Board: “Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Serial, None”

    The sketch name had to be modified. Sketch names can only consist
    of ASCII characters and numbers (but cannot start with a number).
    They should also be less than 64 characters long.

    _:۱۹: error: ‘D1’ was not declared in this scope

    const int relay1 = D1;

    ^

    _:۲۰: error: ‘D2’ was not declared in this scope

    const int relay2 = D2;

    ^

    _:۲۱: error: ‘D3’ was not declared in this scope

    const int relay3 = D3;

    ^

    _:۲۲: error: ‘D4’ was not declared in this scope

    const int relay4 = D4;

    ^

    C:\Users\sarzamin\Documents\Arduino\_\_.ino: In function ‘void setup()’:

    _:۱۳۶: error: ‘D1’ was not declared in this scope

    pinMode(D1, OUTPUT); // initialize digital ledPin as an output.

    ^

    _:۱۴۰: error: ‘D2’ was not declared in this scope

    pinMode(D2, OUTPUT); // initialize digital ledPin as an output.

    ^

    _:۱۴۴: error: ‘D3’ was not declared in this scope

    pinMode(D3, OUTPUT); // initialize digital ledPin as an output.

    ^

    _:۱۴۸: error: ‘D4’ was not declared in this scope

    pinMode(D4, OUTPUT); // initialize digital ledPin as an output.

    ^

    Multiple libraries were found for “UniversalTelegramBot.h”
    Used: C:\Users\sarzamin\Documents\Arduino\libraries\UniversalTelegramBot
    Not used: C:\Program Files (x86)\Arduino\libraries\src
    exit status 1
    ‘D1’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • #include
    #include
    #include

    // Initialize Wifi connection to the router
    char ssid[] = “Coyote”; // نام روتر وایفای
    char password[] = “ehsan@@@”; // پسورد وایفای

    // Initialize Telegram BOT
    #define BOTtoken “387961250:AAFn6L-PfNsn54oRVrTqOHt295jkV2etBqI” // توکن ربات تلگرام

    WiFiClientSecure client;
    UniversalTelegramBot bot(BOTtoken, client);

    int Bot_mtbs = 1000; //mean time between scan messages
    long Bot_lasttime; //last time messages’ scan has been done
    bool Start = false;

    const int ledPin = D2;
    int ledStatus = 0;

    void handleNewMessages(int numNewMessages) {
    Serial.println(“handleNewMessages”);
    Serial.println(String(numNewMessages));

    for (int i=0; i Bot_lasttime + Bot_mtbs) {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

    while(numNewMessages) {
    Serial.println(“got response”);
    handleNewMessages(numNewMessages);
    numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }

    Bot_lasttime = millis();
    }
    }
    سلام کدم این هست و اررور بالا را میدهد تمام کتابخانه ها نصب هستند و در قسمت مثالها موجو اند

  • با سلام
    ممنون از آموزش های کاربردی و خوبتون! من با استفاده از برد Wemos D1 Shield پروژه فوق رو با ربات تلگرام پروگرام کردم ولی وقتی start/ رو میزنم اطلاعات اولیه ربات برام ارسال نمیشه! جالب اینجاست که وقتی ledon یا ledoff رو میزنم LED روشن و خاموش میشه! فقط قسمت اول اجرا نمیشه. ممنون میشم اگه راهنمایی بفرمایید

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

  • سلام. برنامه مربوطه رو روی برد میریزم. ولی به وای فای کانکت نمیشه. مودم وای فای مشکلی نداره چونکه موبایل به اون متصل میشه. یوزر و پسورد هم صحیح وارد شده.

    • با سلام
      ضمن تشکر از توجه شما، اگر در نام مودم از حروف بزرگ استفاده شده است، عینا همانند خودش وارد کنید. در غیر این صورت ارتباط برقرار نخواهد شد.

  • سلام.با توجه به این که گفته میشه کد ها باید روی آردوینو آپلود بشه ، اتصال آردوینو به ماژول wemos D1 Mini چطور انجام میشه ؟
    با تشکر

  • سلام
    ممنون از آموزش خوبتون
    من با ماژول node mcu راهش انداختم ولی مشکل اینه که زمان خوندنش از ربات طول میکشه . یعنی برای اینکه بفهمه یه دستور مثه /led on رو زدم باید ۲ یا ۳ بار (به فراخور اینکه کی اون if اجرا میشه )پشت سرهم واردش کنم تا بفهمه که یه دستورو زدم.عدد متغیرBot_mtbs رو کم و زیاد کردم فایده ای نداشت. چه راه حلی پیشنهاد می کنید؟

  • سلام
    ممنون از آموزش خوبتون
    بنده بعد از کامپایل کرد برنامه با این مشکل مواجه میشم لطفا راهنمایی کنید.
    Arduino: 1.8.1 (Windows 7), Board: “Adafruit HUZZAH ESP8266, 80 MHz, 115200, 4M (3M SPIFFS)”

    recipe.preproc.macros pattern is missing

    Error compiling for board Adafruit HUZZAH ESP8266.
    Invalid library found in C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot: C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot
    Invalid library found in C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot: C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot
    Invalid library found in C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot: C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot
    Invalid library found in C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot: C:\Users\Mandegar\Documents\Arduino\libraries\TelegramBot

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • با سلام
      ضمن تشکر از توجه شما، بله میتوانید استفاده کنید، مشکلی ندارد. ولی کدها کمی تغییرات نیاز دارند. که باید به دانش برنامه نویسی در این زمینه مسلط باشید.

  • سلام
    متاسفانه گزینه Port در برنامه برای بنده غیر فعال است لطفا راهنمایی بفرمایید چگونه درایور این برد را نصب کنم در صورتی که این برد در لیست بردها موجود است اما گزینه port غیر فعال است

  • سلام بنده این برد رو تهیه کرده و همین برنامه رو با وارد کردن توکن روبات و یوزر و پسورد اینترنت روش اپلود کردم اما متاسفانه نتونستم ازش جواب بگیرم و ارتباط بین تلگرام و برد برقرار نشد چطوری میشه فهمید مشکل کجاست ؟ ممنون میشم اگه راهنماییم کنید

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

  • سلام
    من همین برنامه رو روی برد wemos D1 Mini اپلود کردم ارتباط هم باتلگرام برقرارشده اما یکی اینکه پیام اولیه خوش آمدگویی توی ربات نمیاد و با نوشتن ledon/ ال ای دی روشن و با ledoff/ خاموش میشه اما با تایپ status/ هیچ پیامی دریافت نمیشه، سوال دیگه ای که دارم اینه که آیا با وارد کردن آیدیرباطدر گوشی های دیگه هم میشه به رباط فرمان داد یا فقط فرمان از طریق سازنده ربات می تونه به برد انتقال پیدا کنه؟
    لطفا راهنمایی کنید

    • با سلام
      ضمن تشکر از توجه شما، در مورد سوال اول کدها و پین‌هایی که آدرس دهی شده اند را بررسی کنید. در مورد سوال دوم اینکه با این کدها بله، اگر ربات تلگرام را در گوشی دیگری وارد کنید، میتوانید فرمان دهید. جهت افزایش امنیت روش، چت آیدی را پیشنهاد میکنم. با این روش میتوانید بر اساس چت آی دی دریافتی که منحصر به فرد است، فقط برای چت آی دی مربوطه ربات عمل میکند. موارد در آموزش کنترل در ورودی با اینترنت اشیاء IOT و چت آیدی ربات تلگرام Arduino توضیح داده شده است. می‌توانید کدهای مربوط به چت آی دی را از این آموزش بردارید.

  • خیلی عالی بود
    فقط اگه براتون مقدور در قالب برنامه دیگه غیر از تلگرام یعنی بشه یه نرم افزار شخصی ساخت کلید ها به صورت بوت باشه نه نوشتاری بعد نحوه اتصال اردوینو uno
    و ESP8266 به اینترنت رو هم توضیح بدین
    بازم تشکر میکنم چون خیلی زحمت کشیدین

    • با سلام
      ضمن تشکر از توجه شما، در مورد سوال اولتان دقیقا متوجه نشدم، لطفا کاملتر توضیح دهید. براى راه اندازى ماژول esp8266 با بردهاى آردوینو، قبلا توسط همکارم مطالبى در این مورد به وفور در سایت منتشر شده است. لطفا مطالب سایت را بررسى کنید و سوالاتتان را در همان پست مربوطه مطرح کنید.

  • سلام استاد خسته نباشید
    این باتری ای که معرفی کردین باید چند ولت و چند میلی امپری باشه چون در فروشگاه ها مدل های مختلف هست،خواهشا مدلی رو معرفی کنیو که دانشجویی باشه😉

    • با سلام
      ضمن تشکر از توجه شما، سلول‌های باتری لیتیوم پلیمر تماما دارای ولتاژ یکسان می‌باشند و فقط در میزان جریان خروجی تفاوت دارند. برای اطلاعات دقیق‌تر پست تفاوت باتری لیتیوم پلیمری Li-Io با باتری لیتیوم یون Li-Io را مطالعه کنید. همچنین برای این برد بسته به پردازش مورد نیاز و بسته به زمان مورد نیاز برای پشتیبانی باتری باید یک مدل از سلول باتری لیتیوم پلیمر را انتخاب کنید. پیشنهاد بنده حداقل ۵۰۰ میلی آمپر است.

  • سلام ببخشید کتابخانه هارا از کجا باید دانلود کنم؟ و برد wifi را باید مستقیم به کامپیوتر وصل کرد و برنامه را در آن آپلود کرد؟

  • با سلام و تشکر فراوان از زحمات شما اقای طباطبایی
    من پیشنهادی داشتم.
    بهتر نیست تو تلگرام گروهی بزنید با مدیریت خودتون تا بتونیم سوالاتمونو همونجا بپرسیم و با دوستانم در ارتباط باشیم؟

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

  • سلام
    من کتابخونه رو درست نصب کردم ولی ERROR میده
    Arduino: 1.8.5 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 921600, 4M (3M SPIFFS)”

    In file included from C:\Users\Mohammad Zeini\Documents\Arduino\libraries\Universal-Arduino-Telegram-Bot-master\examples\ESP8266\FlashLED\FlashLED.ino:10:0:

    C:\Users\Mohammad Zeini\Documents\Arduino\libraries\Universal-Arduino-Telegram-Bot-master\src/UniversalTelegramBot.h:27:25: fatal error: ArduinoJson.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board WeMos D1 R2 & mini.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • سلام ببخشید من بااین ارورمواجه میشم دلیلش چیه
    Arduino: 1.8.1 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\$Recycle.Bin\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10801 -build-path C:\Users\LOTUS\AppData\Local\Temp\arduino_build_355013 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\LOTUS\AppData\Local\Temp\arduino_modified_sketch_819816\sketch_dec12a.ino
    C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\$Recycle.Bin\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10801 -build-path C:\Users\LOTUS\AppData\Local\Temp\arduino_build_355013 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\LOTUS\AppData\Local\Temp\arduino_modified_sketch_819816\sketch_dec12a.ino
    Using board ‘uno’ from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
    Using core ‘arduino’ from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
    Detecting libraries used…
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10801 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard” “C:\Users\LOTUS\AppData\Local\Temp\arduino_build_355013\sketch\sketch_dec12a.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10801 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard” “C:\Users\LOTUS\AppData\Local\Temp\arduino_build_355013\sketch\sketch_dec12a.ino.cpp” -o “C:\Users\LOTUS\AppData\Local\Temp\arduino_build_355013\preproc\ctags_target_for_gcc_minus_e.cpp”
    C:\Users\LOTUS\AppData\Local\Temp\arduino_modified_sketch_819816\sketch_dec12a.ino:1:25: fatal error: ESP8266WiFi.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.