قیمت و موجودی تمامی کالاها به‌روز است.

آموزش ESP32 برای مبتدی‌ها: اولین پروژه‌ی وای‌فای و کنترل رله از گوشی با وب‌سرور

مقالات⏱ 16 دقیقه مطالعهبه‌روزرسانی: 26 مهر 1405
برد توسعه ESP32 و رله ۵ ولت RA5W-K برای کنترل رله از گوشی با وای‌فای

خلاصه ۳ خطی

فهرست مطالب14 بخش
  1. قطعات لازم
  2. انتخاب رله و درایور برای ESP32
  3. کدام پایه‌ی ESP32 را برای رله انتخاب کنیم؟
  4. بستن مدار قدم‌به‌قدم
  5. تغذیه: چرا برد هنگام اتصال به وای‌فای ریست می‌شود؟
  6. نصب ESP32 در Arduino IDE
  7. برنامه‌ی کامل: وب‌سرور ESP32 برای کنترل رله
  8. اجرا و باز کردن صفحه در گوشی
  9. بدون مودم: ESP32 خودش شبکه بسازد
  10. امنیت شبکه: این برد را روی اینترنت نگذارید
  11. اگر می‌خواهید بار ۲۲۰ ولت را کنترل کنید
  12. خطاهای رایج و راه‌حل
  13. سؤالات متداول
  14. آیا برای کنترل رله با ESP32 اینترنت لازم است؟
  15. کدام پایه‌ی ESP32 برای رله مناسب است؟
  16. چرا ESP32 به وای‌فای مودم وصل نمی‌شود؟
  17. آیا BC547 برای رله با ESP32 کافی است؟
  18. آیا می‌توان با این پروژه لامپ ۲۲۰ ولت را کنترل کرد؟
  19. جمع‌بندی
  • در این پروژه، ESP32 یک صفحه‌ی وب کوچک می‌سازد و با هر گوشی‌ای که به همان شبکه‌ی وای‌فای وصل باشد، از داخل مرورگر رله را روشن و خاموش می‌کنید. اپلیکیشن، اینترنت و سرور خارجی لازم نیست.
  • پایه‌ی ESP32 فقط ۳٫۳ ولت می‌دهد. پس رله را با یک ترانزیستور BC547، مقاومت بیس ۱ کیلواهم و دیود هرزگرد برانید و رله‌ای انتخاب کنید که بوبینش حدود ۳۰ میلی‌آمپر بکشد. از پایه‌ی معمولی مثل GPIO26 استفاده کنید.
  • اولین آزمایش را با یک بار کم‌ولتاژ DC انجام دهید. سیم‌کشی ۲۲۰ ولت را فقط در جعبه‌ی عایق، با فیوز و با رله‌ای انجام دهید که کنتاکتش برای برق شهر تعریف شده است. اگر کار با برق شهر را بلد نیستید، این بخش را به برق‌کار بسپارید.

اگر مقایسه‌ی ESP32 و آردوینو را خوانده‌اید، می‌دانید برگ برنده‌ی ESP32 وای‌فای داخلی آن است. در این آموزش ESP32 برای مبتدی‌ها، با همین وای‌فای اولین پروژه‌ی اینترنت اشیا را می‌سازیم: رله‌ای که با گوشی روشن و خاموش می‌شود. ESP32 به مودم خانه وصل می‌شود، یک وب‌سرور کوچک اجرا می‌کند و یک صفحه با دو دکمه‌ی ON و OFF نشان می‌دهد. شما فقط آدرس IP برد را در مرورگر گوشی باز می‌کنید. اعداد از دیتاشیت‌های رسمی، مستندات Arduino-ESP32 یا صفحه‌ی کالای ایکانو است و برنامه با هسته‌ی رسمی ESP32 (نسخه‌ی 3.3.12) کامپایل شده است. محاسبه‌ی کامل مقاومت بیس، دیود هرزگرد و ULN2003 را در راه‌اندازی رله ۵ ولت با آردوینو و ESP32 توضیح داده‌ایم و اینجا تکرارشان نمی‌کنیم.

