لوگوی LAFVINESP32 Basic Starter
کیت

لیست بسته بندی

کیت اولیه LAFVIN ESP32 - PackingList

ESP32 مقدمه

آیا با ESP32 جدید هستید؟ از اینجا شروع کنید! ESP32 مجموعه ای از میکروکنترلرهای کم هزینه و کم مصرف سیستم روی تراشه (SoC) است که توسط Espressif توسعه یافته است که شامل قابلیت های بی سیم Wi-Fi و بلوتوث و پردازنده دو هسته ای است. اگر با ESP8266 آشنایی دارید، ESP32 جانشین آن است که دارای بسیاری از ویژگی های جدید است.LAFVIN ESP32 Basic Starter Kit - ESP32 مقدمهمشخصات ESP32
اگر می خواهید کمی فنی تر و خاص تر شوید، می توانید به مشخصات دقیق زیر ESP32 نگاهی بیندازید (منبع: http://esp32.net/) - برای جزئیات بیشتر، دیتاشیت را چک کنید):

  • اتصال بی سیم WiFi: نرخ داده 150.0 مگابیت بر ثانیه با HT40
  • بلوتوث: BLE (بلوتوث کم انرژی) و بلوتوث کلاسیک
  • پردازنده: ریزپردازنده 32 بیتی LX6 دو هسته ای Tensilica Xtensa با فرکانس 160 یا 240 مگاهرتز
  • حافظه:
  • رام: 448 کیلوبایت (برای بوت کردن و توابع اصلی)
  • SRAM: 520 KB (برای داده ها و دستورالعمل ها)
  • RTC fas SRAM: 8 کیلوبایت (برای ذخیره سازی داده ها و CPU اصلی در هنگام بوت RTC از حالت خواب عمیق)
  • SRAM کند RTC: 8 کیلوبایت (برای دسترسی مشترک پردازنده در حالت خواب عمیق) eFuse: 1 کیلوبیت (که 256 بیت برای سیستم استفاده می شود (آدرس MAC و پیکربندی تراشه) و 768 بیت باقی مانده برای برنامه های مشتری، از جمله رمزگذاری Flash و Chip-ID رزرو شده است.

فلاش جاسازی شده: فلاش به صورت داخلی از طریق IO16، IO17، SD_CMD، SD_CLK، SD_DATA_0 و SD_DATA_1 در ESP32-D2WD و ESP32-PICO-D4 متصل می شود.

  • 0 مگابایت (تراشه های ESP32-D0WDQ6، ESP32-D0WD و ESP32-S0WD)
  • 2 مگابایت (تراشه ESP32-D2WD)
  • 4 مگابایت (ماژول ESP32-PICO-D4 SiP)

کم مصرف: تضمین می‌کند که همچنان می‌توانید از تبدیل‌های ADC برای مثال استفاده کنیدampدر هنگام خواب عمیق
ورودی/خروجی محیطی:

  • رابط محیطی با DMA که شامل لمس خازنی است
  • ADC (مبدل آنالوگ به دیجیتال)
  • DAC (تبدیل دیجیتال به آنالوگ)
  • I²C (مدار یکپارچه)
  • UART (گیرنده/فرستنده ناهمزمان جهانی)
  • SPI (رابط سریالی جانبی)
  • I²S (صدای یکپارچه بین تراشه)
  • RMII (رابط مستقل از رسانه کاهش یافته)
  • PWM (مدولاسیون عرض پالس)

امنیت: شتاب دهنده های سخت افزاری برای AES و SSL/TLS

تابلوهای توسعه ESP32

ESP32 به تراشه ESP32 لخت اشاره دارد. با این حال، اصطلاح "ESP32" همچنین برای اشاره به بردهای توسعه ESP32 استفاده می شود. استفاده از تراشه های برهنه ESP32 آسان یا عملی نیست، به خصوص هنگام یادگیری، آزمایش و نمونه سازی. بیشتر اوقات، شما می خواهید از یک برد توسعه ESP32 استفاده کنید.
ما از برد ESP32 DEVKIT V1 به عنوان مرجع استفاده خواهیم کرد. تصویر زیر برد ESP32 DEVKIT V1 را نشان می دهد، نسخه با 30 پین GPIO.LAFVIN ESP32 Basic Starter Kit - ESP32 Development Boardsمشخصات – ESP32 DEVKIT V1
جدول زیر خلاصه ای از ویژگی ها و مشخصات برد ESP32 DEVKIT V1 DOIT را نشان می دهد:

تعداد هسته ها 2 (دو هسته ای)
وای فای 2.4 گیگاهرتز تا 150 مگابیت بر ثانیه
بلوتوث BLE (بلوتوث کم مصرف) و بلوتوث قدیمی
معماری 32 بیت
فرکانس ساعت تا 240 مگاهرتز
RAM 512 کیلوبایت
پین ها 30 (بسته به مدل)
لوازم جانبی لمس خازنی، ADC (مبدل آنالوگ به دیجیتال)، DAC (مبدل دیجیتال به آنالوگ)، 12C (مدار یکپارچه)، UART (گیرنده/فرستنده ناهمزمان جهانی)، CAN 2.0 (شبکه منطقه کنترل)، SPI (رابط داخلی محیطی سریال)، 12S (Inter-Integrate)
صدا)، RMII (رابط مستقل از رسانه کاهش یافته)، PWM (مدولاسیون عرض پالس)، و موارد دیگر.
دکمه های داخلی دکمه های RESET و BOOT
LED های داخلی LED آبی داخلی متصل به GPIO2؛ ال ای دی قرمز داخلی که نشان می دهد برد در حال روشن شدن است
USB به UART
پل
CP2102

LAFVIN ESP32 Basic Starter Kit - ESP32 DEVKITاین دارای یک رابط microUSB است که می توانید از آن برای اتصال برد به رایانه خود برای آپلود کد یا اعمال برق استفاده کنید.
از تراشه CP2102 (USB به UART) برای برقراری ارتباط با رایانه شما از طریق پورت COM با استفاده از رابط سریال استفاده می کند. تراشه محبوب دیگر CH340 است. بررسی کنید مبدل تراشه USB به UART روی برد شما چیست زیرا باید درایورهای مورد نیاز را نصب کنید تا رایانه شما بتواند با برد ارتباط برقرار کند (اطلاعات بیشتر در مورد این موضوع در ادامه این راهنما).
این برد همچنین دارای یک دکمه RESET (ممکن است با برچسب EN باشد) برای راه اندازی مجدد برد و یک دکمه BOOT برای قرار دادن برد در حالت چشمک زن (برای دریافت کد موجود است). توجه داشته باشید که ممکن است برخی از بردها دکمه BOOT نداشته باشند.
همچنین دارای یک LED آبی داخلی است که به صورت داخلی به GPIO 2 متصل است. این LED برای اشکال زدایی مفید است تا نوعی خروجی فیزیکی بصری ارائه دهد. همچنین یک LED قرمز رنگ وجود دارد که هنگام تامین برق برد روشن می شود.کیت پایه LAFVIN ESP32 Basic Starter -boardپین اوت ESP32
لوازم جانبی ESP32 عبارتند از:

  • 18 کانال مبدل آنالوگ به دیجیتال (ADC).
  • 3 رابط SPI
  • 3 رابط UART
  • 2 رابط I2C
  • 16 کانال خروجی PWM
  • 2 مبدل دیجیتال به آنالوگ (DAC)
  • 2 رابط I2S
  • 10 GPIO حسگر خازنی

ویژگی های ADC (مبدل آنالوگ به دیجیتال) و DAC (مبدل دیجیتال به آنالوگ) به پین ​​های استاتیک خاصی اختصاص داده شده است. با این حال، شما می توانید تصمیم بگیرید که کدام پین ها UART، I2C، SPI، PWM و غیره باشند – فقط باید آنها را در کد اختصاص دهید. این امر به دلیل ویژگی مالتی پلکسی تراشه ESP32 امکان پذیر است.
اگرچه می‌توانید ویژگی‌های پین‌ها را روی نرم‌افزار تعریف کنید، اما طبق شکل زیر، پین‌هایی به‌طور پیش‌فرض اختصاص داده شده‌اند.LAFVIN ESP32 Basic Starter Kit - ESP32 Pinoutعلاوه بر این، پین هایی با ویژگی های خاص وجود دارد که آنها را برای یک پروژه خاص مناسب یا غیر مناسب می کند. جدول زیر نشان می‌دهد که از کدام پین‌ها به عنوان ورودی، خروجی بهتر است استفاده کنید و کدام یک باید محتاط باشید.
پین هایی که با رنگ سبز مشخص شده اند برای استفاده مناسب هستند. مواردی که با رنگ زرد مشخص شده اند برای استفاده مناسب هستند، اما باید توجه داشته باشید زیرا ممکن است رفتار غیرمنتظره ای عمدتا در هنگام بوت داشته باشند. پین هایی که با رنگ قرمز مشخص شده اند برای استفاده به عنوان ورودی یا خروجی توصیه نمی شوند.

GP IO ورودی خروجی یادداشت ها
0 بالا کشیده OK خروجی سیگنال PWM در هنگام بوت، برای وارد شدن به حالت چشمک زن باید LOW باشد
1 پین TX OK خروجی اشکال زدایی در هنگام بوت
2 OK OK متصل به LED روی برد، باید شناور یا LOW باقی بماند تا وارد حالت چشمک زن شود
3 OK پین RX بالا در بوت
4 OK OK
5 OK OK سیگنال PWM را در هنگام بوت، پین تسمه ای خروجی می دهد
12 OK OK چکمه شکست می خورد اگر بالا کشیده شود، پین بند
13 OK OK
14 OK OK سیگنال PWM را در هنگام بوت خروجی می دهد
15 OK OK سیگنال PWM را در هنگام بوت، پین تسمه ای خروجی می دهد
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK فقط ورودی
35 OK فقط ورودی
36 OK فقط ورودی
39 OK فقط ورودی

برای تجزیه و تحلیل دقیق تر و عمیق تر GPIO های ESP32 و عملکردهای آن به خواندن ادامه دهید.
فقط پین ها را وارد کنید
GPIO های 34 تا 39 GPI هستند - فقط پین های ورودی. این پین ها دارای مقاومت کششی یا کششی داخلی نیستند. آنها را نمی توان به عنوان خروجی استفاده کرد، بنابراین از این پین ها فقط به عنوان ورودی استفاده کنید:

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

فلاش SPI روی ESP-WROOM-32 یکپارچه شده است
GPIO 6 تا GPIO 11 در برخی از بردهای توسعه ESP32 قرار دارند. با این حال، این پین ها به فلاش SPI یکپارچه در تراشه ESP-WROOM-32 متصل هستند و برای استفاده های دیگر توصیه نمی شوند. بنابراین، از این پین ها در پروژه های خود استفاده نکنید:

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

GPIO های لمسی خازنی
ESP32 دارای 10 سنسور لمسی خازنی داخلی است. اینها می توانند تغییرات را در هر چیزی که دارای بار الکتریکی است، مانند پوست انسان، حس کنند. بنابراین آنها می توانند تغییرات ناشی از لمس کردن GPIO ها را با انگشت تشخیص دهند. این پین ها را می توان به راحتی در لنت های خازنی ادغام کرد و جایگزین دکمه های مکانیکی کرد. از پین های لمسی خازنی نیز می توان برای بیدار کردن ESP32 از خواب عمیق استفاده کرد. این حسگرهای لمسی داخلی به این GPIO متصل هستند:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

مبدل آنالوگ به دیجیتال (ADC)
ESP32 دارای کانال های ورودی ADC 18×12 بیتی است (در حالی که ESP8266 فقط دارای 1×10 بیت ADC است). اینها GPIO هایی هستند که می توانند به عنوان ADC و کانال های مربوطه استفاده شوند:

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO 35)
  • ADC2_CH0 (GPIO 4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO 2)
  • ADC2_CH3 (GPIO 15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO 12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO 27)
  • ADC2_CH8 (GPIO 25)
  • ADC2_CH9 (GPIO 26)

توجه: هنگام استفاده از Wi-Fi نمی توان از پین های ADC2 استفاده کرد. بنابراین، اگر از Wi-Fi استفاده می کنید و در دریافت مقدار از یک GPIO ADC2 مشکل دارید، ممکن است به جای آن از یک ADC1 GPIO استفاده کنید. این باید مشکل شما را حل کند.
کانال های ورودی ADC دارای وضوح 12 بیتی هستند. این بدان معنی است که شما می توانید خوانش های آنالوگ از 0 تا 4095 را دریافت کنید که در آن 0 مربوط به 0 ولت و 4095 تا 3.3 ولت است. همچنین می توانید وضوح کانال های خود را روی کد و محدوده ADC تنظیم کنید.
پین های ADC ESP32 رفتار خطی ندارند. احتمالاً نمی توانید بین 0 و 0.1 ولت یا بین 3.2 و 3.3 ولت تمایز قائل شوید. هنگام استفاده از پین های ADC باید این را در نظر داشته باشید. رفتاری مشابه آنچه در شکل زیر نشان داده شده است، دریافت خواهید کرد.کیت اولیه LAFVIN ESP32 - رفتارمبدل دیجیتال به آنالوگ (DAC)
بر روی ESP2 دو کانال DAC 8 بیتی برای تبدیل سیگنال های دیجیتال به حجم آنالوگ وجود دارد.tage خروجی های سیگنال اینها کانال های DAC هستند:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
پشتیبانی از RTC GPIO در ESP32 وجود دارد. هنگامی که ESP32 در خواب عمیق است، می‌توان از GPIO‌های هدایت‌شده به زیرسیستم کم مصرف RTC استفاده کرد. این GPIO های RTC را می توان برای بیدار کردن ESP32 از خواب عمیق در زمان بسیار کم استفاده کرد
پردازنده کمکی برق (ULP) در حال اجرا است. GPIO های زیر را می توان به عنوان منبع بیدار کردن خارجی استفاده کرد.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

