راهنمای کامل مبتدیان برای استفاده از ماژول ESP8266 با Arduino IDE

فهرست مطالب

مقدمه

در این آموزش با ماژول ESP8266 آشنا می شوید و یاد می گیرید که چگونه با استفاده از گوشی موبایل و صفحه ی وب، به وسیله ی اتصال WIFI، یک LED را کنترل کنید. (می توانید قطعاتی مثل بازر یا رله یا… را به جای LED جایگزین کنید)

آنچه در این آموزش یاد می گیرید

ماژول ESP8266 چیست؟

یکی از پرکاربرد ترین ماژول های ارتباط بی سیم (WIFI)، ماژول های ESP8266 است. این ماژول ها در هر دو حالت کاری سرور و کلاینت قابل استفاده هستند.

این ماژول با استفاده از AT Command به راحتی قابل راه اندازی است.

برخی از مهم ترین دستورات این ماژول در جدول زیر آورده شده است:

Command Response Description
AT OK Test
AT+RST OK Reset module
AT+GMR OK View version info
AT+CIOBAUD = 9600 OK Change baud rate to 9600
AT+CWMODE +CWMODE:( value scope of ) OK WIFI mode
AT+CWSAP? +CWSAP:,,, Configuration of softAP mode
AT+CWSAP=,,, +CWSAP:,,, Set configuration of softAP mode
AT+CIPMUX OK or ERROR The configuration of the softAP mode
AT+CIPSERVER OK Configure as server
باقی AT command ها را می توانید در دیتاشیت ماژول ببینید.
برای تست کردن AT command ها و تغییر تنظیمات ماژول (مثل: تغییر نام SSID و Password و سرعتbaud rate) می توانید از کد زیر استفاده کنید:
#include <SoftwareSerial.h> 
SoftwareSerial mySerial(2, 3);  //RX,TX 
 
//  Arduino pin 2 (RX) to ESP8266 TX 
//  Arduino pin 3 to voltage divider then to ESP8266 RX 
//  Connect GND from the Arduiono to GND on the ESP8266 
//  Pull ESP8266 CH_PD HIGH 
  
void setup()  
{ 
    Serial.begin(9600);     // communication with the host computer 
    // Start the software serial for communication with the ESP8266 
    mySerial.begin(9600);   
  
    Serial.println(""); 
    Serial.println("Remember to to set Both NL & CR in the serial monitor."); 
    Serial.println("Ready"); 
    Serial.println("");     
} 
  
void loop()  
{ 
    // listen for communication from the ESP8266 and then write it to the serial monitor 
    if ( mySerial.available() )   {  Serial.write( mySerial.read() );  } 
    // listen for user input and send it to the ESP8266 
    if ( Serial.available() )       {  mySerial.write( Serial.read() );  } 
}
بعد از آپلود کردن برنامه روی برد آردوینو، با استفاده از Serial Monitor می توانید دستورات AT command  را به ماژول ارسال کنید و جوابی که ماژول برمی گرداند را ببینید.

پروژه 1: کنترل LED با ماژول ESP8266 (از طریق شبکه WiFi)

استفاده از این ماژول بسیار ساده می باشد و پیکربندی آن بصورت زیر است.

سیم بندی

کد

نکته
من قبل از نوشتن و اجرای کد زیر، با استفاده از کد مطرح شده در بالا، نام ماژول خود را به ” Electropeak” و سرعت ارتباط آن را به 9600 تغییر دادم.
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3);
برای راحتی کار از سریال نرم افزاری برای ارتباط با ماژول استفاده می کنیم.
#define led_pin 13
تعریف پایه 13 به عنوان پایه ی متصل شده به LED.
String esp8266Serial(String command, const int timeout)
{
  String response = ""; // a String to hold incoming data
  esp8266.print(command);
  long int time = millis();
  while ( (time + timeout) > millis())
  {
    while (esp8266.available())
    {
      char c = esp8266.read(); // Read the answer of ESP8266 character by character
      response += c;
    }
  }
    Serial.print(response);

  return response;
}
تعریف یک تابع به نام esp8266Serial، که دو ورودی دارد. Command: رشته ای از یک دستور AT Command Timeout: زمانی که بعد از ارسال دستور AT Command، اجرای کد متوقف می شود و منتظر دریافت پاسخ از ESP8266 می ماند. خروجی این تابع، پاسخ دریافتی از ماژول ESP8266 است.
نکته
دستور millis() زمان سپری شده از اجرای کد را به شما می دهد. برای اطلاعات بیشتر راجع به آن می توانید به این لینک مراجعه کنید.
void setup()
{
  pinMode(led_pin, OUTPUT);
  digitalWrite(led_pin, LOW);	
  Serial.begin(9600);
  esp8266.begin(9600); //Baud rate for communicating with ESP8266. Your's might be different.
  esp8266Serial("AT+CWMODE=3\r\n", 1000); 
  esp8266Serial("AT+CIPMUX=1\r\n", 1000);
  esp8266Serial("AT+CIPSERVER=1,8888\r\n", 1000);
}
در بخش setup، ابتدا پایه ای که LED به آن متصل است به صورت خروجی تعریف کنید و مقدار منطقی آن را LOW بگذارید. سریال سخت افزاری را با baud rate 9600 راه اندازی کنید.
void loop()
{	
  if (esp8266.available())
  {
    if (esp8266.find("+IPD,"))
    {
      String msg;
      msg = esp8266.readStringUntil('.');
      String command1 = msg.substring(0, 3);
      String command2 = msg.substring(4);

      if (command2 == "ON")
      {
        Serial.println("LED Turn ON");
        digitalWrite(led_pin, HIGH);
      }
      else if (command2 == "LED Turn OFF")
      {
        Serial.println("OFF");
        digitalWrite(led_pin, LOW);
      }
    }
  }
}
در بخش loop، دیتای دریافتی از ماژول خوانده می شود. وقتی عبارت “+IPD,” در دیتای خوانده شده وجود داشته باشد، می فهمیم که اطلاعات از Client به ESP8266 ارسال شده است. اگر اطلاعات دریافتی، کلمه ی ON بود، LED را روشن و اگر OFF بود، LED را خاموش می کنیم.