مسیر کار ساده است: ESP32 در حالت ایستگاه (Station) به وای‌فای وصل می‌شود، روی پورت ۸۰ یک وب‌سرور راه می‌اندازد و با هر دکمه، پایه‌ی GPIO26 را HIGH یا LOW می‌کند تا ترانزیستور BC547 بوبین رله را روشن یا خاموش کند. گوشی و ESP32 باید در یک شبکه باشند. پایین‌تر توضیح می‌دهیم چرا برای شروع نباید برد را مستقیم روی اینترنت گذاشت.

قطعات لازم

قطعهتعدادنکته
برد توسعه ESP32 با ماژول ESP32-WROOM-32D۱۳۸ پایه و درگاه USB Type-C؛ برنامه از همین درگاه بارگذاری می‌شود
رله با بوبین کم‌مصرف، مثلاً RA5W-K (۵ ولت) یا SRD-12VDC-SL-C (۱۲ ولت)۱انتخابش در جدول بعدی آمده است
ترانزیستور BC547۱NPN، حداکثر ۱۰۰ میلی‌آمپر کلکتور طبق دیتاشیت onsemi
مقاومت ۱ کیلواهم و مقاومت ۱۰ کیلواهماز هر کدام ۱۱k مقاومت بیس، ۱۰k بین بیس و زمین
دیود 1N4148 یا 1N4007۱دیود هرزگرد، موازی و برعکس با بوبین
سیم جامپر نر به مادهچند رشتهبرای اتصال پایه‌های برد به مدار
کابل USB Type-C (با سیم داده) و منبع ۵ ولت۱منبع باید جریان کافی بدهد؛ پایین‌تر توضیح داده‌ایم

اگر رله‌ی ۱۲ ولتی می‌گیرید، به یک منبع ۱۲ ولت هم نیاز دارید. در این حالت می‌شود ۵ ولت برد را با یک مبدل کاهنده مثل ماژول MINI-360 از همان ۱۲ ولت ساخت. روش انتخاب منبع را در انتخاب منبع تغذیه ببینید.

انتخاب رله و درایور برای ESP32

شماتیک راه‌اندازی رله با ESP32: پایه GPIO26، مقاومت بیس ۱ کیلواهم، ترانزیستور BC547 و دیود هرزگرد

جریان پایه‌ی ESP32 برای بوبین رله کافی نیست. طبق دیتاشیت Espressif، جریان هر پایه در بیشترین قدرت درایو حدود ۴۰ میلی‌آمپر است و وقتی چند پایه هم‌زمان جریان بدهند، تا حدود ۲۹ میلی‌آمپر کم می‌شود. ولتاژ خروجی آن هم در این حالت فقط حداقل ۲٫۶۴ ولت تضمین شده است. پس بین پایه و بوبین یک ترانزیستور لازم است. اینکه کدام درایور، به جریان بوبین رله بستگی دارد:

رلهولتاژ و جریان بوبینکنتاکتدرایور مناسب با ESP32
RA5W-K (TAKAMISAWA)۵ ولت، ۲۹٫۹۴ میلی‌آمپر (۱۶۷ اهم) طبق صفحه‌ی کالا۲ آمپر طبق صفحه‌ی کالا؛ ولتاژ مجاز کنتاکت در صفحه نیامده استBC547 + مقاومت بیس ۱k؛ فقط برای بار کم‌ولتاژ DC
SRD-12VDC-SL-C (Songle)۱۲ ولت، ۳۰ میلی‌آمپر (۴۰۰ اهم) طبق دیتاشیت Songleبار مقاومتی ۱۰ آمپر در ۱۲۵VAC و ۷ آمپر در ۲۴۰VAC؛ بار سلفی ۳ آمپرBC547 + مقاومت بیس ۱k؛ بوبین از ۱۲ ولت
T78-5VDC (LIMING)۵ ولت، حدود ۱۲۰ تا ۱۶۰ میلی‌آمپر (از توان ۰٫۶ تا ۰٫۸ وات صفحه‌ی کالا)NO: ۲۰ آمپر در ۱۴VDC و ۱۰ آمپر در ۱۲۰VAC طبق صفحه‌ی کالاBC547 کافی نیست؛ ULN2003 یا ماسفت IRLML2803