PWM
کنترلر LED PWM ESP32 دارای 16 کانال مستقل است که می توان آنها را برای تولید سیگنال های PWM با ویژگی های مختلف پیکربندی کرد. همه پین ​​هایی که می توانند به عنوان خروجی عمل کنند می توانند به عنوان پین های PWM استفاده شوند (GPIO های 34 تا 39 نمی توانند PWM تولید کنند).
برای تنظیم سیگنال PWM، باید این پارامترها را در کد تعریف کنید:

  • فرکانس سیگنال؛
  • چرخه وظیفه؛
  • کانال PWM;
  • GPIO جایی که می خواهید سیگنال را خروجی کنید.

I2C
ESP32 دارای دو کانال I2C است و هر پین را می توان به عنوان SDA یا SCL تنظیم کرد. هنگام استفاده از ESP32 با Arduino IDE، پین های پیش فرض I2C عبارتند از:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

اگر می‌خواهید هنگام استفاده از کتابخانه سیم از پین‌های دیگر استفاده کنید، فقط باید تماس بگیرید:
Wire.begin (SDA، SCL);
SPI
به طور پیش فرض، نگاشت پین برای SPI به صورت زیر است:

SPI MOSI میسو CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

قطع می کند
همه GPIO ها را می توان به عنوان وقفه پیکربندی کرد.
پین های تسمه ای
تراشه ESP32 دارای پین های تسمه ای زیر است:

  • GPIO 0 (برای ورود به حالت بوت باید LOW باشد)
  • GPIO 2 (باید در هنگام بوت شناور یا LOW باشد)
  • GPIO 4
  • GPIO 5 (باید در هنگام بوت بالا باشد)
  • GPIO 12 (باید در هنگام بوت کم باشد)
  • GPIO 15 (باید در هنگام بوت بالا باشد)

اینها برای قرار دادن ESP32 در حالت بوت لودر یا فلاشینگ استفاده می شوند. در اکثر بردهای توسعه با USB/Serial داخلی، لازم نیست نگران وضعیت این پین ها باشید. برد پین ها را در حالت مناسب برای چشمک زدن یا حالت بوت قرار می دهد. اطلاعات بیشتر در مورد ESP32 Boot Mode Selection را می توانید در اینجا بیابید.
با این حال، اگر دستگاه‌های جانبی به آن پین‌ها وصل شده‌اید، ممکن است در تلاش برای آپلود کد جدید، فلش کردن ESP32 با سیستم‌افزار جدید یا تنظیم مجدد برد مشکل داشته باشید. اگر تعدادی لوازم جانبی به پین‌های تسمه‌بندی وصل شده‌اید و در آپلود کد یا فلش کردن ESP32 با مشکل مواجه می‌شوید، ممکن است به این دلیل باشد که آن لوازم جانبی مانع از ورود ESP32 به حالت مناسب می‌شوند. مستندات Boot Mode Selection را بخوانید تا شما را در مسیر درست راهنمایی کند. پس از بازنشانی، چشمک زدن یا بوت شدن، آن پین ها همانطور که انتظار می رود کار می کنند.
پین های HIGH در Boot
برخی از GPIO ها حالت خود را به HIGH تغییر می دهند یا سیگنال های PWM را هنگام راه اندازی یا تنظیم مجدد خروجی می دهند.
این به این معنی است که اگر خروجی‌های متصل به این GPIO داشته باشید، ممکن است هنگام بازنشانی یا راه‌اندازی ESP32 نتایج غیرمنتظره‌ای دریافت کنید.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 به GPIO 11 (متصل به حافظه فلش SPI یکپارچه ESP32 - استفاده از آن توصیه نمی شود).
  • GPIO 14
  • GPIO 15

فعال کردن (EN)
Enable (EN) پین فعال رگولاتور 3.3 ولت است. بالا کشیده شده است، بنابراین برای غیرفعال کردن رگولاتور 3.3 ولت به زمین متصل شوید. این بدان معنی است که می توانید از این پین متصل به یک دکمه فشاری برای راه اندازی مجدد ESP32 خود استفاده کنیدampله
جریان GPIO کشیده شده است
حداکثر جریان مطلق گرفته شده به ازای هر GPIO مطابق با بخش "شرایط عملیاتی توصیه شده" در برگه داده ESP40 32 میلی آمپر است.
سنسور جلوه هال داخلی ESP32
ESP32 همچنین دارای حسگر داخلی جلوه هال است که تغییرات میدان مغناطیسی محیط اطراف خود را تشخیص می دهد
ESP32 Arduino IDE
یک افزونه برای Arduino IDE وجود دارد که به شما امکان می دهد ESP32 را با استفاده از Arduino IDE و زبان برنامه نویسی آن برنامه ریزی کنید. در این آموزش به شما نحوه نصب برد ESP32 را در Arduino IDE نشان خواهیم داد، چه از ویندوز، مک او اس ایکس یا لینوکس استفاده می کنید.
پیش نیاز: Arduino IDE نصب شده است
قبل از شروع این روش نصب، باید Arduino IDE را روی رایانه خود نصب کرده باشید. دو نسخه از Arduino IDE وجود دارد که می توانید نصب کنید: نسخه 1 و نسخه 2.
با کلیک بر روی لینک زیر می توانید Arduino IDE را دانلود و نصب کنید: arduino.cc/en/Main/Software
کدام نسخه Arduino IDE را پیشنهاد می کنیم؟ در حال حاضر، تعدادی وجود دارد plugins برای ESP32 (مانند SPIFFS FileSystem Uploader Plugin) که هنوز در Arduino 2 پشتیبانی نمی شوند. بنابراین، اگر قصد دارید در آینده از پلاگین SPIFFS استفاده کنید، توصیه می کنیم نسخه قدیمی 1.8.X را نصب کنید. برای پیدا کردن آن کافیست در صفحه نرم افزار آردوینو به پایین اسکرول کنید.
نصب افزونه ESP32 در Arduino IDE
برای نصب برد ESP32 در Arduino IDE خود، دستورالعمل های زیر را دنبال کنید:

  1. در آردوینو IDE خود، به File> ترجیحاتLAFVIN ESP32 Basic Starter Kit - Preferences
  2. موارد زیر را در «مدیر هیئت مدیره اضافی» وارد کنید URLفیلد s:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
سپس روی دکمه "OK" کلیک کنید:LAFVIN ESP32 Basic Starter Kit - دکمه "OK".توجه: اگر از قبل بردهای ESP8266 را دارید URL، می توانید جدا کنید URLs با کاما به صورت زیر است:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
مدیر تابلوها را باز کنید. به Tools > Board > Boards Manager بروید…LAFVIN ESP32 Basic Starter Kit - Espressifجستجو برای ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 Basic Starter Kit - Espressifهمین است. پس از چند ثانیه باید نصب شود.LAFVIN ESP32 Basic Starter Kit - نصب شده است

کد تست را بارگذاری کنید

برد ESP32 را به کامپیوتر خود وصل کنید. با باز بودن IDE آردوینو، مراحل زیر را دنبال کنید:

  1. برد خود را در منوی Tools > Board انتخاب کنید (در مورد من ماژول DEV ESP32 است)LAFVIN ESP32 Basic Starter Kit - Tools Board
  2. پورت را انتخاب کنید (اگر پورت COM را در Arduino IDE خود نمی بینید، باید درایورهای CP210x USB to UART Bridge VCP را نصب کنید):LAFVIN ESP32 Basic Starter Kit - UART Bridge
  3. مثال زیر را باز کنیدampزیر File > مثالamples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 Basic Starter Kit - WiFiScanLAFVIN ESP32 Basic Starter Kit - WiFiScan 1
  4. یک طرح جدید در Arduino IDE شما باز می شود:LAFVIN ESP32 Basic Starter Kit - Arduino IDE
  5. دکمه Upload را در Arduino IDE فشار دهید. چند ثانیه صبر کنید تا کد کامپایل و در برد شما آپلود شود.LAFVIN ESP32 Basic Starter Kit - برد
  6. اگر همه چیز طبق انتظار پیش رفت، باید «آپلود انجام شد» را ببینید. پیامLAFVIN ESP32 Basic Starter Kit - بارگذاری انجام شد
  7. مانیتور سریال Arduino IDE را با نرخ باود 115200 باز کنید:LAFVIN ESP32 Basic Starter Kit - مانیتور
  8. دکمه ESP32 on-board Enable را فشار دهید و باید شبکه های موجود در نزدیکی ESP32 خود را ببینید:LAFVIN ESP32 Basic Starter Kit - دکمه فعال کردن

عیب یابی

اگر سعی کنید یک طرح جدید را در ESP32 خود آپلود کنید و با این پیغام خطا مواجه شدید: "یک خطای مرگبار رخ داد: اتصال به ESP32 انجام نشد: زمان تمام شد... در حال اتصال...". یعنی ESP32 شما در حالت فلش / آپلود نیست.
با انتخاب نام برد مناسب و COM por، مراحل زیر را دنبال کنید:
دکمه "BOOT" را در برد ESP32 خود نگه داریدکیت اولیه LAFVIN ESP32 - "BOOT"

  • برای آپلود طرح خود، دکمه "آپلود" را در Arduino IDE فشار دهید:LAFVIN ESP32 Basic Starter Kit - ICON 6
  • پس از مشاهده "اتصال…" در Arduino IDE خود پیام دهید، انگشت را از دکمه "BOOT" رها کنید:LAFVIN ESP32 Basic Starter Kit - «بارگذاری انجام شد
  • پس از آن، باید پیام "بارگذاری انجام شد" را مشاهده کنید
    همین. ESP32 شما باید طرح جدید در حال اجرا باشد. دکمه "ENABLE" را فشار دهید تا ESP32 مجددا راه اندازی شود و طرح جدید آپلود شده اجرا شود.
    همچنین باید هر بار که می‌خواهید طرح جدیدی را آپلود کنید، دنباله دکمه‌ها را تکرار کنید.

پروژه 1 ESP32 ورودی های خروجی

در این راهنمای شروع، شما یاد خواهید گرفت که چگونه ورودی های دیجیتال را مانند سوئیچ دکمه ای بخوانید و خروجی های دیجیتال را مانند LED با استفاده از ESP32 با Arduino IDE کنترل کنید.
پیش نیازها
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم. بنابراین، قبل از ادامه، مطمئن شوید که افزونه بردهای ESP32 را نصب کرده اید:

  • نصب افزونه ESP32 در Arduino IDE

خروجی های دیجیتال کنترل ESP32
ابتدا باید GPIO را که می خواهید کنترل کنید به عنوان یک OUTPUT تنظیم کنید. از تابع pinMode() به صورت زیر استفاده کنید:
pinMode (GPIO، OUTPUT)؛
برای کنترل یک خروجی دیجیتال فقط باید از تابع digitalWrite() استفاده کنید که به عنوان آرگومان، GPIO (شماره int) که به آن اشاره می کنید و وضعیت، HIGH یا LOW را می پذیرد.
digitalWrite (GPIO، STATE)؛
همه GPIO ها را می توان به عنوان خروجی استفاده کرد به جز GPIO های 6 تا 11 (متصل به فلش SPI یکپارچه) و GPIO های 34، 35، 36 و 39 (فقط GPIO ورودی).
درباره ESP32 GPIO بیشتر بیاموزید: ESP32 GPIO Reference Guide
ESP32 خواندن ورودی های دیجیتال
ابتدا با استفاده از تابع pinMode() به صورت زیر GPIO را که می خواهید بخوانید تنظیم کنید:
pinMode (GPIO، INPUT)؛
برای خواندن یک ورودی دیجیتال، مانند یک دکمه، از تابع digitalRead() استفاده می کنید که GPIO (شماره int) مورد نظر شما را به عنوان آرگومان می پذیرد.
digitalRead (GPIO)؛
همه GPIO های ESP32 را می توان به عنوان ورودی استفاده کرد، به جز GPIO های 6 تا 11 (متصل به فلش SPI یکپارچه).
درباره ESP32 GPIO بیشتر بیاموزید: ESP32 GPIO Reference Guide
پروژه پیشینample
برای اینکه به شما نشان دهیم چگونه از ورودی های دیجیتال و خروجی های دیجیتال استفاده کنید، ما یک پروژه ساده می سازیمampبا یک دکمه فشاری و یک LED. ما وضعیت دکمه فشاری را می خوانیم و LED را مطابق شکل زیر روشن می کنیم.LAFVIN ESP32 Basic Starter Kit - Project Example

