آردوینو آموزش آردوینو اینترنت اشیا IOT اینترنت اشیاء عملی پروژه های آردوینو

آموزش مدیریت منزل از هر مکان با ربات تلگرام و برد NodeMCU

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

تصور کنید هنگامی که روز کاری تمام شده است و با خستگی روزانه در حال حرکت به سمت منزل هستید. ترافیک عبور و مرور هم در ساعت اوج خود است. به منزل میرسید و با عدم تعادل دمای هوای منزل روبرو می‌شوید. یا اینکه تمایل دارید تا قبل از رسیدن شما به منزل کلیه گلدان‌ها آبیاری شوند. برای این منظور نیاز به MCU قدرتمند با پایه‌های متنوع خواهید داشت. پیرو پست مدیریت وسایل برقی با ربات تلگرام و سیستم چت آنلاین آردوینو ، ۴ وسیله برقی را میتوانستید از هر مکانی کنترل کنید. در این پست شیوه مدیریت ۸ وسیله برقی البته با ربات تلگرام و برد NodeMCU دارای صفحه کلید آموزش خواهم داد. البته با برد قوی‌تر Node MCU بر پایه تراشه ESP8266 و شیلد توسعه که توانایی اتصال بیش از ۳۲ رله را دارد. همانطور که قبلا در پست ارتباط برد رزبری پای با ربات تلگرام توضیح داده‌ام. تلگرام فقط یک شبکه اجتماعی برای کاربران نیست، بلکه توانایی ارتباط M to M و ماشینی را دارد. در وب نسل ۳ از این مدل ارتباط ماشین به ماشین زیاد خواهیم دید. در ادامه آموزش چت با شیئ توسط ربات تلگرام و بردهای آردوینو ، با مرجع تخصصی اینترنت اشیاء دیجی اسپارک همراه باشید.

 

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

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

 

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

کیت پیشرفته مدیریت وسایل منزل با ربات تلگرام و برد NodeMCU

 

اتصال به برد NodeMCU

پایه‌های ماژول رله ۸ کانال را با دقت به برد Node MCU متصل کنید. پایه VCC به تغذیه برد Node MCU و پایه GND به اتصال زمین برد Node MCU وصل می‌شوند. ۸ پایه فرمان به رله‌ها به ترتیب به پین‌های D1 تا D8 وصل کنید. در این آموزش از شیلد توسعه برد اینترنت اشیاء Node MCU Base Shield و برد Node MCU استفاده شده است. که میتوانید به صورت شیلد برد Node MCU را روی آن قرار دهید و اتصالات را همانند من از روی آن به رله وصل کنید. به همین سادگی، به تصویر زیر توجه کنید. سپس با سوکت XH اتصال باتری لیتیوم پلیمر را برقرار کنید.

خانه هوشمند با آردوینو و ربات تلگرام - مدیریت منزل از هر مکانی دیجی اسپارک

 نکته جالب توجه در این آموزش این است. که میتوانید با یک دستور به طور همزمان به چند رله فرمان دهید. از آنجایی که شیلد Nodemcu دارای پین‌های توسعه می‌باشد. علاوه بر امکان افزودن رله‌های بیشتر، امکان مدیریت چند رله با یک پین هم دارد.

 

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

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

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

Keyboard-telegram-bot-iot-project--digispark

 

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

 

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

 

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

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

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

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