پروژه 2: کنترل LED از طریق اتصال به مودم WIFI و صفحه ی HTTP

هشدار
در این پروژه به دلیل پروگرام کردن مستقیم ماژول ESP8266، firmware ماژول پاک می شود و دیگر از دستورات AT command پشتیبانی نمی کند. اگر مجددا نیاز به استفاده از AT command داشته باشید، باید مجددا firmware ماژول را روی آن آپلود کنید.

سیم بندی

برای پروگرام کردن مستقیم ماژول ESP8266، نیاز به مبدل Serial to USB دارید. ترتیب اتصال پایه ها به صورت زیر است:
SERIAL TO USB CONVERTER ESP8266
3.3v 3.3V
GND GND
RX TX
TX RX
3.3v CH_PD

نصب کتابخانه و بردهای ESP8266:

مراحل زیر را به ترتیب اجرا کنید. گام اول) به بخش file>preferences بروید.
گام دوم) در بخش Additional Board Manager URLs آدرس زیر را وارد کنید. http://arduino.esp8266.com/stable/package_esp8266com_index.json
گام سوم) به بخش Tools>Boards> Boards Manager رفته و ESP8266 را جستجو کنید و آن را نصب کنید.

کد

#include <ESP8266WiFi.h> 
#include <WiFiClient.h> 
#include <ESP8266WebServer.h> 
 
/* Set these to your desired credentials. */ 
const char *ssid = "*****"; //Enter your WIFI ssid 
const char *password = "*****"; //Enter your WIFI password 
 
ESP8266WebServer server(80); 
 
 
void handleRoot() { 
  server.send(200, "text/html", "<form action=\"/LED_BUILTIN_on\" method=\"get\" id=\"form1\"></form><button type=\"submit\" form=\"form1\" value=\"On\">On</button><form action=\"/LED_BUILTIN_off\" method=\"get\" id=\"form2\"></form><button type=\"submit\" form=\"form2\" value=\"Off\">Off</button>"); 
} 
void handleSave() { 
  if (server.arg("pass") != "") { 
    Serial.println(server.arg("pass")); 
  } 
} 
 
void setup() { 
  pinMode(LED_BUILTIN, OUTPUT); 
  delay(3000); 
  Serial.begin(115200); 
  Serial.println(); 
  Serial.print("Configuring access point..."); 
  WiFi.begin(ssid, password); 
  while (WiFi.status() != WL_CONNECTED) { 
    delay(500); 
    Serial.print("."); 
  } 
  Serial.println(""); 
  Serial.println("WiFi connected"); 
  Serial.println("IP address: "); 
  Serial.println(WiFi.localIP()); 
  server.on ( "/", handleRoot ); 
  server.on ("/save", handleSave); 
  server.begin(); 
  Serial.println ( "HTTP server started" ); 
  server.on("/LED_BUILTIN_on", []() { 
    digitalWrite(LED_BUILTIN, 1); 
    Serial.println("on"); 
    handleRoot(); 
  }); 
  server.on("/LED_BUILTIN_off", []() { 
    digitalWrite(LED_BUILTIN, 0); 
    Serial.println("off"); 
    handleRoot(); 
  }); 
} 
 
void loop() { 
  server.handleClient(); 
}
برای آپلود کد و اجرای آن مراحل زیر را دنبال کنید:
  1. ماژول را به مبدل متصل کنید. سپس مبدل را به کامپیوتر خود وصل کنید.
  2. پایه ی GPIO0 ماژول را به زمین متصل کرده. سپس پایه ی RESET ماژول را برای لحظه ای زمین کنید. سپس هردو پایه ی GPIO0 و RESET را به حالت اولیه برگردانید. (می توانید آن هارا بدون اتصال به جایی (float) رها کنید)
  3. در نرم افزار آردوینو، مدل برد خود را روی Generic ESP8266 Module قرار دهید. (دقت کنید که Upload Speed روی 115200 باشد)
4. پورت را انتخاب کرده و سپس دکمه ی آپلود را بزنید تا کد روی ماژول آپلود شود. 5. بعد از پایان آپلود کد، Serial Monitor را باز کنید و منتظر بمانید تا ip صفحه HTTP ای که ساخته اید، به شما داده شود.
6. در مرورگر خود ip را وارد کنید تا صفحه ی زیر نمایش داده شود:
7. با زدن کلید on، LED روشن و با زدن کلید off، LED خاموش می شود.