قطعات مورد نیاز
در اینجا لیستی از قطعاتی که برای ساخت مدار نیاز دارید آمده است:

  • ESP32 DEVKIT V1
  • LED 5 میلی متر
  • مقاومت 220 اهم
  • دکمه ی فشار
  • مقاومت 10 کیلو اهم
  • تخته نان
  • سیم های جامپر

نمودار شماتیک
قبل از ادامه، باید یک مدار را با یک LED و یک دکمه فشاری جمع کنید.
ما LED را به GPIO 5 و دکمه فشاری را به GPIO وصل می کنیم 4.LAFVIN ESP32 Basic Starter Kit - نمودار شماتیککد
کد Project_1_ESP32_Inputs_Outputs.ino را در آردوینو IDE باز کنیدکیت پایه LAFVIN ESP32 - کدکیت پایه LAFVIN ESP32 - کد 1کد چگونه کار می کند
در دو خط زیر، متغیرهایی را برای اختصاص پین ایجاد می کنید:

LAFVIN ESP32 Basic Starter Kit - Code Worksدکمه به GPIO 4 و LED به GPIO 5 وصل می شود. هنگام استفاده از Arduino IDE با ESP32، 4 مربوط به GPIO 4 و 5 مربوط به GPIO 5 است.
بعد، یک متغیر برای نگه داشتن حالت دکمه ایجاد می کنید. به طور پیش فرض، 0 است (فشر نشده است).
int buttonState = 0;
در setup()، دکمه را به عنوان INPUT و LED را به عنوان OUTPUT مقداردهی می کنید.
برای آن، از تابع pinMode() استفاده می‌کنید که پین ​​مورد نظر را می‌پذیرد و حالت: INPUT یا OUTPUT را می‌پذیرد.
pinMode (buttonPin، INPUT)؛
pinMode (ledPin، OUTPUT)؛
در حلقه () جایی است که وضعیت دکمه را می خوانید و LED را مطابق با آن تنظیم می کنید.
در خط بعدی وضعیت دکمه را می خوانید و آن را در متغیر buttonState ذخیره می کنید.
همانطور که قبلا دیدیم، شما از تابع digitalRead() استفاده می کنید.
buttonState = digitalRead (buttonPin);
دستور if زیر، بالا بودن وضعیت دکمه را بررسی می کند. اگر اینطور باشد، LED را با استفاده از تابع digitalWrite() روشن می کند که ledPin و حالت HIGH را به عنوان آرگومان می پذیرد.
اگر (buttonState == HIGH)LAFVIN ESP32 Basic Starter Kit - Code Works 1اگر وضعیت دکمه HIGH نباشد، LED را خاموش می کنید. فقط LOW را به عنوان آرگومان دوم در تابع digitalWrite() تنظیم کنید.LAFVIN ESP32 Basic Starter Kit - digitalWriteدر حال آپلود کد
قبل از کلیک بر روی دکمه آپلود، به Tools > Board بروید و برد :DOIT ESP32 DEVKIT V1 را انتخاب کنید.
به Tools > Port بروید و پورت COM که ESP32 به آن متصل است را انتخاب کنید. سپس دکمه آپلود را فشار دهید و منتظر پیام "بارگذاری انجام شد".LAFVIN ESP32 Basic Starter Kit - ICON 7توجه: اگر نقاط زیادی (در حال اتصال…__…__) در پنجره اشکال‌زدایی مشاهده کردید و پیام «وصل نشد به ESP32: زمان انتظار برای سرصفحه بسته تمام شد» را مشاهده کردید، به این معنی است که باید دکمه BOOT روی ESP32 را بعد از نقطه‌ها فشار دهید.
شروع به ظاهر شدن کنید. عیب یابی

تظاهرات

پس از آپلود کد، مدار خود را تست کنید. هنگامی که دکمه فشاری را فشار می دهید LED شما باید روشن شود:LAFVIN ESP32 Basic Starter Kit - Demonstrationو وقتی آن را رها کردید خاموش کنید:LAFVIN ESP32 Basic Starter Kit - نوبت

پروژه 2 ورودی های آنالوگ ESP32

این پروژه نحوه خواندن ورودی های آنالوگ با ESP32 را با استفاده از Arduino IDE نشان می دهد.
خواندن آنالوگ برای خواندن مقادیر از مقاومت های متغیر مانند پتانسیومترها یا حسگرهای آنالوگ مفید است.
ورودی های آنالوگ (ADC)
خواندن یک مقدار آنالوگ با ESP32 به این معنی است که می توانید حجم های مختلف را اندازه گیری کنیدtagسطوح e بین 0 ولت و 3.3 ولت.
جلدtage اندازه گیری شده سپس به مقداری بین 0 و 4095 اختصاص داده می شود که در آن 0 ولت مربوط به 0 و 3.3 ولت مربوط به 4095 است.tage بین 0 ولت و 3.3 ولت مقدار متناظر در این بین داده می شود.LAFVIN ESP32 Basic Starter Kit - ورودی های آنالوگADC غیر خطی است
در حالت ایده آل، هنگام استفاده از پین های ESP32 ADC انتظار رفتار خطی را دارید.
با این حال، این اتفاق نمی افتد. چیزی که به دست می آورید رفتاری است که در نمودار زیر نشان داده شده است:کیت پایه LAFVIN ESP32 - غیر خطیاین رفتار به این معنی است که ESP32 شما قادر به تشخیص 3.3 ولت از 3.2 ولت نیست.
مقدار یکسانی را برای هر دو جلد دریافت خواهید کردtages: 4095.
همین اتفاق برای حجم بسیار پایین می افتدtagمقادیر e: برای 0 ولت و 0.1 ولت یک مقدار را دریافت خواهید کرد: 0. هنگام استفاده از پین های ADC ESP32 باید این را در نظر داشته باشید.
تابع analogRead().
خواندن ورودی آنالوگ با ESP32 با استفاده از Arduino IDE به اندازه استفاده از تابع analogRead() ساده است. GPIO را که می خواهید بخوانید به عنوان آرگومان می پذیرد:
analogRead (GPIO)؛
فقط 15 مورد در DEVKIT V1board (نسخه با 30 GPIO) موجود است.
پایه برد ESP32 خود را بگیرید و پین های ADC را پیدا کنید. در شکل زیر با حاشیه قرمز مشخص شده اند.LAFVIN ESP32 Basic Starter Kit - حاشیهاین پایه های ورودی آنالوگ دارای وضوح 12 بیتی هستند. این بدان معناست که وقتی یک ورودی آنالوگ را می خوانید، محدوده آن ممکن است از 0 تا 4095 متغیر باشد.
توجه: هنگام استفاده از Wi-Fi نمی توان از پین های ADC2 استفاده کرد. بنابراین، اگر از Wi-Fi استفاده می‌کنید و در دریافت مقدار از یک ADC2 GPIO مشکل دارید، ممکن است به جای آن از یک ADC1 GPIO استفاده کنید، که باید مشکل شما را حل کند.
برای اینکه ببینیم چگونه همه چیز به هم مرتبط است، یک سابق ساده می سازیمample برای خواندن یک مقدار آنالوگ از یک پتانسیومتر.
قطعات مورد نیاز
برای این سابقample، به قطعات زیر نیاز دارید:

  • برد ESP32 DEVKIT V1
  • مقسم ولتاژ
  • تخته نان
  • سیم های جامپر

نموداری
یک پتانسیومتر به ESP32 خود سیم بزنید. پایه وسط پتانسیومتر باید به GPIO 4 متصل شود. می توانید از نمودار شماتیک زیر به عنوان مرجع استفاده کنید.LAFVIN ESP32 Basic Starter Kit - شماتیککد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
کد Project_2_ESP32_Inputs_Outputs.ino را در آردوینو IDE باز کنیدکیت پایه LAFVIN ESP32 - کد 2این کد به سادگی مقادیر را از پتانسیومتر می خواند و آن مقادیر را در مانیتور سریال چاپ می کند.
در کد، با تعریف GPIO که پتانسیومتر به آن متصل است، شروع می کنید. در این سابقample، GPIO 4.کیت شروع پایه LAFVIN ESP32 - سابقampleدر setup()، یک ارتباط سریال را با نرخ باود 115200 مقداردهی کنید.کیت شروع پایه LAFVIN ESP32 - سابقample 1در حلقه() از تابع analogRead() برای خواندن ورودی آنالوگ از potPin استفاده کنید.کیت شروع پایه LAFVIN ESP32 - سابقample 2در نهایت، مقادیر خوانده شده از پتانسیومتر را در مانیتور سریال چاپ کنید.کیت شروع پایه LAFVIN ESP32 - سابقample 3کد ارائه شده را در ESP32 خود آپلود کنید. مطمئن شوید که برد مناسب و پورت COM را در منوی Tools انتخاب کرده اید.
تست قبلیample
پس از آپلود کد و فشار دادن دکمه تنظیم مجدد ESP32، مانیتور سریال را با نرخ باود 115200 باز کنید. پتانسیومتر را بچرخانید و مقادیر تغییر یافته را مشاهده کنید.حداکثر مقداری که دریافت می کنید 4095 و حداقل مقدار 0 است.LAFVIN ESP32 Basic Starter Kit -حداکثر مقدار

بسته بندی

در این مقاله یاد گرفتید که چگونه ورودی های آنالوگ را با استفاده از ESP32 با Arduino IDE بخوانید. به طور خلاصه:

  • برد ESP32 DEVKIT V1 DOIT (نسخه با 30 پین) دارای 15 پایه ADC است که می توانید از آنها برای خواندن ورودی های آنالوگ استفاده کنید.
  • رزولوشن این پین ها 12 بیت است که به این معنی است که می توانید مقادیری از 0 تا 4095 را دریافت کنید.
  • برای خواندن یک مقدار در Arduino IDE، به سادگی از تابع analogRead() استفاده کنید.
  • پین های ADC ESP32 رفتار خطی ندارند. احتمالاً نمی توانید بین 0 و 0.1 ولت یا بین 3.2 و 3.3 ولت تمایز قائل شوید. هنگام استفاده از پین های ADC باید این را در نظر داشته باشید.

Project 3 ESP32 PWM (خروجی آنالوگ)

در این آموزش به شما نشان خواهیم داد که چگونه با استفاده از Arduino IDE سیگنال های PWM را با ESP32 تولید کنید. به عنوان یک سابقampما یک مدار ساده می سازیم که با استفاده از کنترلر LED PWM ESP32 یک LED را کم نور می کند.LAFVIN ESP32 Basic Starter Kit - AnalogOutputکنترلر PWM LED ESP32
ESP32 دارای یک کنترلر LED PWM با 16 کانال مستقل است که می تواند برای تولید سیگنال های PWM با ویژگی های مختلف پیکربندی شود.
برای کم کردن نور LED با PWM با استفاده از Arduino IDE مراحلی که باید دنبال کنید در اینجا آمده است:

  1. ابتدا باید یک کانال PWM انتخاب کنید. 16 کانال از 0 تا 15 وجود دارد.
  2. سپس، باید فرکانس سیگنال PWM را تنظیم کنید. برای یک LED، استفاده از فرکانس 5000 هرتز مناسب است.
  3. همچنین باید رزولوشن چرخه وظیفه سیگنال را تنظیم کنید: وضوح 1 تا 16 بیت دارید. ما از وضوح 8 بیتی استفاده خواهیم کرد، به این معنی که می توانید روشنایی LED را با استفاده از مقدار 0 تا 255 کنترل کنید.
  4.  بعد، باید مشخص کنید که سیگنال روی کدام GPIO یا GPIO ظاهر شود. برای آن از تابع زیر استفاده خواهید کرد:
    ledcAttachPin (GPIO، کانال)
    این تابع دو آرگومان را می پذیرد. اولی GPIO است که سیگنال را تولید می کند و دومی کانالی است که سیگنال را تولید می کند.
  5. در نهایت، برای کنترل روشنایی LED با استفاده از PWM، از عملکرد زیر استفاده می کنید:

ledcWrite (کانال، چرخه وظیفه)
این تابع کانالی که سیگنال PWM را تولید می کند و چرخه وظیفه را به عنوان آرگومان می پذیرد.
قطعات مورد نیاز
برای دنبال کردن این آموزش به این قسمت ها نیاز دارید:

  • برد ESP32 DEVKIT V1
  • LED 5mm
  • مقاومت 220 اهم
  •  تخته نان
  • سیم های جامپر