محاسبه‌ی مقاومت بیس برای ESP32: برای اینکه BC547 کاملاً اشباع شود، جریان بیس را دست‌کم یک‌بیستم جریان بوبین بگیرید. این نسبت از شرط اندازه‌گیری ولتاژ اشباع در دیتاشیت onsemi آمده است. برای بوبین ۳۰ میلی‌آمپری، جریان بیس لازم ۱٫۵ میلی‌آمپر است. اگر بدترین حالت خروجی ESP32 را ۲٫۶۴ ولت و ولتاژ بیس-امیتر را ۰٫۷ ولت بگیریم، مقاومت بیس باید از (۲٫۶۴ − ۰٫۷) ÷ ۱٫۵mA، یعنی حدود ۱٫۳ کیلواهم، کوچک‌تر باشد. با مقاومت ۱ کیلواهم، جریان بیس در بدترین حالت حدود ۱٫۹ میلی‌آمپر و در ۳٫۳ ولت حدود ۲٫۶ میلی‌آمپر است. این مقدار هم برای اشباع کافی است و هم خیلی کمتر از حد جریان پایه است. رله‌های ۷۰ تا ۹۰ میلی‌آمپری به مقاومت کوچک‌تری نیاز دارند. جدول کامل در مقاله‌ی راه‌اندازی رله آمده است.

برای رله‌ی بیش از ۱۰۰ میلی‌آمپر، ULN2003 ساده‌ترین راه است. طبق دیتاشیت TI، ورودی آن برای ۲۰۰ میلی‌آمپر خروجی حداکثر ۲٫۴ ولت می‌خواهد که از حداقل خروجی ESP32 کمتر است.

کدام پایه‌ی ESP32 را برای رله انتخاب کنیم؟

جدول پایه‌های ESP32 برای رله: GPIO25، GPIO26 و GPIO27 مناسب؛ پایه‌های فقط‌ورودی، فلش، سریال و Strapping نامناسب

همه‌ی پایه‌های برد برای خروجی گرفتن مناسب نیستند. طبق دیتاشیت ESP32-WROOM-32D:

پایهوضعیت طبق دیتاشیتبرای رله؟
GPIO34، GPIO35، GPIO36 و GPIO39فقط ورودینه؛ خروجی ندارند
GPIO6 تا GPIO11به فلش داخلی ماژول وصل‌اندنه
GPIO1 و GPIO3TXD0 و RXD0 (سریال برنامه‌ریزی و Serial Monitor)نه
GPIO0، GPIO2، GPIO5، GPIO12 (MTDI) و GPIO15 (MTDO)پایه‌های Strapping؛ سطحشان هنگام روشن شدن، حالت بوت، ولتاژ رگولاتور داخلی VDD_SDIO و چند تنظیم دیگر را تعیین می‌کندبهتر است نه
GPIO25، GPIO26، GPIO27ورودی/خروجی معمولیبله؛ در این مقاله GPIO26

دلیل پرهیز از پایه‌های Strapping این است که مقاومت‌های مدار ترانزیستور (به‌خصوص مقاومت ۱۰ کیلواهم بین بیس و زمین) ممکن است سطح این پایه‌ها را هنگام روشن شدن عوض کنند و برد درست بوت نشود. مثلاً طبق جدول پیش‌فرض دیتاشیت، GPIO0 و GPIO5 پول‌آپ داخلی دارند و GPIO2 و MTDI پول‌داون. روی برد توسعه، شماره‌ی چاپ‌شده کنار هر پایه را با شماره‌ی GPIO تطبیق دهید.

بستن مدار قدم‌به‌قدم