۱۷۶ دیدگاه

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

    • با سلام
      بله میتوانید استفاده کنید، کدهاى برد wemos D1 Mini و برد Node MCU یکسان هستند، حتى آدرس دهى پین ها هم یکسان است، براى تنوع در این آموزش از برد دیگرى استفاده کردم.

        • با سلام
          هر دو برد بر پایه تراشه ESP8266 طراحی شده اند. البته توسط دو برند مختلف، که هر دو کارایی یکسان دارند. ولی بسته به نوع مصرف و نیازها در پروژه باید انتخاب شوند. برد Wemos دارای ابعاد کوچکتر می‌باشد. هر دو برد دارای شیلدها و بردهای توسعه دهنده متنوع هستند. اینکه در این آموزش از Node MCU استفاده کردم، با توجه به شیلد معرفی شده، امکان خروجی ۳۸ رله را هم دارد. که متناسب با این باید تغذیه مناسبی هم برای برد در نظر گرفت.

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

  • سلام و خسته نباشید
    اگه بخوایم به صورت جدا مثلا اردوینو نانو و ماژول esp8266 را به هم متصل و به ربات تلگرام وصل کنیم امکانش هست؟

    • با سلام
      بله میتوانید این کار را انجام دهید. ولی باید در کدها تغییرات ایجاد کنید. پایه‌هایی را که مورد استفاده قرار داده‌اید، باید تعریف شوند.

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

      • سلام.تشکر زیاد.عذر میخوام سوالاتم شاید کمی مبتدیانه باشه.من برای چراغهای منزل میخواستم استفاده کنم.هر اتاق ۱ رله باشه
        یعنی ۸ رله از هم جدا میشند؟چون توی تصویر که میبینم ظاهرا رله ها ثابت شدند روی برد
        میشه بفرمایید به چه شکل

          • به نظر من واسه روشنایی از رله های جدا جدا استفاده نشه بهتره اخه ممکنه تو مسافت افت ولتاژ و جریان ایجاد بشه و رله تحریک نشه بهتره سیم کشی ۲۲۰ روشنایی رو تغیر بدن و همه رو به جا ختم کنن
            بازم شما تجربتون بیشتره !
            میشه بگین کدوم بهتره؟

            • بله نظر شما هم درست است. البته چنانچه امکان سیم کشی نباشد هم میتوان از چند برد Node MCU و رله در مکان‌های مختلف استفاده کرد. در کل سیم کشی با طول زیاد برای ارتباط از میکرو به رله کار منطقی نمیباشد.

  • با سلام و ادب
    در موقع اپلود این ارور میده.مربوط به چی هست
    led_wifi_with_telegram:12: error: missing terminating ” character
    ” // توکن ربات تلگرام

    ^

    led_wifi_with_telegram:15: error: missing terminating ” character

    UniversalTelegramBot bot(BOTtoken, client);

    ^

    led_wifi_with_telegram:11: error: expected unqualified-id before numeric constant

    ۴۰۶۷۳۲۷۰۳:AAFPVISCSf3DIMH-vFeWM1fk4eZGiPi-tas

    ^

    led_wifi_with_telegram:15: error: expected primary-expression before ‘,’ token

    UniversalTelegramBot bot(BOTtoken, client);

    ^

    led_wifi_with_telegram:15: error: ‘client’ was not declared in this scope

    UniversalTelegramBot bot(BOTtoken, client);

    ^

    Multiple libraries were found for “UniversalTelegramBot.h”
    Used: C:\Users\ALI\Documents\Arduino\libraries\UniversalTelegramBot-1.0.0
    Not used: C:\Users\ALI\Documents\Arduino\libraries\Universal-Arduino-Telegram-Bot-master
    exit status 1
    missing terminating ” character

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

  • سلام مجدد
    مشگل از ارتباط با تلگرام بود.حل شد
    و الان با تلگرام هم ارتباط برقرار کردم.فقط پین in را به هر کدام از پینهای ۱ تا ۸ میزنم رله عمل میکنه و چراغ سبز روشن میشه.ولی با دستور ان اف هیچ عکس العملی از رله انجام نمیگیره.روی پین ۲ ۱و و ۴ و ۸ تست کردم

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

      • با سلام و تشکر از وقت گذاشتن و جواب سریع
        متاسفانه من دوباره تلاش کردم و نشد.فقط برنامه که در حال کمپایله به ۲۸ درصد حدود ۳ یا ۴ ثانیه رله خاموش میشه ولی وقتی به ۱۰۰ درصد رسید دوباره رله روشن میمونه و دیگه به هیچ وجه خاموش نمیشه.چند تا عکس هم خدمتتون ضمیمه میدم.ممنون میشم
        ۵v toVCC
        G to GND
        D1 to IN

        http://up.upinja.com/8uepj.jpg
        http://up.upinja.com/l5gbg.jpg
        http://up.upinja.com/8r0fp.jpg
        http://up.upinja.com/dgw0a.jpg
        http://up.upinja.com/6zusd.jpg

        • خواهش میکنم
          با توجه به عکس شماره ۵ ارتباط شما با شبکه و ربات تلگرام برقرار است. که در عکس شماره ۱ هم مشخص است، صفحه کلید لود شده است. اینکه رله روشن میماند، به این دلیل است که شما از برد Wemos D1 Mini استفاده کرده‌اید و این کدها مربوط به Node MCU است. همچنین چون میخواهید از یک رله استفاده کنید، باید کدهای برنامه را برای ۱ رله تغییر دهید. تمامی قسمت‌هایی که دارای حروف D2 تا D8 هستند را از برنامه حذف کنید.

  • با تشکر فراوان
    من همه کدهای مربوط به D2 تا D4 پاک کردم و لود کردم.ولی هیچ تغییری نکرد.برد هم به node mcu .9 تغییر دادم و دوباره لود کردم بازم تغییری نکرد

    • نه نباید نوع برد را تغییر بدهید، شما چون از برد wemos استفاده میکنید باید از همان برد به هنگام کامپایل کردن استفاده کنید. لطفا جهت رفع مشکل با فروشگاه تماس بگیرید.

  • سلام برای نصب کامند تلکرام در نود-رد برای برد رزبری میشه کمی راهنمایی کنید
    از کجا باید این گروه کامند را در node-red نصب کنم

  • سلام
    من دراتصال آردوینو به مشکل برخوردم و این ارور نمایش میده.
    لطفاً راهنمایی بفرمایید.ممنون
    Arduino: 1.8.3 (Windows 7), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)”

    C:\Users\home\Desktop\sketch_jul13a\sketch_jul13a.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.

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

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

        In file included from C:\Users\home\Desktop\sketch_jul13b\sketch_jul13b.ino:5:0:

        C:\Program Files\Arduino\libraries\TelegramBotMaster/UniversalTelegramBot.h:27:25: fatal error: ArduinoJson.h: No such file or directory

        #include

        ^

        compilation terminated.

        Using library ESP8266WiFi at version 1.0 in folder: C:\Users\home\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi
        Using library TelegramBotMaster in folder: C:\Program Files\Arduino\libraries\TelegramBotMaster (legacy)
        exit status 1
        Error compiling for board NodeMCU 1.0 (ESP-12E Module).

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

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

            C:\Program Files\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp: In function ‘void wifi_wps_status_cb(wps_cb_status)’:

            C:\Program Files\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp:593:14: error: ‘WPS_CB_ST_UNK’ was not declared in this scope

            case WPS_CB_ST_UNK:

            ^

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

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

  • سلام
    آقا آموزشتون بینظیره من همین الان توی آپارت دیدم، واقعا ازتون تشکر میکنم. وای که چقدر ذوق دارم بسازمش

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

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

  • وقت بخیر
    با راهنمایی شما نصب کردم این خطا ر و داد
    Arduino: 1.8.3 (Windows XP), Board: “NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (3M SPIFFS)”

    Build options changed, rebuilding all
    In file included from C:\Documents and Settings\Zabari_pc\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiGeneric.h:27:0,

    from C:\Documents and Settings\Zabari_pc\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:28,

    from C:\Documents and Settings\Zabari_pc\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,

    from C:\Documents and Settings\Zabari_pc\Desktop\test_t\22\sketch_jul18a\sketch_jul18a.ino:1:

    c:\documents and settings\zabari_pc\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\functional:48:28: fatal error: bits/c++config.h: No such file or directory

    #include

    ^

    compilation terminated.

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

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

    • با سلام
      ضمن تشکر از توجه شما، این ارور مربوط به عدم نصب بودن کتابخانه ESP8266WiFiSTA.h می‌باشد. برای نصب از منو Sketch > Include Library > Manage Libraries اقدام کنید. در پنجره باز شده، اسم فایل را وارد و نصب کنید. اگر مشکل همچنان باقی بود، از همین طریق اعلام بفرمایید.

      • دوباره این خطا رو داد
        Arduino: 1.8.3 (Windows XP), Board: “NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (3M SPIFFS)”

        Build options changed, rebuilding all
        In file included from C:\Documents and Settings\N_a_v_i_d\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiGeneric.h:27:0,

        from C:\Documents and Settings\N_a_v_i_d\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:28,

        from C:\Documents and Settings\N_a_v_i_d\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,

        from C:\Documents and Settings\N_a_v_i_d\Desktop\ardo_test\ardo_test.ino:1:

        c:\documents and settings\n_a_v_i_d\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\functional:48:28: fatal error: bits/c++config.h: No such file or directory

        #include

        ^

        compilation terminated.

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

        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[] = “****************”; // یوزر نیم مودم یا روتر وای فای
            char password[] = “**************”; // پسوورد روتر یا مودم وای فای

            // Initialize Telegram BOT
            #define BOTtoken “******************************” // توکن ربات تلگرام

            WiFiClientSecure client;
            UniversalTelegramBot bot(BOTtoken, client);

            int Bot_mtbs = 1000;
            long Bot_lasttime;
            bool Start = false;

            const int relay1 = D1;
            const int relay2 = D2;
            const int relay3 = D3;
            const int relay4 = D4;
            const int relay5 = D5;
            const int relay6 = D6;
            const int relay7 = D7;
            const int relay8 = D8;
            int relaystatus = 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();
            }
            }

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

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

          • سلام مجدد
            بدون وای فای تست گرفتم روشن شد
            و هیچ مشکلی نداره
            ولی با وای فای لحظه کانکت شدن led های روی برد روشن میشن و دیگه خاموش نمیشن
            ممنون از پاسخگویی تون بررسی میکنم

            • سلامت باشید، بررسى بفرمایید و نتیجه را اعلام کنید. بنده هم تا بحال با چنین مشکلى مواجه نشده ام.

              • پس از سعی و تلاش فراوان موفق نشدم:|
                فکر کنم ایراد از سمت رله است
                چون قطعاتش smd هستش دستش نزدم
                راستی مهندس یه سوال؟
                میشه کاری کرد وقتی متن خاصی در تلگرام تایپ شد و ارسال شد روی حافظه eeprom ذخیره بشه؟

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

  • سلام مجدد وسپاس از پاسخگویی شما.
    ایراد از ویدوز بود فکر کنم چون برنامه رو رو سیستمهایی که xp داشتن کامپایل کردم ولی قبل از تماس با پشتیبانی روی وین ۷ تست کردم و دیگه اون خطا رو نداد .
    ولی یه خطای دیگه آخر کامپایل میده اونک اینه که متوجه نشدم . زحمتش با شما . ببخشید
    Arduino: 1.8.0 (Windows 7), Board: “NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (3M SPIFFS)”

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::UniversalTelegramBot(String, Client&)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::UniversalTelegramBot(String, Client&)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:25: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::UniversalTelegramBot(String, Client&)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::UniversalTelegramBot(String, Client&)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:25: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendGetToTelegram(String)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendGetToTelegram(String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:30: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendMultipartFormDataToTelegram(String, String, String, String, String, int, bool (*)(), unsigned char (*)())':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendMultipartFormDataToTelegram(String, String, String, String, String, int, bool (*)(), unsigned char (*)())’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:147: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendPhotoByBinary(String, String, int, bool (*)(), unsigned char (*)())':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendPhotoByBinary(String, String, int, bool (*)(), unsigned char (*)())’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:499: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::checkForOkResponse(String)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::checkForOkResponse(String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:542: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendSimpleMessage(String, String, String)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendSimpleMessage(String, String, String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:356: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendChatAction(String, String)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendChatAction(String, String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:554: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:68: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendPostMessage(ArduinoJson::JsonObject&)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendPostMessage(ArduinoJson::JsonObject&)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:454: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendMessage(String, String, String)':

    C:\Users\Omid\Documents\Arduino\libraries\UniversalTelegramBot\src/UniversalTelegramBot.cpp:377: multiple definition of UniversalTelegramBot::sendMessage(String, String, String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:377: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:392: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)':

    C:\Users\Omid\Documents\Arduino\libraries\UniversalTelegramBot\src/UniversalTelegramBot.cpp:430: multiple definition of UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:430: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendPostPhoto(ArduinoJson::JsonObject&)':

    C:\Users\Omid\Documents\Arduino\libraries\UniversalTelegramBot\src/UniversalTelegramBot.cpp:475: multiple definition of UniversalTelegramBot::sendPostPhoto(ArduinoJson::JsonObject&)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:475: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)':

    C:\Users\Omid\Documents\Arduino\libraries\UniversalTelegramBot\src/UniversalTelegramBot.cpp:512: multiple definition of UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:512: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::getMe()':

    C:\Users\Omid\Documents\Arduino\libraries\UniversalTelegramBot\src/UniversalTelegramBot.cpp:266: multiple definition of UniversalTelegramBot::getMe()’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:266: first defined here

    libraries\UniversalTelegramBot\UniversalTelegramBot.cpp.o: In function UniversalTelegramBot::getUpdates(long)':

    C:\Users\Omid\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:314: multiple definition of UniversalTelegramBot::getUpdates(long)’

    sketch\UniversalTelegramBot.cpp.o:sketch/UniversalTelegramBot.cpp:290: first defined here

    collect2.exe: error: ld returned 1 exit status

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

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

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

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

    • سلام مجدد
      برای این موضوع وضعیت High و Low در کدها را معکوس کنید. مشکل حل خواهد شد. اگر هم به آنچه مد نظرتان است نرسیدید، خروجی رله‌ها را از حالت Normally Open ببندید.

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

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

  • سلام من همه کارهارو دقیق انجام دادم ولی نمیدونم چرا در انتهای کار بهم ارور میده. بعد از برنامه ریزی هم بردم ۳ با رله های ۳و۸ خاموش روشن میشه و یهو ارور روی قسمت پایین کامپایلر ظاهر میش. و این هم اروری که بهم میده:

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

    Archiving built core (caching) in: C:\Users\hesam\AppData\Local\Temp\arduino_cache_796215\core\core_esp8266_esp8266_nodemcuv2_CpuFrequency_80,UploadSpeed_115200,FlashSize_4M3M_cd969a87b9c5c4ef98bd910b2ecd9809.a
    Sketch uses 298189 bytes (28%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 40892 bytes (49%) of dynamic memory, leaving 41028 bytes for local variables. Maximum is 81920 bytes.
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    Exception in thread “Thread-75” java.lang.NullPointerException
    at cc.arduino.contributions.libraries.LibrariesIndexer.rescanLibraries(LibrariesIndexer.java:114)
    at cc.arduino.contributions.libraries.LibrariesIndexer.setLibrariesFolders(LibrariesIndexer.java:106)
    at processing.app.BaseNoGui.onBoardOrPortChange(BaseNoGui.java:682)
    at processing.app.Base.onBoardOrPortChange(Base.java:1297)
    at processing.app.Editor$DefaultExportHandler.run(Editor.java:2165)
    at java.lang.Thread.run(Thread.java:745)

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

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

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

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

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

        • من متوجه نشدم، روی ماژول‌های رله جامپر وجود دارد که با جدا کردن آن برق از رله‌ها جدا شده و فقط به ال ای دی‌های پشت رله‌ها اتصال دارد. آیا این کار را انجام دادید؟ یا فقط پایه تغذیه برد را جدا کردید؟

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

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

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

    • سلام من هم دقیقا همین مشکل رو داشتم پس از تست فراوان فهمیدم ایراد از سمت رله هستش
      اخه من از چند ماژول رله استفاده میکنم ! و فقط یکیش این مشکل رو داره اونو جداش کردم تمام مشکلات حل شد!!!

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

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

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

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

        • خواهش میکنم، در این روش شما روی هر تلگرامی که ربات ساخته شده را راه اندازی کنید؛ میتوانید به MCU فرمان دهید.

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

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

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

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

    در این پکیج من ندیدم که با دسترسی فیزیکی بشه دستوری صادر کرد. با مثال توضیح میدهم.

    یک کلید کولر را در نظر بگیرید. که با ۳ رله انجام پذیر است. ولی فقط از طریق تلگرام قابل کنترل میباشد.
    چطور میشه برای هر رله یک کلید فشاری(دکمه) قرار داد که وضیعت رله را تغییر بده. یعنی هم با تلگرام قابل خاموش روشن شدن باشه هم در محل با کلید فشاری (دکمه)…
    در این صورت میشه یک قاب برای کل پکیج ساخت و جای کلید کولر استفاده کرد.
    روشنایی پذیرایی هم همیشه ۴ یا ۶ کلید داره که با این کار میشه یک قاب شیک هم برای اون ساخت.
    فکر میکنم اینطوری یکم کاربردی تر میشه…

    خیلی خیلی متشکرم…

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

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

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

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

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

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

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

  • سلام. این ارور چیه. همه مراحل صحیح انجام دادم. امکان داره کد صحیح به ما بگید.

    Build options changed, rebuilding allsketch_aug06a:19: error: ‘D1’ was not declared in this scope

    const int relay1 = D1;

    ^

    sketch_aug06a:20: error: ‘D2’ was not declared in this scope

    const int relay2 = D2;

    ^

    sketch_aug06a:21: error: ‘D3’ was not declared in this scope

    const int relay3 = D3;

    ^

    sketch_aug06a:22: error: ‘D4’ was not declared in this scope

    const int relay4 = D4;

    ^

    sketch_aug06a:23: error: ‘D5’ was not declared in this scope

    const int relay5 = D5;

    ^

    sketch_aug06a:24: error: ‘D6’ was not declared in this scope

    const int relay6 = D6;

    ^

    sketch_aug06a:25: error: ‘D7’ was not declared in this scope

    const int relay7 = D7;

    ^

    sketch_aug06a:26: error: ‘D8’ was not declared in this scope

    const int relay8 = D8;

    ^

    C:\Users\Hadi\Desktop\sketch_aug06a\sketch_aug06a.ino: In function ‘void setup()’:

    sketch_aug06a:211: error: ‘D1’ was not declared in this scope

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

    ^

    sketch_aug06a:215: error: ‘D2’ was not declared in this scope

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

    ^

    sketch_aug06a:219: error: ‘D3’ was not declared in this scope

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

    ^

    sketch_aug06a:223: error: ‘D4’ was not declared in this scope

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

    ^

    sketch_aug06a:227: error: ‘D5’ was not declared in this scope

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

    ^

    sketch_aug06a:231: error: ‘D6’ was not declared in this scope

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

    ^

    sketch_aug06a:235: error: ‘D7’ was not declared in this scope

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

    ^

    sketch_aug06a:239: error: ‘D8’ was not declared in this scope

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

    ^

    Multiple libraries were found for “UniversalTelegramBot.h”
    Used: C:\Users\Hadi\Documents\Arduino\libraries\UniversalTelegramBot
    Not used: C:\Users\Hadi\Documents\Arduino\libraries\UniversalTelegramBot-1.0.0
    Not used: C:\Users\Hadi\Documents\Arduino\libraries\Universal-Arduino-Telegram-Bot-master
    exit status 1
    ‘D1’ was not declared in this scope

    • با سلام
      ضمن تشکر از توجه شما، لطفا کدها را به هنگام کپی کردن از کلید میانبر بالای کدها استفاده کنید. نکته بعدی اینکه کتابخانه UniversalTelegramBot.h چند بار نصب شده است. برای رفع این مشکل از منو Sketch>include library کتابخانه را مجددا نصب کنید.

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

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

  • سلام ممنون از شما
    مشکلی که من دارم با رله هست
    خروجی ای اس پی نود ام سی یو ۳٫۳v هست
    و نمیتونه رله رو روشن خاموش کنه فکر کنم… ال ای دی روی رله ها عمل میکنن ولی خودش نه
    چکار میتونم بکنم ممنون

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

    sketch_aug08a:19: error: ‘D1’ was not declared in this scope

    const int relay1 = D1;

    ^

    sketch_aug08a:20: error: ‘D2’ was not declared in this scope

    const int relay2 = D2;

    ^

    sketch_aug08a:21: error: ‘D3’ was not declared in this scope

    const int relay3 = D3;

    ^

    sketch_aug08a:22: error: ‘D4’ was not declared in this scope

    const int relay4 = D4;

    ^

    sketch_aug08a:23: error: ‘D5’ was not declared in this scope

    const int relay5 = D5;

    ^

    sketch_aug08a:24: error: ‘D6’ was not declared in this scope

    const int relay6 = D6;

    ^

    sketch_aug08a:25: error: ‘D7’ was not declared in this scope

    const int relay7 = D7;

    ^

    sketch_aug08a:26: error: ‘D8’ was not declared in this scope

    const int relay8 = D8;

    ^

    C:\Users\Hadi\AppData\Local\Temp\arduino_modified_sketch_871546\sketch_aug08a.ino: In function ‘void setup()’:

    sketch_aug08a:211: error: ‘D1’ was not declared in this scope

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

    ^

    sketch_aug08a:215: error: ‘D2’ was not declared in this scope

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

    ^

    sketch_aug08a:219: error: ‘D3’ was not declared in this scope

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

    ^

    sketch_aug08a:223: error: ‘D4’ was not declared in this scope

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

    ^

    sketch_aug08a:227: error: ‘D5’ was not declared in this scope

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

    ^

    sketch_aug08a:231: error: ‘D6’ was not declared in this scope

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

    ^

    sketch_aug08a:235: error: ‘D7’ was not declared in this scope

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

    ^

    sketch_aug08a:239: error: ‘D8’ was not declared in this scope

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

    ^

    exit status 1
    ‘D1’ was not declared in this scope

    در ضمن بی زحمت یه بار دیگه نحوه اتصالات لطف کنید بگید. چون چراغ برد رله یه لحظه ۲تاش روشن میشه، یع لحظه یکی، یه لحظه ۳ تا

    • سلام مجدد
      این ارور مربوط به کدها میباشد، دقت کنید که سطرهای ۱۷ تا ۲۴ را درست وارد کرده باشید. وقتی از حالت استاندارد ++C خارج شوند این ارورها را دریافت میکنید. نمونه کد سالم:
      const int relay1 = D1;
      const int relay2 = D2;
      .
      .
      .

  • خیلی عالی …
    فقط یه سوال این ماژول اگر مودم خاموش روشن بشه ^ اتومات برای وصل شدن ریست میشه ؟
    یا باید دستی خاموش روشنش کرد ؟

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

      if (WiFi.status() != WL_CONNECTED) { // FIX FOR USING 2.3.0 CORE (only .begin if not connected)
      WiFi.begin(ssid, password); // connect to the network
      }
      while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(“.”);
      }

    • با سلام
      ضمن تشکر از توجه شما، برای این منظور میتوانید مستقیما اتصالات را به پایه‌های برد Node MCU متصل کنید. تغذیه هم بستگی دارد، اگر از ورژن ۰٫۹ استفاده می‌کنید، دارای تغذیه ۵ ولت می‌باشد که به رله متصل کنید. اگر از ورژن دیگری استفاده می‌کنید، تغذیه ۳٫۳ ولت دارد، که در این صورت، جهت دریافت راه حل اعلام کنید.

      • سلا
        با تشکر از جوابتان. تغذیه رله من پنج ولت است .. تمامی اتصالات رله به برد را به درستی وصل کردم، فقط نمیدونم چجوری برق رله را باید تامین کنم(ممنون میشم سطح جواب خود را در حد کسی که رشته اش الکترونیک و برق نیست جواب بدهید)

        • خواهش میکنم، لطفا بفرمایید که از ماژول رله استفاده می‌کنید یا از رله به تنهایی؟ پیشنهاد بنده این است که حتما از ماژول رله استفاده شود. تغذیه روی ماژول مشخص است یک پایه VCC است که به پین ۵ ولت و پایه دیگر GND به زمین مدار یا همان GND روی برد اتصال می‌دهید.

          • سلام
            از ماژول رله استفاده میکنم.پایهGND را به برد وصل کردم ،فقط موندم پایه vcc را باید به کدوم پایه node mcu وصل کنم. با تشکر

            • اگر از NodeMCU ورژن ۰٫۹ استفاده می‌کنید، دارای پایه ۵V است. به آن وصل کنید. ولی اگر از NodeMCU ورژن ۱٫۰ استفاده می‌کنید، پایه ۵ ولت ندارد. باید با ترانزیستور اتصالات را از پایه ۳٫۳ ولت بگیرید.

  • با سلام و عرض ادب و احترام
    آموزش های شما بسیار مفید , عملی و آموزنده می باشند.
    آقای مهندس در صورت امکان لینک های مرتبط و پیش نیاز آموزش ها را به صورت زنجیره ای قرار دهید.
    یعنی در هر صفحه آموزشی جدید فقط یک لینک وجود داشته باشد و آن لینک نیز آدرسی دیگر.
    تا از سردرگمی و پیچیدگی آموزش ها جلوگیری به عمل آید.
    یا می توانید با کد گذاری در ابتدای هر لینک مرتبط , آن ها را نوبت دهی و اولویت بندی کنید .
    به عنوان مثال ۱٫مدیریت وسایل برقی با ربات تلگرام و سیستم چت آنلاین آردوینو.
    ۲٫ارتباط برد رزبری پی آی با تلگرام و غیره….
    با تشکر.

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

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

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

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

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

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

  • با سلام
    من با کدهای شما و کدهای دیگر توکن تلگرام را EEprom ذخیره کردم ولی تو تعریف #define BOTtoken برای فراخوانی با توکن ذخیره شده در مموری مشکل دارم خواهشمندم راهنمایی بفرمایید.
    void readEeprom(){
    for(int i = offset; i<50; i++ ){
    botToken[i] = EEPROM.read(i);
    Serial.print("Wrote: ");

    }
    Serial.println(botToken);
    EEPROM.commit();
    }

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

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

  • سلام میدونم جاش نیست ولی همینجا میپرسم چون شما زود و جامع جواب میدی
    من https://daneshjookit.com/%D9%86%D9%88%D8%B9-%D8%B3%D9%86%D8%B3%D9%88%D8%B1/2494-%D8%B3%D9%86%D8%B3%D9%88%D8%B1-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%AD%D8%B1%DA%A9%D8%AA-pir-sr505.html?search_query=pir&results=4 سنسور تشخیص حرکتو خریدم ولی مشکل داره خودش هی صفر و یک میشه یه بار درست شد باز دوباره صفر و یک میشه مشکل هم از کد ها نیس از سنسوره میگن حالت تثبیت شدنه ولی خیلی زمان اینجوری میمونه مشکلش چیه؟ تنظیمات خاصی داره؟!

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

  • با عرض سلام ،
    من بدون شیلد توسعه ، جریان لازم رو هم به usb برد nodemcu و هم به پایه های vin , ground برد و نیز پایه مثبت رله ها رسوندم و منفی رو هم از گروند دیگه برد به برد رله متصل کردم و چند حالت دیگه هم تست کردم اما جواب نداند. مگر شیلد توسعه جز تامین ولتاژ ۵ ولت (که من هم آنرا تامین نمودم )چه امکانی داره که با بردnodemcu تنها نمیشه؟
    آیا راهی هست که بدون شیلد توسعه ، آموزش فوق رو عملی نمود؟
    با تشکر از مطالب مفید و سایت خوبتون

    • با سلام
      ضمن تشکر از توجه شما، لطفا دقت داشته باشید که برد Nodemcu استفاده شده در این آموزش از ورژن ۰٫۹ میباشد که به صورت پیشفرض دارای پایه ۵ ولت می‌باشد. دیگر مدل‌های موجود در بازار ایران فاقد پایه ۵ ولت هستند. از این رو برای تغذیه ماژول رله ۵ ولت باید کمی تغییرات ایجاد کنید. نکته دیگر اینکه، با فرض درست بودن اتصالات شما، از داخل سریال مانیتور آردوینو تست کنید که برد شما به شبکه متصل میشود یا خیر، همچنین روش دیگر برای تست مدار شما، استفاده از کد دیگری برای تحریک رله است.