نموداری
مانند نمودار شماتیک زیر یک LED را به ESP32 خود سیم بزنید. LED باید به GPIO متصل شود 4.LAFVIN ESP32 Basic Starter Kit - شماتیکتوجه: شما می توانید از هر پینی که می خواهید استفاده کنید، تا زمانی که بتواند به عنوان یک خروجی عمل کند. تمام پایه هایی که می توانند به عنوان خروجی عمل کنند می توانند به عنوان پایه های PWM استفاده شوند. برای اطلاعات بیشتر در مورد ESP32 GPIO ها، بخوانید: ESP32 Pinout Reference: کدام پین های GPIO را باید استفاده کنید؟
کد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
کد Project_3_ESP32_PWM.ino را در آردوینو IDE باز کنیدکیت پایه LAFVIN ESP32 - کد 3کیت پایه LAFVIN ESP32 - کد 4شما با تعریف پینی که LED به آن وصل شده است، شروع کنید. در این حالت LED به GPIO 4 متصل می شود.کیت پایه LAFVIN ESP32 - کد 5سپس، ویژگی های سیگنال PWM را تنظیم می کنید. شما فرکانس 5000 هرتز را تعریف می کنید، کانال 0 را برای تولید سیگنال انتخاب می کنید و وضوح 8 بیت را تعیین می کنید. برای تولید سیگنال‌های PWM مختلف، می‌توانید ویژگی‌های دیگری، متفاوت از اینها را انتخاب کنید.کیت پایه LAFVIN ESP32 - کد 6در setup()، باید LED PWM را با ویژگی‌هایی که قبلاً تعریف کرده‌اید، با استفاده از تابع ledcSetup() که به‌عنوان آرگومان، ledChannel، فرکانس و وضوح را می‌پذیرد، به صورت زیر پیکربندی کنید:کیت پایه LAFVIN ESP32 - کد 8در مرحله بعد، باید GPIO را انتخاب کنید که سیگنال را از آن دریافت خواهید کرد. برای این کار از تابع ledcAttachPin () استفاده کنید که GPIO را که می خواهید سیگنال را دریافت کنید و کانالی که سیگنال را تولید می کند به عنوان آرگومان می پذیرد. در این سابقampما سیگنال را در ledPin GPIO دریافت خواهیم کرد که مربوط به GPIO 4 است. کانالی که سیگنال را تولید می کند ledChannel است که با کانال 0 مطابقت دارد.کیت پایه LAFVIN ESP32 - کد 9در حلقه، چرخه کار را بین 0 تا 255 تغییر می دهید تا روشنایی LED را افزایش دهید.LAFVIN ESP32 Basic Starter Kit - روشناییو سپس، بین 255 و 0 برای کاهش روشنایی.LAFVIN ESP32 Basic Starter Kit - روشنایی 1برای تنظیم روشنایی LED، فقط باید از تابع ledcWrite () استفاده کنید که کانالی که سیگنال را تولید می کند و چرخه وظیفه را به عنوان آرگومان می پذیرد.LAFVIN ESP32 Basic Starter Kit - روشنایی 2از آنجایی که ما از وضوح 8 بیتی استفاده می کنیم، چرخه وظیفه با استفاده از مقدار 0 تا 255 کنترل می شود. توجه داشته باشید که در تابع ledcWrite() از کانالی استفاده می کنیم که سیگنال را تولید می کند، نه از GPIO.

تست قبلیample

کد را در ESP32 خود آپلود کنید. مطمئن شوید که برد و پورت COM مناسب را انتخاب کرده اید. به مدارت نگاه کن شما باید یک LED کم نور داشته باشید که روشنایی را کم و زیاد می کند.کیت اولیه LAFVIN ESP32 - تست نمونه قبلیample

سنسور حرکتی PIR پروژه 4 ESP32

این پروژه نحوه تشخیص حرکت با ESP32 را با استفاده از حسگر حرکتی PIR نشان می‌دهد. زنگ هشدار هنگامی که حرکت تشخیص داده می‌شود، زنگ هشدار را به صدا در می‌آورد و زمانی که هیچ حرکتی برای مدت زمان از پیش تعیین شده (مانند 4 ثانیه) تشخیص داده نشود، زنگ هشدار را متوقف می‌کند.
سنسور حرکتی HC-SR501 چگونه کار می کند
.LAFVIN ESP32 Basic Starter Kit - سنسور حرکت کار می کنداصل کار سنسور HC-SR501 مبتنی بر تغییر تابش مادون قرمز بر روی جسم متحرک است. برای شناسایی توسط سنسور HC-SR501، جسم باید دو شرط را داشته باشد:

  • جسم از راه مادون قرمز ساطع می کند.
  • جسم در حال حرکت یا تکان است

بنابراین:
اگر جسمی در حال ساطع اشعه مادون قرمز باشد اما حرکتی نداشته باشد (مثلاً شخصی بدون حرکت ثابت می ایستد)، توسط سنسور تشخیص داده نمی شود.
اگر جسمی در حال حرکت باشد اما اشعه مادون قرمز ساطع نکند (مثلاً ربات یا وسیله نقلیه)، توسط سنسور تشخیص داده نمی شود.
معرفی تایمرها
در این سابقampهمچنین تایمرها را معرفی خواهیم کرد. ما می خواهیم LED برای تعداد ثانیه های از پیش تعیین شده پس از تشخیص حرکت روشن بماند. به جای استفاده از تابع delay() که کد شما را مسدود می کند و به شما اجازه نمی دهد برای چند ثانیه معینی کار دیگری انجام دهید، باید از یک تایمر استفاده کنیم.LAFVIN ESP32 Basic Starter Kit - معرفی تایمرهاتابع delay().
شما باید با تابع delay() آشنا باشید زیرا به طور گسترده استفاده می شود. استفاده از این تابع بسیار ساده است. یک عدد int را به عنوان آرگومان می پذیرد.
این عدد نشان دهنده مدت زمانی است که برنامه باید منتظر بماند تا به خط بعدی کد منتقل شود.LAFVIN ESP32 Basic Starter Kit - کدوقتی تاخیر (1000) انجام می دهید، برنامه شما به مدت 1 ثانیه در آن خط متوقف می شود.
()delay یک تابع مسدود کننده است. توابع مسدود کردن، برنامه را از انجام هر کار دیگری تا زمانی که آن کار خاص کامل نشده است، باز می دارد. اگر نیاز دارید که چندین کار همزمان انجام شوند، نمی توانید از delay() استفاده کنید.
برای اکثر پروژه ها باید از تاخیر استفاده نکنید و به جای آن از تایمر استفاده کنید.
تابع millis().
با استفاده از تابعی به نام millis() می‌توانید تعداد میلی‌ثانیه‌هایی را که از اولین شروع برنامه گذشته است را برگردانید.LAFVIN ESP32 Basic Starter Kit - برنامه برای اولین بار شروع شدچرا آن تابع مفید است؟ زیرا با استفاده از مقداری ریاضی، می توانید به راحتی بررسی کنید که چقدر زمان گذشته است بدون اینکه کد خود را مسدود کنید.
قطعات مورد نیاز
برای دنبال کردن این آموزش به قسمت های زیر نیاز دارید

  • برد ESP32 DEVKIT V1
  • سنسور حرکت PIR (HC-SR501)
  • وزوز فعال
  • سیم های جامپر
  • تخته نان