نقشه سیم‌کشی رله با برد ESP32، ترانزیستور BC547، مقاومت‌های ۱ و ۱۰ کیلواهم، دیود و زمین مشترک
  1. بوبین رله: یک سر بوبین به ولتاژ تغذیه‌ی رله (۵ ولت برای RA5W-K، ۱۲ ولت برای SRD-12VDC) و سر دیگر به کلکتور BC547.
  2. امیتر BC547 به زمین. زمین برد ESP32 و زمین منبع رله باید به هم وصل باشند.
  3. بیس از راه مقاومت ۱ کیلواهم به GPIO26. مقاومت ۱۰ کیلواهم بین بیس و زمین، ترانزیستور را هنگام روشن شدن و ریست خاموش نگه می‌دارد.
  4. دیود هرزگرد موازی با بوبین و برعکس: کاتد (سمت نوار) به مثبت تغذیه‌ی رله و آند به کلکتور.
  5. بار بین COM و NO رله قرار می‌گیرد تا با فرمان ON روشن شود.

پایه‌های BC547 در دیتاشیت onsemi به ترتیب ۱ کلکتور، ۲ بیس و ۳ امیتر است. چون همه‌ی سازنده‌ها پایه‌ها را یکسان شماره نمی‌زنند، قبل از بستن مدار، پایه‌ها را با دیتاشیت همان قطعه یا با تست دیود مولتی‌متر چک کنید. روش کار با حالت تست دیود در آموزش کار با مولتی‌متر آمده است.

پیشنهاد برای اولین آزمایش: قبل از اینکه باری به کنتاکت وصل کنید، فقط صدای کلیک رله را با دکمه‌های گوشی امتحان کنید. بعد یک بار کم‌ولتاژ DC، مثلاً یک LED با مقاومت سری یا یک فن ۱۲ ولتی کوچک، را از راه کنتاکت روشن کنید. وقتی همه‌چیز درست کار کرد، سراغ بار بزرگ‌تر بروید.

تغذیه: چرا برد هنگام اتصال به وای‌فای ریست می‌شود؟

طبق جدول شرایط کاری دیتاشیت Espressif، ماژول ESP32-WROOM-32D با ۳٫۰ تا ۳٫۶ ولت کار می‌کند و منبع تغذیه‌اش باید دست‌کم ۰٫۵ آمپر جریان بدهد. به گفته‌ی صفحه‌ی کالا، برد توسعه از USB یا پایه‌ی 5V تغذیه می‌گیرد و ورودی و خروجی‌هایش ۳٫۳ ولتی است. اگر پورت USB یا آداپتور ضعیف باشد، ولتاژ هنگام ارسال وای‌فای افت می‌کند و برد ریست می‌شود. بوبین رله‌ی ۵ ولتی هم از همان ۵ ولت جریان می‌کشد. پس از یک منبع ۵ ولت مطمئن استفاده کنید، نه از پایه‌ی ۳٫۳ ولت برد.

اگر به‌جای برد توسعه، ماژول خام ESP32 را روی برد خودتان می‌بندید، ۳٫۳ ولت را با AMS1117-3.3 از ۵ ولت بسازید. طبق دیتاشیت DS1117 شرکت Advanced Monolithic Systems، افت ولتاژ آن در ۰٫۸ آمپر حداکثر ۱٫۳ ولت است که از اختلاف ۱٫۷ ولتی ۵ و ۳٫۳ ولت کمتر است. گرما = ۱٫۷ × ۰٫۵ آمپر = ۰٫۸۵ وات، و مقاومت حرارتی SOT-223 در همین دیتاشیت ۹۰ درجه بر وات است (بسته به مس برد ۴۶ تا بیش از ۹۰). پس زیر زبانه مس بزرگی بگذارید. اعداد دیتاشیت با خازن خروجی تانتالیوم ۲۲ میکروفاراد آمده است، مثل تانتالیوم 22uF 10V. پایه‌ها در پین‌اوت رگولاتورها آمده است.

