سلام.

توی این آموزش می خوام بهتون نحوه کنترل کردن یک لامپ یا LED  رو از طریق Nodemcu و اپلیکیشن اندرویدی آموزش بدم .

قبل از هرچیز آموزش های قبلی مارو بخونید تا بدونید که چطور  Nodemcu  رو برنامه نویسی کنید.

روال کلی اینه که ما Nodemcu رو از طریق وای فای به شبکه داخلی یا لوکال وصل میکنیم.

داخل NodeMcu  برنامه نوشتیم که اگه کسی آدرس مد نظر ما رو وارد کرد لامپ LED  رو روشن یا خاموش بکنه .سپس با محیط بصری MIT App Inventor یک برنامه ساده اندرویدی براش مینویسیم که با اپلیکیشن بشه اون لامپ یا LED  رو کنترل کرد.

در حقیقت برنامه نوشته شده برای Nodemcu اونو تبدیل به یک webserver میکنه که با وارد کردن آدرس url در مرورگر میشه لامپ رو کنترل کرد.

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

خب بریم سراغ کد های مربوط به Nodemcu:

دقت کنید که باید در خط 3 بجای “your-ssid” ، اسم مودم Wifi تون  رو که اندروید بهش وصل میشه وارد کنید و در خط 4 هم باید بجای “your-password” پسورد مودم Wifi تون رو بذارید تا Nodemcu هم به مودمتون وصل بشه و ازش ip بگیره.

حالا لامپ LED رو وصل کنید.

نکته1: شما میتونید مستقیم پایه مثبت LED رو به پایه D4 و پپایه منفی رو به GND وصل کنید و دیگه نیازی به این کار نیست که مثل عکس بالا عمل کنید اما عمر LED تون پایین میاد.

نکته2: میتونید به جای LED از رله استفاده کنید و یک وسیله که با ولتاژ 220v ولت کار میکنه رو کنترل کنید (اگه پیش ضمینه ندارید لطفا با برق 220 ولت بازی نکنید چون خطرناکه)

خب وقتی که Nodemcu  رو روشن کنید و سریال مانیتور رو از Arduino IDE باز کنید ، توی اون می نویسه که این بُرد به wifi مون وصل شده یا نه .اگه وصل شده باشه ip خودش رو مینویسه.

الان توی تصویر نشون میده که ip ای که Nodemcu من گرفته 192.168.1.102 هستش.

فقط کافیه که مرور گر رو باز کنم و این رو توی آدرس بار بنویسم تا LED روشن شه

http://192.168.1.102/gpio/1 –>روشن

http://192.168.1.102/gpio/0 –>خاموش

به همین راحتی.

ساخت اپلیکیشن اندرویدی:

برای برنامه نویسی اپلیکیشن ما از App Inventor استفاده میکنیم که احتیاجی به هیچ دانش برنامه نویسی ای نداره .

ابتدا آدرس http://ai2.appinventor.mit.edu توی مرورگرتون بازکنید .

روی Projects > Start New Projects کلیک کنید.

دو عدد دکمه Button مطابق شکل ایجاد کنید.

این کامپوننت رو به صفحه تون اضافه کنید Web Component

به قسمت Block Section برید تا منطق این دکمه ها رو پیاده سازی کنیم.

مثل شکل زیر این کار رو انجام بدید.

به عکس بالا دقت کنید که ip خودتون رو جایگذاری باید بکنید.

همین و تموم شد .حالا میتونید از منوی build اپلیکیشن رو دانلود کنید و استفاده کنید.

در پایان اگه حوصله پیاده سازی App Inventor  رو ندارید میتونید فایلشو دانلود کنید (البته پولیش کردم) و ایمپورتش کنید توی App Inventor  ، فقط ip رو تغییر بدید و build بگیرید.

موفق باشید.