نموداریکیت پایه LAFVIN ESP32 - شماتیک 1توجه: جلد کارtage HC-SR501 5 ولت است. برای روشن کردن آن از پین Vin استفاده کنید.
کد
قبل از ادامه این آموزش، باید افزونه ESP32 را در Arduino IDE خود نصب کنید. برای نصب ESP32 در آردوینو IDE یکی از آموزش های زیر را دنبال کنید، اگر قبلاً این کار را نکرده اید. (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
کد Project_4_ESP32_PIR_Motion_Sensor.ino را در آردوینو IDE باز کنید.
تظاهرات
کد را روی برد ESP32 خود آپلود کنید. مطمئن شوید که برد و پورت COM مناسب را انتخاب کرده اید. مراحل مرجع کد آپلود.
مانیتور سریال را با نرخ باود 115200 باز کنید.کیت شروع پایه LAFVIN ESP32 - نمایش 1دست خود را جلوی سنسور PIR حرکت دهید. زنگ باید روشن شود و پیام در مانیتور سریال چاپ می شود که "حرکت شناسایی شد! زنگ هشدار".
بعد از 4 ثانیه زنگ باید خاموش شود.کیت شروع پایه LAFVIN ESP32 - زنگ

سوئیچ پروژه 5 ESP32 Web سرور

در این پروژه شما یک مستقل ایجاد خواهید کرد web سرور با ESP32 که خروجی ها (دو LED) را با استفاده از محیط برنامه نویسی Arduino IDE کنترل می کند. را web سرور پاسخگوی تلفن همراه است و می توان با هر دستگاهی که به عنوان مرورگر در شبکه محلی به آن دسترسی داشت. ما به شما نحوه ایجاد آن را نشان خواهیم داد web سرور و نحوه عملکرد کد گام به گام.
پروژه تمام شدview
قبل از رفتن مستقیم به پروژه، مهم است که آنچه را که ما داریم مشخص کنیم web سرور این کار را انجام می دهد، به طوری که بعداً انجام مراحل آسان تر است.

  • را web سروری که می‌سازید، دو LED متصل به ESP32 GPIO 26 و GPIO 27 را کنترل می‌کند.
  • می توانید به ESP32 دسترسی داشته باشید web سرور با تایپ آدرس IP ESP32 در یک مرورگر در شبکه محلی؛
  • با کلیک بر روی دکمه های خود web سرور شما می توانید فوراً وضعیت هر LED را تغییر دهید.

قطعات مورد نیاز
برای این آموزش به قسمت های زیر نیاز دارید:

  • برد ESP32 DEVKIT V1
  • ال ای دی 2×5 میلی متر
  • مقاومت 2×200 اهم
  • تخته نان
  • سیم های جامپر

نموداری
با ساخت مدار شروع کنید. همانطور که در نمودار شماتیک زیر نشان داده شده است، دو LED را به ESP32 وصل کنید - یک LED به GPIO 26 و دیگری به GPIO 27 متصل است.
توجه: ما از برد ESP32 DEVKIT DOIT با 36 پین استفاده می کنیم. قبل از مونتاژ مدار، مطمئن شوید که پین ​​اوت بردی را که استفاده می کنید بررسی کنید.LAFVIN ESP32 Basic Starter Kit - شماتیککد
در اینجا ما کدی را ارائه می دهیم که ESP32 را ایجاد می کند web سرور کد Project_5_ESP32_Switch _ را باز کنیدWeb_Server.ino در آردوینو IDE، اما هنوز آن را آپلود نکنید. باید تغییراتی ایجاد کنید تا برای شما کارساز باشد.
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
تنظیم اعتبار شبکه شما
شما باید خطوط زیر را با اعتبار شبکه خود تغییر دهید: SSID و رمز عبور. کد به خوبی در مورد جایی که باید تغییرات را اعمال کنید توضیح داده شده است.LAFVIN ESP32 Basic Starter Kit - اعتبار شبکهدر حال آپلود کد
اکنون می توانید کد و و را آپلود کنید web سرور بلافاصله کار خواهد کرد.
برای آپلود کد در ESP32 مراحل بعدی را دنبال کنید:

  1. برد ESP32 خود را به رایانه وصل کنید.
  2. در Arduino IDE برد خود را در Tools > Board انتخاب کنید (در مورد ما از برد ESP32 DEVKIT DOIT استفاده می کنیم).LAFVIN ESP32 Basic Starter Kit - آپلود کد
  3. پورت COM را در Tools > Port انتخاب کنید.LAFVIN ESP32 Basic Starter Kit - Tools Port
  4. دکمه آپلود را در Arduino IDE فشار دهید و چند ثانیه صبر کنید تا کد کامپایل و در برد شما آپلود شود.LAFVIN ESP32 Basic Starter Kit - ICON 7
  5. منتظر پیام "بارگذاری انجام شد" باشید.LAFVIN ESP32 Basic Starter Kit - آپلود انجام شد 1

پیدا کردن آدرس IP ESP
پس از آپلود کد، مانیتور سریال را با نرخ باود 115200 باز کنید.کیت پایه LAFVIN ESP32 - آدرس IP ESPدکمه ESP32 EN را فشار دهید (تنظیم مجدد). ESP32 به Wi-Fi متصل می شود و آدرس IP ESP را در مانیتور سریال خروجی می دهد. آدرس IP را کپی کنید، زیرا برای دسترسی به ESP32 به آن نیاز دارید web سرورکیت اولیه LAFVIN ESP32 - web سروردسترسی به Web سرور
برای دسترسی به web سرور، مرورگر خود را باز کنید، آدرس IP ESP32 را پیست کنید و صفحه زیر را مشاهده خواهید کرد.
توجه: مرورگر شما و ESP32 باید به یک LAN متصل باشند.LAFVIN ESP32 Basic Starter Kit - دسترسی به Web سروراگر نگاهی به مانیتور سریال بیندازید، می توانید ببینید که در پس زمینه چه اتفاقی می افتد. ESP یک درخواست HTTP از یک کلاینت جدید (در این مورد، مرورگر شما) دریافت می کند.LAFVIN ESP32 Basic Starter Kit - درخواست HTTPهمچنین می توانید سایر اطلاعات مربوط به درخواست HTTP را مشاهده کنید.
تظاهرات
حالا می توانید تست کنید که آیا web سرور به درستی کار می کند برای کنترل LED ها روی دکمه ها کلیک کنید.LAFVIN ESP32 Basic Starter Kit - پس زمینهدر همان زمان، می توانید نگاهی به مانیتور سریال بیاندازید تا ببینید در پس زمینه چه اتفاقی می افتد. برای مثالampوقتی روی دکمه روشن کردن GPIO 26 کلیک می‌کنید، ESP32 یک درخواست در /26/on دریافت می‌کند. URL.کیت اولیه LAFVIN ESP32 - URLهنگامی که ESP32 آن درخواست را دریافت کرد، LED متصل به GPIO 26 را روشن می کند و وضعیت آن را در دستگاه به روز می کند. web صفحهکیت اولیه LAFVIN ESP32 - web صفحهدکمه GPIO 27 به روشی مشابه کار می کند. تست کنید که به درستی کار می کند.کیت اولیه LAFVIN ESP32 - به درستی کار می کند

کد چگونه کار می کند

در این بخش کدها را با دقت بیشتری بررسی می کنیم تا نحوه عملکرد آن را مشاهده کنیم.
اولین کاری که باید انجام دهید این است که کتابخانه WiFi را اضافه کنید.LAFVIN ESP32 Basic Starter Kit - کتابخانه WiFiهمانطور که قبلا ذکر شد، شما باید ssid و رمز عبور خود را در خطوط زیر داخل کوتیشن های دوبل وارد کنید.LAFVIN ESP32 Basic Starter Kit - دو نقل قولسپس، خود را تنظیم می کنید web سرور به پورت 80کیت اولیه LAFVIN ESP32 - web سرورخط زیر یک متغیر برای ذخیره هدر درخواست HTTP ایجاد می کند:LAFVIN ESP32 Basic Starter Kit - درخواست HTTPدر مرحله بعد، متغیرهای کمکی را برای ذخیره وضعیت فعلی خروجی های خود ایجاد می کنید. اگر می خواهید خروجی های بیشتری اضافه کنید و وضعیت آن را ذخیره کنید، باید متغیرهای بیشتری ایجاد کنید.LAFVIN ESP32 Basic Starter Kit - متغیرهاهمچنین باید به هر یک از خروجی های خود یک GPIO اختصاص دهید. در اینجا ما از GPIO 26 و GPIO 27 استفاده می کنیم. می توانید از هر GPIO مناسب دیگری استفاده کنید.LAFVIN ESP32 Basic Starter Kit - مناسب دیگرراه اندازی ()
حالا بیایید وارد setup() شویم. ابتدا یک ارتباط سریالی را با نرخ باود 115200 برای اهداف اشکال زدایی شروع می کنیم.LAFVIN ESP32 Basic Starter Kit - اهدافشما همچنین GPIO های خود را به عنوان OUTPUT تعریف کرده و آنها را روی LOW قرار می دهید.LAFVIN ESP32 Basic Starter Kit - GPIO به عنوان خروجیخطوط زیر اتصال Wi-Fi را با WiFi.begin (ssid، رمز عبور) شروع می کنند، منتظر اتصال موفق باشید و آدرس IP ESP را در مانیتور سریال چاپ کنید.LAFVIN ESP32 Basic Starter Kit - SerialLAFVIN ESP32 Basic Starter Kit - Serial 1حلقه ()
در حلقه () ما برنامه ریزی می کنیم که چه اتفاقی می افتد زمانی که یک کلاینت جدید با آن ارتباط برقرار می کند web سرور
ESP32 همیشه با خط زیر به مشتریان ورودی گوش می دهد:LAFVIN ESP32 Basic Starter Kit - Loopوقتی درخواستی از مشتری دریافت می‌شود، داده‌های دریافتی را ذخیره می‌کنیم. حلقه while که در ادامه می آید تا زمانی که کلاینت متصل بماند، اجرا می شود. توصیه نمی کنیم قسمت زیر از کد را تغییر دهید، مگر اینکه دقیقاً بدانید که چه کاری انجام می دهید.LAFVIN ESP32 Basic Starter Kit - دقیقاکیت اولیه LAFVIN ESP32 - دقیقا 1کیت اولیه LAFVIN ESP32 - دقیقا 2بخش بعدی دستورات if و else بررسی می کند که کدام دکمه در شما فشار داده شده است web صفحه، و بر این اساس خروجی ها را کنترل می کند. همانطور که قبلا دیدیم، ما یک درخواست در مورد مختلف ارائه می دهیم URLبسته به دکمه فشرده شده است.LAFVIN ESP32 Basic Starter Kit - دکمه فشار داده شده استLAFVIN ESP32 Basic Starter Kit - دکمه فشار داده شده 1برای مثالampاگر دکمه GPIO 26 ON را فشار داده باشید، ESP32 یک درخواست در /26/ON دریافت می کند. URL (می‌توانیم این اطلاعات را در هدر HTTP در مانیتور سریال ببینیم). بنابراین، می‌توانیم بررسی کنیم که آیا هدر عبارت GET /26/on را دارد یا خیر. اگر حاوی باشد، متغیر output26state را به ON تغییر می دهیم و ESP32 LED را روشن می کند.
این برای دکمه های دیگر به طور مشابه عمل می کند. بنابراین، اگر می‌خواهید خروجی‌های بیشتری اضافه کنید، باید این قسمت از کد را تغییر دهید تا آنها را شامل شود.
نمایش HTML web صفحه
کار بعدی که باید انجام دهید، ایجاد آن است web صفحه ESP32 پاسخی را با مقداری کد HTML برای ساختن به مرورگر شما ارسال می کند web صفحه
را web صفحه با استفاده از این بیانگر client.println() برای مشتری ارسال می شود. باید آنچه را که می خواهید برای مشتری ارسال کنید به عنوان آرگومان وارد کنید.
اولین چیزی که باید ارسال کنیم همیشه خط زیر است که نشان می دهد ما در حال ارسال HTML هستیم.LAFVIN ESP32 Basic Starter Kit - ارسال HTMLسپس خط زیر باعث می شود web صفحه پاسخگو در هر web مرورگر.کیت اولیه LAFVIN ESP32 - web مرورگرو موارد زیر برای جلوگیری از درخواست در فاویکون استفاده می شود. - لازم نیست نگران این خط باشید.LAFVIN ESP32 Basic Starter Kit - client.println

استایل دادن به Web صفحه

در مرحله بعد، مقداری متن CSS برای استایل دادن به دکمه ها و دکمه ها داریم web ظاهر صفحه
فونت Helvetica را انتخاب می کنیم، محتوایی را که به صورت بلوک نمایش داده می شود و در مرکز تراز می شود، تعریف می کنیم.LAFVIN ESP32 Basic Starter Kit - یک ظاهر طراحی Web صفحهدکمه های خود را با رنگ #4CAF50، بدون حاشیه، متن به رنگ سفید و با این بالشتک: 16px 40px استایل می کنیم. همچنین تزیین متن را روی هیچ تنظیم می کنیم، اندازه فونت، حاشیه و مکان نما را روی یک اشاره گر تعریف می کنیم.LAFVIN ESP32 Basic Starter Kit - اشاره گرهمچنین استایل دکمه دوم را با تمام خصوصیات دکمه ای که قبلاً تعریف کرده بودیم، اما با رنگ متفاوت تعریف می کنیم. این سبک برای دکمه خاموش خواهد بود.LAFVIN ESP32 Basic Starter Kit - client.println 1

تنظیم کردن Web عنوان صفحه اول
در خط بعدی می توانید عنوان اول خود را تنظیم کنید web صفحه در اینجا ما "ESP32" را داریم Web سرور»، اما می توانید این متن را به هر چیزی که دوست دارید تغییر دهید.کیت اولیه LAFVIN ESP32 - Web عنوان صفحهنمایش دکمه ها و وضعیت مربوطه
سپس، یک پاراگراف برای نمایش وضعیت فعلی GPIO 26 می نویسید. همانطور که می بینید، ما از متغیر output26State استفاده می کنیم، به طوری که با تغییر این متغیر، وضعیت فوراً به روز می شود.LAFVIN ESP32 Basic Starter Kit - تغییرات متغیرسپس، بسته به وضعیت فعلی GPIO، دکمه روشن یا خاموش را نمایش می دهیم. اگر وضعیت فعلی GPIO خاموش باشد، دکمه ON را نشان می دهیم، اگر نه، دکمه OFF را نمایش می دهیم.LAFVIN ESP32 Basic Starter Kit - دکمه OFF را نمایش دهیدما از همین رویه برای GPIO 27 استفاده می کنیم.
بستن اتصال
در نهایت، هنگامی که پاسخ به پایان می رسد، متغیر هدر را پاک می کنیم و ارتباط با کلاینت را با () client.stop متوقف می کنیم.LAFVIN ESP32 Basic Starter Kit - بستن اتصال

بسته بندی

در این آموزش ما به شما نشان دادیم که چگونه a را بسازید web سرور با ESP32. ما یک سابق ساده را به شما نشان دادیمampکه دو LED را کنترل می کند، اما ایده این است که آن LED ها را با یک رله یا هر خروجی دیگری که می خواهید کنترل کنید جایگزین کنید.

Project 6 RGB LED Web سرور

در این پروژه به شما نشان خواهیم داد که چگونه یک LED RGB را از راه دور با برد ESP32 با استفاده از یک web سرور با انتخابگر رنگ
پروژه تمام شدview
قبل از شروع، بیایید ببینیم این پروژه چگونه کار می کند:LAFVIN ESP32 Basic Starter Kit - Project Overview

  • ESP32 web سرور یک انتخابگر رنگ را نمایش می دهد.
  • وقتی رنگی را انتخاب می کنید، مرورگر شما درخواستی را روی یک درخواست می کند URL که شامل پارامترهای R، G و B رنگ انتخاب شده است.
  • ESP32 شما درخواست را دریافت می کند و مقدار را برای هر پارامتر رنگ تقسیم می کند.
  • سپس یک سیگنال PWM با مقدار مربوطه به GPIOهایی که LED RGB را کنترل می کنند ارسال می کند.

LED های RGB چگونه کار می کنند؟
در یک LED RGB کاتد مشترک، هر سه LED یک اتصال منفی (کاتد) به اشتراک می‌گذارند. همه این کیت RGB کاتد مشترک است.کیت پایه LAFVIN ESP32 - LED های RGB کار می کنندچگونه رنگ های مختلف ایجاد کنیم؟
البته با LED RGB می توانید نور قرمز، سبز و آبی تولید کنید و با تنظیم شدت هر LED می توانید رنگ های دیگری را نیز تولید کنید.
برای مثالampبرای تولید نور کاملاً آبی، LED آبی را روی بیشترین شدت و LED های سبز و قرمز را روی کمترین شدت تنظیم کنید. برای نور سفید، هر سه LED را روی بالاترین شدت تنظیم کنید.
مخلوط کردن رنگ ها
برای تولید رنگ های دیگر می توانید سه رنگ را در شدت های مختلف ترکیب کنید. برای تنظیم شدت هر LED می توانید از سیگنال PWM استفاده کنید.
از آنجایی که ال ای دی ها بسیار نزدیک به هم هستند، چشم ما نتیجه ترکیب رنگ ها را می بیند نه اینکه سه رنگ را به صورت جداگانه ببینیم.
برای داشتن ایده ای در مورد نحوه ترکیب رنگ ها، به نمودار زیر نگاه کنید.
این ساده ترین نمودار ترکیب رنگ است، اما به شما ایده می دهد که چگونه کار می کند و چگونه رنگ های مختلف را تولید کنید.LAFVIN ESP32 Basic Starter Kit - رنگ های مختلفقطعات مورد نیاز
برای این پروژه به قطعات زیر نیاز دارید:

  • برد ESP32 DEVKIT V1
  • RGB LED
  • مقاومت 3×220 اهم
  • سیم های جامپر
  • تخته نان

نموداریLAFVIN ESP32 Basic Starter Kit - شماتیککد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)

  • نصب افزونه ESP32 در Arduino IDE

پس از مونتاژ مدار، کد را باز کنید
Project_6_RGB_LED_Web_Server.ino در آردوینو IDE.
قبل از آپلود کد، فراموش نکنید که اعتبار شبکه خود را وارد کنید تا ESP بتواند به شبکه محلی شما متصل شود.LAFVIN ESP32 Basic Starter Kit - شبکه محلینحوه کار کد
طرح ESP32 از کتابخانه WiFi.h استفاده می کند.LAFVIN ESP32 Basic Starter Kit - کتابخانه WiFi.hخطوط زیر متغیرهای رشته ای را برای نگه داشتن پارامترهای R، G و B از درخواست تعریف می کنند.LAFVIN ESP32 Basic Starter Kit - String redStringاز چهار متغیر بعدی برای رمزگشایی درخواست HTTP بعدا استفاده می شود.LAFVIN ESP32 Basic Starter Kit - درخواست HTTPسه متغیر برای GPIO ایجاد کنید که پارامترهای نوار R، G و B را کنترل می کنند. در این مورد ما از GPIO 13، GPIO 12 و GPIO 14 استفاده می کنیم.LAFVIN ESP32 Basic Starter Kit - GPIO ها نیاز دارنداین GPIO ها نیاز به خروجی سیگنال های PWM دارند، بنابراین ابتدا باید ویژگی های PWM را پیکربندی کنیم. فرکانس سیگنال PWM را روی 5000 هرتز تنظیم کنید. سپس، یک کانال PWM برای هر رنگ مرتبط کنیدLAFVIN ESP32 Basic Starter Kit - هر رنگو در نهایت رزولوشن کانال های PWM را روی 8 بیت قرار دهیدLAFVIN ESP32 Basic Starter Kit - کانال های PWMدر setup()، ویژگی های PWM را به کانال های PWM اختصاص دهیدLAFVIN ESP32 Basic Starter Kit - کانال های PWMکانال های PWM را به GPIO مربوطه وصل کنیدLAFVIN ESP32 Basic Starter Kit - GPIO مربوطهبخش کد زیر انتخابگر رنگ را در شما نمایش می دهد web صفحه و بر اساس رنگی که انتخاب کرده اید درخواست می کند.کیت اولیه LAFVIN ESP32 - انتخاب شدLAFVIN ESP32 Basic Starter Kit - client.printlnLAFVIN ESP32 Basic Starter Kit - client.println 1وقتی رنگی را انتخاب می کنید، درخواستی با فرمت زیر دریافت می کنید.LAFVIN ESP32 Basic Starter Kit - فرمت زیر