نصب ESP32 در Arduino IDE

  1. در Arduino IDE، از بخش Preferences، آدرس نسخه‌ی پایدار هسته‌ی ESP32 را که در مستندات رسمی Espressif آمده است، در کادر Additional boards manager URLs بگذارید: https://espressif.github.io/arduino-esp32/package_esp32_index.json
  2. در Boards Manager، عبارت esp32 را جستجو کنید و بسته‌ی «esp32 by Espressif Systems» را نصب کنید.
  3. از منوی Tools و بخش Board، گزینه‌ی ESP32 Dev Module را انتخاب کنید و پورت برد را برگزینید.
  4. اگر پورت دیده نشد، اول کابل را عوض کنید. بعضی کابل‌ها فقط برای شارژ ساخته شده‌اند و سیم داده ندارند. بعد درایور مبدل USB برد را بررسی کنید.

برنامه‌ی کامل: وب‌سرور ESP32 برای کنترل رله

این برنامه فقط از دو کتابخانه‌ی WiFi.h و WebServer.h استفاده می‌کند که همراه هسته‌ی ESP32 نصب می‌شوند. نام و رمز وای‌فای را در دو خط اول عوض کنید:

#include <WiFi.h>
#include <WebServer.h>

const char* WIFI_SSID = "YOUR_WIFI_NAME";      // نام شبکه‌ی وای‌فای ۲٫۴ گیگاهرتز
const char* WIFI_PASS = "YOUR_WIFI_PASSWORD";  // رمز وای‌فای

const int RELAY_PIN = 26;          // GPIO26: نه Strapping است، نه فقط‌ورودی
const uint8_t RELAY_ON  = HIGH;    // در مدار BC547 این مقاله، HIGH یعنی رله وصل
const uint8_t RELAY_OFF = LOW;

WebServer server(80);
bool relayOn = false;

void setRelay(bool on) {
  relayOn = on;
  digitalWrite(RELAY_PIN, on ? RELAY_ON : RELAY_OFF);
}

String page() {
  String s = "<!DOCTYPE html><html><head><meta charset='utf-8'>";
  s += "<meta name='viewport' content='width=device-width, initial-scale=1'>";
  s += "<title>ESP32 Relay</title></head><body>";
  s += "<h1>Relay: ";
  s += relayOn ? "ON" : "OFF";
  s += "</h1>";
  s += "<form method='post' action='/on'><button>ON</button></form>";
  s += "<form method='post' action='/off'><button>OFF</button></form>";
  s += "</body></html>";
  return s;
}

void handleRoot() {
  server.send(200, "text/html", page());
}

void handleOn() {
  setRelay(true);
  server.sendHeader("Location", "/");
  server.send(303);                // برگشت به صفحه‌ی اصلی
}

void handleOff() {
  setRelay(false);
  server.sendHeader("Location", "/");
  server.send(303);
}

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  setRelay(false);                 // رله در شروع خاموش
  Serial.begin(115200);

  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Open http://");
  Serial.println(WiFi.localIP());  // این آدرس را در مرورگر گوشی باز کنید

  server.on("/", HTTP_GET, handleRoot);
  server.on("/on", HTTP_POST, handleOn);
  server.on("/off", HTTP_POST, handleOff);
  server.begin();
}

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

چند نکته درباره‌ی برنامه:

  • رله در شروع خاموش است. setRelay(false) قبل از اتصال به وای‌فای اجرا می‌شود تا رله هنگام روشن شدن برد بی‌دلیل وصل نشود.
  • دکمه‌ها درخواست POST می‌فرستند. این کار جلوی روشن شدن رله با باز کردن تصادفی یک لینک را می‌گیرد. بعد از هر فرمان، برنامه مرورگر را به صفحه‌ی اصلی برمی‌گرداند (کد 303).
  • ماژول رله‌ی آماده: بعضی ماژول‌های رله با LOW فعال می‌شوند. اگر از چنین ماژولی استفاده می‌کنید، جای HIGH و LOW را در دو ثابت RELAY_ON و RELAY_OFF عوض کنید.

