مقدمه
در این آموزش با ماژول ESP8266 آشنا می شوید و یاد می گیرید که چگونه با استفاده از گوشی موبایل و صفحه ی وب، به وسیله ی اتصال WIFI، یک LED را کنترل کنید. (می توانید قطعاتی مثل بازر یا رله یا… را به جای LED جایگزین کنید)
آنچه در این آموزش یاد می گیرید
- نحوه راه اندازی ماژول ESP8266
- کنترل وسایل با استفاده از این ماژول از طریق ارتباط WIFI
ماژول 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() ); }
}
Arduino
بعد از آپلود کردن برنامه روی برد آردوینو، با استفاده از Serial Monitor می توانید دستورات AT command را به ماژول ارسال کنید و جوابی که ماژول برمی گرداند را ببینید.
پروژه 1: کنترل LED با ماژول ESP8266 (از طریق شبکه WiFi)
استفاده از این ماژول بسیار ساده می باشد و پیکربندی آن بصورت زیر است.
سیم بندی
کد
نکته
من قبل از نوشتن و اجرای کد زیر، با استفاده از کد مطرح شده در بالا، نام ماژول خود را به ” Electropeak” و سرعت ارتباط آن را به 9600 تغییر دادم.
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3);
Arduino
برای راحتی کار از سریال نرم افزاری برای ارتباط با ماژول استفاده می کنیم.
#define led_pin 13
Arduino
تعریف پایه 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;
}
Arduino
تعریف یک تابع به نام 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);
}
Arduino
در بخش 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);
}
}
}
}
Arduino
در بخش 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();
}
Arduino
برای آپلود کد و اجرای آن مراحل زیر را دنبال کنید:
- ماژول را به مبدل متصل کنید. سپس مبدل را به کامپیوتر خود وصل کنید.
- پایه ی GPIO0 ماژول را به زمین متصل کرده. سپس پایه ی RESET ماژول را برای لحظه ای زمین کنید. سپس هردو پایه ی GPIO0 و RESET را به حالت اولیه برگردانید. (می توانید آن هارا بدون اتصال به جایی (float) رها کنید)
- در نرم افزار آردوینو، مدل برد خود را روی Generic ESP8266 Module قرار دهید. (دقت کنید که Upload Speed روی 115200 باشد)
4. پورت را انتخاب کرده و سپس دکمه ی آپلود را بزنید تا کد روی ماژول آپلود شود.
5. بعد از پایان آپلود کد، Serial Monitor را باز کنید و منتظر بمانید تا ip صفحه HTTP ای که ساخته اید، به شما داده شود.
6. در مرورگر خود ip را وارد کنید تا صفحه ی زیر نمایش داده شود:
7. با زدن کلید on، LED روشن و با زدن کلید off، LED خاموش می شود.
ماژول ESP8266 بخرید
یک گام جلوتر
- سعی کنید دو رله را با گوشی خود و ارتباط WIFI کنترل کنید.
- سعی کنید یک ربات را با گوشی خود و ارتباط WIFI کنترل کنید.
Comments (79)
سلام مهندس جان میشه من رو راهنمایی کنین
ماژولی هست که مثل گوشی سیم کارت بخوره و بشه از اینترنتش بصورت وایفا استفاده کرد یا نه؟
سلام. می توانید از ماژول های GSM (مثل SIM800 و SIM900 و A6 و…) استفاده کنید. این ماژول ها از ارتباط GPRS نسل 2 (2G) پشتیبانی می کنند.
سلام ؛بنده از سایت کافه ربات یک ماژول esp8266-07 خریداری کردم . با توجه به تفاوت پایه این با ماژول با ماژولی که در این آموزش استفاده کردید(esp826- 01) لطفا نحوه اتصال ماژول esp8266-07 به arduino را بفرمائید؟و با توجه به اینکه بنده میخواهم این ماژول را به اردوینو نگاه متصل کنم و بردی شبیه باد nodemcu درست کنم (اما با تعداد پایه بیشتر)آیا امکان دارد که ماژول esp8266-07 توسط باد اردوینو کد نویسی کنم یعنی بدون استفاده از مبدل؟لطفا توضیح دهید؟
سلام.
پایه های ماژولی که تهیه فرمودید با ماژولی که اینجا استفاده شده از نظر ترتیب متفاوته. می تونید با کمک لینک زیر پایه های ماژولی که استفاده میکنید رو با پایه های ماژول این آموزش تطابق بدید و سیم بندی رو متعاقبا انجام بدید.
“https://www.studiopieters.nl/esp8266-pinout/”
در مورد اتصال esp8266-07 بدون مبدل به آردوینو هم بله امکان پذیره. می تونید از سیم بندی که در پروژه 1 همین آموزش آورده شده استفاده کنید.
سلام من برای ساخت دانگل با esp8266 وکابل و usb بهserial ودسکتاپ برای این پروژه به کمک نیاز دارم چون اموزش خوبی پیدانمیکنم؟
با سلام،
متوجه منظورتون نشدم، هدف شما چه چیزی می باشد؟ در اصل به چه هدفی می خواهید برسید؟ اعلام بفرمایید بهتر می توانم شما را راهنمایی بکنم.
سلام. خدا خیرتون بده این آموزش خیلی به دردم خورد.
میخواستم هم فرامین AT رو با برنامه نویسی به ESP بدم به علاوه اینکه نمیخواستم روش برنامه نویسی کنم چون تعداد پایه های زیادی لازم داشتم.
هرچی سرچ میکردم یا برا ESP برنامه می نوشتن یا AT ها رو با کامپیوتر ارسال می کردن.
خلاصه اینکه دمتون خیلی گرم.
یا علی
خواهش میکنم. خیلی خوشحالیم که کمک کننده بوده.
سلام ممنون بابت آموزش های خوبتون
کاش قطعات استفاده شده رو که توی سایت قرار میدین با لینک مستقیم محصول باشه راحت و درست بشه خرید کرد
سلام دوست عزیز. خوشحالیم که مفید بوده.
در مورد محصولات استفاده شده هم درست میفرمایید. متاسفانه در این آموزش لینک محصولات نیست. اما در اکثر قریب به اتفاق آموزشها لینک مستقیمشون گذاشته میشه…
سلام
من می خوام یه فرمان رو بصورت بی سیم انتقال بدم
به اینصورت که اگر فن روشن شد فرمان به صورت بی سیم ارسال بشه و طرف دیگه این فرمان رو دریافت کنه و یه پمپ روشن بشه
میشه راهنمایی کنید؟
سلام
مساله شما با روشهای گوناگونی قابل حله. انتقال داده بیسیم میتونه از طریق وایفای، بلوتوث، امواج رادیویی و راههای دیگه باشه.
پارامتر مهم در مساله شما، فاصله بین فرستنده و گیرنده فرمان و همچنین وجود داشتن یا نداشتن دید مستقیم بین این دو تاست. در صورت فاصله کم در حدود کمتر از 5 متر میشه از طریق بلوتوث و ماژولهایی که امکان ارسال و دریافت بلوتوث دارند کار رو انجام داد. اگر فاصله کمتر از 8 تا 9 متر هست میتونید از طریق وایفای و با استفاده از بردهای ESP32 و یا ESP8266 انتقال داده رو انجام داد. در صورتی که فاصله خیلی بیشتر از این حدودهاست و در حد 50متر تا 200متر هست ولی دید بین فرستنده و گیرنده مستقیم هست و مانعی در بین راه نیست، میتونید از ماژولهای فرستنده گیرنده رادیویی استفاده کنید.
اما اگر مسالهتون پیچیدهتر از مسائل بالاست و هم فاصله زیاده و هم دید بین فرستنده و گیرنده مستقیم نیست، لازمه که از بردهای ESP (چه ESP32 و یا ESP8266) استفاده کنید، بردها رو هم در طرف فرستنده و هم طرف گیرنده به اینترنت متصل کنید و از طریق بارگذاری فرمان در وب در سمت فرستنده و خواندن اطلاعات از وب در سمت گیرنده، مسالهتون رو حل کنید.
هر کدام از روشهای بالا متفاوت و در نوع خود پیچیدگیهایی دارن و ابتدا لازمه بر اساس فرضیات مسالهتون روش مناسبتون رو انتخاب کنید.
موفق باشید.
برای پروژه ساخت دانگل با esp8266 به کمک وراهنمایی نیاز دارم چون اموزش مناسبی پیدانکردم
با سلام
در صورتی که منظور شما ساخت دانگل usb شبیه مواردی که داخل بازار هست، می توانم خیال شما را راحت کنم با ESP8266 شدنی نمی باشد.
اگر چیز دیگری میخواهید بسازید بهتر است داخل انجمن مطرح کنید تا مورد بررسی قرار بگیرد و تا جایی که امکان دارد توضیح بدهید که چه کاری را میخواهید انجام بدهید تا بتوانیم بهتر شما را راهنمایی بکنیم.
سلام
چطور میتونم این فرمان روشن شدن ال ای دی رو با یه ماژول دیگه بدم
ینی یه ماژول سرور باشه یکی کلاینت و بدون اینترنت و فقط با وای فای به هم وصل باشن.
بعد با تحریک دکمه ماژول A
ال ای دی در ماژول B مثلن ده ثانیه روشن بمونه و بعد خاموش بشه.
ممنون میشم راهنماییم کنین.
یک سوال دیگه هم اینکه لطفا بفرمایید فرق داره که این پروژه ساده رو با چه ماژولی از خانواده esp انجام بدیم؟
همچنین اینکه چطور میشه همین ازمایشو با دوتا esp8266 انجام داد؟ یکی فرمان بده و یکی فرمان بپذیره
با سلام
ضمن تشکر از سایت خوبتون
من میخوام کنترل ماژول رله تک کاناله را با ماژول وای فای Esp8622 از (طریق شبکه وای فا ) انجام بدم و از طریق موبایل فرمان روشن و خاموش را صادر کنم امکان داره کد اردینو پروگرام آن را برام ارسال بفرمائید .
با تشکر فراوان
برای روشن خاموش کردن رله ۵ ولت تک کانال میشه بگید چه کدی را جای کد led ها قرار بدم؟
همش چراغ خود ماژول وایفایم روشن خاموش میشه. رله ام هیچ تغییری نمیکنه
سلام.
روشن و خاموش کردن رله 5 ولت تفاوتی با کنترل یک LED نداره و در نتیجه میتونید از همین کد به طور مستقیم استفاده کنید. کافیه خروجی پایهای که به LED متصل میشه رو به پایه Trigger رله متصل کنید. تنها مسالهای که وجود داره اینه که آیا رله شما اصطلاحا active high هست و یا active low. فرق این دو مورد اینه که در رله Active High، رله با High شدن پایه Trigger فعال میشه و در رله active Low، با Low شدن پایه Trigger.
اگر در استفاده از این کد رلهتون غیرفعال باقی میمونه احتمالش هست که مشکل از خود رله باشه.
سلام.من با استفاده اولین برنامه شما خواستم esp8266 را استفاده کنم و تمام مراحل براساس نوشته های شما انجام دادم ولی موقع آپلود کرد خطای عدم کامپایل برای برد esp8266 را می دهد.لطفا راهنمایی کنید این مشکل را حل کنم
سلام.
دقیقا منظورتون کدام یک از کدها هست؟ الان تمامی کدهای این آموزش رو چک کردم و همگی بدون مشکل کامپایل میشدن.
با عرض سلام و خسته نباشید.
من چند روز هست که تو اینترنت میچرخم تا یه اموزش این ماژول رو پیدا کنم و الان کدش رو زدم این ارور رو میده
Error compiling for board Arduino Mega or Mega 2560.
راستی من از آردوینو mega2560 استفاده میکنم
قبلش که کد رو وارد کردم اروری نمیاورد اما وایفای در حالی که روشن بود تو شبکه نمیامد و نمیتونستم وصل شم که بعدش شروع کرد به ارور دادن
اگه میشه پین ها هم بیشتر توضیح بدین ممنون میشم
سلام.
این ارور رو تو استفاده از کدوم کد باهاش برخورد کردید؟ اگر از کد آخر استفاده میکنید لازمه که در نرمافزار آردوینو IDE بوردتون رو ESP8266 انتخاب کنید که به نظر میرسه به اشتباه Arduino Mega انتخاب شده باشه.
سلام آیا بجای ولتاژ ۳.۳ ولت میشه از ۳ ولت استفاده کرد؟
سلام.
بله مشکلی نداره.
سلام من مثل اموزش پیش رفتم دستورات at اجرا نمیشوند و هنگام آپلود خطای connect میده
سلام
1-امکان استفاده از چند پایه esp-01 به عنوان خروجی(مثلا برای کنترل رله) هست؟بجز gpio2
2-خروجی ۳.۳ ولتی esp-01 برای رله ۵ ولت جواب میده؟
سلام.
در جواب سوال اولتون بله. از همه پایههایی که GPIO هستن میتونید برای کنترل رله استفاده کنید.
در جواب سوال دومتون هم، شما نمیتونید از 3.3 ولت ESP برای تغذیه رله استفاده کنید ولی میتونید اون رو به پایه tigger رله متصل کنید و توانایی فعال کردن رله 5 ولتی رو داره.
سلام
استاد بعد آپلود میرم تو مانیتور ولی آیپی مرورگر رو نمیده و تو خروجی Configuring access point.. رو چاپ می کنه و پست سر هم فقط نقطه.
فکر کنم تو مرحله wifi-status گیر می کنه.
باید چیکار کنم؟
به منبع تغذیه جداگانه وصل کنم یا همون مبدل سریال اوکیه؟
با سلام مهندس جان این ماژول چگونه به شیلد متور وصل کنم
سلام
وقت بخیر، اگه به طور مثال بخواهید با شیلد l298 کار کنید، نیاز به یک سری ورودی PWM دارید که بتونید موتور هایی رو که به شیلد متصل هستند راه اندازی و کنترل کنید
جهت ایجاد PWM هم میتونید با راه اندازی تایمر های ESP در مد مدنظر این کار رو انجام بدید
سلام
ide من پورت serial to usb یا همون esp01 به صورت مستقیم رو پیدا نمیکنه درواقع هیچ پورتی رو نمایش نمیده و چطوری باید این مشکل رو حل کرد ؟
سلام
شما ابتدا باید درایور مربوطه رو نصب کنید cp2102 از آدرس زیر میتونید دانلود کنید
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
سلام
استاد بعد آپلود میرم تو مانیتور ولی آیپی مرورگر رو نمیده و تو خروجی Configuring access point.. رو چاپ می کنه و پست سر هم فقط نقطه.
فکر کنم تو مرحله wifi-status گیر می کنه.
باید چیکار کنم؟
سلام
تابع wifi.begin رو بررسی کنید لطفا و از صحت ssid , password خودتون مطمئن بشید که درست ست کردید
این هم برنامه می باشد. البته چون گوشی را هات اسپات کرده ام می بینم که اصلا به گوشی متصل نمی شود.
باتشکر از محبتتان
#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();
}
سلام وقت بخیر
در تابع setup برنامه در قسمت که قراره wifi کانفیگ بشه چرا خط رو کامنت کردید؟
باید از کامنت در بیارید و این خط رو بنویسید WiFi.begin(ssid, password);
و در بالا که ssid , password خودتون رو تعریف کنید
سلام بعد از اپلود کد پروژه 1 در اردینو چطوری باید تستش کنم.در سزیال مانیتور ON تایپ می کنم اتفاقی نمیافته؟ لطفا راهنمایی کنید
عرض سلام وتشکرفراوان بابت آموزش های بسیار مفیدی که درسایت خود قرارمیدهید. یک سوالی از خدمتتان دارم اینکه میخواهم بلندگوی اژیر دزدگیر اماکن را بدون سیم کشی در نقطه ای دورتر قرار دهم و ایا میتوان با استفاده از این ماژول این ارتباط را برقرار کرد وچگونه ممنون
با سلام
فاصله شما چقدر می باشد؟؟ این فاصله دید مستقیم می باشد یا مانع (دیوار و…) وجود دارد ؟؟ در صورتی که وجود دارد چه تعدادی وجود دارد؟؟
در این محیط wifi هم دارید یا خیر؟؟
سلام خسته نباشید ممنونم از آموزش خوبتون من این ماژول رو مدل nudemcu گرفتم که راحت بدون چیز اضافه ای وصلش کنم به کامپیوتر ممکنه راهنمایی کنید چطوری یه led بهش وصل کنم با همین پروژه شما و با اون سرور خاموش روشنش کنم led رو به کدوم پایه esp باید متصل کنم؟
با سلام
از این آموزش می توانید برای استفاده NodeMCU استفاده کنید.
در صورتی که میخواهید LED را به پایه های میکرو وصل کنید کافی است LED را بین یکی از پایه های عددی NodeMCU و GND وصل کنید (البته یک مقاومت حدودا 300 الی 1 کیلو اهم به صورت سری نیز قرار بدهید)
و در کد نیز در خط
#define led_pin 13
که شماره پایه تعریف می شود، شماره پایه خود را وارد کنید (مانند D3 که بر روی NodeMCU خورده است.)با عرض سلام و خسته نباشید خدمت شما
اگه ولتاژی که به آردوینو میدیم بیشتر از ۳.۳ ولت باشه چون ماژول وایفای داره از خود آردوینو تغذیه میکنه آسیبی بهش وارد نمیشه؟
باسلام
سعی کنید از یک رگوراتور ams1117 یا هر نوع رگوراتور دیگری که ولتاژ 3.3 را تولید میکند برای تبدیل 5 ولت آردوینو به 3.3 استفاده کنید.
پایه 3.3 ولت روی برد های آردوینو به عنوان رفرنس استفاده می شود و توان روشن کردن این سری محصولات را ندارد.
عکس های آموزش نیز اصلاح می شود.
سلام خسته نباشید . من یک عدد ماژول وای فای esp12-f دارم . این ماژول رو به صورت مستقیم به node mcu برای پروگرام کردن وصل کردم : یعنی (tx بهtx) (rx به rx) (gnd به gnd ) (vcc به vcc) . وقتی که این کار را انجام دادم، بعد ال ای دی رو برد esp12 روشن شد و خاموش شد . بعد از چند ثانیه دوباره روشن شد و بعد خاموش
شد. اما دیگه بعد از اتصال ال ای دی رو ان روشن نشد و نمی توانستم هیچ برنامه ای را روی ان اپلود کنم .
میشه راهنماییم کنید ؟
ایا برد من اسیب دیده ؟
ایا راهی برای برطرف کردن ای اسیب هست ؟
سپاس فراوان
با سلام
برای پروگرام کردن یک esp دیگر از طریق برد nodeMCU باید از این آموزش برای این موضوع استفاده کنید.
برای اینکه بررسی کنید میکرو شما آسیب دیده است یا خیر
سیم کشی های خود را قطع کنید، برد NodeMCU را به صورت جدا به سیستم وصل کنید سریال مانیتور را باز کنید و بر روی 57600 قرار بدهید. با ریست کردن برد باید دیتا در این سریال مانیتور دریافت کنید. در صورت عدم دریافت دیتا بررسی کنید که پایه های EN و RST روی برد ولتاژ 3.3 دارند یا خیر، در صورت کمتر بودن ولتاژ به زیر 3 ولت با استفاده از یک سیم جامپر ولتاژ بالاتر بدهید و بررسی کنید که در سریال مانیتور دیتا می آید یا خیر
همین موارد برای esp که میخواهید پروگرام کنید در شرایط آموزش نیز وصل باشد را نیز می توانید بررسی کنید.
سلام خدمت استاد گرامی دو تا سوال داشتم
آیا ماژول ESP8266 را بدون برد اردوینو و فقط با مبدل یو اس بی به سریال می توان به کامپیتور متصل کرده و با افزار آردوینو پروگرام کرد؟
و دوم اینکه آیا میتوان نام ماژول و یا مک آدرس آن را پنهان کرد (یا نام دلخواهی به آن داد)تا پس از اتصال به مودم وایفای در نرم افزارهای آنالیز وایفای دیده نشود؟
با تشکر فراوان
با سلام
ماژول ESP در اصل یک میکروکنترلر کامل می باشد که می توانید آن را به صورت جدا برنامه نویسی کنید و دستورات شما را اجرا کند.
برای سادگی در زمینه پروگرام و استفاده می توانید از سری NodeMCU این محصول استفاده کنید که کار را برای کاربر بسیار ساده کرده است.
در صورتی که از ESP دارید بله می توانید از طریق USB-TTL آن را پروگرام کنید.
در این مورد که مک آن را پنهان کنید یا نام دلخواه بگذارید. فکر کنم بتوانید مقدار مک را عوض کنید ولی پنهان کردنش رو مطمئن نیستم و اینکه در نرم افزار های انالیز نشان داده نشود را نیز نمیدانم.
باید به کتابخانه ها و دیتاشیت خود تولید کننده مراجعه کنید.
سلام خسته نباشید. اگر از مبدل smd به dip استفاده نکنیم یا پایه GPIO15 را پول اپ نکنیم،امکان سوختن یا اسیب دیدن ماژول esp12f هست ؟؟
مبدل برای سادگی استفاده هست
در صورتی که بخواهید مستقیم سیم ها را هویه کنید مشکلی پیش نمی آید.
این برد ها فقط در زمینه ولتاژ زیاد که به پایه VCC داده شود آسیب پذیر هستند و جدا از این موضوع احتمال سوختن پایینی دارن.
یکی هم جریان کشی از پایه های دیتا.
A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
وقتی میخوام کد رو اپلود کنم این برای چیه
با سلام
این لینک را مطالعه کنید.
در صورتی که همچنان برطرف نشد در همان بخش سوال بپرسید.
با سلام آیا می توان esp8266 را با تغذیه باتری قلمی و یا پاوربانک گوشی راه اندازی کرد؟
با سلام
پاوربانک یک گزینه بسیار محبوب می باشد، می توانید به سادگی از آن استفاده کنید.
برای باتری قلمی شدنش که امکان پذیر هست ولی پیشنهاد نمیکنم، چون در حالت wifi روشن حداکثر به شما 2-3 ساعت کارایی بدهد. همچنین باید حداقل 3 عدد باتری را با هم سری کنید تا به ولتاژ 4.5 برسید و به پایه Vin روی برد NodeMCU وصل کنید.
اگر هدف شما استفاده از ESP-01 یا هر مدلی که رگوراتور ندارد حتما باید یک رگوراتور AMS1117 یا هر رگوراتور خطی 3.3 ولتی برای تبدیل ولتاژ استفاده کنید.
خیلی ممنون
منظور من خود esp8266 هست نه nodmcu
برای اتصال پاوربانک به esp8266 از چه کابلی باید استفاده کرد؟
پاوربانک را مستقیم بدون رگولاتور می توان به esp8266 متصل کرد؟(چون خروجی پاوربانک حدود ۵ ولته)
برای اتصال باتری قلمی به nodemcu باید رگولاتور سر راه مدار باشد؟
بازم ممنونم از پاسخگوییتون
سلام این سوال منم هست برد nodemcu دارم. چطور میتونم به پاوربانک وصل کنم با چ کابلی؟مستقیم میتونم به nudemcu وصل کنم؟مدل پاوربانک مهمه؟چون آمپر خروجی پاوربانک بالاست برد نمیسوزه؟اگر با باتری بخوام راه بندازم سری کنم سه تا رو یا موازی؟پاوربانک یا باتری رو بدون رگولاتور میتونم وصل کنم به nudemcu?ببخشید که زیاد شد سوالام!
خیر بالا بودن جریان تاثیری در عملکرد ندارد و مهم در محدوده بودن ولتاژ هست که پاور بانک بر روی 5 ولت هست، و اینکه ساده ترین روش وصل کردن کابل پاور بانک به microUSB روی برد می باشد.
برای سری و موازی کردن نیز بستگی به باتری شما دارد.
در صورتی که باتری لیتیومی بخواهید استفاده کنید بهتر است موازی کنید و در نهایت همگی رو به ماژول پاور بانک وصل کنید. برای مثال ماژول شارژ/دشارژ باتری لیتیومی MH-CD42 با خروجی 5V 2A مناسب ساخت پاور بانک
در صورتی که باتری قلمی میخواهید استفاده کنید 3 عدد رو با هم سری کنید تا ولتاژ به 4.5 ولت برسد و به پایه vin روی ماژول وصل کنید.
سلام منم یک پاوربانک دارم که دو تا خروجی 1A 5v و 2A 5v داره.میتونم nodemcu رو باهاش راه اندازی کنم؟فقط نمیدونم با کدوم خروجی 1A یا 2A؟ با توجه به آمپر بالا ماژول نمیسوزه؟
فرقی نمیکند،
ماژول به اندازه ای که نیاز داشته باشد جریان خواهد کشید.
سلام تشکر فراوان بابت اموزش های خوب و مفیدی که ارایه می دهید. امیدوارم اشخاص دیگه ای هم از عملکرد شما یاد بگیرند تا حداقل سطح علمی علاقه مندان به این رشته بالاتر رود که برای کشور و همه انسانها بتوان قدم مفیدی برداشت. سوال من این هست که چگونه میتوانم بجای گوشی از یک ماژول دیگر مثل سنسور حرکتی و یا لرزش و یا هر سنسور دیگری ارتباط برقرارکنم تا مثلا ال ای دی در طرف دیگر روشن شود. تشکر
با سلام
ممنون از نظرتون
در مورد سوال شما، متوجه منظور شما نشده ام.
میتوانید این سوال ها را در بخش انجمن به صورت کامل و در صورتی عکس و یا داکیومنتی دارید مطرح کنید. تا بهتر بتوانیم شما را راهنمایی بنماییم.
سلام آیا میتوان nodemcu را طوری برنامه نویسی کرد که در تایم مشخصی از روز روشن شده و در تایم دیگه ای خاموش شود؟ تایمر داخلیشو رو چطور میشه برنامه نویسی کرد؟
با سلام،
بله می توانید این کار را انجام بدهید، ولی این موضوع به دقت تایم های شما بستگی دارد.
برای این موضوع زمانی که میخواهید خاموش باشد کافی است از DeepSleep استفاده کنید.
در صورتی که زمانی میخواهید دقیقتر کار را انجام بدهید می توانید از ماژول های RTC جانبی استفاده کنید و esp را در زمان های دوره ای قرار بدهید که روشن بشود و زمان را چک کند و یا از مدل هایی که تایمر دارند و با استفاده از پایه IRQ به پایه RST میکرو وصل کنید تا طی آن زمان ها خود ماژول RTC میکرو شما را روشن کند.
ممنون
از ماژول جانبی نمیخوام استفاده کنم
از امکانات خود nodemcu چطور میتونم اینکارو کنم؟
مدل تایمردار nodemcu چجوریه؟شما دارین؟
سلام ممنون از سایت خوبتون
من میخواستم برد توسعه NodeMcu دارای هسته وای فای ESP8266 را از فروشگاه شما تهیه کنم
کدوم مدل بهتره CH340 یا CP2102؟
از نظر سادگی در راه اندازی و ارتباط با وایفای؟
چرا قیمتاشون متفاوته؟
با سلام
این 2 مدل در هسته اصلی با هم هیچ تفاوتی ندارد و فقط در مبدل USB-TTL باهم فرق میکنند که دقیقا CP2102 , CH340 هستن
دلیل اختلاف قیمت هم دقیقا همین IC هست. می توانید همین کد ها را داخل نت سرچ کنید و همین موضوع را مشاهده کنید.
سلام مهندس جان خسته نباشید
برای ریست کردن برد nodemcu هر بار که منبع تغذیه را خاموش روشن میکنیم برد ریست میشود؟ یا حتما باید دکمه RST روی برد را فشار دهیم؟
با سلام
فرقی نمیکند که تغذیه را قطع و وصل کنید یا دکمه ریست را بزنید، هر 2 باعث ریست شدن میکرو می شود. فقط توجه داشته باشید که پایه هایی که در زمان بوت شدن درگیر هستند را در مورد های خاص نبرید تا در بوت شدن به مشکل نخورید.
این موارد را می توانید از آموزش راهنمای جامع پایه های ESP8266: از کدام پایه های GPIO باید استفاده کنیم بهره برداری کنید.
با سلام و احترام
باکس اندازه nodemcu را از کجا میتونم تهیه کنم؟
میخوام محفظه ای داشته باشم تا در هنگام حمل و نقل آسیبی بهش وارد نشه.
با سلام
متاسفانه قابی آماده برای این محصول موجود نمی باشد.
شما می توانید از 3 روش
1. پلکسی و لیزرکات برای خودتان قاب طراحی کنید
2. طراحی قاب و پرینت سه بعدی کردن
3. خرید قاب های آماده مقداری بزرگ تر و جا سازی کردن قطعه داخل آنها استفاده کنید.
با عرض سلام و ارادت
ولتاژ کاری ماژول nodemcu چقدره دقیقا؟ تو دیتاشیت نوشته 3.3ولت من که با پاوربانک خروجی 5.3ولت روشنش میکنم بهش آسیب وارد میشه؟
در حالت عادی با پاوربانک 3000 میلی آمپر ساعت فول شارژ چند ساعت میتونم با این ماژول کار کنم؟
با سلام
ولتاژ کاری تمامی مدل های ESP 3.3 ولت می باشد.
اما بر روی تمامی مدل های برد های توسعه یک عدد رگوراتور قرار داده شده است که از ولتاژ 4.4 الی 9 ولت به آنها بدهید آن ولتاژ را به 3.3 تبدیل میکند و به میکروکنترلر میدهد.
NodeMCU نیز برد توسعه ای برای ESP8266 می باشد و همین مورد برای آن نیز برقرار می باشد.
در مورد مصرف برق نیز بسته به کدی که بر روی آن اجرا میکند مختلف می باشد. امکان دارد کد شما سنگین باشد و تا 100 میلی آمپر نیز مصرف داشته باشد (در این شرایط 30 ساعت باید برای شما کار کند- البته ایدآل در نظر گرفته شده است)
سلام وقت بخیر من میخوام در واقع با استفاده از ماژول gps اطلاعات مکانی یک خودرو در فاصله مثلا 1 کیلومتر را در خودرو دیگر دریافت کنم چطور میتونم gps رو به وای فای گوشی یا یک ماژول wifi وصل کنم که این دو خودرو تبادل داده انجام دهند؟
با سلام
با wifi نمیتوانید این فاصله را پوشش بدهید. باید از ماژول های GSM با استفاده از موبایل دیتا به یک سرور اینترنتی آپلود کنید و در آنجا مورد بررسی قرار بدهید.
مانند Live Location که در گوشی ها موجود می باشد. باید با استفاده از اینترنت این قابلیت را ایجاد کنید.
با سلام
من ماژول esp8266 با مبدل usb به کامپیوتر متصل کردم درایور نصب کردم شناخته شد اما در برنامه اردینو پیام could not conection میاد چرا؟ مشکل کجاست
با سلام
اگر از نسخه ESP01 دارید استفاده میکنید پیشنهاد میکنم این آموزش را دنبال کنید
لینک خرابه
سلام من چند جا رفتم دیدم و اخر نفهمیدم
وقتی راه اندازی میکنی فقط باید به وایفایی که مازول هم بهش وصله وصل باشی یا از راه دور هم (مثل یک سرور ) کار میکنه؟
خروجی ماژول از نوع سریال هست؟؟؟
با سلام
بله یکی از روش های استفاده از این ماژول استفاده از مود AT-Command در مود سریال میباشد.
البته این ماژول را میتوانید به صورت مستقیم پروگرام بکنید و دیگر نیازی به استفاده از آردوینو نمی باشد. برای این موضوع به آموزش های دیگر ESP8266 مراجعه بکنید.
همچنین میتوانید از ماژول NodeMCU استفاده بکنید که تمام پایه های این میکروکنترلر را بیرون کشیده است. نسخه قوی تر نیز ESP32 می باشد.