بنابراین، ما باید این رشته را برای بدست آوردن پارامترهای R، G و B تقسیم کنیم. پارامترها در متغیرهای redString، greenString و blueString ذخیره می شوند و می توانند مقادیری بین 0 تا 255 داشته باشند.LAFVIN ESP32 Basic Starter Kit - headerLAFVIN ESP32 Basic Starter Kit - header 1برای کنترل نوار با ESP32، از تابع ledcWrite() برای تولید سیگنال های PWM با مقادیر رمزگشایی شده از HTTP استفاده کنید. درخواست کنید.LAFVIN ESP32 Basic Starter Kit - درخواست HTTP 1توجه: درباره PWM با ESP32 بیشتر بیاموزید: Project 3 ESP32 PWM (خروجی آنالوگ)
برای کنترل نوار با ESP8266، فقط باید از آن استفاده کنیم
تابع analogWrite() برای تولید سیگنال های PWM با مقادیر رمزگشایی شده از درخواست HTPP.
analogWrite(redPin، redString.toInt());
analogWrite(greenPin، greenString.toInt());
analogWrite(bluePin، blueString.toInt())
از آنجایی که مقادیر یک متغیر رشته را دریافت می کنیم، باید آنها را با استفاده از متد toInt() به اعداد صحیح تبدیل کنیم.
تظاهرات
پس از وارد کردن اعتبار شبکه خود، برد و پورت COM مناسب را انتخاب کنید و کد را در مراحل مرجع کد آپلود ESP32 خود آپلود کنید.
پس از آپلود، مانیتور سریال را با نرخ باود 115200 باز کنید و دکمه ESP Enable/Reset را فشار دهید. شما باید آدرس IP برد را دریافت کنید.LAFVIN ESP32 Basic Starter Kit - همان LANمرورگر خود را باز کنید و آدرس IP ESP را وارد کنید. اکنون، از انتخابگر رنگ برای انتخاب رنگ برای LED RGB استفاده کنید.
سپس، باید دکمه «تغییر رنگ» را فشار دهید تا رنگ تأثیر بگذارد.LAFVIN ESP32 Basic Starter Kit - RGB LEDبرای خاموش کردن LED RGB، رنگ مشکی را انتخاب کنید.
قوی ترین رنگ ها (در بالای انتخابگر رنگ)، آنهایی هستند که نتایج بهتری را ایجاد می کنند.کیت پایه LAFVIN ESP32 - نتایج بهتر

رله پروژه 7 ESP32 Web سرور

استفاده از رله با ESP32 یک راه عالی برای کنترل لوازم خانگی AC از راه دور است. این آموزش نحوه کنترل ماژول رله با ESP32 را توضیح می دهد.
ما به نحوه کار یک ماژول رله، نحوه اتصال رله به ESP32 و ساخت یک ماژول نگاهی خواهیم انداخت. web سرور برای کنترل یک رله از راه دور.
معرفی رله ها
رله کلیدی است که با برق کار می کند و مانند هر کلید دیگری می توان آن را روشن یا خاموش کرد و اجازه داد جریان عبور کند یا خیر. می توان آن را با حجم کم کنترل کردtages، مانند 3.3 ولت ارائه شده توسط ESP32 GPIO ها و به ما اجازه می دهد تا صدای بالا را کنترل کنیم.tagمانند 12 ولت، 24 ولت یا ولتاژ برقtage (230 ولت در اروپا و 120 ولت در ایالات متحده).کیت پایه LAFVIN ESP32 - معرفی رله هادر سمت چپ، دو مجموعه از سه سوکت برای اتصال high vol وجود داردtages و پین های سمت راست (کم حجمtagه) به GPIO های ESP32 متصل شوید.
منبع جلدtage اتصالاتLAFVIN ESP32 Basic Starter Kit - Mains Voltage اتصالاتماژول رله نشان داده شده در عکس قبلی دارای دو کانکتور است که هر کدام دارای سه سوکت است: معمولی (COM)، معمولی بسته (NC) و معمولی باز (NO).

  • COM: جریانی را که می خواهید کنترل کنید وصل کنید (حجم اصلی).tagالف)
  • NC (به طور معمول بسته): پیکربندی معمولاً بسته زمانی استفاده می شود که می خواهید رله به طور پیش فرض بسته شود. پین های NC هستند COM متصل هستند، به این معنی که جریان در جریان است مگر اینکه سیگنالی از ESP32 به ماژول رله ارسال کنید تا مدار باز شود و جریان جریان متوقف شود.
  • NO (به طور معمول باز): پیکربندی معمولی باز برعکس عمل می کند: هیچ ارتباطی بین پین های NO و COM وجود ندارد، بنابراین مدار خراب می شود مگر اینکه سیگنالی از ESP32 برای بستن مدار ارسال کنید.

پین های کنترلLAFVIN ESP32 Basic Starter Kit - Control Pinsکم حجمtage side مجموعه ای از چهار پین و مجموعه ای از سه پایه دارد. مجموعه اول شامل VCC و GND برای روشن کردن ماژول و ورودی 1 (IN1) و ورودی 2 (IN2) به ترتیب برای کنترل رله های پایین و بالایی است.
اگر ماژول رله شما فقط یک کانال دارد، فقط یک پین IN خواهید داشت. اگر چهار کانال دارید، چهار پین IN و غیره خواهید داشت.
سیگنالی که به پین ​​های IN ارسال می کنید، فعال بودن یا نبودن رله را مشخص می کند. رله زمانی فعال می شود که ورودی کمتر از 2 ولت باشد. این به این معنی است که شما سناریوهای زیر را خواهید داشت:

  • پیکربندی به طور معمول بسته (NC):
  • سیگنال بالا - جریان در حال جریان است
  • سیگنال LOW - جریان جریان ندارد
  • پیکربندی به طور معمول باز (NO):
  • سیگنال بالا - جریان جریان ندارد
  • سیگنال LOW - جریان در حال جریان است

شما باید از یک پیکربندی به طور معمول بسته استفاده کنید، زمانی که جریان باید در بیشتر مواقع جریان داشته باشد، و فقط می‌خواهید گاهی اوقات آن را متوقف کنید.
هنگامی که می خواهید جریان گهگاهی جریان داشته باشد از یک پیکربندی معمولی باز استفاده کنید (مثلاًample، al را روشن کنیدamp گاهی اوقات).
انتخاب منبع تغذیهکیت پایه LAFVIN ESP32 - انتخاب منبع تغذیهمجموعه دوم پین ها از پایه های GND، VCC و JD-VCC تشکیل شده است.
پین JD-VCC آهنربای الکتریکی رله را تغذیه می کند. توجه داشته باشید که ماژول دارای یک کلاهک جامپر است که پین ​​های VCC و JD-VCC را به هم متصل می کند. رنگی که در اینجا نشان داده شده زرد است، اما رنگ شما ممکن است رنگ دیگری داشته باشد.
با درپوش جامپر، پین های VCC و JD-VCC به هم متصل می شوند. این بدان معناست که آهنربای الکتریکی رله مستقیماً از پایه برق ESP32 تغذیه می شود، بنابراین ماژول رله و مدارهای ESP32 از نظر فیزیکی از یکدیگر جدا نیستند.
بدون درپوش جامپر، باید یک منبع تغذیه مستقل برای تغذیه آهنربای الکتریکی رله از طریق پین JD-VCC تهیه کنید. این پیکربندی به صورت فیزیکی رله ها را از ESP32 با اپتوکوپلر داخلی ماژول جدا می کند، که از آسیب دیدن ESP32 در صورت بروز میخ های الکتریکی جلوگیری می کند.
نموداریLAFVIN ESP32 Basic Starter Kit - شماتیکهشدار: استفاده از حجم بالاtagمنبع تغذیه ممکن است صدمات جدی ایجاد کند.
بنابراین از ال ای دی های 5 میلی متری به جای ولتاژ بالا استفاده می شودtagلامپ های الکترونیکی در آزمایش اگر با نسخه اصلی آشنا نیستیدtagاز کسی بخواهید که به شما کمک کند. هنگام برنامه‌ریزی ESP یا سیم‌کشی مدار، مطمئن شوید که همه چیز از برق جدا شده استtage.LAFVIN ESP32 Basic Starter Kit - mains voltageنصب کتابخانه برای ESP32
برای ساختن این web سرور، ما از ESPAsync استفاده می کنیمWebکتابخانه سرور و کتابخانه AsyncTCP.
نصب ESPAsyncWebکتابخانه سرور
مراحل بعدی را برای نصب دنبال کنید ESPAsyncWebسرور کتابخانه:

  1. برای دانلود ESPAsync اینجا را کلیک کنیدWebکتابخانه سرور باید داشته باشی
    یک پوشه .zip در پوشه دانلودها
  2. پوشه .zip را از حالت فشرده خارج کنید و باید ESPAsync را دریافت کنیدWebپوشه سرور-مستر
  3. نام پوشه خود را از ESPAsync تغییر دهیدWebسرور سرور به ESPAsyncWebسرور
  4. ESPAsync را حرکت دهیدWebپوشه سرور به پوشه کتابخانه های نصب Arduino IDE شما

از طرف دیگر، در Arduino IDE خود، می توانید به Sketch > Include بروید
Library > افزودن کتابخانه .ZIP… و کتابخانه ای را که به تازگی دانلود کرده اید انتخاب کنید.
نصب کتابخانه AsyncTCP برای ESP32
را ESPAsyncWebسرور کتابخانه نیاز به AsyncTCP کتابخانه به کار دنبال کنید
مراحل بعدی برای نصب آن کتابخانه:

  1. برای دانلود کتابخانه AsyncTCP اینجا را کلیک کنید. شما باید یک پوشه .zip در پوشه Downloads خود داشته باشید
  2. پوشه .zip را از حالت فشرده خارج کنید و باید پوشه AsyncTCP-master را دریافت کنید
    1. نام پوشه خود را از AsyncTCP-master به AsyncTCP تغییر دهید
    3. پوشه AsyncTCP را به پوشه کتابخانه های نصب Arduino IDE خود منتقل کنید
    4. در نهایت، Arduino IDE خود را دوباره باز کنید

از طرف دیگر، در Arduino IDE خود، می توانید به Sketch > Include بروید
Library > افزودن کتابخانه .ZIP… و کتابخانه ای را که به تازگی دانلود کرده اید انتخاب کنید.
کد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
پس از نصب کتابخانه های مورد نیاز، کد Project_7_ESP32_Relay_ را باز کنید.Web_Server.ino در آردوینو IDE.
قبل از آپلود کد، فراموش نکنید که اعتبار شبکه خود را وارد کنید تا ESP بتواند به شبکه محلی شما متصل شود.LAFVIN ESP32 Basic Starter Kit - شبکه محلیتظاهرات
پس از انجام تغییرات لازم، کد را در ESP32 خود آپلود کنید. مراحل مرجع کد آپلود.
مانیتور سریال را با نرخ باود 115200 باز کنید و دکمه ESP32 EN را فشار دهید تا آدرس IP آن را دریافت کنید. سپس یک مرورگر در شبکه محلی خود باز کنید و آدرس IP ESP32 را تایپ کنید تا به آن دسترسی پیدا کنید. web سرور
مانیتور سریال را با نرخ باود 115200 باز کنید و دکمه ESP32 EN را فشار دهید تا آدرس IP آن را دریافت کنید. سپس یک مرورگر در شبکه محلی خود باز کنید و آدرس IP ESP32 را تایپ کنید تا به آن دسترسی پیدا کنید. web سرورکیت اولیه LAFVIN ESP32 - web سرورتوجه: مرورگر شما و ESP32 باید به یک LAN متصل باشند.
شما باید چیزی به شرح زیر با دو دکمه به عنوان تعداد رله هایی که در کد خود تعریف کرده اید دریافت کنید.LAFVIN ESP32 Basic Starter Kit - گوشی هوشمنداکنون می توانید از دکمه ها برای کنترل رله های خود با استفاده از گوشی هوشمند خود استفاده کنید.LAFVIN ESP32 Basic Starter Kit - گوشی هوشمند 1

Project_8_Output_State_Synchronization_ Web_سرور

