آردوینو آموزش آردوینو پروژه های آردوینو

آموزش مدیریت منزل از هر مکان با ربات تلگرام و برد 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 هم با تغذیه اداپتور.
    با اتصال تغذیه به هر دو روش به برد رله برد پروگرام نمیشه حتما بایدتغذیه رو از برد رله جدا کنم یعنی همون جامپر وایر هارو جدا کنم تا برد پروگرام بشه. همین حالت برای قطع برق و اتصال مجدد هم هستش حتما باید برق برد رله رو جدا کنم با برد به وای فای وصل بشه بعد از اتصال کامل برد رله رو به تغذیه وصل کنم. تمام موارد اتصال گراند هارو هم چک کردم که حتما به هم وصل باشن حتی از خود برد هم گرفتم تغذیه رو ولی برای بار اول راه اندازی نمیشه حتما باید برد رله برقش برای راه اندازی مجدد قطع باشه تا برد به وای فای وصل بشه. انگار باید یجورایی بعد از هم بار قطع و وصل یه عملیات ریست انجام بشه روی برد که بفهمه الان برد تغذیه نداره وصل بشه بعد از اتصال حالا برد داری کار کن. برام این حالت خیلی عجیبه!!!!!!!!!

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

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

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