اجرا و باز کردن صفحه در گوشی

صفحه وب کنترل رله ESP32 در مرورگر گوشی با دکمه‌های ON و OFF و آدرس IP در Serial Monitor
  1. برنامه را بارگذاری کنید و Serial Monitor را با سرعت ۱۱۵۲۰۰ باز کنید.
  2. بعد از چند نقطه‌ی «Connecting»، خطی مثل Open http://192.168.1.50 می‌بینید. عدد آدرس در شبکه‌ی شما فرق می‌کند.
  3. گوشی را به همان وای‌فای وصل کنید و همین آدرس را در مرورگر باز کنید. با دکمه‌های ON و OFF، رله باید کلیک کند.

نکته‌ی باند وای‌فای: طبق دیتاشیت Espressif، وای‌فای ESP32 از استاندارد 802.11 b/g/n پشتیبانی می‌کند و فرکانس مرکزی کانال‌هایش بین ۲۴۱۲ تا ۲۴۸۴ مگاهرتز است. یعنی ESP32 فقط به شبکه‌ی ۲٫۴ گیگاهرتز وصل می‌شود. اگر مودم شما دوبانده است، نام شبکه‌ی ۲٫۴ گیگاهرتز را در برنامه بنویسید.

آدرس ثابت: مودم ممکن است بعد از خاموش و روشن شدن، آدرس دیگری به ESP32 بدهد. اگر صفحه باز نشد، آدرس جدید را از Serial Monitor بخوانید یا در تنظیمات مودم برای این برد یک آدرس رزرو کنید.

بدون مودم: ESP32 خودش شبکه بسازد

اگر مودم در دسترس نیست، ESP32 می‌تواند خودش نقطه‌ی دسترسی (Access Point) بسازد. در برنامه، همه‌ی خط‌ها از WiFi.mode تا Serial.println(WiFi.localIP()) را با این سه خط عوض کنید:

WiFi.softAP("ESP32-Relay", "CHANGE_THIS_PASSWORD");  // نام و رمز شبکه‌ی ESP32
Serial.print("Open http://");
Serial.println(WiFi.softAPIP());

حالا گوشی را به شبکه‌ی ESP32-Relay وصل کنید و آدرسی را که در Serial Monitor چاپ می‌شود، در مرورگر باز کنید. در مثال رسمی Arduino-ESP32 برای این حالت، آدرس 192.168.4.1 است. طبق مستندات رسمی، این حالت به‌طور پیش‌فرض حداکثر ۴ اتصال هم‌زمان می‌پذیرد. رمز نمونه را حتماً به یک رمز طولانی و شخصی تغییر دهید.

امنیت شبکه: این برد را روی اینترنت نگذارید

این وب‌سرور ساده رمز ورود ندارد. هر کسی که به همان شبکه وصل باشد، می‌تواند رله را قطع و وصل کند. برای پروژه‌ی آموزشی در شبکه‌ی خانه این قابل قبول است، ولی برای کنترل از بیرون خانه، پورت مودم را به ESP32 باز نکنید (Port Forwarding). کنترل از راه اینترنت به احراز هویت و ارتباط رمزنگاری‌شده نیاز دارد و موضوع یک آموزش جداگانه است. برای بارهای مهم مثل بخاری یا پمپ، یک کلید دستی یا قطع‌کن مستقل هم بگذارید تا اگر برد هنگ کرد، بار قابل خاموش کردن باشد.

اگر می‌خواهید بار ۲۲۰ ولت را کنترل کنید

کنترل لامپ یا پمپ ۲۲۰ ولتی با رله ممکن است، ولی خطر برق‌گرفتگی و آتش‌سوزی دارد. این نکات را رعایت کنید:

  • رله‌ی مناسب: RA5W-K رله‌ی سیگنال است و صفحه‌ی کالا ولتاژ مجاز کنتاکتش را نمی‌گوید. پس برای برق شهر استفاده نشود. در صفحه‌ی کالای T78-5VDC هم فقط عدد ۱۲۰ ولت AC آمده است و عددی برای ۲۲۰ ولت ندارد. برای SRD-12VDC-SL-C، دیتاشیت Songle بار مقاومتی ۷ آمپر در ۲۴۰ ولت AC و بار سلفی فقط ۳ آمپر را می‌دهد. یعنی برای موتور و پمپ حاشیه‌ی زیادی بگذارید. رله‌های دیگر در دسته‌ی رله هستند.
  • جعبه‌ی عایق: برد و سیم‌های ۲۲۰ ولت را داخل یک جعبه‌ی پلاستیکی بسته بگذارید و مسیرهای برق شهر را از بخش ESP32 دور نگه دارید. جعبه‌ها در دسته‌ی جعبه، قاب و کیس هستند.
  • فیوز: روی سیم فاز بار یک فیوز متناسب با جریان بار بگذارید. انتخابش در راهنمای انواع فیوز آمده است.
  • قطع برق: پیش از هر تغییری در سیم‌کشی، برق را کامل قطع کنید. اگر کار با برق شهر را بلد نیستید، سیم‌کشی ۲۲۰ ولت را به برق‌کار بسپارید.
  • بارهای پرتکرار: اگر بار باید خیلی زیاد قطع و وصل شود، رله‌ی حالت جامد (SSR) مناسب‌تر است. انتخابش در راهنمای انتخاب SSR آمده است.

کارکرد رله، پایه‌های COM، NO و NC و انواع رله را در رله چیست توضیح داده‌ایم.

خطاهای رایج و راه‌حل

نشانهعلت محتملراه‌حل
Serial Monitor فقط نقطه چاپ می‌کندنام یا رمز وای‌فای اشتباه است یا شبکه ۵ گیگاهرتز استنام و رمز را دوباره بنویسید؛ شبکه‌ی ۲٫۴ گیگاهرتز
صفحه در گوشی باز نمی‌شودگوشی روی شبکه‌ی دیگر یا اینترنت همراه است، یا آدرس عوض شدهگوشی روی همان وای‌فای؛ آدرس را دوباره از Serial Monitor بخوانید
برد هنگام اتصال یا با کلیک رله ریست می‌شودمنبع ضعیف یا کابل نامرغوبمنبعی با دست‌کم ۰٫۵ آمپر برای ESP32، کابل بهتر، تغذیه‌ی جدا برای رله با زمین مشترک
صفحه کار می‌کند ولی رله کلیک نمی‌کندبوبین از ۳٫۳ ولت تغذیه شده، مقاومت بیس بزرگ است یا پایه‌ی اشتباهبوبین از ۵ یا ۱۲ ولت، مقاومت ۱k، شماره‌ی GPIO را با برد چک کنید
رله با روشن شدن برد وصل می‌شودماژول رله‌ی Active-LOW یا نبود مقاومت ۱۰k بین بیس و زمینجابه‌جایی RELAY_ON و RELAY_OFF؛ مقاومت ۱۰k
برد بعد از بستن مدار بوت نمی‌شودرله به پایه‌ی Strapping وصل استانتقال به GPIO26، GPIO25 یا GPIO27
ترانزیستور داغ می‌شود یا می‌سوزددیود هرزگرد نیست یا جریان بوبین بیش از ۱۰۰ میلی‌آمپر استدیود موازی و برعکس؛ برای رله‌ی پرمصرف ULN2003

برای اینکه بفهمید مشکل از تغذیه است یا از مدار، ولتاژ دو سر بوبین و ولتاژ پایه‌ی 5V برد را هنگام کلیک رله با مولتی‌متر اندازه بگیرید. روش کار در آموزش کار با مولتی‌متر آمده است.

سؤالات متداول

آیا برای کنترل رله با ESP32 اینترنت لازم است؟