این پروژه نحوه کنترل خروجی های ESP32 یا ESP8266 را با استفاده از a نشان می دهد web سرور و یک دکمه فیزیکی به طور همزمان. وضعیت خروجی در به روز رسانی می شود web صفحه که آیا از طریق دکمه فیزیکی تغییر کرده است یا web سرور
پروژه تمام شدview
بیایید نگاهی گذرا به نحوه عملکرد پروژه بیندازیم.LAFVIN ESP32 Basic Starter Kit - Project OverviewESP32 یا ESP8266 میزبان a web سروری که به شما امکان می دهد وضعیت یک خروجی را کنترل کنید.

  • وضعیت خروجی فعلی بر روی صفحه نمایش داده می شود web سرور؛
  • ESP همچنین به یک دکمه فیزیکی متصل است که همان خروجی را کنترل می کند.
  • اگر وضعیت خروجی را با استفاده از دکمه فیزیکی تغییر دهید، وضعیت فعلی آن نیز روی دکمه به‌روزرسانی می‌شود web سرور

به طور خلاصه، این پروژه به شما امکان می دهد همان خروجی را با استفاده از a کنترل کنید web سرور و یک دکمه فشاری به طور همزمان. هر زمان که وضعیت خروجی تغییر کند، web سرور به روز می شود
قطعات مورد نیاز
در اینجا لیستی از قطعاتی که برای ساخت مدار نیاز دارید آمده است:

  • برد ESP32 DEVKIT V1
  • LED 5 میلی متر
  • مقاومت 220 اهم
  • دکمه ی فشار
  • مقاومت 10 کیلو اهم
  • تخته نان
  • سیم های جامپر

