آردوینو اینترنت اشیا IOT برد ویموس Wemos خانه هوشمند

ارتباط ربات تلگرام با بردهای آردوینو در پروژه 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 و یک ادرس آی پی میده.استارت تلگرام هم میزنم هیچی در سریال مانیتور نمیده.مشگل کجاست؟

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

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

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

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

    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[] = “[email protected]@@”; // پسورد وایفای

    // 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.

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

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

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

  • سلام آیا راهکاری برای تغذیه برد آردوینو از طریق سلول خورشیدی وجود داره؟ اگر بله ممکنه در مورد اتصالات و کدهایی که ممکنه نیاز باشه توضیح بدین؟ ممنونم

  • سلام استاد.. بابت آموزشهای عالیتون سپاسگزارم.
    من esp-01 رو خریداری کردم. میشه لطف بفرمایید و نحوه ارتباط این ماژول با آردوینو uno رو نیز بفرمائید…
    ممنونم.

  • درواقع مشکل من اینه که بدونم پین rx و tx ماژول esp-01 رو به کدوم پایه های آردوینو وصل کنم. چون پایه ۰ و ۱ آردوینو مخصوص سریال خودشه و تو کد شما از سریال نرم افزاری هم استفاده نشده. پس آردوینو چطور با ماژول esp-01 ارتباط سریال برقرار میکنه؟
    سپاسگزارم…

    • سلام مجدد
      این آموزش با برد Wemos همخوانی دارد. برای اینکه با برد UNO و ماژول ESP راه اندازی کنید، کاملا قضیه فرق می‌کند. اینکه پایه‌های RX و TX را به کدام پایه متصل کنید، بسیار بستگی به کتابخانه‌ها و نوع برنامه نویسی دارد.

  • باسلام با این که برد wemos d1 رو انتخاب کردم ولی وقتی verufy میکنم خطای Arduino: 1.6.12 (Windows 7), Board: “WeMos D1(Retired), 80 MHz, 921600, 4M (3M SPIFFS)”

    Build options changed, rebuilding all
    In file included from E:\Downloads\Arduino-IRremote-master\examples\custom\wemos_d1\wemos_d1.ino:3:0:

    C:\Users\alisan\Documents\Arduino\libraries\UniversalTelegramBot\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(Retired).

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

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

      • با سلام و تشکر فراوان از مطالب مفیدی که آموزش دادید.
        ابتدای این آموزش گفته شده: “این پروژه را به دو صورت میتوان انجام داد، اول اینکه اطلاعات هر کدام از این بردها با هر سنسوری به صورت مجزا و در زمان‌های مشخص روی تلگرام ارسال شود. در حالت دوم اطلاعات کلیه سنسورها و بردها به سرور ارسال میشود و در دیتابیس ذخیره شده، سپس در زمان‌های مشخص و یا هرموقع که درخواست ایجاد شود از سرور به تلگرام به صورت دسته بندی شده ارسال شود.”
        آیا در مورد ارتباط با سرور، ذخیره در دیتابیس و ارسال اطلاعات در زمانهای مشخصی که گفته شده در سایت شما مطلبی وجود داره؟ لطفا لینک آن را بفرستید.

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

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

  • سلام مهندس . آیا این قابلیت در مسنجرهای دیگه هم وجود داره که بتونیم ربات بسازیم؟
    بعبارتی اگه تلگرام نباشه چ کنیم؟؟

    • با سلام و تشکر از شما
      در این خصوص برخی از سوشیال‌ها چنین امکانی را دارند که بتوانید با ربات به آن‌ها فرمان دهید. ولی به هر حال این آموزش منحصرا برای تلگرام نوشته شده است.

  • سلام هنگام کامپایل این ارور داده میشود:

    Arduino: 1.8.5 (Windows 10), Board: “Arduino/Genuino Uno”

    In file included from C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33:0,

    from C:\Users\nimagh9\Documents\Arduino\Bot_wemos_arduino\Bot_wemos_arduino.ino:1:

    C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory

    #include

    ^

    compilation terminated.

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

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

      • من در برنامه قسمت board گزینه wemos d1 R2 & mini رو انتخاب کردم و کتابخانه هارا حذف و دوباره نصب کردم حالا این اررور داده میشود این کتابخانه (arduinojson) را از اینترنت دانلود کردم کجا باید قرار دهم؟تشکر

        • ببخشید کتابخانه arduinojson را نصب کردم ولی بازم اررور زیر را داده:
          Arduino: 1.8.5 (Windows 10), Board: “WeMos D1 R2 & mini, 80 MHz, 4M (1M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 921600”

          C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src\WiFiServer.cpp: In member function ‘virtual void WiFiServer::begin()’:

          C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src\WiFiServer.cpp:81:50: error: invalid conversion from ‘int8_t (*)(void*, tcp_pcb*, int8_t) {aka signed char (*)(void*, tcp_pcb*, signed char)}’ to ‘tcp_accept_fn {aka long int (*)(void*, tcp_pcb*, long int)}’ [-fpermissive]

          tcp_accept(listen_pcb, &WiFiServer::_s_accept);

          ^

          In file included from C:\Users\nimagh9\Documents\Arduino\libraries\ESP8266WiFi\src\WiFiServer.cpp:36:0:

          C:\Users\nimagh9\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.0/tools/sdk/lwip2/include/lwip/tcp.h:360:18: error: initializing argument 2 of ‘void tcp_accept(tcp_pcb*, tcp_accept_fn)’ [-fpermissive]

          void tcp_accept (struct tcp_pcb *pcb, tcp_accept_fn accept);

          ^

          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.

          با برد wemos کامپایل کردم

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

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

    • با سلام و تشکر از توجه شما
      در این خصوص باید به دستورات AT Command مراجعه کنید. ابتدا دستور AT+CWLAP را وارد میکنید تا روتر را شناسایی کند. سپس با دستور AT+CWJAP=”SSID”,”PASSWORD” میتوانید به روتر مربوطه کانکت شوید. با برنامه ای که در این پست نوشته شده است، پس از قطع جریان برق رمز پاک نخواهد شد.

  • سلام جناب طباطبایی عزیز
    وقت بخیر
    در خصوص آموزش (ارتباط ربات تلگرام با بردهای آردوینو در پروژه IOT)
    Wemos D1 Mini
    چند سوال دارم.
    ابتدا من ماژول wemos D1 mini سفارش دادم که به من WIFI+ ESP-12N
    دادن.
    آیا این ۲ ماژول عملکرد یکسانی دارند؟تفاوت آنها در چیست و در کامبایل کردن و انتخاب نوع برد با یکدیگر فرقی میکنند یا خیر.
    این را اضافه کنم برد (شیلد باتری برد Wemos D1 Mini) من بیدا نکردم و از دانشجو کیت هم برام مقدور نیست خرید کنم.اگر ایرادی داره اعلام کنید.
    با توجه به گفته ها,بنده آموزش شما رو بنا به اینکه ماژول خریداری شده مطابق ماژول آموزشی شماست انجام دادم .
    اما در ربات هیچ اتفاقی نمی افتد
    عکس هایی از برنامه و ماژول قرار داده شد.
    http://s8.picofile.com/file/8321288668/photo_2018_03_09_15_36_38.jpg
    http://s8.picofile.com/file/8321288676/photo_2018_03_09_15_36_46.jpg
    http://s8.picofile.com/file/8321288684/Screenshot_4.png
    http://s8.picofile.com/file/8321288692/Screenshot_5.png

    ممنون میشم راهنمای من باشید
    تشکر از مطالب و آموزش های خوبتون

  • با عرض سلام و خسته نباشید وهمچنین تبریک سال نو
    من همه مراحل و درست انجام دادم
    ولی وقتی در ربات تلگرام ledon یا ledoff و sendمیکنم رله روشن نمیشه و در serial monitor این پیامو میده
    ⸮Connecting Wifi: CAR-974
    ……..
    WiFi connected
    IP address: 192.168.1.3
    got response
    handleNewMessages
    ۱
    got response
    handleNewMessages
    ۱
    ممنون میشم اگه راهنمایی کنید

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

  • با سلام و خسته نباشید
    من این کد رو بر روی node mcu esp32 اجرا کردم و تقریبا جواب داد فقط مشکلی که وجود داره اینه که بعد از زدن دستور on یا off در تلگرام ماژول رو باید ریست سخت افزاری کنم تا جواب بده و بعضی وقت ها هم چند بار ریست باید انجام بدم و بعد از چند دقیقه ال ای دی دستور رو اجرا میکنه میخاستم بدونم مشکل از کجاس؟ آیا میتونه مشکل از بات و ترافیک روی تلگرام باشه؟
    ممنون

      • با سلام
        از کد های شما استفاده کردم و کتابخانه های “WiFi.h” و “UniversalTelegramBot.h” و “WiFiClientSecure.h”
        اول تعریف کتابخانه ها رو بصورت تعریف کردم که ارور داشت و ماژول به شبکه و بات متصل نمیشد سپس کتابخانه رو بصورت “” تعریف کردم که به شبکه و بات متصل شد اما همونطور که گفتم با تاخیر دستور خاموش شدن یا روشن شدن رو انجام میده یا هم کلا برد رو باید ریست کنم تا جواب بده همچنین تا سه دستور رو فرمان میگیره و بعد از اون برای عمل کردن باید حتما ریست سخت افزاری بشه
        ممنون

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

  • سلام ممنون از توضیحاتتون.من زمانی که استارت رو میزنم هیچ پیغامی دریافت نمیکنم.سریال مانیتور رو هم چک کردم و همچنین API

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

  • با سلام مجدد من یک سوالی داشتم :
    میخواستم بدونم کد هایی که داخل void handleNewMessages قرار میگیره مانند void loop تکرار میشن ؟
    آخه من روی یک پروژه به مشکل برخوردم . میخوام زمانی که دستور status ارسال شد سنسور رو بخونه و به و مقدار رو به درصد ارسال کنه ولی من نموی دونم چرا اون مقداری که زمان آپلود برد و یا روشن شدن دستگاه خونده میفرسته یعنی فقط یکبار سنسور رو میخونه

    • با سلام و تشکر از شما
      اگر کدهایی که میفرمایید را داخل void loop تعریف کرده باشید، بله، بسته به تعریف‌تان قابل تکرار خواهد بود. بایستی مانند خط زیر ابتدا موارد را تعریف کنید.
      void handleNewMessages(int numNewMessages , int sensor1)
      سپس در void loop موارد به روز می‌شوند. البته این سوال شما مربوط به پروژه‌های جشنواره است. از تلاش شما در خصوص اجرای پروژه‌های سپاسگزارم.

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

          • ببخشید من برای این مشکل فقط باید int sensor رو داخل فانکشن قرار بدم یا نیاز به اضافه کردن String text و string chat ID هست؟ چون متغیر سنسور رو هر ۵ ثانیه یکبار دریافت میکنه و طبق کد اون رو در سریال مانیتور نشون میده. مشکل من در ارسال اون به ربات و اطلاع رسانی ربات در زمان روشن شدن برد هست (کد های داخل void handleNewMessage) ببخشید از اینکه به زحمت افتادین

  • سلام
    برنامه به درستی کامپایل میشه . موقعی که بر روی دستور /start کلیک میکنم هیچ عکس العملی سمت برد دریافت نمیشه
    دلیل این کار مسدود شدن تلگرامه؟
    تشکر

  • با سلام ببخشید شما در این آموزش از باتری لیتیوم پلیمر استفاده کردید می خواستم بدونم که ایا امکان داره من از طریق پورت ورودی usbminiواسش ولتاژ بدم تا کار کنه؟؟

  • با سلام
    کتابخانه WiFiClientSecure.h کاربردش چیه چه کاری انجام میده
    و همچنین کدهای زیر رو متوجه نشدم کاربردشون چیه اگه میشه خط به خط توضیح بدین
    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;این سه تا دستور رو توضیح بدین در کل کاربردشون چیه چرا تابع loop این دو تا متغییر رو جمع کردن و با تابع millis() شرط اینجا کردین؟

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

  • با سلام
    void handleNewMessages(int numNewMessages) { اینجا پارامتر ورودی دقیقا چه چیزی دریافت میکنه
    Serial.println(“handleNewMessages”);
    Serial.println(String(numNewMessages));

    for (int i=0; i<numNewMessages; i++) { این حلقه از ۰ برای چی تا مقدار num new message باید بره؟
    String chat_id = String(bot.messages[i].chat_id); این خط رو اصلا کاربردشو متوجه نمیشم
    String text = bot.messages[i].text; این خط رو هم متوجه نمیشم
    if (chat_id != "" &&chat_id != "" ) { هر شخصی در تلگرام یک chat_id منحصر بفردی داره که هرگز تغییر نمیکنه؟
    String message = "Chat-ID: " + chat_id + "\n";
    bot.sendMessage("", message, "Markdown"); تو این تابع پارامتر آخر چه کاری انجام میده markdown ؟
    return;
    }
    String from_name = bot.messages[i].from_name; این خط رو هم اصلا متوجه نشدم اگه میشه توضیح بدین
    if (from_name == "") from_name = "Guest"; این خط رو هم توضیح بدین

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

  • سلام من با یک روش دیگر از طریق اینترنت گوشی هات اسپات و یک اپ اندرویدی تونستم این مشکل را حل کنم و دوستانی که با تلگرام رفتن جلو مثل من و جواب نگرفتن می تونن به من بگن تا راهنمایی کنم در تلگرام شماره من ۰۹۱XXXXXX و در سروش شماره من۰۹۰XXXXXX می باشد در ضمن این از تلگرام با کلاس تر هم است و جلوه هوشمند تری دارد

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

  • با سلام من قبلا کتابخانه تلگرام را نصب کرده ام و حتی اجرا و از آن استفاده برده ام اما هم اکنون این پیام را دریاقت می کنم
    Arduino: 1.8.5 (Windows 10), Board: “LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600”

    Build options changed, rebuilding all
    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:120:26: error: ‘class ArduinoJson::JsonObject’ has no member named ‘measureLength’

    int length = payload.measureLength();

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:128:13: error: ‘class ArduinoJson::JsonObject’ has no member named ‘printTo’

    payload.printTo(out);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::getMe()’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:319:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:319:3: note: suggested alternative:

    In file included from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:10:0,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.h:26,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:36:

    C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’

    DynamicJsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:319:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:320:22: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject &root = jsonBuffer.parseObject(response);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:324:12: error: ‘class ArduinoJson::JsonObject’ has no member named ‘success’

    if (root.success()) {

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘int UniversalTelegramBot::getUpdates(long int)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:369:5: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:369:5: note: suggested alternative:

    In file included from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:10:0,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.h:26,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:36:

    C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’

    DynamicJsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:369:23: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:370:24: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject &root = jsonBuffer.parseObject(response);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:372:14: error: ‘class ArduinoJson::JsonObject’ has no member named ‘success’

    if (root.success()) {

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:382:50: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::Internals::JsonArraySubscript’

    JsonObject &result = root[“result”][i];

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::processResult(ArduinoJson::JsonObject&, int)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:431:45: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::Internals::JsonObjectSubscript’

    JsonObject &message = result[“message”];

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:451:50: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::Internals::JsonObjectSubscript’

    JsonObject &message = result[“channel_post”];

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:460:52: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::Internals::JsonObjectSubscript’

    JsonObject &message = result[“callback_query”];

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:472:52: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::Internals::JsonObjectSubscript’

    JsonObject &message = result[“edited_message”];

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessage(String, String, String)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:530:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:530:3: note: suggested alternative:

    In file included from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:10:0,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.h:26,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:36:

    C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’

    DynamicJsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:530:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:531:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject &payload = jsonBuffer.createObject();

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:547:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:547:3: note: suggested alternative:

    In file included from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:10:0,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.h:26,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:36:

    C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’

    DynamicJsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:547:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:548:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject &payload = jsonBuffer.createObject();

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:557:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::JsonObject’

    JsonObject &replyMarkup = payload.createNestedObject(“reply_markup”);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:564:21: error: expected ‘;’ before ‘keyboardBuffer’

    DynamicJsonBuffer keyboardBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:565:29: error: ‘keyboardBuffer’ was not declared in this scope

    replyMarkup[“keyboard”] = keyboardBuffer.parseArray(keyboard);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:589:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:589:3: note: suggested alternative:

    In file included from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:10:0,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.h:26,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:36:

    C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’

    DynamicJsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:589:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:590:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject &payload = jsonBuffer.createObject();

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:599:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::JsonObject’

    JsonObject &replyMarkup = payload.createNestedObject(“reply_markup”);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:601:21: error: expected ‘;’ before ‘keyboardBuffer’

    DynamicJsonBuffer keyboardBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:602:36: error: ‘keyboardBuffer’ was not declared in this scope

    replyMarkup[“inline_keyboard”] = keyboardBuffer.parseArray(keyboard);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)’:

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:684:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:684:3: note: suggested alternative:

    In file included from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:10:0,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.h:26,

    from C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:36:

    C:\Users\acer-pc\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’

    DynamicJsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:684:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:685:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject &payload = jsonBuffer.createObject();

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:703:72: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::JsonObject’

    JsonObject &replyMarkup = payload.createNestedObject(“reply_markup”);

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:705:23: error: expected ‘;’ before ‘keyboardBuffer’

    DynamicJsonBuffer keyboardBuffer;

    ^

    C:\Users\acer-pc\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:706:31: error: ‘keyboardBuffer’ was not declared in this scope

    replyMarkup[“keyboard”] = keyboardBuffer.parseArray(keyboard);

    ^

    exit status 1
    Error compiling for board LOLIN(WEMOS) D1 R2 & mini.

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

  • سلام من تموم دستوراتی که تو این پست نوشتین رو انجام دادم ولی موقع کامپایل کردن این ارور رو میده

    Arduino: 1.8.5 (Windows 7), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 512000”

    C:\Users\alireza.sjd\Documents\Arduino\project\telegran_bot\telegran_bot.ino:3:34: fatal error: UniversalTelegramBot.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board NodeMCU 1.0 (ESP-12E Module).

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

  • سلام و خسته نباشید میخواستم بدونم این ارور برای چیه تمام کتاب خونه ها و تمام چیزهای گفته شده مو به مو انجام شده
    Arduino: 1.8.7 (Windows Store 1.8.15.0) (Windows 10), Board: “LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600”

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:85:26: error: ‘class ArduinoJson::JsonObject’ has no member named ‘measureLength’

    int length = payload.measureLength();

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:92:13: error: ‘class ArduinoJson::JsonObject’ has no member named ‘printTo’

    payload.printTo(out);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::getMe()’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:269:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:269:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:270:22: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject& root = jsonBuffer.parseObject(response);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:272:11: error: ‘class ArduinoJson::JsonObject’ has no member named ‘success’

    if(root.success()) {

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘int UniversalTelegramBot::getUpdates(long int)’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:305:5: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:305:23: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:306:24: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject& root = jsonBuffer.parseObject(response);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:308:14: error: ‘class ArduinoJson::JsonObject’ has no member named ‘success’

    if (root.success()) {

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:316:62: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::Internals::enable_if<true, ArduinoJson::Internals::JsonObjectSubscript >::type {aka ArduinoJson::Internals::JsonObjectSubscript}’

    JsonObject& message = root[“result”][i][“message”];

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessage(String, String, String)’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:379:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:379:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:380:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:394:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:394:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:395:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:404:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::JsonObject’

    JsonObject& replyMarkup = payload.createNestedObject(“reply_markup”);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:411:21: error: expected ‘;’ before ‘keyboardBuffer’

    DynamicJsonBuffer keyboardBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:412:29: error: ‘keyboardBuffer’ was not declared in this scope

    replyMarkup[“keyboard”] = keyboardBuffer.parseArray(keyboard);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:432:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:432:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:433:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:442:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::JsonObject’

    JsonObject& replyMarkup = payload.createNestedObject(“reply_markup”);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:444:21: error: expected ‘;’ before ‘keyboardBuffer’

    DynamicJsonBuffer keyboardBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:445:36: error: ‘keyboardBuffer’ was not declared in this scope

    replyMarkup[“inline_keyboard”] = keyboardBuffer.parseArray(keyboard);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)’:

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:514:3: error: ‘DynamicJsonBuffer’ was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:514:21: error: expected ‘;’ before ‘jsonBuffer’

    DynamicJsonBuffer jsonBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:515:25: error: ‘jsonBuffer’ was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:533:72: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject&’ from an rvalue of type ‘ArduinoJson::JsonObject’

    JsonObject& replyMarkup = payload.createNestedObject(“reply_markup”);

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:535:23: error: expected ‘;’ before ‘keyboardBuffer’

    DynamicJsonBuffer keyboardBuffer;

    ^

    C:\Users\ario\Documents\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:536:31: error: ‘keyboardBuffer’ was not declared in this scope

    replyMarkup[“keyboard”] = keyboardBuffer.parseArray(keyboard);

    ^

    exit status 1
    Error compiling for board LOLIN(WEMOS) D1 R2 & mini.

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