نه. گوشی و ESP32 فقط باید در یک شبکه‌ی وای‌فای باشند. ESP32 یک وب‌سرور محلی اجرا می‌کند و صفحه‌ی کنترل با آدرس IP آن در مرورگر باز می‌شود. اگر مودم ندارید، ESP32 می‌تواند با WiFi.softAP خودش شبکه بسازد.

کدام پایه‌ی ESP32 برای رله مناسب است؟

یک پایه‌ی ورودی/خروجی معمولی مثل GPIO25، GPIO26 یا GPIO27. طبق دیتاشیت Espressif، GPIO34 تا GPIO39 فقط ورودی‌اند، GPIO6 تا GPIO11 به فلش وصل‌اند و GPIO0، GPIO2، GPIO5، GPIO12 و GPIO15 پایه‌ی Strapping هستند و سطحشان هنگام روشن شدن روی بوت اثر دارد.

چرا ESP32 به وای‌فای مودم وصل نمی‌شود؟

رایج‌ترین علت‌ها نام یا رمز اشتباه و شبکه‌ی ۵ گیگاهرتز است. طبق دیتاشیت Espressif، فرکانس کانال‌های وای‌فای ESP32 بین ۲۴۱۲ تا ۲۴۸۴ مگاهرتز است، پس فقط به شبکه‌ی ۲٫۴ گیگاهرتز وصل می‌شود. منبع تغذیه‌ی ضعیف هم می‌تواند هنگام اتصال برد را ریست کند.

آیا BC547 برای رله با ESP32 کافی است؟

برای رله‌ای با بوبین حدود ۳۰ میلی‌آمپر، مثل SRD-12VDC-SL-C یا RA5W-K، بله: با مقاومت بیس ۱ کیلواهم، جریان بیس حتی با حداقل ۲٫۶۴ ولت خروجی ESP32 حدود ۱٫۹ میلی‌آمپر است. رله‌ای که بیش از ۱۰۰ میلی‌آمپر بکشد، مثل T78-5VDC، از حد BC547 بیشتر است و ULN2003 یا ماسفت لاجیک‌لول لازم دارد.

آیا می‌توان با این پروژه لامپ ۲۲۰ ولت را کنترل کرد؟

بله، به شرطی که کنتاکت رله برای برق شهر و نوع بار تعریف شده باشد، مدار در جعبه‌ی عایق و با فیوز بسته شود و پیش از هر تغییر برق قطع شود. مثلاً دیتاشیت Songle برای SRD-12VDC-SL-C بار مقاومتی ۷ آمپر در ۲۴۰ ولت AC و بار سلفی ۳ آمپر را می‌دهد. اگر کار با برق شهر را بلد نیستید، این بخش را به برق‌کار بسپارید.

جمع‌بندی

برای اولین پروژه‌ی وای‌فای با ESP32، یک وب‌سرور ساده با دو دکمه کافی است: ESP32 به شبکه‌ی ۲٫۴ گیگاهرتز وصل می‌شود، آدرسش را در Serial Monitor چاپ می‌کند و با هر گوشی‌ای در همان شبکه کنترل می‌شود. رله را از پایه‌ی معمولی مثل GPIO26 با BC547، مقاومت بیس ۱ کیلواهم، مقاومت ۱۰ کیلواهم بین بیس و زمین و دیود هرزگرد برانید و رله‌ای با بوبین حدود ۳۰ میلی‌آمپر بگیرید. منبع تغذیه را جدی بگیرید و آزمایش را با بار کم‌ولتاژ شروع کنید. برای ۲۲۰ ولت هم جعبه‌ی عایق، فیوز و رله‌ای با کنتاکت مناسب برق شهر لازم است. برد و قطعات دیگر در دسته‌ی ماژول بلوتوث و وای‌فای هستند.

ایکانو در اصفهان امکان تحویل حضوری سفارش را هم دارد. اگر در اصفهان هستید، می‌توانید سفارش خود را حضوری تحویل بگیرید.

اشتراک‌گذاری:تلگرامواتساپXلینکدین

محصولات مرتبط با این مقاله

مقاله‌های مرتبط

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