نموداریکیت پایه LAFVIN ESP32 - شماتیک 1نصب کتابخانه برای ESP32
برای ساختن این web سرور، ما از ESPAsync استفاده می کنیمWebکتابخانه سرور و کتابخانه AsyncTCP. (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب ESPAsyncWebکتابخانه سرور
مراحل بعدی را برای نصب ESPAsync دنبال کنیدWebکتابخانه سرور:

  1. برای دانلود ESPAsync اینجا را کلیک کنیدWebکتابخانه سرور باید داشته باشی
    یک پوشه .zip در پوشه دانلودها
  2. پوشه .zip را از حالت فشرده خارج کنید و باید ESPAsync را دریافت کنیدWebپوشه سرور-مستر
  3. نام پوشه خود را از ESPAsync تغییر دهیدWebسرور سرور به ESPAsyncWebسرور
  4. ESPAsync را حرکت دهیدWebپوشه سرور به پوشه کتابخانه های نصب Arduino IDE شما
    از طرف دیگر، در Arduino IDE خود، می توانید به Sketch > Include بروید
    Library > افزودن کتابخانه .ZIP… و کتابخانه ای را که به تازگی دانلود کرده اید انتخاب کنید.

نصب کتابخانه AsyncTCP برای ESP32
ESPAsyncWebکتابخانه سرور برای کار کردن به کتابخانه AsyncTCP نیاز دارد. مراحل بعدی را برای نصب آن کتابخانه دنبال کنید:

  1. برای دانلود کتابخانه AsyncTCP اینجا را کلیک کنید. شما باید یک پوشه .zip در پوشه Downloads خود داشته باشید
  2. پوشه .zip را از حالت فشرده خارج کنید و باید پوشه AsyncTCP-master را دریافت کنید
  3. نام پوشه خود را از AsyncTCP-master به AsyncTCP تغییر دهید
  4. پوشه AsyncTCP را به پوشه کتابخانه های نصب Arduino IDE خود منتقل کنید
  5. در نهایت، Arduino IDE خود را دوباره باز کنید
    از طرف دیگر، در Arduino IDE خود، می توانید به Sketch > Include بروید
    Library > افزودن کتابخانه .ZIP… و کتابخانه ای را که به تازگی دانلود کرده اید انتخاب کنید.

کد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
پس از نصب کتابخانه های مورد نیاز، کد را باز کنید
Project_8_Output_State_Synchronization_Web_Server.ino در آردوینو IDE.
قبل از آپلود کد، فراموش نکنید که اعتبار شبکه خود را وارد کنید تا ESP بتواند به شبکه محلی شما متصل شود.کیت پایه LAFVIN ESP32 - کد

کد چگونه کار می کند

حالت دکمه و وضعیت خروجی
متغیر ledState حالت خروجی LED را نگه می دارد. برای پیش فرض، زمانی که web سرور شروع می شود، پایین است.LAFVIN ESP32 Basic Starter Kit - Code Works

دکمهState و lastButtonState برای تشخیص اینکه آیا دکمه فشاری فشرده شده است یا نه استفاده می شود.LAFVIN ESP32 Basic Starter Kit - فشرده شددکمه (web سرور)
ما HTML را برای ایجاد دکمه روی متغیر index_html وارد نکردیم.
دلیلش این است که می‌خواهیم بسته به وضعیت LED فعلی که می‌توان با دکمه فشاری نیز تغییر داد، آن را تغییر دهیم.
بنابراین، ما یک مکان نگهدار برای دکمه %BUTTONPLACEHOLDER% ایجاد کرده‌ایم که با متن HTML جایگزین می‌شود تا دکمه بعداً روی کد ایجاد شود (این کار در تابع ()processor انجام می‌شود).LAFVIN ESP32 Basic Starter Kit - 1 فشرده شدپردازنده ()
تابع ()processor هر مکان نگهدارنده روی متن HTML را با مقادیر واقعی جایگزین می کند. ابتدا بررسی می کند که آیا متون HTML حاوی هر کدام هستند یا خیر
متغیرهایی %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basic Starter Kit - پردازندهسپس تابع ()theoutputState را فراخوانی کنید که وضعیت خروجی فعلی را برمی گرداند. ما آن را در متغیر outputStateValue ذخیره می کنیم.LAFVIN ESP32 Basic Starter Kit - outputStateپس از آن، از آن مقدار برای ایجاد متن HTML برای نمایش دکمه با حالت مناسب استفاده کنید:LAFVIN ESP32 Basic Starter Kit - کد 4درخواست HTTP GET برای تغییر وضعیت خروجی (جاوا اسکریپت)
وقتی دکمه را فشار می دهید، تابع ()thetoggleCheckbox فراخوانی می شود. این تابع در موارد مختلف درخواست می دهد URLs برای روشن یا خاموش کردن LED.LAFVIN ESP32 Basic Starter Kit - JavaScriptبرای روشن کردن LED، درخواستی را در /update?state=1 ارسال می کند URL:LAFVIN ESP32 Basic Starter Kit - element.checkedدر غیر این صورت، در /update?state=0 درخواست می دهد URL.
درخواست HTTP GET برای به‌روزرسانی وضعیت (جاوا اسکریپت)
برای به روز نگه داشتن وضعیت خروجی در web سرور، تابع زیر را فراخوانی می کنیم که یک درخواست جدید در وضعیت / می دهد URL هر ثانیهLAFVIN ESP32 Basic Starter Kit - وضعیت به روز رسانیLAFVIN ESP32 Basic Starter Kit - به روز رسانی وضعیت 1رسیدگی به درخواست ها
سپس، باید بررسی کنیم که وقتی ESP32 یا ESP8266 درخواست‌هایی را دریافت می‌کند چه اتفاقی می‌افتد. URLs.
وقتی درخواستی در روت دریافت شد /URL، صفحه HTML و همچنین پردازنده را ارسال می کنیم.LAFVIN ESP32 Basic Starter Kit - رسیدگی به درخواست هاLAFVIN ESP32 Basic Starter Kit - رسیدگی به درخواست ها 1خطوط زیر بررسی می کنند که آیا درخواستی در /update?state=1 یا /update?state=0 دریافت کرده اید URL و بر این اساس ledState را تغییر می دهد.LAFVIN ESP32 Basic Starter Kit - ledStateLAFVIN ESP32 Basic Starter Kit - inputParamهنگامی که درخواستی در /state دریافت می شود URL، وضعیت خروجی فعلی را ارسال می کنیم:LAFVIN ESP32 Basic Starter Kit - وضعیت خروجیحلقه ()
در حلقه()، دکمه فشاری را باز می کنیم و LED را بسته به مقدار ledState روشن یا خاموش می کنیم. متغیرکیت شروع پایه LAFVIN ESP32 - حلقه 1تظاهرات
کد را در برد ESP32 خود آپلود کنید. مراحل مرجع کد آپلود.
سپس، مانیتور سریال را با نرخ باود 115200 باز کنید. دکمه EN/RST روی برد را فشار دهید تا آدرس IP را دریافت کنید.LAFVIN ESP32 Basic Starter Kit - Demonstrationیک مرورگر در شبکه محلی خود باز کنید و آدرس IP ESP را تایپ کنید. شما باید دسترسی داشته باشید web سرور مطابق شکل زیر
توجه: مرورگر شما و ESP32 باید به یک LAN متصل باشند.LAFVIN ESP32 Basic Starter Kit - مرورگرشما می توانید دکمه روی را تغییر دهید web سرور برای روشن کردن LEDکیت اولیه LAFVIN ESP32 - web 1 سرورهمچنین می توانید همان LED را با دکمه فیزیکی کنترل کنید. وضعیت آن همیشه به طور خودکار در به روز می شود web سرور

پروژه 9 ESP32 DHT11 Web سرور

در این پروژه، نحوه ساخت ESP32 ناهمزمان را یاد خواهید گرفت web سرور با DHT11 که دما و رطوبت را با استفاده از Arduino IDE نمایش می دهد.
پیش نیازها
را web سرور ما به‌روزرسانی‌های خواندنی را به‌طور خودکار و بدون نیاز به رفرش ایجاد می‌کنیم web صفحه
با این پروژه یاد خواهید گرفت:

  • نحوه خواندن دما و رطوبت از سنسورهای DHT.
  • یک ناهمزمان بسازید web سرور با استفاده از ESPAsyncWebکتابخانه سرور;
  • خوانش های سنسور را به طور خودکار و بدون نیاز به به روز رسانی به روز کنید web صفحه

ناهمزمان Web سرور
برای ساختن web سروری که از آن استفاده خواهیم کرد ESPAsyncWebکتابخانه سرور که یک راه آسان برای ساختن یک ناهمزمان فراهم می کند web سرور ساخت ناهمزمان web سرور دارای چندین Advan استtagهمانطور که در صفحه کتابخانه GitHub ذکر شده است، مانند:

  • "به طور همزمان بیش از یک اتصال را مدیریت کنید"؛
  • "هنگامی که پاسخ را ارسال می کنید، بلافاصله آماده رسیدگی به سایر اتصالات هستید، در حالی که سرور در حال مراقبت از ارسال پاسخ در پس زمینه است"؛
  • "موتور پردازش قالب ساده برای رسیدگی به الگوها"؛

قطعات مورد نیاز
برای تکمیل این آموزش به قسمت های زیر نیاز دارید:

  • برد توسعه ESP32
  • ماژول DHT11
  • تخته نان
  • سیم های جامپر

نموداریکیت پایه LAFVIN ESP32 - شماتیک 2نصب کتابخانه ها
برای این پروژه باید چند کتابخانه نصب کنید:

نصب کتابخانه سنسور DHT
برای خواندن از حسگر DHT با استفاده از Arduino IDE، باید آن را نصب کنید کتابخانه حسگر DHT. مراحل بعدی را برای نصب کتابخانه دنبال کنید.

  1. برای دانلود کتابخانه سنسور DHT اینجا را کلیک کنید. شما باید یک پوشه .zip در پوشه Downloads خود داشته باشید
  2. پوشه .zip را از حالت فشرده خارج کنید و باید پوشه DHT-sensor-library-master را دریافت کنید.
  3. نام پوشه خود را از DHT-sensor-library-master به DHT_sensor تغییر دهید
  4. پوشه DHT_sensor را به پوشه کتابخانه های نصب Arduino IDE خود منتقل کنید
  5. در نهایت، Arduino IDE خود را دوباره باز کنید

نصب درایور سنسور یکپارچه Adafruit
شما همچنین باید نصب کنید کتابخانه Adafruit Unified Sensor Driver برای کار با سنسور DHT مراحل بعدی را برای نصب کتابخانه دنبال کنید.

  1. برای دانلود کتابخانه Adafruit Unified Sensor اینجا را کلیک کنید. شما باید یک پوشه .zip در پوشه Downloads خود داشته باشید
  2. پوشه .zip را از حالت فشرده خارج کنید و باید پوشه Adafruit_sensor-master را دریافت کنید
  3. نام پوشه خود را از Adafruit_sensor-master به Adafruit_sensor تغییر دهید
  4. پوشه Adafruit_sensor را به پوشه کتابخانه های نصب Arduino IDE خود منتقل کنید
  5. در نهایت، Arduino IDE خود را دوباره باز کنید

نصب ESPAsyncWebکتابخانه سرور

مراحل بعدی را برای نصب دنبال کنید ESPAsyncWebسرور کتابخانه:

  1. برای دانلود ESPAsync اینجا را کلیک کنیدWebکتابخانه سرور باید داشته باشی
    یک پوشه .zip در پوشه دانلودها
  2. پوشه .zip را از حالت فشرده خارج کنید و باید
    ESPAsync را دریافت کنیدWebپوشه سرور-مستر
  3. نام پوشه خود را از ESPAsync تغییر دهیدWebسرور سرور به ESPAsyncWebسرور
  4. ESPAsync را حرکت دهیدWebپوشه سرور به پوشه کتابخانه های نصب Arduino IDE شما

نصب کتابخانه TCP Async برای ESP32
را ESPAsyncWebسرور کتابخانه نیاز به AsyncTCP کتابخانه به کار مراحل بعدی را برای نصب آن کتابخانه دنبال کنید:

  1. برای دانلود کتابخانه AsyncTCP اینجا را کلیک کنید. شما باید یک پوشه .zip در پوشه Downloads خود داشته باشید
  2. پوشه .zip را از حالت فشرده خارج کنید و باید پوشه AsyncTCP-master را دریافت کنید
  3. نام پوشه خود را از AsyncTCP-master به AsyncTCP تغییر دهید
  4. پوشه AsyncTCP را به پوشه کتابخانه های نصب Arduino IDE خود منتقل کنید
  5. در نهایت، Arduino IDE خود را دوباره باز کنید

کد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین قبل از ادامه، مطمئن شوید که افزونه ESP32 را نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDE
پس از نصب کتابخانه های مورد نیاز، کد را باز کنید
Project_9_ESP32_DHT11_Web_Server.ino در آردوینو IDE.
قبل از آپلود کد، فراموش نکنید که اعتبار شبکه خود را وارد کنید تا ESP بتواند به شبکه محلی شما متصل شود.کیت پایه LAFVIN ESP32 - کدکد چگونه کار می کند
در پاراگراف های بعدی نحوه عملکرد کد را توضیح خواهیم داد. اگر می‌خواهید بیشتر بدانید به خواندن ادامه دهید یا به بخش نمایش بروید تا نتیجه نهایی را ببینید.
واردات کتابخانه ها
ابتدا کتابخانه های مورد نیاز را وارد کنید. WiFi، ESPAsyncWebسرور و ESPAsyncTCP برای ساختن مورد نیاز است web سرور Adafruit_Sensor و کتابخانه‌های DHT برای خواندن از حسگرهای DHT11 یا DHT22 مورد نیاز هستند.LAFVIN ESP32 Basic Starter Kit - وارد کردن کتابخانه هاکیت شروع پایه LAFVIN ESP32 - کد چگونه کار می کندتعریف متغیرها
GPIO را که پین ​​داده DHT به آن متصل است، تعریف کنید. در این حالت به GPIO 4 متصل است.LAFVIN ESP32 Basic Starter Kit - تعریف متغیرهاسپس، نوع سنسور DHT مورد استفاده خود را انتخاب کنید. در سابق ماampلی، ما از DHT22 استفاده می کنیم. اگر از نوع دیگری استفاده می‌کنید، فقط باید حسگر خود را حذف کنید و بقیه را نظر دهید.LAFVIN ESP32 Basic Starter Kit - تعریف متغیرها 1

یک شی DHT را با نوع و پینی که قبلاً تعریف کردیم، نمونه سازی کنید.LAFVIN ESP32 Basic Starter Kit - تعریف متغیرها 2یک Async ایجاد کنیدWebشی سرور در پورت 80.LAFVIN ESP32 Basic Starter Kit - تعریف متغیرها 3توابع دما و رطوبت را بخوانید
ما دو تابع ایجاد کرده ایم: یکی برای خواندن دما ما دو تابع ایجاد کرده ایم: یکی برای خواندن دما (readDHTTemperature()) و دیگری برای خواندن رطوبت (readDHTHumidity()).LAFVIN ESP32 Basic Starter Kit - readDHTHhumidityLAFVIN ESP32 Basic Starter Kit - خوانش سنسوردریافت خوانش حسگر به همان سادگی است که استفاده از آن دریافت خوانش حسگر به همان سادگی استفاده از روش‌های readTemperature() و readHumidity() در شی dht است.LAFVIN ESP32 Basic Starter Kit - objectهمچنین شرطی داریم که در صورتی که سنسور نتواند خوانش ها را دریافت کند، دو خط تیره (–) برمی گرداند.کیت شروع پایه LAFVIN ESP32 - قرائتقرائت ها به صورت رشته ای برگردانده می شوند. برای تبدیل یک float به رشته، از تابع String() استفاده کنیدLAFVIN ESP32 Basic Starter Kit - Stringبه طور پیش فرض، ما دما را بر حسب درجه سانتیگراد می خوانیم. برای دریافت دما بر حسب درجه فارنهایت، دما را بر حسب سانتیگراد کامنت کنید و دما را بر حسب فارنهایت از نظر خارج کنید، به طوری که موارد زیر را داشته باشید:کیت اولیه LAFVIN ESP32 - فارنهایتکیت پایه LAFVIN ESP32 - فارنهایت 1کد را آپلود کنید
اکنون کد را در ESP32 خود آپلود کنید. مطمئن شوید که برد و پورت COM مناسب را انتخاب کرده اید. مراحل مرجع کد آپلود.
پس از آپلود، مانیتور سریال را با نرخ باود 115200 باز کنید. دکمه تنظیم مجدد ESP32 را فشار دهید. آدرس IP ESP32 باید در سریال چاپ شود نظارت کنید.LAFVIN ESP32 Basic Starter Kit - کد را آپلود کنیدتظاهرات
یک مرورگر باز کنید و آدرس IP ESP32 را تایپ کنید. شما web سرور باید آخرین قرائت سنسور را نمایش دهد.
توجه: مرورگر شما و ESP32 باید به یک LAN متصل باشند.
توجه داشته باشید که خوانش دما و رطوبت به طور خودکار بدون نیاز به تازه کردن به روز می شود web صفحهکیت شروع پایه LAFVIN ESP32 - نمایش 1

Project_10_ESP32_OLED_Display

این پروژه نحوه استفاده از صفحه نمایش 0.96 اینچی SSD1306 OLED با ESP32 را با استفاده از Arduino IDE نشان می دهد.
نمایشگر 0.96 اینچی OLED را معرفی می کنیم
را صفحه نمایش OLED که در این آموزش از آن استفاده خواهیم کرد، مدل SSD1306 است: یک صفحه نمایش تک رنگ، 0.96 اینچی با 128×64 پیکسل همانطور که در شکل زیر نشان داده شده است.LAFVIN ESP32 Basic Starter Kit - OLED Displayصفحه نمایش OLED نیازی به نور پس زمینه ندارد که منجر به کنتراست بسیار خوبی در محیط های تاریک می شود. علاوه بر این، پیکسل های آن تنها زمانی که روشن هستند انرژی مصرف می کنند، بنابراین نمایشگر OLED در مقایسه با سایر نمایشگرها انرژی کمتری مصرف می کند.
از آنجایی که صفحه نمایش OLED از پروتکل ارتباطی I2C استفاده می کند، سیم کشی بسیار ساده است. می توانید از جدول زیر به عنوان مرجع استفاده کنید.

پین OLED ESP32
وین 3.3 ولت
GND GND
SCL GPIO 22
SDA GPIO 21

نموداریLAFVIN ESP32 Basic Starter Kit - شماتیکنصب SSD1306 OLED Library – ESP32
چندین کتابخانه برای کنترل نمایشگر OLED با ESP32 وجود دارد.
در این آموزش از دو کتابخانه Adafruit استفاده خواهیم کرد: کتابخانه Adafruit_SSD1306 و کتابخانه Adafruit_GFX.
مراحل بعدی را برای نصب آن کتابخانه ها دنبال کنید.

  1. Arduino IDE خود را باز کنید و به Sketch > Include Library > Manage Libraries بروید. مدیر کتابخانه باید باز شود.
  2. "SSD1306" را در کادر جستجو تایپ کنید و کتابخانه SSD1306 را از Adafruit نصب کنید.LAFVIN ESP32 Basic Starter Kit - OLEDLibrary–
  3. پس از نصب کتابخانه SSD1306 از Adafruit، "GFX" را در کادر جستجو تایپ کرده و کتابخانه را نصب کنید.LAFVIN ESP32 Basic Starter Kit - کتابخانه
  4. پس از نصب کتابخانه ها، آردوینو IDE خود را مجددا راه اندازی کنید.

کد
پس از نصب کتابخانه های مورد نیاز، Project_10_ESP32_OLED_Display.ino را در arduino IDE باز کنید. کد
ما ESP32 را با استفاده از Arduino IDE برنامه ریزی می کنیم، بنابراین مطمئن شوید که افزونه ESP32 را قبل از ادامه نصب کرده اید: (اگر قبلاً این مرحله را انجام داده اید، می توانید به مرحله بعدی بروید.)
نصب افزونه ESP32 در Arduino IDEکیت پایه LAFVIN ESP32 - کد 1کیت پایه LAFVIN ESP32 - کد 2کیت پایه LAFVIN ESP32 - کد 3کد چگونه کار می کند
واردات کتابخانه ها
ابتدا باید کتابخانه های لازم را وارد کنید. کتابخانه Wire برای استفاده از I2C و کتابخانه های Adafruit برای نوشتن روی نمایشگر: Adafruit_GFX و Adafruit_SSD1306.LAFVIN ESP32 Basic Starter Kit - Code Works 1LAFVIN ESP32 Basic Starter Kit - Code Works 2صفحه نمایش OLED را راه اندازی کنید
سپس عرض و ارتفاع OLED خود را مشخص می کنید. در این سابقampما از صفحه نمایش 128×64 OLED استفاده می کنیم. اگر از اندازه های دیگری استفاده می کنید، می توانید آن را در متغیرهای SCREEN_WIDTH و SCREEN_HEIGHT تغییر دهید.LAFVIN ESP32 Basic Starter Kit - صفحه نمایش OLEDسپس، یک شیء نمایشی را با عرض و ارتفاعی که قبلاً با پروتکل ارتباطی I2C (&Wire) تعریف شده است، مقداردهی اولیه کنید.LAFVIN ESP32 Basic Starter Kit - پروتکل ارتباطیپارامتر (-1) به این معنی است که صفحه نمایش OLED شما پین RESET ندارد. اگر صفحه نمایش OLED شما دارای پین RESET است، باید به GPIO متصل شود. در این صورت باید شماره GPIO را به عنوان پارامتر ارسال کنید.
در setup()، مانیتور سریال را با سرعت باود 115200 برای اهداف اشکال زدایی مقداردهی کنید.LAFVIN ESP32 Basic Starter Kit - اهدافصفحه نمایش OLED را با متد ()fill به صورت زیر راه اندازی کنید:LAFVIN ESP32 Basic Starter Kit - display.beginLAFVIN ESP32 Basic Starter Kit - Serial.printlnاین قطعه همچنین پیامی را در مانیتور سریال چاپ می کند، در صورتی که قادر به اتصال به نمایشگر نباشیم.

LAFVIN ESP32 Basic Starter Kit - Serial.println 1در صورتی که از صفحه نمایش OLED دیگری استفاده می کنید، ممکن است نیاز باشد آدرس OLED را تغییر دهید. در مورد ما، آدرس 0x3C است.LAFVIN ESP32 Basic Starter Kit - آدرسپس از مقداردهی اولیه نمایشگر، یک تاخیر دو ثانیه ای اضافه کنید تا OLED زمان کافی برای مقداردهی اولیه قبل از نوشتن متن داشته باشد:LAFVIN ESP32 Basic Starter Kit - تاخیریصفحه نمایش را پاک کنید، اندازه فونت، رنگ و متن را تنظیم کنید
پس از مقداردهی اولیه نمایشگر، بافر نمایشگر را با روش clearDisplay() پاک کنید:LAFVIN ESP32 Basic Starter Kit - صفحه نمایش

قبل از نوشتن متن، باید اندازه متن، رنگ و محل نمایش متن در OLED را تعیین کنید.
اندازه فونت را با استفاده از متد setTextSize() تنظیم کنید:LAFVIN ESP32 Basic Starter Kit - صفحه نمایش 1رنگ فونت را با متد setTextColor() تنظیم کنید:
WHITE فونت سفید و پس زمینه سیاه را تنظیم می کند.
محل شروع متن را با استفاده از متد setCursor(x,y) تعیین کنید. در این مورد، متن را به گونه ای تنظیم می کنیم که از مختصات (0,0) - در گوشه بالا سمت چپ شروع شود.LAFVIN ESP32 Basic Starter Kit - setTextColor 1در نهایت می توانید با استفاده از روش println() متن را به صورت زیر به نمایشگر ارسال کنیدLAFVIN ESP32 Basic Starter Kit - کد 5سپس، باید متد display() را فراخوانی کنید تا در واقع متن روی صفحه نمایش داده شود.LAFVIN ESP32 Basic Starter Kit - صفحه نمایش

کتابخانه OLED Adafruit روش های مفیدی را برای اسکرول کردن متن ارائه می دهد.

  • startscrollright (0x00، 0x0F): متن را از چپ به راست اسکرول کنید
  • startscrollleft(0x00, 0x0F): متن را از راست به چپ اسکرول کنید
  • startscrolldiagright(0x00, 0x07): متن را از گوشه پایین سمت چپ به گوشه بالا سمت راست اسکرول کنید startscrolldiagleft(0x00, 0x07): متن را از گوشه پایین سمت راست به گوشه بالا سمت چپ اسکرول کنید

کد را آپلود کنید
اکنون، کد را در ESP32 خود آپلود کنید. مراحل مرجع کد آپلود.
پس از آپلود کد، OLED متن اسکرول را نمایش می دهد.LAFVIN ESP32 Basic Starter Kit - پیمایش متنلوگوی LAFVIN

اسناد / منابع

کیت اولیه LAFVIN ESP32 [pdfدفترچه راهنما
ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *