📶 برد ESP32 (ESP32 DevKit)

ESP32 چیست؟ بردی ارزان با وای‌فای و بلوتوث داخلی برای پروژه‌های اینترنت اشیاء. پایه‌ها، منطق ۳٫۳ ولت، ADC دوازده‌بیتی، ledcWrite، اتصال به وای‌فای و فرق با آردوینو Uno.

ESP32
برد ESP32 (ESP32 DevKit)

ESP32 چیست؟

ESP32 یک برد کوچک و ارزان است که وای‌فای و بلوتوث داخلی دارد. با همان زبان و همان برنامه‌ی Arduino IDE برنامه‌نویسی می‌شود که آردوینو Uno، ولی پردازنده‌اش ده‌ها برابر سریع‌تر و حافظه‌اش خیلی بیشتر است. برای همین برای پروژه‌های اینترنت اشیاء انتخاب اول است: روشن کردن چراغ از گوشی، فرستادن دمای اتاق به اینترنت، یا یک ایستگاه هواشناسی.

مشخصهمقدار
پردازندهدو هسته‌ای ۲۴۰ مگاهرتز (Uno: ۱۶ مگاهرتز)
حافظه۵۲۰ کیلوبایت رم و ۴ مگابایت فلش
ارتباط بی‌سیموای‌فای و بلوتوث
ولتاژ منطق۳٫۳ ولت (Uno: ۵ ولت)
آنالوگADC دوازده‌بیتی: ۰ تا ۴۰۹۵ (Uno: ۰ تا ۱۰۲۳)
LED داخلیپایه‌ی GPIO2

سه فرق مهم با آردوینو Uno

  1. ۳٫۳ ولت: خروجی HIGH حدود ۳٫۳ ولت است، نه ۵. هیچ‌وقت ۵ ولت را مستقیم به پایه‌های ESP32 نده؛ ممکن است بسوزد.
  2. شماره‌ی پایه یعنی شماره‌ی GPIO: وقتی روی برد نوشته D4، در برنامه همان 4 را می‌نویسی. پایه‌های ۳۴ تا ۳۹ فقط ورودی‌اند.
  3. PWM با ledc: در نسخه‌های قدیمی هسته‌ی ESP32، به‌جای analogWrite از ledcSetup، ledcAttachPin و ledcWrite استفاده می‌شود.

چراغ نفس‌کش با ledcWrite

const int LED = 2;   // the built-in LED

void setup() {
  ledcAttach(LED, 5000, 8);      // pin, frequency, 8-bit resolution
}

void loop() {
  for (int d = 0; d <= 255; d++) { ledcWrite(LED, d); delay(4); }
  for (int d = 255; d >= 0; d--) { ledcWrite(LED, d); delay(4); }
}

اتصال به وای‌فای

#include <WiFi.h>

const char* ssid = "MyHome";
const char* password = "12345678";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("IP: ");
  Serial.println(WiFi.localIP());
}

void loop() {}

در شبیه‌ساز

در مود آردوینوی شبیه ساز مدار، «ESP32 DevKit» را از بخش Microcontrollers بیاور. پایه‌ها ۳٫۳ ولتی‌اند، analogRead عدد ۰ تا ۴۰۹۵ می‌دهد و ledcWrite و Serial.printf کار می‌کنند. وای‌فای مجازی است: WiFi.begin بعد از کمتر از یک ثانیه «وصل» می‌شود و یک آدرس IP نمایشی می‌دهد، ولی به اینترنت واقعی وصل نمی‌شود. با کتابخانه‌ی WebServer صفحه‌ی وبِ برد در تب «مرورگر» باز می‌شود (آموزش وب‌سرور) و با PubSubClient برد به یک بروکر MQTT داخلی وصل می‌شود که داشبوردش در تب «اینترنت اشیاء» است (آموزش MQTT).

⚠️ شبیه‌ساز ESP32 «تقریبی» است: کدت را به جاوااسکریپت ترجمه و اجرا می‌کند، نه اینکه تراشه را واقعاً شبیه‌سازی کند. بیشتر برنامه‌های آموزشی کار می‌کنند، وب‌سرور (WebServer، WiFiServer و ESPAsyncWebServer)، WebSocket، MQTT، فایل در حافظه‌ی فلش (SPIFFS و LittleFS)، EventSource و ArduinoJson کار می‌کنند؛ بلوتوث و آپلود فایل هنوز نه.

وب‌سرور سریع و WebSocket

کتابخانه‌ی ESPAsyncWebServer خودش به درخواست‌ها جواب می‌دهد و لازم نیست در loop() مدام handleClient() صدا بزنی. با AsyncWebSocket هم صفحه و برد یک «خط تلفن» باز نگه می‌دارند: دکمه‌ی روی مدار را بزنی، صفحه فوراً عوض می‌شود، بدون رفرش. دو پروژه‌ی آماده: وب‌سرور سریع با ESPAsyncWebServer و LED زنده با WebSocket.

اشتباه‌های رایج

ESP32 در شبیه‌ساز 📶

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

پروژه‌هایی که از این قطعه استفاده می‌کنند

🌐

روشن کردن LED از صفحه‌ی وب (ESP32)

📡

نمایش زنده‌ی سنسور در صفحه‌ی وب (ESP32)

📶

وای‌فای و چراغ نفس‌کش (ESP32)

📡

اینترنت اشیاء با MQTT (ESP32)

🌐

وب‌سرور ESP32 به روش WiFiServer

⚡

وب‌سرور سریع ESP32 با ESPAsyncWebServer

یاد بگیر، امتحان کن، بعد بخر

قطعات مرتبط

💡

LED (دیود نورانی)

🟤

مقاومت (Resistor)

🔘

دکمه فشاری (Push Button)

بیشتر بخوان در ووکوی فارسی