📶 برد ESP32 (ESP32 DevKit)
ESP32 چیست؟ بردی ارزان با وایفای و بلوتوث داخلی برای پروژههای اینترنت اشیاء. پایهها، منطق ۳٫۳ ولت، ADC دوازدهبیتی، ledcWrite، اتصال به وایفای و فرق با آردوینو Uno.
ESP32 چیست؟
ESP32 یک برد کوچک و ارزان است که وایفای و بلوتوث داخلی دارد. با همان زبان و همان برنامهی Arduino IDE برنامهنویسی میشود که آردوینو Uno، ولی پردازندهاش دهها برابر سریعتر و حافظهاش خیلی بیشتر است. برای همین برای پروژههای اینترنت اشیاء انتخاب اول است: روشن کردن چراغ از گوشی، فرستادن دمای اتاق به اینترنت، یا یک ایستگاه هواشناسی.
| مشخصه | مقدار |
|---|---|
| پردازنده | دو هستهای ۲۴۰ مگاهرتز (Uno: ۱۶ مگاهرتز) |
| حافظه | ۵۲۰ کیلوبایت رم و ۴ مگابایت فلش |
| ارتباط بیسیم | وایفای و بلوتوث |
| ولتاژ منطق | ۳٫۳ ولت (Uno: ۵ ولت) |
| آنالوگ | ADC دوازدهبیتی: ۰ تا ۴۰۹۵ (Uno: ۰ تا ۱۰۲۳) |
| LED داخلی | پایهی GPIO2 |
سه فرق مهم با آردوینو Uno
- ۳٫۳ ولت: خروجی HIGH حدود ۳٫۳ ولت است، نه ۵. هیچوقت ۵ ولت را مستقیم به پایههای ESP32 نده؛ ممکن است بسوزد.
- شمارهی پایه یعنی شمارهی GPIO: وقتی روی برد نوشته D4، در برنامه همان
4را مینویسی. پایههای ۳۴ تا ۳۹ فقط ورودیاند. - 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).
WebServer، WiFiServer و ESPAsyncWebServer)، WebSocket، MQTT، فایل در حافظهی فلش (SPIFFS و LittleFS)، EventSource و ArduinoJson کار میکنند؛ بلوتوث و آپلود فایل هنوز نه.وبسرور سریع و WebSocket
کتابخانهی ESPAsyncWebServer خودش به درخواستها جواب میدهد و لازم نیست در loop() مدام handleClient() صدا بزنی. با AsyncWebSocket هم صفحه و برد یک «خط تلفن» باز نگه میدارند: دکمهی روی مدار را بزنی، صفحه فوراً عوض میشود، بدون رفرش. دو پروژهی آماده: وبسرور سریع با ESPAsyncWebServer و LED زنده با WebSocket.
اشتباههای رایج
- آپلود نمیشود: در بعضی بردها باید هنگام آپلود دکمهی BOOT را نگه داری.
- analogRead روی پایههای ADC2 با وایفای: وقتی وایفای روشن است، فقط پایههای ۳۲ تا ۳۹ (ADC1) درست میخوانند.
- ماژول ۵ ولتی: سنسوری که خروجی ۵ ولت دارد را با تقسیم ولتاژ به ۳٫۳ ولت برسان.
🛒 قبل از خرید، لیست خرید قطعات الکترونیک را ببین و قطعه را اول در شبیه ساز مدار امتحان کن.
پروژههایی که از این قطعه استفاده میکنند
روشن کردن LED از صفحهی وب (ESP32)
نمایش زندهی سنسور در صفحهی وب (ESP32)
وایفای و چراغ نفسکش (ESP32)
اینترنت اشیاء با MQTT (ESP32)
وبسرور ESP32 به روش WiFiServer
وبسرور سریع ESP32 با ESPAsyncWebServer
یاد بگیر، امتحان کن، بعد بخر
- ⚡ برد ESP32 (ESP32 DevKit) را در شبیه ساز مدار آنلاین رایگان امتحان کن
- 🛒 راهنمای خرید برد ESP32 (ESP32 DevKit) و قطعات الکترونیک