ماژول ESP8266 بخرید

یک گام جلوتر

  • سعی کنید دو رله را با گوشی خود و ارتباط WIFI کنترل کنید.
  • سعی کنید یک ربات را با گوشی خود و ارتباط WIFI کنترل کنید.

آموزش های مشابه

Comments (67)

  • اسماعیل حکمت Reply

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

    نوامبر 15, 2020 at 12:49 ق.ظ
    • محمدرضا اکبری Reply

      سلام. می توانید از ماژول های GSM (مثل SIM800 و SIM900 و A6 و…) استفاده کنید. این ماژول ها از ارتباط GPRS نسل 2 (2G) پشتیبانی می کنند.

      نوامبر 21, 2020 at 9:52 ق.ظ
      • محمد Reply

        سلام ؛بنده از سایت کافه ربات یک ماژول esp8266-07 خریداری کردم . با توجه به تفاوت پایه این با ماژول با ماژولی که در این آموزش استفاده کردید(esp826- 01) لطفا نحوه اتصال ماژول esp8266-07 به arduino را بفرمائید؟و با توجه به اینکه بنده میخواهم این ماژول را به اردوینو نگاه متصل کنم و بردی شبیه باد nodemcu درست کنم (اما با تعداد پایه بیشتر)آیا امکان دارد که ماژول esp8266-07 توسط باد اردوینو کد نویسی کنم یعنی بدون استفاده از مبدل؟لطفا توضیح دهید؟

        فوریه 7, 2021 at 11:13 ب.ظ
        • مهران ملکی Reply

          سلام.
          پایه های ماژولی که تهیه فرمودید با ماژولی که اینجا استفاده شده از نظر ترتیب متفاوته. می تونید با کمک لینک زیر پایه های ماژولی که استفاده میکنید رو با پایه های ماژول این آموزش تطابق بدید و سیم بندی رو متعاقبا انجام بدید.
          “https://www.studiopieters.nl/esp8266-pinout/”
          در مورد اتصال esp8266-07 بدون مبدل به آردوینو هم بله امکان پذیره. می تونید از سیم بندی که در پروژه 1 همین آموزش آورده شده استفاده کنید.

          فوریه 10, 2021 at 11:34 ب.ظ
  • محمد تيموري Reply

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

    ژانویه 4, 2021 at 2:09 ق.ظ
    • مهران ملکی Reply

      خواهش میکنم. خیلی خوشحالیم که کمک کننده بوده.

      ژانویه 6, 2021 at 5:55 ب.ظ
  • ایهان Reply

    سلام ممنون بابت آموزش های خوبتون
    کاش قطعات استفاده شده رو که توی سایت قرار میدین با لینک مستقیم محصول باشه راحت و درست بشه خرید کرد

    آوریل 10, 2021 at 1:30 ب.ظ
    • مهران ملکی Reply

      سلام دوست عزیز. خوشحالیم که مفید بوده.
      در مورد محصولات استفاده شده هم درست می‌فرمایید. متاسفانه در این آموزش لینک محصولات نیست. اما در اکثر قریب به اتفاق آموزش‌ها لینک مستقیمشون گذاشته میشه…

      آوریل 11, 2021 at 9:02 ق.ظ
  • عماد Reply

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

    ژوئن 20, 2021 at 1:33 ب.ظ
    • مهران ملکی Reply

      سلام
      مساله شما با روش‌های گوناگونی قابل حله. انتقال داده بی‌سیم میتونه از طریق وای‌فای، بلوتوث، امواج رادیویی و راه‌های دیگه باشه.
      پارامتر مهم در مساله شما، فاصله بین فرستنده و گیرنده فرمان و همچنین وجود داشتن یا نداشتن دید مستقیم بین این دو تاست. در صورت فاصله کم در حدود کمتر از 5 متر میشه از طریق بلوتوث و ماژول‌هایی که امکان ارسال و دریافت بلوتوث دارند کار رو انجام داد. اگر فاصله کمتر از 8 تا 9 متر هست میتونید از طریق وای‌فای و با استفاده از بردهای ESP32 و یا ESP8266 انتقال داده رو انجام داد. در صورتی که فاصله خیلی بیشتر از این حدودهاست و در حد 50متر تا 200متر هست ولی دید بین فرستنده و گیرنده مستقیم هست و مانعی در بین راه نیست، میتونید از ماژول‌های فرستنده گیرنده رادیویی استفاده کنید.
      اما اگر مساله‌تون پیچیده‌تر از مسائل بالاست و هم فاصله زیاده و هم دید بین فرستنده و گیرنده مستقیم نیست، لازمه که از بردهای ESP (چه ESP32 و یا ESP8266) استفاده کنید، بردها رو هم در طرف فرستنده و هم طرف گیرنده به اینترنت متصل کنید و از طریق بارگذاری فرمان در وب در سمت فرستنده و خواندن اطلاعات از وب در سمت گیرنده، مساله‌تون رو حل کنید.
      هر کدام از روش‌های بالا متفاوت و در نوع خود پیچیدگی‌هایی دارن و ابتدا لازمه بر اساس فرضیات مساله‌تون روش مناسبتون رو انتخاب کنید.
      موفق باشید.

      ژوئن 20, 2021 at 5:28 ب.ظ
  • حامد حامی Reply

    سلام
    چطور میتونم این فرمان روشن شدن ال ای دی رو با یه ماژول دیگه بدم
    ینی یه ماژول سرور باشه یکی کلاینت و بدون اینترنت و فقط با وای فای به هم وصل باشن.
    بعد با تحریک دکمه ماژول A
    ال ای دی در ماژول B مثلن ده ثانیه روشن بمونه و بعد خاموش بشه.
    ممنون میشم راهنماییم کنین.
    یک سوال دیگه هم اینکه لطفا بفرمایید فرق داره که این پروژه ساده رو با چه ماژولی از خانواده esp انجام بدیم؟
    همچنین اینکه چطور میشه همین ازمایشو با دوتا esp8266 انجام داد؟ یکی فرمان بده و یکی فرمان بپذیره

    می 8, 2022 at 4:08 ب.ظ
  • سعید Reply

    با سلام
    ضمن تشکر از سایت خوبتون
    من میخوام کنترل ماژول رله تک کاناله را با ماژول وای فای Esp8622 از (طریق شبکه وای فا ) انجام بدم و از طریق موبایل فرمان روشن و خاموش را صادر کنم امکان داره کد اردینو پروگرام آن را برام ارسال بفرمائید .
    با تشکر فراوان

    می 14, 2022 at 9:28 ق.ظ
  • علی Reply

    برای روشن خاموش کردن رله ۵ ولت تک کانال میشه بگید چه کدی را جای کد led ها قرار بدم؟
    همش چراغ خود ماژول وایفایم روشن خاموش میشه. رله ام هیچ تغییری نمیکنه

    می 15, 2022 at 5:10 ب.ظ
    • مهران ملکی Reply

      سلام.
      روشن و خاموش کردن رله 5 ولت تفاوتی با کنترل یک LED نداره و در نتیجه میتونید از همین کد به طور مستقیم استفاده کنید. کافیه خروجی پایه‌ای که به LED متصل میشه رو به پایه Trigger رله متصل کنید. تنها مساله‌ای که وجود داره اینه که آیا رله شما اصطلاحا active high هست و یا active low. فرق این دو مورد اینه که در رله Active High، رله با High شدن پایه Trigger فعال میشه و در رله active Low، با Low شدن پایه Trigger.
      اگر در استفاده از این کد رله‌تون غیرفعال باقی میمونه احتمالش هست که مشکل از خود رله باشه.

      می 22, 2022 at 11:42 ب.ظ
  • دیبا Reply

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

    ژوئن 7, 2022 at 6:55 ب.ظ
    • مهران ملکی Reply

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

      ژوئن 10, 2022 at 1:01 ب.ظ
  • نیما Reply

    با عرض سلام و خسته نباشید.
    من چند روز هست که تو اینترنت میچرخم تا یه اموزش این ماژول رو پیدا کنم و الان کدش رو زدم این ارور رو میده
    Error compiling for board Arduino Mega or Mega 2560.
    راستی من از آردوینو mega2560 استفاده میکنم
    قبلش که کد رو وارد کردم اروری نمیاورد اما وایفای در حالی که روشن بود تو شبکه نمیامد و نمیتونستم وصل شم که بعدش شروع کرد به ارور دادن
    اگه میشه پین ها هم بیشتر توضیح بدین ممنون میشم

    جولای 5, 2022 at 7:45 ق.ظ
    • مهران ملکی Reply

      سلام.
      این ارور رو تو استفاده از کدوم کد باهاش برخورد کردید؟ اگر از کد آخر استفاده میکنید لازمه که در نرم‌افزار آردوینو IDE بوردتون رو ESP8266 انتخاب کنید که به نظر میرسه به اشتباه Arduino Mega انتخاب شده باشه.

      جولای 10, 2022 at 3:44 ب.ظ
  • سعید Reply

    سلام آیا بجای ولتاژ ۳.۳ ولت میشه از ۳ ولت استفاده کرد؟

    جولای 15, 2022 at 5:48 ب.ظ
    • مهران ملکی Reply

      سلام.
      بله مشکلی نداره.

      جولای 15, 2022 at 10:29 ب.ظ
  • امیرحسین Reply

    سلام من مثل اموزش پیش رفتم دستورات at اجرا نمی‌شوند و هنگام آپلود خطای connect میده

    اکتبر 31, 2022 at 4:57 ب.ظ
  • مهدی Reply

    سلام
    1-امکان استفاده از چند پایه esp-01 به عنوان خروجی(مثلا برای کنترل رله) هست؟بجز gpio2
    2-خروجی ۳.۳ ولتی esp-01 برای رله ۵ ولت جواب میده؟

    نوامبر 4, 2022 at 9:01 ب.ظ
    • مهران ملکی Reply

      سلام.
      در جواب سوال اولتون بله. از همه پایه‌هایی که GPIO هستن میتونید برای کنترل رله استفاده کنید.
      در جواب سوال دومتون هم، شما نمیتونید از 3.3 ولت ESP برای تغذیه رله استفاده کنید ولی میتونید اون رو به پایه tigger رله متصل کنید و توانایی فعال کردن رله 5 ولتی رو داره.

      نوامبر 11, 2022 at 2:16 ب.ظ
  • مهدی Reply

    سلام
    استاد بعد آپلود میرم تو مانیتور ولی آی‌پی مرورگر رو نمیده و تو خروجی Configuring access point.. رو چاپ می کنه و پست سر هم فقط نقطه.
    فکر کنم تو مرحله wifi-status گیر می کنه.
    باید چیکار کنم؟
    به منبع تغذیه جداگانه وصل کنم یا همون مبدل سریال اوکیه؟

    نوامبر 5, 2022 at 9:54 ق.ظ
  • متین Reply

    با سلام مهندس جان این ماژول چگونه به شیلد متور وصل کنم

    دسامبر 10, 2022 at 1:55 ب.ظ
    • علی عبدالملکی Reply

      سلام
      وقت بخیر، اگه به طور مثال بخواهید با شیلد l298 کار کنید، نیاز به یک سری ورودی PWM دارید که بتونید موتور هایی رو که به شیلد متصل هستند راه اندازی و کنترل کنید
      جهت ایجاد PWM هم میتونید با راه اندازی تایمر های ESP در مد مدنظر این کار رو انجام بدید

      دسامبر 11, 2022 at 9:07 ق.ظ
  • امیرحسین Reply

    سلام
    ide من پورت serial to usb یا همون esp01 به صورت مستقیم رو پیدا نمیکنه درواقع هیچ پورتی رو نمایش نمیده و چطوری باید این مشکل رو حل کرد ؟

    فوریه 7, 2023 at 11:02 ب.ظ
  • محمد Reply

    سلام
    استاد بعد آپلود میرم تو مانیتور ولی آی‌پی مرورگر رو نمیده و تو خروجی Configuring access point.. رو چاپ می کنه و پست سر هم فقط نقطه.
    فکر کنم تو مرحله wifi-status گیر می کنه.
    باید چیکار کنم؟

    فوریه 24, 2023 at 8:48 ب.ظ
    • علی عبدالملکی Reply

      سلام
      تابع wifi.begin رو بررسی کنید لطفا و از صحت ssid , password خودتون مطمئن بشید که درست ست کردید

      فوریه 27, 2023 at 11:33 ق.ظ
  • محمد Reply

    این هم برنامه می باشد. البته چون گوشی را هات اسپات کرده ام می بینم که اصلا به گوشی متصل نمی شود.
    باتشکر از محبتتان
    #include
    #include
    #include

    /* Set these to your desired credentials. */

    const char *ssid = “A”; //Enter your WIFI ssid
    const char *password = “aliali110”; //Enter your WIFI password

    ESP8266WebServer server(80);

    void handleRoot() {
    server.send(200, “text/html”, “OnOff”);
    }
    void handleSave() {
    if (server.arg(“pass”) != “”) {
    Serial.println(server.arg(“pass”));
    }
    }

    void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
    delay(3000);
    Serial.begin(115200);
    Serial.println();
    Serial.print(“Configuring access point…”);
    //8 WiFi.begin(Android, aliali110);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(“.”);
    }
    Serial.println(“”);
    Serial.println(“WiFi connected”);
    Serial.println(“IP address: “);
    Serial.println(WiFi.localIP());
    server.on ( “/”, handleRoot );
    server.on (“/save”, handleSave);
    server.begin();
    Serial.println ( “HTTP server started” );
    server.on(“/LED_BUILTIN_on”, []() {
    digitalWrite(LED_BUILTIN, 1);
    Serial.println(“on”);
    handleRoot();
    });
    server.on(“/LED_BUILTIN_off”, []() {
    digitalWrite(LED_BUILTIN, 0);
    Serial.println(“off”);
    handleRoot();
    });
    }

    void loop() {
    server.handleClient();
    }

    فوریه 24, 2023 at 8:50 ب.ظ
    • علی عبدالملکی Reply

      سلام وقت بخیر
      در تابع setup برنامه در قسمت که قراره wifi کانفیگ بشه چرا خط رو کامنت کردید؟
      باید از کامنت در بیارید و این خط رو بنویسید WiFi.begin(ssid, password);
      و در بالا که ssid , password خودتون رو تعریف کنید

      فوریه 27, 2023 at 11:32 ق.ظ
  • Sahand noroozi Reply

    سلام بعد از اپلود کد پروژه 1 در اردینو چطوری باید تستش کنم.در سزیال مانیتور ON تایپ می کنم اتفاقی نمیافته؟ لطفا راهنمایی کنید

    ژوئن 11, 2023 at 1:51 ب.ظ
  • سیدحسین حسینی Reply

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

    سپتامبر 1, 2023 at 12:56 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      فاصله شما چقدر می باشد؟؟ این فاصله دید مستقیم می باشد یا مانع (دیوار و…) وجود دارد ؟؟ در صورتی که وجود دارد چه تعدادی وجود دارد؟؟
      در این محیط wifi هم دارید یا خیر؟؟

      سپتامبر 2, 2023 at 9:10 ق.ظ
  • Ahr1030 Reply

    سلام خسته نباشید ممنونم از آموزش خوبتون من این ماژول رو مدل nudemcu گرفتم که راحت بدون چیز اضافه ای وصلش کنم به کامپیوتر ممکنه راهنمایی کنید چطوری یه led بهش وصل کنم با همین پروژه شما و با اون سرور خاموش روشنش کنم led رو به کدوم پایه esp باید متصل کنم؟

    نوامبر 18, 2023 at 12:09 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      از این آموزش می توانید برای استفاده NodeMCU استفاده کنید.
      در صورتی که میخواهید LED را به پایه های میکرو وصل کنید کافی است LED را بین یکی از پایه های عددی NodeMCU و GND وصل کنید (البته یک مقاومت حدودا 300 الی 1 کیلو اهم به صورت سری نیز قرار بدهید)
      و در کد نیز در خط #define led_pin 13 که شماره پایه تعریف می شود، شماره پایه خود را وارد کنید (مانند D3 که بر روی NodeMCU خورده است.)

      نوامبر 18, 2023 at 8:53 ق.ظ
  • امیرمحمد Reply

    با عرض سلام و خسته نباشید خدمت شما
    اگه ولتاژی که به آردوینو میدیم بیشتر از ۳.۳ ولت باشه چون ماژول وایفای داره از خود آردوینو تغذیه میکنه آسیبی بهش وارد نمیشه؟

    نوامبر 28, 2023 at 4:29 ب.ظ
    • محمد دمیرچی Reply

      باسلام
      سعی کنید از یک رگوراتور ams1117 یا هر نوع رگوراتور دیگری که ولتاژ 3.3 را تولید میکند برای تبدیل 5 ولت آردوینو به 3.3 استفاده کنید.
      پایه 3.3 ولت روی برد های آردوینو به عنوان رفرنس استفاده می شود و توان روشن کردن این سری محصولات را ندارد.
      عکس های آموزش نیز اصلاح می شود.

      نوامبر 29, 2023 at 9:20 ق.ظ
  • امیر حسین Reply

    سلام خسته نباشید . من یک عدد ماژول وای فای esp12-f دارم . این ماژول رو به صورت مستقیم به node mcu برای پروگرام کردن وصل کردم : یعنی (tx بهtx) (rx به rx) (gnd به gnd ) (vcc به vcc) . وقتی که این کار را انجام دادم، بعد ال ای دی رو برد esp12 روشن شد و خاموش شد . بعد از چند ثانیه دوباره روشن شد و بعد خاموش
    شد. اما دیگه بعد از اتصال ال ای دی رو ان روشن نشد و نمی توانستم هیچ برنامه ای را روی ان اپلود کنم .
    میشه راهنماییم کنید ؟
    ایا برد من اسیب دیده ؟
    ایا راهی برای برطرف کردن ای اسیب هست ؟
    سپاس فراوان

    دسامبر 6, 2023 at 6:20 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      برای پروگرام کردن یک esp دیگر از طریق برد nodeMCU باید از این آموزش برای این موضوع استفاده کنید.
      برای اینکه بررسی کنید میکرو شما آسیب دیده است یا خیر
      سیم کشی های خود را قطع کنید، برد NodeMCU را به صورت جدا به سیستم وصل کنید سریال مانیتور را باز کنید و بر روی 57600 قرار بدهید. با ریست کردن برد باید دیتا در این سریال مانیتور دریافت کنید. در صورت عدم دریافت دیتا بررسی کنید که پایه های EN و RST روی برد ولتاژ 3.3 دارند یا خیر، در صورت کمتر بودن ولتاژ به زیر 3 ولت با استفاده از یک سیم جامپر ولتاژ بالاتر بدهید و بررسی کنید که در سریال مانیتور دیتا می آید یا خیر
      همین موارد برای esp که میخواهید پروگرام کنید در شرایط آموزش نیز وصل باشد را نیز می توانید بررسی کنید.

      دسامبر 9, 2023 at 10:45 ق.ظ
  • خسرو فضلی Reply

    سلام خدمت استاد گرامی دو تا سوال داشتم
    آیا ماژول ESP8266 را بدون برد اردوینو و فقط با مبدل یو اس بی به سریال می توان به کامپیتور متصل کرده و با افزار آردوینو پروگرام کرد؟
    و دوم اینکه آیا میتوان نام ماژول و یا مک آدرس آن را پنهان کرد (یا نام دلخواهی به آن داد)تا پس از اتصال به مودم وایفای در نرم افزارهای آنالیز وایفای دیده نشود؟
    با تشکر فراوان

    دسامبر 7, 2023 at 1:46 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      ماژول ESP در اصل یک میکروکنترلر کامل می باشد که می توانید آن را به صورت جدا برنامه نویسی کنید و دستورات شما را اجرا کند.
      برای سادگی در زمینه پروگرام و استفاده می توانید از سری NodeMCU این محصول استفاده کنید که کار را برای کاربر بسیار ساده کرده است.
      در صورتی که از ESP دارید بله می توانید از طریق USB-TTL آن را پروگرام کنید.
      در این مورد که مک آن را پنهان کنید یا نام دلخواه بگذارید. فکر کنم بتوانید مقدار مک را عوض کنید ولی پنهان کردنش رو مطمئن نیستم و اینکه در نرم افزار های انالیز نشان داده نشود را نیز نمیدانم.
      باید به کتابخانه ها و دیتاشیت خود تولید کننده مراجعه کنید.

      دسامبر 9, 2023 at 10:53 ق.ظ
  • امیر حسین Reply

    سلام خسته نباشید. اگر از مبدل smd به dip استفاده نکنیم یا پایه GPIO15 را پول اپ نکنیم،امکان سوختن یا اسیب دیدن ماژول esp12f هست ؟؟

    دسامبر 7, 2023 at 5:01 ب.ظ
    • محمد دمیرچی Reply

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

      دسامبر 9, 2023 at 10:55 ق.ظ
  • امید صدیقی Reply

    A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header

    وقتی میخوام کد رو اپلود کنم این برای چیه

    دسامبر 22, 2023 at 3:08 ب.ظ
    • محمد دمیرچی Reply

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

      دسامبر 23, 2023 at 9:10 ق.ظ
  • محمدرضا Reply

    با سلام آیا می توان esp8266 را با تغذیه باتری قلمی و یا پاوربانک گوشی راه اندازی کرد؟

    دسامبر 31, 2023 at 9:27 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      پاوربانک یک گزینه بسیار محبوب می باشد، می توانید به سادگی از آن استفاده کنید.
      برای باتری قلمی شدنش که امکان پذیر هست ولی پیشنهاد نمیکنم، چون در حالت wifi روشن حداکثر به شما 2-3 ساعت کارایی بدهد. همچنین باید حداقل 3 عدد باتری را با هم سری کنید تا به ولتاژ 4.5 برسید و به پایه Vin روی برد NodeMCU وصل کنید.
      اگر هدف شما استفاده از ESP-01 یا هر مدلی که رگوراتور ندارد حتما باید یک رگوراتور AMS1117 یا هر رگوراتور خطی 3.3 ولتی برای تبدیل ولتاژ استفاده کنید.

      ژانویه 1, 2024 at 8:13 ق.ظ
      • محمدرضا Reply

        خیلی ممنون
        منظور من خود esp8266 هست نه nodmcu
        برای اتصال پاوربانک به esp8266 از چه کابلی باید استفاده کرد؟
        پاوربانک را مستقیم بدون رگولاتور می توان به esp8266 متصل کرد؟(چون خروجی پاوربانک حدود ۵ ولته)
        برای اتصال باتری قلمی به nodemcu باید رگولاتور سر راه مدار باشد؟
        بازم ممنونم از پاسخگوییتون

        ژانویه 1, 2024 at 10:36 ق.ظ
      • حنانه ملکی Reply

        سلام این سوال منم هست برد nodemcu دارم. چطور میتونم به پاوربانک وصل کنم با چ کابلی؟مستقیم میتونم به nudemcu وصل کنم؟مدل پاوربانک مهمه؟چون آمپر خروجی پاوربانک بالاست برد نمیسوزه؟اگر با باتری بخوام راه بندازم سری کنم سه تا رو یا موازی؟پاوربانک یا باتری رو بدون رگولاتور میتونم وصل کنم به nudemcu?ببخشید که زیاد شد سوالام!

        ژانویه 1, 2024 at 2:26 ب.ظ
        • محمد دمیرچی Reply

          خیر بالا بودن جریان تاثیری در عملکرد ندارد و مهم در محدوده بودن ولتاژ هست که پاور بانک بر روی 5 ولت هست، و اینکه ساده ترین روش وصل کردن کابل پاور بانک به microUSB روی برد می باشد.
          برای سری و موازی کردن نیز بستگی به باتری شما دارد.
          در صورتی که باتری لیتیومی بخواهید استفاده کنید بهتر است موازی کنید و در نهایت همگی رو به ماژول پاور بانک وصل کنید. برای مثال ماژول شارژ/دشارژ باتری لیتیومی MH-CD42 با خروجی 5V 2A مناسب ساخت پاور بانک
          در صورتی که باتری قلمی میخواهید استفاده کنید 3 عدد رو با هم سری کنید تا ولتاژ به 4.5 ولت برسد و به پایه vin روی ماژول وصل کنید.

          ژانویه 2, 2024 at 5:03 ب.ظ
      • ماهان ج Reply

        سلام منم یک پاوربانک دارم که دو تا خروجی 1A 5v و 2A 5v داره.میتونم nodemcu رو باهاش راه اندازی کنم؟فقط نمیدونم با کدوم خروجی 1A یا 2A؟ با توجه به آمپر بالا ماژول نمیسوزه؟

        ژانویه 1, 2024 at 8:04 ب.ظ
        • محمد دمیرچی Reply

          فرقی نمیکند،
          ماژول به اندازه ای که نیاز داشته باشد جریان خواهد کشید.

          ژانویه 2, 2024 at 5:08 ب.ظ
  • سیدحسین حسینی Reply

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

    ژانویه 10, 2024 at 2:52 ق.ظ
    • محمد دمیرچی Reply

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

      ژانویه 10, 2024 at 9:22 ق.ظ
  • کریم Reply

    سلام آیا میتوان nodemcu را طوری برنامه نویسی کرد که در تایم مشخصی از روز روشن شده و در تایم دیگه ای خاموش شود؟ تایمر داخلیشو رو چطور میشه برنامه نویسی کرد؟

    فوریه 9, 2024 at 3:16 ب.ظ
    • محمد دمیرچی Reply

      با سلام،
      بله می توانید این کار را انجام بدهید، ولی این موضوع به دقت تایم های شما بستگی دارد.
      برای این موضوع زمانی که میخواهید خاموش باشد کافی است از DeepSleep استفاده کنید.
      در صورتی که زمانی میخواهید دقیقتر کار را انجام بدهید می توانید از ماژول های RTC جانبی استفاده کنید و esp را در زمان های دوره ای قرار بدهید که روشن بشود و زمان را چک کند و یا از مدل هایی که تایمر دارند و با استفاده از پایه IRQ به پایه RST میکرو وصل کنید تا طی آن زمان ها خود ماژول RTC میکرو شما را روشن کند.

      فوریه 10, 2024 at 10:40 ق.ظ
      • کریم Reply

        ممنون
        از ماژول جانبی نمیخوام استفاده کنم
        از امکانات خود nodemcu چطور میتونم اینکارو کنم؟
        مدل تایمردار nodemcu چجوریه؟شما دارین؟

        فوریه 10, 2024 at 11:09 ق.ظ
  • محسن جیم Reply

    سلام ممنون از سایت خوبتون
    من میخواستم برد توسعه NodeMcu دارای هسته وای فای ESP8266 را از فروشگاه شما تهیه کنم
    کدوم مدل بهتره CH340 یا CP2102؟
    از نظر سادگی در راه اندازی و ارتباط با وایفای؟
    چرا قیمتاشون متفاوته؟

    فوریه 10, 2024 at 10:55 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      این 2 مدل در هسته اصلی با هم هیچ تفاوتی ندارد و فقط در مبدل USB-TTL باهم فرق میکنند که دقیقا CP2102 , CH340 هستن
      دلیل اختلاف قیمت هم دقیقا همین IC هست. می توانید همین کد ها را داخل نت سرچ کنید و همین موضوع را مشاهده کنید.

      فوریه 12, 2024 at 8:45 ق.ظ
  • مجید Reply

    سلام مهندس جان خسته نباشید
    برای ریست کردن برد nodemcu هر بار که منبع تغذیه را خاموش روشن میکنیم برد ریست میشود؟ یا حتما باید دکمه RST روی برد را فشار دهیم؟

    فوریه 15, 2024 at 12:32 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      فرقی نمیکند که تغذیه را قطع و وصل کنید یا دکمه ریست را بزنید، هر 2 باعث ریست شدن میکرو می شود. فقط توجه داشته باشید که پایه هایی که در زمان بوت شدن درگیر هستند را در مورد های خاص نبرید تا در بوت شدن به مشکل نخورید.
      این موارد را می توانید از آموزش راهنمای جامع پایه های ESP8266: از کدام پایه های GPIO باید استفاده کنیم بهره برداری کنید.

      فوریه 21, 2024 at 11:45 ق.ظ
  • مجید محمدی Reply

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

    فوریه 21, 2024 at 9:03 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      متاسفانه قابی آماده برای این محصول موجود نمی باشد.
      شما می توانید از 3 روش
      1. پلکسی و لیزرکات برای خودتان قاب طراحی کنید
      2. طراحی قاب و پرینت سه بعدی کردن
      3. خرید قاب های آماده مقداری بزرگ تر و جا سازی کردن قطعه داخل آنها استفاده کنید.

      فوریه 24, 2024 at 11:03 ق.ظ
  • مرتضی Reply

    با عرض سلام و ارادت
    ولتاژ کاری ماژول nodemcu چقدره دقیقا؟ تو دیتاشیت نوشته 3.3ولت من که با پاوربانک خروجی 5.3ولت روشنش میکنم بهش آسیب وارد میشه؟
    در حالت عادی با پاوربانک 3000 میلی آمپر ساعت فول شارژ چند ساعت میتونم با این ماژول کار کنم؟

    مارس 23, 2024 at 2:36 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      ولتاژ کاری تمامی مدل های ESP 3.3 ولت می باشد.
      اما بر روی تمامی مدل های برد های توسعه یک عدد رگوراتور قرار داده شده است که از ولتاژ 4.4 الی 9 ولت به آنها بدهید آن ولتاژ را به 3.3 تبدیل میکند و به میکروکنترلر میدهد.
      NodeMCU نیز برد توسعه ای برای ESP8266 می باشد و همین مورد برای آن نیز برقرار می باشد.
      در مورد مصرف برق نیز بسته به کدی که بر روی آن اجرا میکند مختلف می باشد. امکان دارد کد شما سنگین باشد و تا 100 میلی آمپر نیز مصرف داشته باشد (در این شرایط 30 ساعت باید برای شما کار کند- البته ایدآل در نظر گرفته شده است)

      مارس 24, 2024 at 11:17 ق.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.