23 Comments

  1. سلام. عالی بود. بخصوص اون قسمتی که منو برای اولین بار با appinventor آشنا کرد.

    پاسخ
  2. سلام خسته نباشید.ببخشی این nodemcu و esp01 واقعا اعصابمو خورد کرده هر کدی و هر کاری میکنم ارور espcom upload failed میده چه با پورت سریال چه آردوینو چه هرچی کلا وقتی برد رو روی esp8266 یا nodemcu میزارم و آپلود میکنم این ارور رو میده.ممنون میشم راهنماییم کنید.

    پاسخ
  3. سلام. من میخوام از طریق nfc و برنامه اندروید به کمک ماژول pn532 و nodemcu کنترل روشن و خاموش کردن دو led رو انجام بدم. در نرم افزار آردوینو کامپایل کد مشکلی ندارد ولی موقع آپلود کد در بادریت 9600 ارور زیر را میدهد
    Arduino: 1.8.7 (Windows 8.1), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Enabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 9600”

    Build options changed, rebuilding all
    Sketch uses 305684 bytes (29%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 27804 bytes (33%) of dynamic memory, leaving 54116 bytes for local variables. Maximum is 81920 bytes.
    Uploading 309824 bytes from C:\Users\Puzzle\AppData\Local\Temp\arduino_build_975966/p2p_nfc_led.ino.bin to flash at 0x00000000
    …………………………………………………………………….. [ 26% ]
    …………………………………………………………………….. [ 52% ]
    …………………………………………………………………….. [ 79% ]
    ………………….An error occurred while uploading the sketch

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    و وقتی بادریت را به 115200 به طور مثال تغیر میدهم برنامه اپلود می شود ولی به درستی کار نمیکند. خواهش میکنم کمک کنین

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

      یک نکته ای که میتونه مهم باشه اینه که حین اپلود دسترسی به پایه های سریال برد رو قطع کنید.

      پاسخ
  4. C:\Users\mahdi\Documents\Arduino\sketch_feb01a\sketch_feb01a.ino:1:25: fatal error: ESP8266WiFi.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino Uno WiFi.

    پاسخ
  5. سلام
    موقع پروگرم کردن این ارور رو میده
    Arduino: 1.8.1 (Windows 10), Board: “Generic ESP8266 Module, 160 MHz, Flash, Disabled, ck, 26 MHz, 80MHz, DOUT (compatible), 512K (no SPIFFS), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200”

    Build options changed, rebuilding all
    Sketch uses 275196 bytes (55%) of program storage space. Maximum is 499696 bytes.
    Global variables use 27728 bytes (33%) of dynamic memory, leaving 54192 bytes for local variables. Maximum is 81920 bytes.
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte

    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: can’t receive slip payload data
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed

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

    پاسخ
  6. سلام ببخشید چند تا سوال دارم :
    ۱_از چه nodemcu ای استفاده کردید?
    ۲_آیا میشه به nodemcuماژول راه رو هم متصل کرد?
    ۳_میشه بهش سنسور حرکت مادون قرمز HC-SR501 رو متصل کرد?(از نظر نرم افزاری)

    پاسخ
  7. سلام من ماژول nodemcuv 0.9 با هسته ch340 رو گرفتم همین کد رو هم اپلود کردم اما برای من هیچ اپی در سریال مانیتور نمیفرسته‌. وفقط وقتی کلید ریست رو میزنم یک سری کارکتر و حرف نام مشخص روی سریال مانیتور نوشته میشه. ممنون میشم کمکم کنید .

    پاسخ
  8. سلام. ایا میشه ماژول esp8266_12f رو طوری راه اندازی کرد که همین کاری که توی این پست گفته شده رو انجام بده اما دیگه نیازی به سرور نداشته باشههه؟
    منظورم اینه که ایا میشه خود ماژول اکسس پوینت بشه و ما بهش وصل بشیم و بهش فرمان بدیممم؟

    پاسخ
  9. آیا امکانش هست همین کد را برای esp8266 12e استفاده کنم یا نیاز به تغییرات داره
    ممنون میشم راهنمایی کنید .

    پاسخ
  10. امکانش هست بیشتر توضیح بدین متوجه نشدم

    پاسخ

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1000 تومان
خرید
  • این آموزش رایگان می باشد.
  • خرید این فایل فقط در وقت شما صرفه جویی خواهد کرد.
  • آموزش Nodemcu
  • App Inventor