LAFVIN logotipiESP32 asosiy starter
Kit

O'rama bo'yicha hisob-kitob hujjati; Yuk-mol hujjati

LAFVIN ESP32 asosiy boshlang'ich to'plami - PackingList

ESP32 Kirish

ESP32 uchun yangimi? Bu yerdan boshlang! ESP32 - bu Espressif tomonidan ishlab chiqilgan, Wi-Fi va Bluetooth simsiz imkoniyatlari va ikki yadroli protsessorni o'z ichiga olgan Chipdagi (SoC) mikrokontrollerlar seriyasi. Agar siz ESP8266 bilan tanish bo'lsangiz, ESP32 ko'plab yangi xususiyatlar bilan to'ldirilgan uning vorisi hisoblanadi.LAFVIN ESP32 asosiy boshlang'ich to'plami - ESP32 KirishESP32 texnik xususiyatlari
Agar siz biroz ko'proq texnik va aniqroq ma'lumotga ega bo'lishni istasangiz, ESP32 ning quyidagi batafsil tavsiflarini ko'rib chiqishingiz mumkin (manba: http://esp32.net/) - batafsil ma'lumot uchun, ma'lumotlar varag'ini tekshiring):

  • Simsiz ulanish WiFi: HT150.0 bilan 40 Mbit / s ma'lumot uzatish tezligi
  • Bluetooth: BLE (Bluetooth Low Energy) va Bluetooth Classic
  • Protsessor: Tensilica Xtensa Dual-Core 32-bit LX6 mikroprotsessor, 160 yoki 240 MGts chastotada ishlaydi
  • Xotira:
  • ROM: 448 KB (yuklash va asosiy funktsiyalar uchun)
  • SRAM: 520 KB (ma'lumotlar va ko'rsatmalar uchun)
  • RTC fas SRAM: 8 KB (chuqur uyqu rejimidan RTC yuklash paytida ma'lumotlarni saqlash va asosiy protsessor uchun)
  • RTC sekin SRAM: 8KB (chuqur uyqu rejimida protsessorga kirish uchun) eFuse: 1 Kbit (shundan 256 bit tizim uchun ishlatiladi (MAC manzili va chip konfiguratsiyasi) va qolgan 768 bit mijozlar ilovalari uchun ajratilgan, shu jumladan Flash-shifrlash va chip-ID)

O'rnatilgan flesh: ESP16-D17WD va ESP0-PICO-D1 da IO32, IO2, SD_CMD, SD_CLK, SD_DATA_32 va SD_DATA_4 orqali ichki ulangan flesh.

  • 0 MiB (ESP32-D0WDQ6, ESP32-D0WD va ESP32-S0WD chiplari)
  • 2 Mb (ESP32-D2WD chipi)
  • 4 MiB (ESP32-PICO-D4 SiP moduli)

Kam quvvat: siz hali ham ADC konversiyalaridan foydalanishingiz mumkinligini ta'minlaydi, masalanample, chuqur uyqu paytida.
Periferik kirish/chiqish:

  • kapasitiv teginishni o'z ichiga olgan DMA bilan periferik interfeys
  • ADC (analog-raqamli konvertor)
  • DAC (raqamli-analog konvertori)
  • I²C (Integratsiyalashgan sxema)
  • UART (Universal asinxron qabul qiluvchi/uzatuvchi)
  • SPI (seriyali periferik interfeys)
  • I²S (Integrated Interchip Sound)
  • RMII (qisqartirilgan media-mustaqil interfeys)
  • PWM (impuls kengligi modulyatsiyasi)

Xavfsizlik: AES va SSL/TLS uchun apparat tezlatgichlari

ESP32 ishlab chiqish kengashlari

ESP32 yalang'och ESP32 chipiga ishora qiladi. Biroq, "ESP32" atamasi ESP32 ishlab chiqish kengashlariga nisbatan ham qo'llaniladi. ESP32 yalang'och chiplaridan foydalanish oson yoki amaliy emas, ayniqsa o'rganish, sinovdan o'tkazish va prototiplashda. Ko'pincha siz ESP32 ishlab chiqish taxtasidan foydalanishni xohlaysiz.
Malumot sifatida biz ESP32 DEVKIT V1 platasidan foydalanamiz. Quyidagi rasmda 32 GPIO pinli ESP1 DEVKIT V30 platasi ko‘rsatilgan.LAFVIN ESP32 asosiy boshlang'ich to'plami - ESP32 ishlab chiqish platalariTexnik xususiyatlari – ESP32 DEVKIT V1
Quyidagi jadvalda ESP32 DEVKIT V1 DOIT platasining xususiyatlari va spetsifikatsiyalarining qisqacha mazmuni ko'rsatilgan:

Yadrolar soni 2 (ikki yadroli)
Wi-fi 2.4 GGts dan 150 Mbit/s gacha
Bluetooth BLE (Bluetooth Low Energy) va eski Bluetooth
Arxitektura 32 bit
Soat chastotasi 240 MGts gacha
Ram 512 KB
Pinlar 30 (modelga qarab)
Periferik qurilmalar Kapasitiv sensorli, ADC (analogdan raqamli konvertorga), DAC (raqamlidan analogga o'zgartirgichga), 12C (integrallashgan sxema), UART (universal asinxron qabul qiluvchi/uzatuvchi), CAN 2.0 (Controller Area Netwokr), SPI (Serial Periferik interfeys) , 12S (Integratsiyalashgan Inter-IC
Ovoz), RMII (Reduced Media-Independent Interface), PWM (impuls kengligi modulyatsiyasi) va boshqalar.
O'rnatilgan tugmalar RESET va BOOT tugmalari
O'rnatilgan LEDlar GPIO2 ga ulangan o'rnatilgan ko'k LED; taxta quvvatlanayotganini ko'rsatadigan o'rnatilgan qizil LED
USB-dan UART-ga
ko'prik
CP2102

LAFVIN ESP32 asosiy boshlang'ich to'plami - ESP32 DEVKITU microUSB interfeysi bilan birga keladi, siz kodni yuklash yoki quvvatni ishlatish uchun platani kompyuteringizga ulashda foydalanishingiz mumkin.
U CP2102 chipidan (USB dan UART ga) ketma-ket interfeys yordamida COM porti orqali kompyuteringiz bilan bog'lanish uchun foydalanadi. Yana bir mashhur chip - CH340. Bortingizda USB-UART chip konvertori nima ekanligini tekshiring, chunki kompyuteringiz plata bilan aloqa o'rnatishi uchun kerakli drayverlarni o'rnatishingiz kerak bo'ladi (bu haqda keyinroq ushbu qo'llanmada batafsil ma'lumot oling).
Ushbu plata shuningdek, platani qayta ishga tushirish uchun RESET tugmasi (EN deb belgilangan bo'lishi mumkin) va platani miltillovchi rejimga o'tkazish uchun BOOT tugmasi (kodni olish uchun mavjud) bilan birga keladi. E'tibor bering, ba'zi platalarda BOOT tugmasi bo'lmasligi mumkin.
Shuningdek, u GPIO 2 ga ichki ulangan o'rnatilgan ko'k LED bilan birga keladi. Bu LED nosozliklarni tuzatish uchun qandaydir vizual jismoniy chiqishni berish uchun foydalidir. Doskaga quvvat berganingizda yonib turadigan qizil LED ham mavjud.LAFVIN ESP32 Basic Starter Kit -boardESP32 pinout
ESP32 tashqi qurilmalariga quyidagilar kiradi:

  • 18 ta analog-raqamli konvertor (ADC) kanallari
  • 3 ta SPI interfeysi
  • 3 ta UART interfeysi
  • 2 I2C interfeysi
  • 16 PWM chiqish kanali
  • 2 ta raqamli-analog konvertorlar (DAC)
  • 2 I2S interfeysi
  • 10 ta sig'imli sensorli GPIO

ADC (analogdan raqamli o'zgartirgich) va DAC (raqamlidan analogga o'zgartirgich) xususiyatlari ma'lum statik pinlarga tayinlangan. Biroq, siz qaysi pinlar UART, I2C, SPI, PWM va boshqalar ekanligini tanlashingiz mumkin - ularni faqat kodda belgilashingiz kerak. Bu ESP32 chipining multiplekslash xususiyati tufayli mumkin.
Dasturiy ta'minotda pin xususiyatlarini belgilashingiz mumkin bo'lsa-da, quyidagi rasmda ko'rsatilganidek, sukut bo'yicha tayinlangan pinlar mavjud.LAFVIN ESP32 asosiy boshlang'ich to'plami - ESP32 PinoutBundan tashqari, ma'lum bir loyihaga mos keladigan yoki mos kelmaydigan o'ziga xos xususiyatlarga ega pinlar mavjud. Quyidagi jadvalda qaysi pinlarni kirish, chiqish sifatida ishlatish yaxshiroq va qaysilaridan ehtiyot bo'lishingiz kerakligi ko'rsatilgan.
Yashil rang bilan belgilangan pinlardan foydalanish mumkin. Sariq rang bilan ta'kidlanganlardan foydalanish mumkin, lekin siz e'tibor berishingiz kerak, chunki ular asosan yuklashda kutilmagan xatti-harakatlarga ega bo'lishi mumkin. Qizil rang bilan belgilangan pinlarni kirish yoki chiqish sifatida ishlatish tavsiya etilmaydi.

GP IO Kirish Chiqish Eslatmalar
0 yuqoriga tortdi OK yuklashda PWM signalini chiqaradi, miltillovchi rejimga kirish uchun LOW bo'lishi kerak
1 TX pin OK yuklashda disk raskadrovka chiqishi
2 OK OK bortdagi LEDga ulangan bo'lsa, miltillovchi rejimga kirish uchun suzuvchi yoki LOW bo'lishi kerak
3 OK RX pin Yuklashda YUQORI
4 OK OK
5 OK OK yuklashda PWM signalini, bog'lash pinini chiqaradi
12 OK OK yuklash pinini baland tortsa, muvaffaqiyatsiz bo'ladi
13 OK OK
14 OK OK yuklashda PWM signalini chiqaradi
15 OK OK yuklashda PWM signalini, bog'lash pinini chiqaradi
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 faqat kiritish
35 OK faqat kiritish
36 OK faqat kiritish
39 OK faqat kiritish

ESP32 GPIO va uning funktsiyalarini batafsil va chuqur tahlil qilish uchun o'qishni davom eting.
Faqat pinlarni kiriting
34 dan 39 gacha bo'lgan GPIOlar GPI - faqat kirish pinlari. Ushbu pinlarda ichki tortuvchi yoki pastga tortuvchi rezistorlar mavjud emas. Ularni chiqish sifatida ishlatish mumkin emas, shuning uchun bu pinlarni faqat kirish sifatida foydalaning:

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

ESP-WROOM-32-ga o'rnatilgan SPI chirog'i
GPIO 6 dan GPIO 11 gacha bo'lgan versiyalar ba'zi ESP32 ishlab chiqish platalarida mavjud. Biroq, bu pinlar ESP-WROOM-32 chipidagi o'rnatilgan SPI chirog'iga ulangan va boshqa foydalanish uchun tavsiya etilmaydi. Shunday qilib, loyihalaringizda ushbu pinlardan foydalanmang:

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

Kapasitiv sensorli GPIO'lar
ESP32 10 ta ichki sig'imli sensorli sensorga ega. Ular inson terisi kabi elektr zaryadiga ega bo'lgan har qanday narsadagi o'zgarishlarni sezishi mumkin. Shunday qilib, ular GPIO-larga barmoq bilan teginish paytida yuzaga keladigan o'zgarishlarni aniqlashlari mumkin. Ushbu pinlar osongina sig'imli prokladkalarga birlashtirilishi va mexanik tugmalarni almashtirishi mumkin. Kapasitiv sensorli pinlar ESP32 ni chuqur uyqudan uyg'otish uchun ham ishlatilishi mumkin. Ushbu ichki sensorli sensorlar ushbu GPIO-larga ulangan:

  • 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)

Raqamli konvertorga analog (ADC)
ESP32 18 x 12 bitli ADC kirish kanaliga ega (ESP8266da esa faqat 1x 10 bitli ADC mavjud). Bular ADC va tegishli kanallar sifatida ishlatilishi mumkin bo'lgan GPIO'lar:

  • 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)

Eslatma: Wi-Fi ishlatilayotganda ADC2 pinlaridan foydalanib bo'lmaydi. Shunday qilib, agar siz Wi-Fi dan foydalanayotgan bo'lsangiz va ADC2 GPIO dan qiymat olishda muammoga duch kelsangiz, uning o'rniga ADC1 GPIO dan foydalanishni ko'rib chiqishingiz mumkin. Bu sizning muammoingizni hal qilishi kerak.
ADC kirish kanallari 12 bitli ruxsatga ega. Bu shuni anglatadiki, siz 0 dan 4095 gacha bo'lgan analog ko'rsatkichlarni olishingiz mumkin, bunda 0 0 V ga va 4095 dan 3.3 V ga to'g'ri keladi. Bundan tashqari, kod va ADC diapazonida kanallaringizning o'lchamlarini o'rnatishingiz mumkin.
ESP32 ADC pinlari chiziqli harakatga ega emas. Ehtimol, siz 0 va 0.1 V yoki 3.2 va 3.3 V o'rtasidagi farqni ajrata olmaysiz. ADC pinlarini ishlatganda buni yodda tutishingiz kerak. Quyidagi rasmda ko'rsatilganiga o'xshash xatti-harakatga ega bo'lasiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - xatti-harakatlarRaqamli-analog konvertor (DAC)
Raqamli signallarni analog tovushga aylantirish uchun ESP2 da 8 x 32 bitli DAC kanallari mavjudtage signal chiqishlari. Bular DAC kanallari:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
ESP32 da RTC GPIO qo'llab-quvvatlashi mavjud. RTC kam quvvatli quyi tizimiga yo'naltirilgan GPIO'lar ESP32 chuqur uyqu holatida bo'lganda foydalanish mumkin. Ushbu RTC GPIO'lari Ultra Low bo'lganda ESP32 ni chuqur uyqudan uyg'otish uchun ishlatilishi mumkin
Quvvat (ULP) protsessori ishlamoqda. Quyidagi GPIO'lardan tashqi uyg'onish manbai sifatida foydalanish mumkin.

  • 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
ESP32 LED PWM kontrolleri turli xil xususiyatlarga ega PWM signallarini ishlab chiqarish uchun sozlanishi mumkin bo'lgan 16 ta mustaqil kanalga ega. Chiqish vazifasini bajaradigan barcha pinlar PWM pinlari sifatida ishlatilishi mumkin (GPIO 34 dan 39 gacha PWM hosil qila olmaydi).
PWM signalini o'rnatish uchun siz ushbu parametrlarni kodda belgilashingiz kerak:

  • Signal chastotasi;
  • Ish aylanishi;
  • PWM kanali;
  • Signalni chiqarmoqchi bo'lgan GPIO.

I2C
ESP32 ikkita I2C kanaliga ega va har qanday pin SDA yoki SCL sifatida o'rnatilishi mumkin. ESP32-ni Arduino IDE bilan ishlatganda, standart I2C pinlari:

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

Agar siz simli kutubxonadan foydalanganda boshqa pinlardan foydalanmoqchi bo'lsangiz, shunchaki qo'ng'iroq qilishingiz kerak:
Wire.begin(SDA, SCL);
SPI
Odatiy bo'lib, SPI uchun pin xaritasi:

SPI MOSI MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Uzilishlar
Barcha GPIO'lar uzilishlar sifatida sozlanishi mumkin.
Bog'lash pinlari
ESP32 chipida quyidagi bog'lash pinlari mavjud:

  • GPIO 0 (yuklash rejimiga kirish uchun LOW bo'lishi kerak)
  • GPIO 2 (yuklash paytida suzuvchi yoki LOW bo'lishi kerak)
  • GPIO 4
  • GPIO 5 (yuklash paytida YUKOR bo'lishi kerak)
  • GPIO 12 (yuklash paytida past bo'lishi kerak)
  • GPIO 15 (yuklash paytida YUKOR bo'lishi kerak)

Ular ESP32 ni yuklash yoki miltillovchi rejimga o'tkazish uchun ishlatiladi. O'rnatilgan USB/Serialli ko'pgina ishlab chiqish platalarida bu pinlarning holati haqida tashvishlanishingiz shart emas. Kengash miltillovchi yoki yuklash rejimi uchun pinlarni to'g'ri holatga qo'yadi. ESP32 yuklash rejimini tanlash haqida ko'proq ma'lumotni bu yerda topishingiz mumkin.
Biroq, agar sizda ushbu pinlarga ulangan tashqi qurilmalar bo'lsa, sizda yangi kodni yuklash, ESP32-ni yangi proshivka bilan o'chirish yoki platani qayta o'rnatishda muammo bo'lishi mumkin. Agar sizda bog'lash pinlariga ulangan ba'zi tashqi qurilmalar bo'lsa va kodni yuklash yoki ESP32-ni miltillashda muammoga duch kelsangiz, bu tashqi qurilmalar ESP32-ning to'g'ri rejimga kirishiga to'sqinlik qilayotgan bo'lishi mumkin. Sizni to'g'ri yo'nalishga yo'naltirish uchun yuklash rejimini tanlash hujjatlarini o'qing. Qayta tiklash, miltillash yoki yuklashdan so'ng, bu pinlar kutilganidek ishlaydi.
Yuklashda YUQORI pinlar
Ba'zi GPIO'lar yuklash yoki qayta o'rnatish vaqtida o'z holatini YUKORiga o'zgartiradi yoki PWM signallarini chiqaradi.
Bu shuni anglatadiki, agar sizda ushbu GPIO-larga ulangan chiqishlaringiz bo'lsa, ESP32 qayta o'rnatilganda yoki yuklanganda kutilmagan natijalarga erishishingiz mumkin.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6 dan GPIO 11 gacha (ESP32 o'rnatilgan SPI flesh xotirasiga ulangan - foydalanish tavsiya etilmaydi).
  • GPIO 14
  • GPIO 15

Yoqish (EN)
Enable (EN) 3.3V regulyatorning yoqish pinidir. U yuqoriga tortilgan, shuning uchun 3.3V regulyatorni o'chirish uchun erga ulang. Bu shuni anglatadiki, siz ESP32-ni qayta ishga tushirish uchun tugmachaga ulangan ushbu pindan foydalanishingiz mumkin, masalanample.
GPIO oqimi chizilgan
GPIO uchun olinadigan mutlaq maksimal oqim ESP40 ma'lumotlar jadvalidagi "Tavsiya etilgan ish sharoitlari" bo'limiga muvofiq 32 mA ni tashkil qiladi.
ESP32 o'rnatilgan zal effekti sensori
ESP32 shuningdek, atrofdagi magnit maydondagi o'zgarishlarni aniqlaydigan o'rnatilgan zal effekti sensoriga ega.
ESP32 Arduino IDE
Arduino IDE uchun ESP32 ni Arduino IDE va ​​uning dasturlash tilidan foydalangan holda dasturlash imkonini beruvchi qo‘shimcha mavjud. Ushbu qo'llanmada siz Windows, Mac OS X yoki Linux-dan foydalanayotgan bo'lsangiz, Arduino IDE-da ESP32 platasini qanday o'rnatishni ko'rsatamiz.
Talablar: Arduino IDE o'rnatilgan
Ushbu o'rnatish jarayonini boshlashdan oldin, kompyuteringizda Arduino IDE o'rnatilgan bo'lishi kerak. Arduino IDE-ning ikkita versiyasini o'rnatishingiz mumkin: 1-versiya va 2-versiya.
Quyidagi havolani bosish orqali Arduino IDE-ni yuklab olishingiz va o'rnatishingiz mumkin: arduino.cc/en/Main/Software
Qaysi Arduino IDE versiyasini tavsiya qilamiz? Ayni paytda, ba'zilari bor plugins ESP32 uchun (masalan, SPIFFS FileSystem Uploader Plugin) Arduino 2 da hali qo'llab-quvvatlanmaydi. Shunday qilib, agar siz kelajakda SPIFFS plaginidan foydalanmoqchi bo'lsangiz, 1.8.X eski versiyasini o'rnatishni tavsiya qilamiz. Uni topish uchun Arduino dasturiy ta'minot sahifasini pastga aylantirish kifoya.
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
ESP32 platasini Arduino IDE-ga o'rnatish uchun quyidagi ko'rsatmalarga amal qiling:

  1. Arduino IDE-da quyidagi manzilga o'ting File> AfzalliklarLAFVIN ESP32 asosiy boshlang'ich to'plami - Afzalliklar
  2. “Qo‘shimcha kengash menejeri”ga quyidagilarni kiriting URLs" maydoni:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Keyin "OK" tugmasini bosing:LAFVIN ESP32 asosiy boshlang'ich to'plami - "OK" tugmasiEslatma: Agar sizda allaqachon ESP8266 platalari bo'lsa URLni ajratishingiz mumkin URLs vergul bilan quyidagicha:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Kengashlar menejerini oching. Asboblar > Kengash > Kengashlar menejeriga o‘ting…LAFVIN ESP32 asosiy boshlang'ich to'plami - EspressifNi qidirish ESP32 and press install button for the “ESP32 by Espressif Systems“:LAFVIN ESP32 asosiy boshlang'ich to'plami - EspressifBo'ldi shu. U bir necha soniyadan so'ng o'rnatilishi kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'rnatilgan

Sinov kodini yuklab oling

ESP32 platasini kompyuteringizga ulang. Arduino IDE ochiq holda quyidagi amallarni bajaring:

  1. Asboblar > Kengash menyusida taxtangizni tanlang (mening holimda bu ESP32 DEV moduli)LAFVIN ESP32 asosiy boshlang'ich to'plami - asboblar paneli
  2. Portni tanlang (agar siz Arduino IDE-da MAQOMOTI portini ko'rmasangiz, CP210x USB to UART Bridge VCP drayverlarini o'rnatishingiz kerak):LAFVIN ESP32 asosiy boshlang'ich to'plami - UART ko'prigi
  3. Quyidagi sobiqni ochingample ostida File > Masalanamples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 asosiy boshlang'ich to'plami - WiFiScanLAFVIN ESP32 asosiy boshlang'ich to'plami - WiFiScan 1
  4. Arduino IDE-da yangi eskiz ochiladi:LAFVIN ESP32 asosiy boshlang'ich to'plami - Arduino IDE
  5. Arduino IDE-da Yuklash tugmasini bosing. Kod kompilyatsiya qilinguncha va taxtangizga yuklanguncha bir necha soniya kuting.LAFVIN ESP32 asosiy boshlang'ich to'plami - doska
  6. Agar hamma narsa kutilganidek bo'lsa, "Yuklash tugadi" degan yozuvni ko'rishingiz kerak. xabar.LAFVIN ESP32 asosiy boshlang'ich to'plami - Yuklash tugallandi
  7. Arduino IDE seriyali monitorini 115200 uzatish tezligida oching:LAFVIN ESP32 asosiy boshlang'ich to'plami - Monitor
  8. ESP32 on-board Enable tugmasini bosing va ESP32 yaqinida mavjud tarmoqlarni ko'rishingiz kerak:LAFVIN ESP32 asosiy boshlang'ich to'plami - Yoqish tugmasi

Muammolarni bartaraf qilish; nosozliklarni TUZATISH

Agar siz ESP32-ga yangi eskizni yuklamoqchi bo'lsangiz va siz ushbu xato xabarini olsangiz, "Muhim xatolik yuz berdi: ESP32 ga ulanib bo'lmadi: Vaqt tugadi... Ulanmoqda...". Bu sizning ESP32 miltillovchi/yuklash rejimida emasligini anglatadi.
To'g'ri plata nomi va COM portini tanlagandan so'ng, quyidagi amallarni bajaring:
ESP32 platangizdagi “BOOT” tugmasini bosib turingLAFVIN ESP32 asosiy boshlang'ich to'plami - "BOOT"

  • Eskizingizni yuklash uchun Arduino IDE-dagi “Yuklash” tugmasini bosing:LAFVIN ESP32 asosiy boshlang'ich to'plami - ICON 6
  • "Ulanish..." ni ko'rganingizdan so'ng. Arduino IDE-dagi xabarni "BOOT" tugmasidan qo'yib yuboring:LAFVIN ESP32 asosiy boshlang'ich to'plami - “Yuklash tugallandi
  • Shundan so'ng siz "Yuklash tugallandi" xabarini ko'rishingiz kerak
    Bo'ldi shu. Sizning ESP32-da yangi eskiz ishlayotgan bo'lishi kerak. ESP32 ni qayta ishga tushirish va yangi yuklangan eskizni ishga tushirish uchun “ENABLE” tugmasini bosing.
    Shuningdek, har safar yangi eskiz yuklamoqchi bo‘lganingizda ushbu tugmalar ketma-ketligini takrorlashingiz kerak bo‘ladi.

Loyiha 1 ESP32 kirishlari chiqishlari

Ushbu boshlang'ich qo'llanmada siz Arduino IDE bilan ESP32 yordamida tugmachali kalit kabi raqamli kirishlarni o'qish va LED kabi raqamli chiqishlarni boshqarishni o'rganasiz.
Old shartlar
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz. Shunday qilib, davom etishdan oldin sizda ESP32 platalari qo'shimchasi o'rnatilganligiga ishonch hosil qiling:

  • Arduino IDE-da ESP32 qo'shimchasini o'rnatish

ESP32 Raqamli chiqishlarni boshqarish
Birinchidan, siz nazorat qilmoqchi bo'lgan GPIO-ni OUTPUT sifatida sozlashingiz kerak. PinMode() funksiyasidan quyidagi tarzda foydalaning:
pinMode (GPIO, OUTPUT);
Raqamli chiqishni boshqarish uchun siz argument sifatida qabul qiluvchi digitalWrite() funksiyasidan foydalanishingiz kerak, siz nazarda tutayotgan GPIO (int raqami) va holat, yo YUQORI yoki LOW.
digitalWrite (GPIO, STATE);
6 dan 11 gacha bo'lgan GPIO (o'rnatilgan SPI chirog'iga ulangan) va GPIO 34, 35, 36 va 39 (faqat GPIO'larni kiritish) tashqari barcha GPIO'lar chiqish sifatida ishlatilishi mumkin;
ESP32 GPIO'lar haqida ko'proq bilib oling: ESP32 GPIO Yo'naltiruvchi qo'llanma
ESP32 Raqamli kirishlarni o'qish
Birinchidan, pinMode() funktsiyasidan foydalanib, o'qimoqchi bo'lgan GPIO-ni quyidagi tarzda INPUT sifatida o'rnating:
pinMode (GPIO, INPUT);
Raqamli kirishni o'qish uchun, masalan, tugma kabi, siz argument sifatida qabul qiluvchi digitalRead() funksiyasidan foydalanasiz, ya'ni siz nazarda tutayotgan GPIO (int raqami).
raqamli o'qish (GPIO);
Barcha ESP32 GPIO'lar kirish sifatida ishlatilishi mumkin, GPIO 6 dan 11 gacha (o'rnatilgan SPI chirog'iga ulangan) tashqari.
ESP32 GPIO'lar haqida ko'proq bilib oling: ESP32 GPIO Yo'naltiruvchi qo'llanma
Loyiha Example
Raqamli kirish va raqamli chiqishlardan qanday foydalanishni ko'rsatish uchun biz oddiy loyihani quramizamptugma va LED bilan. Quyidagi rasmda ko'rsatilganidek, tugmachaning holatini o'qiymiz va shunga mos ravishda LEDni yoqamiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - Loyiha Example

Majburiy qismlar
Sxemani qurish uchun sizga kerak bo'lgan qismlar ro'yxati:

  • ESP32 DEVKIT V1
  • 5 mm LED
  • 220 Ohm qarshilik
  • Bosish tugmasi
  • 10k Ohm qarshilik
  • Non taxtasi
  • O'tkazgich simlari

Sxematik diagramma
Davom etishdan oldin siz LED va tugmachali sxemani yig'ishingiz kerak.
Biz LEDni GPIO 5 ga va tugmani GPIO ga ulaymiz 4.LAFVIN ESP32 asosiy boshlang'ich to'plami - sxematik diagrammaKod
Arduino IDE da Project_1_ESP32_Inputs_Outputs.ino kodini ochingLAFVIN ESP32 asosiy boshlang'ich to'plami - KodLAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 1Kod qanday ishlaydi
Quyidagi ikkita qatorda siz pinlarni belgilash uchun o'zgaruvchilar yaratasiz:

LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod ishlaydiTugma GPIO 4 ga ulangan va LED GPIO 5 ga ulangan. Arduino IDE dan ESP32 bilan foydalanilganda 4 GPIO 4 ga va 5 GPIO 5 ga mos keladi.
Keyinchalik, tugma holatini ushlab turish uchun o'zgaruvchi yaratasiz. Odatiy bo'lib, u 0 (bosilmagan).
int tugmasiState = 0;
Setup() da siz tugmani INPUT sifatida, LEDni esa OUTPUT sifatida ishga tushirasiz.
Buning uchun siz nazarda tutayotgan pinni qabul qiluvchi pinMode() funksiyasidan va rejimdan foydalanasiz: INPUT yoki OUTPUT.
pinMode(tugma PIN, INPUT);
pinMode (ledPin, OUTPUT);
Loop() da siz tugma holatini o'qiysiz va LEDni mos ravishda o'rnatasiz.
Keyingi qatorda siz tugma holatini o'qiysiz va uni buttonState o'zgaruvchisida saqlaysiz.
Yuqorida aytib o'tganimizdek, siz digitalRead() funksiyasidan foydalanasiz.
buttonState = digitalRead(buttonPin);
Quyidagi if iborasi tugma holati YUQORI ekanligini tekshiradi. Agar shunday bo'lsa, u ledPin va YUQORI holatini argument sifatida qabul qiluvchi digitalWrite() funksiyasi yordamida LEDni yoqadi.
agar (buttonState == YUKOR)LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod ishlaydi 1Agar tugma holati YUQOR bo'lmasa, siz LEDni o'chirasiz. DigitalWrite() funksiyasida ikkinchi argument sifatida LOW ni o'rnating.LAFVIN ESP32 asosiy boshlang'ich to'plami - digitalWriteKod yuklanmoqda
Yuklash tugmasini bosishdan oldin Asboblar > Kengashga o‘ting va taxtani tanlang: DOIT ESP32 DEVKIT V1.
Asboblar > Port-ga o'ting va ESP32 ulangan MAQOMOTI portini tanlang. Keyin yuklash tugmasini bosing va "Yuklash tugadi" xabarini kuting.LAFVIN ESP32 asosiy boshlang'ich to'plami - ICON 7Eslatma: Agar disk raskadrovka oynasida juda ko‘p nuqta (ulanish…__…__) va “ESP32 ga ulanib bo‘lmadi: paket sarlavhasini kutish vaqti tugadi” xabarini ko‘rsangiz, bu ESP32 bortdagi BOOT tugmasini bosishingiz kerakligini anglatadi. nuqtadan keyin tugmani bosing
paydo bo'la boshlaydi.Muammolarni bartaraf etish

Namoyish

Kodni yuklaganingizdan so'ng, sxemani sinab ko'ring. Tugmani bosganingizda LED yonishi kerak:LAFVIN ESP32 asosiy boshlang'ich to'plami - NamoyishVa uni qo'yib yuborganingizda o'chiring:LAFVIN ESP32 asosiy boshlang'ich to'plami - yoqish

Loyiha 2 ESP32 analog kirishlari

Ushbu loyiha Arduino IDE yordamida ESP32 bilan analog kirishlarni qanday o'qishni ko'rsatadi.
Analog o'qish potansiyometrlar yoki analog sensorlar kabi o'zgaruvchan rezistorlardan qiymatlarni o'qish uchun foydalidir.
Analog kirishlar (ADC)
ESP32 bilan analog qiymatni o'qish siz turli xil hajmni o'lchashingiz mumkinligini anglataditage darajalari 0 V dan 3.3 V gacha.
JildtagKeyin e o'lchangan 0 dan 4095 gacha bo'lgan qiymatga tayinlanadi, bunda 0 V 0 ga, 3.3 V esa 4095 ga to'g'ri keladi.tage 0 V va 3.3 V oralig'ida tegishli qiymat beriladi.LAFVIN ESP32 asosiy boshlang'ich to'plami - Analog kirishlarADC chiziqli emas
Ideal holda, siz ESP32 ADC pinlaridan foydalanganda chiziqli harakatni kutishingiz mumkin.
Biroq, bu sodir bo'lmaydi. Quyidagi diagrammada ko'rsatilganidek, siz nimaga erishasiz:LAFVIN ESP32 asosiy boshlang'ich to'plami - chiziqli bo'lmaganBu sizning ESP32 3.3 V ni 3.2 V dan ajrata olmasligini anglatadi.
Ikkala jild uchun bir xil qiymatga ega bo'lasiztages: 4095.
Xuddi shu narsa juda past hajm uchun sodir bo'laditage qiymatlari: 0 V va 0.1 V uchun siz bir xil qiymatga ega bo'lasiz: 0. ESP32 ADC pinlaridan foydalanganda buni yodda tutishingiz kerak.
analogRead() funktsiyasi
Arduino IDE yordamida ESP32 bilan analog kirishni o'qish analogRead() funksiyasidan foydalanish kabi oddiy. Siz o'qimoqchi bo'lgan GPIO ni argument sifatida qabul qiladi:
analogRead (GPIO);
DEVKIT V15boardda faqat 1 tasi mavjud (30 GPIOli versiya).
ESP32 platasining pinoutini oling va ADC pinlarini toping. Ular quyidagi rasmda qizil chegara bilan ta'kidlangan.LAFVIN ESP32 asosiy boshlang'ich to'plami - chegaraUshbu analog kirish pinlari 12 bitli ruxsatga ega. Bu shuni anglatadiki, siz analog kirishni o'qiyotganingizda, uning diapazoni 0 dan 4095 gacha o'zgarishi mumkin.
Eslatma: Wi-Fi ishlatilayotganda ADC2 pinlaridan foydalanib bo'lmaydi. Shunday qilib, agar siz Wi-Fi-dan foydalansangiz va ADC2 GPIO-dan qiymat olishda muammoga duch kelsangiz, uning o'rniga ADC1 GPIO-dan foydalanishni ko'rib chiqishingiz mumkin, bu sizning muammoingizni hal qilishi kerak.
Hammasi bir-biriga qanday bog'langanligini ko'rish uchun biz oddiy sobiqni qilamizample potentsiometrdan analog qiymatni o'qish uchun.
Majburiy qismlar
Buning uchun sobiqample, sizga quyidagi qismlar kerak bo'ladi:

  • ESP32 DEVKIT V1 platasi
  • Potansiyometre
  • Non taxtasi
  • O'tkazgich simlari

Sxematik
Potansiyometrni ESP32 ga ulang. Potansiyometrning o'rta pinini GPIO 4 ga ulash lozim. Malumot sifatida quyidagi sxematik diagrammadan foydalanishingiz mumkin.LAFVIN ESP32 asosiy boshlang'ich to'plami - SxemaKod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Arduino IDE da Project_2_ESP32_Inputs_Outputs.ino kodini ochingLAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 2Ushbu kod oddiygina potansiyometrdagi qiymatlarni o'qiydi va bu qiymatlarni ketma-ket monitorda chop etadi.
Kodda siz potansiyometr ulangan GPIO ni aniqlashdan boshlaysiz. Bu sobiqample, GPIO 4.LAFVIN ESP32 asosiy boshlang'ich to'plami - masalanampleSetup() da 115200 uzatish tezligida ketma-ket aloqani ishga tushiring.LAFVIN ESP32 asosiy boshlang'ich to'plami - masalanample 1Loop() da potPin-dan analog kiritishni o'qish uchun analogRead() funksiyasidan foydalaning.LAFVIN ESP32 asosiy boshlang'ich to'plami - masalanample 2Nihoyat, ketma-ket monitordagi potansiyometrdan o'qilgan qiymatlarni chop eting.LAFVIN ESP32 asosiy boshlang'ich to'plami - masalanample 3Taqdim etilgan kodni ESP32 ga yuklang. Asboblar menyusida to'g'ri plata va MAQOMOTI porti tanlanganiga ishonch hosil qiling.
Ex testample
Kodni yuklagandan va ESP32 reset tugmasini bosgandan so'ng, 115200 uzatish tezligida Serial Monitorni oching. Potansiyometrni aylantiring va qiymatlarning o'zgarishini ko'ring.Siz oladigan maksimal qiymat 4095, minimal qiymat esa 0.LAFVIN ESP32 Basic Starter Kit -maksimal qiymat

Oʻrash

Ushbu maqolada siz Arduino IDE bilan ESP32 yordamida analog kirishlarni qanday o'qishni o'rgandingiz. Qisqa bayoni; yakunida:

  • ESP32 DEVKIT V1 DOIT platasi (30 pinli versiya) analog kirishlarni o'qish uchun foydalanishingiz mumkin bo'lgan 15 ta ADC piniga ega.
  • Ushbu pinlar 12 bit ruxsatga ega, ya'ni siz 0 dan 4095 gacha qiymatlarni olishingiz mumkin.
  • Arduino IDE-da qiymatni o'qish uchun siz analogRead() funktsiyasidan foydalanishingiz mumkin.
  • ESP32 ADC pinlari chiziqli harakatga ega emas. Ehtimol, siz 0 va 0.1 V yoki 3.2 va 3.3 V o'rtasidagi farqni ajrata olmaysiz. ADC pinlarini ishlatganda buni yodda tutishingiz kerak.

Loyiha 3 ESP32 PWM (Analog chiqish)

Ushbu qo'llanmada biz sizga Arduino IDE yordamida ESP32 yordamida PWM signallarini qanday yaratishni ko'rsatamiz. Sobiq sifatidaampBiz ESP32 ning LED PWM kontrolleri yordamida LEDni xiralashtiradigan oddiy sxemani quramiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - AnalogOutputESP32 LED PWM boshqaruvchisi
ESP32 turli xil xususiyatlarga ega PWM signallarini ishlab chiqarish uchun sozlanishi mumkin bo'lgan 16 ta mustaqil kanalga ega LED PWM kontrolleriga ega.
Arduino IDE yordamida LEDni PWM bilan xiralashtirish uchun quyidagi amallarni bajarishingiz kerak:

  1. Birinchidan, siz PWM kanalini tanlashingiz kerak. 16 dan 0 gacha bo'lgan 15 ta kanal mavjud.
  2. Keyin, PWM signal chastotasini o'rnatishingiz kerak. LED uchun 5000 Gts chastotadan foydalanish yaxshidir.
  3. Shuningdek, siz signalning ish siklining o'lchamlarini o'rnatishingiz kerak: sizda 1 dan 16 bitgacha ruxsat bor. Biz 8 bitli ruxsatdan foydalanamiz, ya'ni siz LED yorqinligini 0 dan 255 gacha bo'lgan qiymatdan foydalanib boshqarishingiz mumkin.
  4.  Keyinchalik, signal qaysi GPIO yoki GPIO-larda paydo bo'lishini belgilashingiz kerak. Buning uchun siz quyidagi funksiyadan foydalanasiz:
    ledcAttachPin(GPIO, kanal)
    Bu funksiya ikkita argumentni qabul qiladi. Birinchisi, signalni chiqaradigan GPIO, ikkinchisi esa signalni ishlab chiqaradigan kanaldir.
  5. Va nihoyat, PWM yordamida LED yorqinligini boshqarish uchun siz quyidagi funktsiyadan foydalanasiz:

ledcWrite (kanal, vazifa sikli)
Ushbu funktsiya PWM signalini ishlab chiqaruvchi kanalni va ish aylanishini argument sifatida qabul qiladi.
Majburiy qismlar
Ushbu qo'llanmani bajarish uchun sizga quyidagi qismlar kerak bo'ladi:

  • ESP32 DEVKIT V1 platasi
  • 5 mm LED
  • 220 Ohm qarshilik
  •  Non taxtasi
  • O'tkazgich simlari

Sxematik
Quyidagi sxematik diagrammadagi kabi LEDni ESP32 ga ulang. LED GPIO ga ulangan bo'lishi kerak 4.LAFVIN ESP32 asosiy boshlang'ich to'plami - SxemaEslatma: siz xohlagan pinni ishlatishingiz mumkin, chunki u chiqish vazifasini bajara oladi. Chiqish vazifasini bajaradigan barcha pinlar PWM pinlari sifatida ishlatilishi mumkin. ESP32 GPIO'lar haqida ko'proq ma'lumot olish uchun o'qing: ESP32 Pinout Ma'lumotnomasi: Qaysi GPIO pinlaridan foydalanish kerak?
Kod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Arduino IDE da Project_3_ESP32_PWM.ino kodini ochingLAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 3LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 4Siz LED ulangan pinni belgilashdan boshlaysiz. Bunday holda, LED GPIO 4 ga ulanadi.LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 5Keyin, siz PWM signal xususiyatlarini o'rnatasiz. Siz 5000 Gts chastotani aniqlaysiz, signalni yaratish uchun 0-kanalni tanlaysiz va 8 bitli ruxsatni o'rnatasiz. Turli PWM signallarini yaratish uchun siz ulardan farq qiladigan boshqa xususiyatlarni tanlashingiz mumkin.LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 6Setup() da siz LED PWM ni argumentlar, ledChannel, chastota va ruxsat sifatida qabul qiluvchi ledcSetup() funksiyasidan foydalanib avval aniqlagan xususiyatlar bilan quyidagicha sozlashingiz kerak:LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 8Keyinchalik, siz signalni oladigan GPIO ni tanlashingiz kerak. Buning uchun signalni olmoqchi bo'lgan GPIO va signalni ishlab chiqaruvchi kanalni argument sifatida qabul qiladigan ledcAttachPin() funksiyasidan foydalaning. Bu sobiqample, biz GPIO 4 ga mos keladigan ledPin GPIO signalini olamiz. Signalni ishlab chiqaruvchi kanal 0 kanaliga mos keladigan ledChannel hisoblanadi.LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 9Loopda siz LED yorqinligini oshirish uchun ish aylanishini 0 dan 255 gacha o'zgartirasiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - yorqinlikVa keyin, yorqinlikni kamaytirish uchun 255 va 0 oralig'ida.LAFVIN ESP32 asosiy boshlang'ich to'plami - yorqinlik 1LEDning yorqinligini o'rnatish uchun siz signalni ishlab chiqaruvchi kanalni va ish aylanishini argument sifatida qabul qiladigan ledcWrite() funktsiyasidan foydalanishingiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - yorqinlik 2Biz 8 bitli ruxsatdan foydalanayotganimiz sababli, ish sikli 0 dan 255 gacha bo'lgan qiymat yordamida boshqariladi. E'tibor bering, ledcWrite() funksiyasida biz GPIO emas, balki signalni ishlab chiqaruvchi kanaldan foydalanamiz.

Ex testample

Kodni ESP32 ga yuklang. To'g'ri plata va MAQOMOTI porti tanlanganligiga ishonch hosil qiling. O'zingizning davringizga qarang. Yorqinlikni oshiradigan va kamaytiradigan dimmer LEDga ega bo'lishingiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - Example

Loyiha 4 ESP32 PIR harakat sensori

Ushbu loyiha PIR harakat sensori yordamida ESP32 yordamida harakatni qanday aniqlashni ko‘rsatadi. Harakat aniqlanganda signal signalini beradi va oldindan belgilangan vaqt davomida (masalan, 4 soniya) hech qanday harakat aniqlanmasa signalni to‘xtatadi.
HC-SR501 harakat sensori qanday ishlaydi
.LAFVIN ESP32 asosiy boshlang'ich to'plami - Harakat sensori ishlaydiHC-SR501 sensorining ishlash printsipi harakatlanuvchi ob'ektdagi infraqizil nurlanishning o'zgarishiga asoslangan. HC-SR501 sensori tomonidan aniqlanishi uchun ob'ekt ikkita talabga javob berishi kerak:

  • Ob'ekt infraqizil yo'l bilan chiqaradi.
  • Ob'ekt harakatlanmoqda yoki titrayapti

Shunday qilib:
Agar ob'ekt infraqizil nurlarini chiqarsa, lekin harakatlanmasa (masalan, odam harakatsiz tursa), u sensor tomonidan aniqlanmaydi.
Agar ob'ekt harakatlansa, lekin infraqizil nurlar chiqarmasa (masalan, robot yoki transport vositasi), u sensor tomonidan aniqlanmaydi.
Taymerlar bilan tanishtirish
Bu example biz taymerlarni ham tanishtiramiz. Harakat aniqlangandan so'ng biz LEDning oldindan belgilangan soniya davomida yonib turishini xohlaymiz. Kodingizni bloklaydigan va ma'lum soniyalar davomida boshqa hech narsa qilishingizga imkon bermaydigan delay() funksiyasidan foydalanish o'rniga biz taymerdan foydalanishimiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - taymerlar bilan tanishishDelay() funktsiyasi
Delay() funksiyasi bilan tanish bo'lishingiz kerak, chunki u keng qo'llaniladi. Ushbu funktsiyadan foydalanish juda oddiy. Argument sifatida bitta int raqamini qabul qiladi.
Bu raqam dastur kodning keyingi qatoriga o'tguncha kutishi kerak bo'lgan vaqtni millisekundlarda ifodalaydi.LAFVIN ESP32 asosiy boshlang'ich to'plami - kodKechiktirsangiz (1000) dasturingiz shu satrda 1 soniya to'xtaydi.
delay() blokirovka qiluvchi funktsiyadir. Bloklash funktsiyalari dasturni ushbu vazifa tugaguniga qadar boshqa hech narsa qilishiga yo'l qo'ymaydi. Agar bir vaqtning o'zida bir nechta vazifalarni bajarish kerak bo'lsa, siz delay() dan foydalana olmaysiz.
Ko'pgina loyihalar uchun siz kechikishlardan qochishingiz va o'rniga taymerlardan foydalanishingiz kerak.
millis() funktsiyasi
Millis() funksiyasidan foydalanib, dastur birinchi boshlanganidan beri o'tgan millisekundlar sonini qaytarishingiz mumkin.LAFVIN ESP32 Basic Starter Kit - dastur birinchi marta ishga tushirildiNima uchun bu funksiya foydali? Chunki ba'zi matematikadan foydalanib, kodingizni bloklamasdan qancha vaqt o'tganini osongina tekshirishingiz mumkin.
Majburiy qismlar
Ushbu qo'llanmani bajarish uchun sizga quyidagi qismlar kerak bo'ladi

  • ESP32 DEVKIT V1 platasi
  • PIR harakat sensori (HC-SR501)
  • Faol buzzer
  • O'tkazgich simlari
  • Non taxtasi

SxematikLAFVIN ESP32 asosiy boshlang'ich to'plami - Sxema 1Eslatma: Ishchi jildtagHC-SR501 ning e - 5V. Uni quvvatlantirish uchun Vin pinidan foydalaning.
Kod
Ushbu qo'llanmani davom ettirishdan oldin Arduino IDE-da ESP32 plaginini o'rnatishingiz kerak. ESP32-ni Arduino IDE-ga o'rnatish uchun quyidagi qo'llanmalardan birini bajaring, agar siz hali o'rnatmagan bo'lsangiz. (Agar siz bu bosqichni allaqachon bajargan bo'lsangiz, keyingi bosqichga o'tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Arduino IDE da Project_4_ESP32_PIR_Motion_Sensor.ino kodini oching.
Namoyish
Kodni ESP32 platangizga yuklang. To'g'ri plata va MAQOMOTI porti tanlanganligiga ishonch hosil qiling. Kodni yuklash uchun mos yozuvlar qadamlari.
Serial monitorni 115200 uzatish tezligida oching.LAFVIN ESP32 asosiy boshlang'ich to'plami - Namoyish 1Qo'lingizni PIR sensori oldida harakatlantiring. Buzzer yoqilishi kerak va “Harakat aniqlandi! Buzzer signali” degan xabar ketma-ket monitorda chop etiladi.
4 soniyadan so'ng signal o'chirilishi kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - signal

Loyiha 5 ESP32 kaliti Web Server

Ushbu loyihada siz mustaqil dastur yaratasiz web Arduino IDE dasturlash muhitidan foydalangan holda chiqishlarni (ikkita LED) boshqaradigan ESP32-ga ega server. The web server mobil javob beradi va mahalliy tarmoqdagi brauzer sifatidagi istalgan qurilmadan foydalanish mumkin. Biz sizga qanday yaratishni ko'rsatamiz web server va kodning bosqichma-bosqich ishlashi.
Loyiha tugadiview
To'g'ridan-to'g'ri loyihaga borishdan oldin, biz nimani anglatishini aniqlab olishimiz kerak web server buni amalga oshiradi, shunda keyinroq amallarni bajarish osonroq bo'ladi.

  • The web siz yaratadigan server ESP32 GPIO 26 va GPIO 27 ga ulangan ikkita LEDni boshqaradi;
  • ESP32 ga kirishingiz mumkin web mahalliy tarmoqdagi brauzerda ESP32 IP manzilini kiritish orqali server;
  • O'zingizdagi tugmalarni bosish orqali web serverda siz har bir LED holatini bir zumda o'zgartirishingiz mumkin.

Majburiy qismlar
Ushbu qo'llanma uchun sizga quyidagi qismlar kerak bo'ladi:

  • ESP32 DEVKIT V1 platasi
  • 2x 5 mm LED
  • 2x 200 Ohm qarshilik
  • Non taxtasi
  • O'tkazgich simlari

Sxematik
Sxemani qurish bilan boshlang. Quyidagi sxematik diagrammada ko'rsatilganidek, ikkita LEDni ESP32 ga ulang - bitta LED GPIO 26 ga, ikkinchisi esa GPIO 27 ga ulangan.
Eslatma: Biz 32 pinli ESP36 DEVKIT DOIT platasidan foydalanmoqdamiz. O'chirishni yig'ishdan oldin, foydalanayotgan plataning pinoutini tekshirganingizga ishonch hosil qiling.LAFVIN ESP32 asosiy boshlang'ich to'plami - SxemaKod
Bu erda biz ESP32 ni yaratadigan kodni taqdim etamiz web server. Project_5_ESP32_Switch _ kodini ochingWeb_Server.ino arduino IDE da, lekin uni hali yuklamang. Siz uchun ishlashi uchun ba'zi o'zgarishlar qilishingiz kerak.
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Tarmoq hisob ma'lumotlarini sozlash
Tarmoq hisob ma'lumotlaringiz bilan quyidagi qatorlarni o'zgartirishingiz kerak: SSID va parol. Kod o'zgartirishlar kiritishingiz kerak bo'lgan joy haqida yaxshi izohlangan.LAFVIN ESP32 asosiy boshlang'ich to'plami - Tarmoq ma'lumotlariKod yuklanmoqda
Endi siz kodni yuklashingiz mumkin va web server darhol ishlaydi.
Kodni ESP32 ga yuklash uchun quyidagi amallarni bajaring:

  1. ESP32 platangizni kompyuteringizga ulang;
  2. Arduino IDE da Asboblar > Kengash bo‘limida taxtangizni tanlang (bizning holatda biz ESP32 DEVKIT DOIT platasidan foydalanamiz);LAFVIN ESP32 asosiy boshlang'ich to'plami - kodni yuklash
  3. Asboblar > Port-da MAQOMOTI portini tanlang.LAFVIN ESP32 asosiy boshlang'ich to'plami - Asboblar porti
  4. Arduino IDE-dagi Yuklash tugmasini bosing va kod kompilyatsiya qilinmaguncha va taxtangizga yuklanguncha bir necha soniya kuting.LAFVIN ESP32 asosiy boshlang'ich to'plami - ICON 7
  5. "Yuklash tugadi" xabarini kuting.LAFVIN ESP32 asosiy boshlang'ich to'plami - 1 yuklash tugadi

ESP IP manzilini topish
Kodni yuklaganingizdan so'ng, Serial Monitorni 115200 uzatish tezligida oching.LAFVIN ESP32 asosiy boshlang'ich to'plami - ESP IP manziliESP32 EN tugmasini bosing (qayta tiklash). ESP32 Wi-Fi tarmog'iga ulanadi va ESP IP manzilini ketma-ket monitorda chiqaradi. Ushbu IP-manzildan nusxa oling, chunki u sizga ESP32-ga kirish uchun kerak web server.LAFVIN ESP32 asosiy boshlang'ich to'plami - web serverga kirish Web Server
Kirish uchun web serverga o'ting, brauzeringizni oching, ESP32 IP manzilini joylashtiring va siz quyidagi sahifani ko'rasiz.
Eslatma: Brauzeringiz va ESP32 bir xil LANga ulangan bo'lishi kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - kirish Web ServerAgar siz ketma-ket monitorga qarasangiz, fonda nima sodir bo'layotganini ko'rishingiz mumkin. ESP yangi mijozdan HTTP so'rovini oladi (bu holda brauzeringiz).LAFVIN ESP32 asosiy boshlang'ich to'plami - HTTP so'roviHTTP so'rovi haqidagi boshqa ma'lumotlarni ham ko'rishingiz mumkin.
Namoyish
Endi siz o'zingizni sinab ko'rishingiz mumkin web server to'g'ri ishlayapti. LEDlarni boshqarish uchun tugmalarni bosing.LAFVIN ESP32 asosiy boshlang'ich to'plami - fonShu bilan birga, siz fonda nima sodir bo'layotganini ko'rish uchun Serial Monitorga qarashingiz mumkin. Misol uchunample, GPIO 26-ni yoqish uchun tugmani bosganingizda, ESP32 /26/on-da so'rov oladi. URL.LAFVIN ESP32 asosiy boshlang'ich to'plami - URLESP32 ushbu so'rovni qabul qilganda, GPIO 26 ga biriktirilgan LEDni yoqadi va uning holatini yangilaydi. web sahifa.LAFVIN ESP32 asosiy boshlang'ich to'plami - web sahifaGPIO 27 tugmasi xuddi shunday ishlaydi. Uning to'g'ri ishlashini tekshiring.LAFVIN ESP32 asosiy boshlang'ich to'plami - to'g'ri ishlaydi

Kod qanday ishlaydi

Ushbu bo'limda uning qanday ishlashini ko'rish uchun kodni batafsil ko'rib chiqamiz.
Siz qilishingiz kerak bo'lgan birinchi narsa - Wi-Fi kutubxonasini kiritish.LAFVIN ESP32 asosiy boshlang'ich to'plami - WiFi kutubxonasiYuqorida aytib o'tilganidek, qo'sh tirnoq ichidagi quyidagi qatorlarga ssid va parolingizni kiritishingiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - ikkita tirnoqKeyin, siz o'zingizni belgilaysiz web serverdan 80-portga.LAFVIN ESP32 asosiy boshlang'ich to'plami - web serverQuyidagi qator HTTP so'rovining sarlavhasini saqlash uchun o'zgaruvchini yaratadi:LAFVIN ESP32 asosiy boshlang'ich to'plami - HTTP so'roviKeyinchalik, natijalaringizning joriy holatini saqlash uchun yordamchi o'zgaruvchilar yaratasiz. Agar siz ko'proq natijalar qo'shish va uning holatini saqlashni istasangiz, ko'proq o'zgaruvchilar yaratishingiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'zgaruvchilarBundan tashqari, har bir chiqishingizga GPIO belgilashingiz kerak. Bu erda biz GPIO 26 va GPIO 27 dan foydalanmoqdamiz. Siz har qanday boshqa mos GPIO'lardan foydalanishingiz mumkin.LAFVIN ESP32 asosiy boshlang'ich to'plami - boshqa mos keladisozlash; o'rnatish()
Endi o'rnatish() ga o'tamiz. Birinchidan, disk raskadrovka maqsadida 115200 uzatish tezligida ketma-ket aloqani boshlaymiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - maqsadlarShuningdek, siz GPIO'laringizni OUTPUT sifatida belgilaysiz va ularni LOW ga o'rnatasiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - OUTPUT sifatida GPIOQuyidagi qatorlar WiFi.begin (ssid, parol) yordamida Wi-Fi ulanishini boshlaydi, muvaffaqiyatli ulanishni kuting va ESP IP manzilini Serial Monitorda chop eting.LAFVIN ESP32 asosiy boshlang'ich to'plami - seriyaliLAFVIN ESP32 asosiy boshlang'ich to'plami - 1-seriyaloop()
Loop() da biz yangi mijoz bilan aloqa o'rnatganida nima sodir bo'lishini dasturlaymiz web server.
ESP32 har doim quyidagi qator bilan kiruvchi mijozlarni tinglaydi:LAFVIN ESP32 asosiy boshlang'ich to'plami - halqaMijozdan so'rov qabul qilinganda, biz kiruvchi ma'lumotlarni saqlaymiz. Mijoz ulangan holda davom etar ekan, keyingi while tsikli ishlaydi. Agar nima qilayotganingizni aniq bilmasangiz, kodning quyidagi qismini o'zgartirishni tavsiya etmaymiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - aynanLAFVIN ESP32 asosiy boshlang'ich to'plami - aynan 1LAFVIN ESP32 asosiy boshlang'ich to'plami - aynan 2If va else iboralarining keyingi qismida qaysi tugma bosilganligi tekshiriladi web sahifani yaratadi va shunga mos ravishda chiqishlarni boshqaradi. Yuqorida aytib o'tganimizdek, biz turli xil so'rovlarni yuboramiz URLs bosilgan tugmaga qarab.LAFVIN ESP32 Basic Starter Kit - tugma bosildiLAFVIN ESP32 asosiy boshlang'ich to'plami - 1 tugmasi bosildiMisol uchunample, agar siz GPIO 26 ON tugmasini bosgan bo'lsangiz, ESP32 /26/ON orqali so'rov oladi. URL (Biz ushbu ma'lumotni Serial Monitordagi HTTP sarlavhasida ko'rishimiz mumkin). Shunday qilib, sarlavhada GET /26/on ifodasi mavjudligini tekshirishimiz mumkin. Agar u mavjud bo'lsa, biz output26state o'zgaruvchisini ON ga o'zgartiramiz va ESP32 LEDni yoqadi.
Bu boshqa tugmalar uchun ham xuddi shunday ishlaydi. Shunday qilib, agar siz ko'proq natijalar qo'shmoqchi bo'lsangiz, ularni kiritish uchun kodning ushbu qismini o'zgartirishingiz kerak.
HTML ko'rsatilmoqda web sahifa
Siz qilishingiz kerak bo'lgan keyingi narsa - yaratishdir web sahifa. ESP32 yaratish uchun ba'zi HTML kodlari bilan brauzeringizga javob yuboradi web sahifa.
The web sahifa ushbu ifodalangan client.println() yordamida mijozga yuboriladi. Argument sifatida mijozga yubormoqchi bo'lgan narsani kiritishingiz kerak.
Biz yuborishimiz kerak bo'lgan birinchi narsa har doim quyidagi satr bo'lib, biz HTML yuborayotganimizni bildiradi.LAFVIN ESP32 Basic Starter Kit - HTML yuborishKeyin, quyidagi qator hosil qiladi web har qanday holatda javob beruvchi sahifa web brauzer.LAFVIN ESP32 asosiy boshlang'ich to'plami - web brauzerFavikonda so'rovlarni oldini olish uchun quyidagilar qo'llaniladi. - Bu chiziq haqida tashvishlanishingizga hojat yo'q.LAFVIN ESP32 asosiy boshlang'ich to'plami - client.println

Styling Web Sahifa

Keyinchalik, tugmalar va tugmalarni shakllantirish uchun bizda ba'zi CSS matnlari mavjud web sahifa ko'rinishi.
Biz Helvetica shriftini tanlaymiz, blok sifatida ko'rsatiladigan tarkibni belgilaymiz va markazga to'g'rilaymiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - Styling Web SahifaBiz tugmachalarimizni #4CAF50 rangi, chegarasiz, oq rangdagi matn va bu toʻldirish bilan: 16px 40px bilan shakllantiramiz. Shuningdek, biz matn dekoratsiyasini none ga o'rnatamiz, shrift o'lchamini, chetini va kursorni ko'rsatgichga belgilaymiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - ko'rsatgichBundan tashqari, biz ikkinchi tugma uchun uslubni belgilaymiz, bu tugmachaning biz avval belgilagan barcha xususiyatlari bilan, lekin boshqa rang bilan. Bu o'chirish tugmasi uchun uslub bo'ladi.LAFVIN ESP32 asosiy boshlang'ich to'plami - client.println 1

ni sozlash Web Birinchi sahifa sarlavhasi
Keyingi qatorda siz o'zingizning birinchi sarlavhangizni o'rnatishingiz mumkin web sahifa. Bu erda bizda "ESP32 Web Server”, lekin siz ushbu matnni xohlaganingizcha o'zgartirishingiz mumkin.LAFVIN ESP32 asosiy boshlang'ich to'plami - Web Sahifa sarlavhasiTugmalar va tegishli holatni ko'rsatish
Keyin, siz GPIO 26 joriy holatini ko'rsatish uchun paragraf yozasiz. Ko'rib turganingizdek, biz output26State o'zgaruvchisidan foydalanamiz, shunda bu o'zgaruvchi o'zgarganda holat darhol yangilanadi.LAFVIN ESP32 Basic Starter Kit - o'zgaruvchan o'zgarishlarKeyin, biz GPIO ning joriy holatiga qarab yoqish yoki o'chirish tugmachasini ko'rsatamiz. Agar GPIO ning joriy holati o'chirilgan bo'lsa, biz ON tugmasini ko'rsatamiz, agar bo'lmasa, biz OFF tugmasini ko'rsatamiz.LAFVIN ESP32 Basic Starter Kit - OFF tugmasini ko'rsatingBiz GPIO 27 uchun xuddi shu protseduradan foydalanamiz.
Ulanishni yopish
Nihoyat, javob tugagach, biz sarlavha o'zgaruvchisini tozalaymiz va client.stop() yordamida mijoz bilan ulanishni to'xtatamiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - Ulanishni yopish

Oʻrash

Ushbu qo'llanmada biz sizga qanday qilib qurishni ko'rsatib berdik web ESP32 bilan server. Biz sizga oddiy sobiqni ko'rsatdikample bu ikkita LEDni boshqaradi, lekin g'oya o'sha LEDlarni o'rni yoki boshqarmoqchi bo'lgan boshqa chiqish bilan almashtirishdir.

Loyiha 6 RGB LED Web Server

Ushbu loyihada biz sizga RGB LEDni ESP32 platasi yordamida masofadan boshqarishni ko'rsatamiz web rang tanlashga ega server.
Loyiha tugadiview
Boshlashdan oldin, keling, ushbu loyiha qanday ishlashini ko'rib chiqaylik:LAFVIN ESP32 asosiy boshlang'ich to'plami - Loyiha tugadiview

  • ESP32 web server rang tanlash vositasini ko'rsatadi.
  • Rangni tanlaganingizda, brauzeringiz a bo'yicha so'rov yuboradi URL tanlangan rangning R, G va B parametrlarini o'z ichiga oladi.
  • Sizning ESP32 so'rovni qabul qiladi va har bir rang parametri uchun qiymatni ajratadi.
  • Keyin, u mos keladigan qiymatga ega PWM signalini RGB LEDni boshqaradigan GPIO'larga yuboradi.

RGB LEDlar qanday ishlaydi?
Umumiy katodli RGB LEDda barcha uchta LED salbiy aloqani (katod) taqsimlaydi. To'plamga kiritilgan barcha umumiy katodli RGB.LAFVIN ESP32 asosiy boshlang'ich to'plami - RGB LEDlar ishlaydiTurli xil ranglarni qanday yaratish mumkin?
RGB LED yordamida siz, albatta, qizil, yashil va ko'k yorug'likni ishlab chiqarishingiz mumkin va har bir LEDning intensivligini sozlash orqali siz boshqa ranglarni ham ishlab chiqarishingiz mumkin.
Misol uchunample, sof ko'k chiroqni ishlab chiqarish uchun siz ko'k LEDni eng yuqori intensivlikka, yashil va qizil LEDlarni esa eng past intensivlikka o'rnatasiz. Oq yorug'lik uchun siz uchta LEDni eng yuqori intensivlikka o'rnatgan bo'lardingiz.
Ranglarni aralashtirish
Boshqa ranglarni ishlab chiqarish uchun siz uchta rangni turli intensivlikda birlashtira olasiz. Har bir LEDning intensivligini sozlash uchun siz PWM signalidan foydalanishingiz mumkin.
LEDlar bir-biriga juda yaqin bo'lgani uchun bizning ko'zlarimiz uchta rangni alohida emas, balki ranglarning kombinatsiyasi natijasini ko'radi.
Ranglarni qanday birlashtirish haqida fikrga ega bo'lish uchun quyidagi jadvalga qarang.
Bu ranglarni aralashtirishning eng oddiy jadvali, lekin u qanday ishlashi va turli xil ranglarni qanday ishlab chiqarish haqida fikr beradi.LAFVIN ESP32 asosiy boshlang'ich to'plami - turli xil ranglarMajburiy qismlar
Ushbu loyiha uchun sizga quyidagi qismlar kerak bo'ladi:

  • ESP32 DEVKIT V1 platasi
  • RGB LED
  • 3x 220 ohm rezistorlar
  • O'tkazgich simlari
  • Non taxtasi

SxematikLAFVIN ESP32 asosiy boshlang'ich to'plami - SxemaKod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)

  • Arduino IDE-da ESP32 qo'shimchasini o'rnatish

Sxemani yig'gandan so'ng, kodni oching
Project_6_RGB_LED_Web_Server.ino arduino IDE da.
Kodni yuklashdan oldin, ESP mahalliy tarmog'ingizga ulanishi uchun tarmoq hisob ma'lumotlarini kiritishni unutmang.LAFVIN ESP32 Basic Starter Kit - mahalliy tarmoqKod qanday ishlaydi
ESP32 eskizi WiFi.h kutubxonasidan foydalanadi.LAFVIN ESP32 asosiy boshlang'ich to'plami - WiFi.h kutubxonasiQuyidagi satrlar so'rovdan R, G va B parametrlarini ushlab turish uchun satr o'zgaruvchilarini belgilaydi.LAFVIN ESP32 asosiy boshlang'ich to'plami - String redStringKeyingi to'rtta o'zgaruvchi HTTP so'rovini keyinchalik dekodlash uchun ishlatiladi.LAFVIN ESP32 asosiy boshlang'ich to'plami - HTTP so'roviR, G va B parametrlarini boshqaradigan GPIO uchun uchta o'zgaruvchi yarating. Bunday holda biz GPIO 13, GPIO 12 va GPIO 14 dan foydalanamiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - GPIO'lar kerakUshbu GPIO'lar PWM signallarini chiqarishi kerak, shuning uchun avval PWM xususiyatlarini sozlashimiz kerak. PWM signal chastotasini 5000 Gts ga o'rnating. Keyin har bir rang uchun PWM kanalini bog'langLAFVIN ESP32 asosiy boshlang'ich to'plami - har bir rangVa nihoyat, PWM kanallarining o'lchamlarini 8 bitga o'rnatingLAFVIN ESP32 asosiy boshlang'ich to'plami - PWM kanallariSetup() da PWM xususiyatlarini PWM kanallariga tayinlangLAFVIN ESP32 asosiy boshlang'ich to'plami - PWM kanallariPWM kanallarini tegishli GPIO-larga ulangLAFVIN ESP32 asosiy boshlang'ich to'plami - tegishli GPIO'larQuyidagi kod bo'limida rang tanlash vositasi ko'rsatiladi web sahifaga o'ting va siz tanlagan rang asosida so'rov yuboradi.LAFVIN ESP32 asosiy boshlang'ich to'plami - tanlanganLAFVIN ESP32 asosiy boshlang'ich to'plami - client.printlnLAFVIN ESP32 asosiy boshlang'ich to'plami - client.println 1Rangni tanlaganingizda, siz quyidagi formatdagi so'rovni olasiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - quyidagi format

Shunday qilib, biz R, G va B parametrlarini olish uchun ushbu satrni ajratishimiz kerak. Parametrlar redString, greenString va blueString o'zgaruvchilarida saqlanadi va 0 dan 255 gacha qiymatlarga ega bo'lishi mumkin.LAFVIN ESP32 asosiy boshlang'ich to'plami - sarlavhaLAFVIN ESP32 asosiy boshlang'ich to'plami - sarlavha 1ESP32 bilan chiziqni boshqarish uchun HTTP-dan dekodlangan qiymatlar bilan PWM signallarini yaratish uchun ledcWrite() funksiyasidan foydalaning. iltimos.LAFVIN ESP32 asosiy boshlang'ich to'plami - HTTP so'rovi 1Eslatma: ESP32 bilan PWM haqida ko'proq bilib oling: Project 3 ESP32 PWM (Analog chiqish)
ESP8266 bilan chiziqni boshqarish uchun biz shunchaki foydalanishimiz kerak
HTPP so'rovidan dekodlangan qiymatlar bilan PWM signallarini yaratish uchun analogWrite() funktsiyasi.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Biz qiymatlarni satr o'zgaruvchisida olganimiz uchun ularni toInt() usuli yordamida butun sonlarga aylantirishimiz kerak.
Namoyish
Tarmoq hisob ma'lumotlarini kiritganingizdan so'ng, o'ng platani va MAQOMOTI portini tanlang va kodni ESP32. Yuklab olish kodiga havola qadamlaringizga yuklang.
Yuklagandan so'ng, Serial Monitorni 115200 uzatish tezligida oching va ESP Enable/Reset tugmasini bosing. Kengashning IP manzilini olishingiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - bir xil LANBrauzeringizni oching va ESP IP manzilini kiriting. Endi RGB LED uchun rang tanlash uchun rang tanlash vositasidan foydalaning.
Keyin rang kuchga kirishi uchun "Rangni o'zgartirish" tugmasini bosishingiz kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - RGB LEDRGB LEDni o'chirish uchun qora rangni tanlang.
Eng kuchli ranglar (rang tanlagichning yuqori qismida) yaxshi natijalarga olib keladigan ranglardir.LAFVIN ESP32 Basic Starter Kit - yaxshi natijalar

Loyiha 7 ESP32 o'rni Web Server

ESP32 bilan o'rni ishlatish AC maishiy texnikani masofadan boshqarishning ajoyib usuli hisoblanadi. Ushbu qo'llanma ESP32 bilan o'rni modulini qanday boshqarishni tushuntiradi.
Biz o'rni moduli qanday ishlashini, o'rni ESP32 ga qanday ulashni va o'rni qurishni ko'rib chiqamiz. web releyni masofadan boshqarish uchun server.
Rele bilan tanishtirish
O'rnimizni elektr bilan boshqariladigan kalit va boshqa har qanday kalit kabi, uni yoqish yoki o'chirish, oqim o'tishi yoki o'tmasligi mumkin. Uni past ovoz bilan boshqarish mumkintages, ESP3.3 GPIO'lar tomonidan taqdim etilgan 32V kabi va bizga yuqori voltsiyani boshqarishga imkon beraditages kabi 12V, 24V yoki tarmoq voltage (Evropada 230V va AQShda 120V).LAFVIN ESP32 asosiy boshlang'ich to'plami - o'rni bilan tanishishChap tomonda yuqori voltni ulash uchun uchta rozetkadan iborat ikkita to'plam mavjudtages va o'ng tomondagi pinlar (past hajmlitage) ESP32 GPIO lariga ulanish.
Asosiy jildtage UlanishlarLAFVIN ESP32 asosiy boshlang'ich to'plami - Mains Voltage UlanishlarOldingi fotosuratda ko'rsatilgan o'rni moduli ikkita ulagichga ega, ularning har biri uchta rozetkaga ega: umumiy (COM), Oddiy yopiq (NC) va Oddiy ochiq (NO).

  • COM: nazorat qilmoqchi bo'lgan oqimni ulang (tarmoq jildtagva).
  • NC (Odatda yopiq): odatda yopiq konfiguratsiya siz o'rni sukut bo'yicha yopilishini xohlaganingizda ishlatiladi. NC COM pinlari ulangan, ya'ni kontaktlarning zanglashiga olib kirish va oqim oqimini to'xtatish uchun ESP32 dan o'rni moduliga signal yubormaguningizcha oqim oqadi.
  • YO'Q (Odatda ochiq): odatda ochiq konfiguratsiya aksincha ishlaydi: YO'Q va MAQOMOTI pinlari o'rtasida hech qanday aloqa yo'q, shuning uchun kontaktlarning zanglashiga olib kirish uchun ESP32 dan signal yubormaguningizcha, kontaktlarning zanglashiga olib keladi.

Tekshirish pinlariLAFVIN ESP32 asosiy boshlang'ich to'plami - Boshqarish pinlariKam ovozlitage tomonida to'rtta pin va uchta pinli to'plam mavjud. Birinchi to'plam modulni quvvatlantirish uchun VCC va GND va pastki va yuqori o'rni nazorat qilish uchun mos ravishda 1 (IN1) va kirish 2 (IN2) dan iborat.
Agar o'rni modulingizda faqat bitta kanal bo'lsa, sizda faqat bitta IN pin bo'ladi. Agar sizda to'rtta kanal bo'lsa, sizda to'rtta IN pinlari bo'ladi va hokazo.
IN pinlariga yuboradigan signal o'rni faol yoki yo'qligini aniqlaydi. Kirish taxminan 2V dan pastga tushganda o'rni ishga tushadi. Bu siz quyidagi stsenariylarga ega bo'lishingizni anglatadi:

  • Odatda yopiq konfiguratsiya (NC):
  • YUQORI signal - oqim oqmoqda
  • LOW signali - oqim oqmayapti
  • Odatda ochiq konfiguratsiya (NO):
  • YUQORI signal - oqim oqmayapti
  • LOW signali - oqimdagi oqim

Oqim ko'pincha oqishi kerak bo'lganda siz odatda yopiq konfiguratsiyadan foydalanishingiz kerak va siz uni vaqti-vaqti bilan to'xtatmoqchisiz.
Oqim vaqti-vaqti bilan oqishini xohlasangiz, odatda ochiq konfiguratsiyadan foydalaning (masalanample, al-ni yoqingamp vaqti-vaqti bilan).
Elektr ta'minotini tanlashLAFVIN ESP32 asosiy boshlang'ich to'plami - quvvat manbai tanlashIkkinchi pin to'plami GND, VCC va JD-VCC pinlaridan iborat.
JD-VCC pin o'rni elektromagnitini quvvatlaydi. E'tibor bering, modulda VCC va JD-VCC pinlarini bog'laydigan o'tish moslamasi bor; bu yerda ko'rsatilgani sariq, lekin sizniki boshqa rang bo'lishi mumkin.
Jumper qopqog'i yoqilgan holda, VCC va JD-VCC pinlari ulanadi. Bu shuni anglatadiki, o'rni elektromagniti to'g'ridan-to'g'ri ESP32 quvvat pinidan quvvatlanadi, shuning uchun o'rni moduli va ESP32 davrlari bir-biridan jismoniy ravishda ajratilmagan.
Jumper qopqog'i bo'lmasa, siz JD-VCC pin orqali o'rni elektromagnitini quvvatlantirish uchun mustaqil quvvat manbasini ta'minlashingiz kerak. Ushbu konfiguratsiya modulning o'rnatilgan optokupleri bilan o'rni ESP32 dan jismoniy izolyatsiya qiladi, bu esa elektr toki urishi holatlarida ESP32 ga zarar yetkazilishining oldini oladi.
SxematikLAFVIN ESP32 asosiy boshlang'ich to'plami - SxemaOgohlantirish: Yuqori hajmdan foydalanishtage quvvat manbalari jiddiy shikastlanishga olib kelishi mumkin.
Shuning uchun yuqori ta'minot hajmi o'rniga 5 mm LEDlar ishlatiladitagtajribada elektron lampalar. Magistral jild bilan tanish bo'lmasangiztagsizga yordam beradigan odamdan so'rang. ESPni dasturlashda yoki kontaktlarning zanglashiga olib o'tishda hamma narsa tarmoqdan uzilganligiga ishonch hosil qilingtage.LAFVIN ESP32 asosiy boshlang'ich to'plami - tarmoq jildtageESP32 uchun kutubxonani o'rnatish
Buni qurish uchun web serverda biz ESPAsync dan foydalanamizWebServer kutubxonasi va AsyncTCP kutubxonasi.
ESPAsync o'rnatilmoqdaWebServer kutubxonasi
O'rnatish uchun keyingi bosqichlarni bajaring ESPAsyncWebServer kutubxona:

  1. ESPAsync dasturini yuklab olish uchun shu yerni bosingWebServer kutubxonasi. Sizda bo'lishi kerak
    Yuklashlar jildida .zip jildi
  2. .zip jildini oching va siz ESPAsync dasturini olishingiz kerakWebServer-master papkasi
  3. ESPAsync-dan jild nomini o'zgartiringWebESPAsync uchun server-masterWebServer
  4. ESPAsync-ni ko'chiringWebServer papkasini Arduino IDE o'rnatish kutubxonalari jildiga

Shu bilan bir qatorda, Arduino IDE-da siz Sketch > Include-ga o'tishingiz mumkin
Kutubxona > .ZIP kutubxonasini qo‘shish… va hozirgina yuklab olingan kutubxonani tanlang.
ESP32 uchun AsyncTCP kutubxonasini o'rnatish
The ESPAsyncWebServer kutubxona talab qiladi AsyncTCP ishlash uchun kutubxona. Kuzatish
ushbu kutubxonani o'rnatish uchun keyingi qadamlar:

  1. AsyncTCP kutubxonasini yuklab olish uchun shu yerni bosing. Yuklashlar jildida .zip jildi bo'lishi kerak
  2. .zip jildini oching va siz AsyncTCP-master jildini olishingiz kerak
    1. Jildingiz nomini AsyncTCP-master-dan AsyncTCP-ga o'zgartiring
    3. AsyncTCP jildini Arduino IDE o'rnatish kutubxonalari jildiga o'tkazing
    4. Nihoyat, Arduino IDE-ni qayta oching

Shu bilan bir qatorda, Arduino IDE-da siz Sketch > Include-ga o'tishingiz mumkin
Kutubxona > .ZIP kutubxonasini qo‘shish… va hozirgina yuklab olingan kutubxonani tanlang.
Kod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Kerakli kutubxonalarni o'rnatgandan so'ng, Project_7_ESP32_Relay_ kodini oching.Web_Server.ino arduino IDE da.
Kodni yuklashdan oldin, ESP mahalliy tarmog'ingizga ulanishi uchun tarmoq hisob ma'lumotlarini kiritishni unutmang.LAFVIN ESP32 Basic Starter Kit - ocal tarmoqNamoyish
Kerakli o'zgarishlarni amalga oshirgandan so'ng, kodni ESP32.Yuklab olish kodiga havola qadamlaringizga yuklang.
Serial Monitorni 115200 uzatish tezligida oching va uning IP manzilini olish uchun ESP32 EN tugmasini bosing. Keyin mahalliy tarmog'ingizda brauzerni oching va ESP32 IP manzilini kiriting. web server.
Serial Monitorni 115200 uzatish tezligida oching va uning IP manzilini olish uchun ESP32 EN tugmasini bosing. Keyin mahalliy tarmog'ingizda brauzerni oching va ESP32 IP manzilini kiriting. web server.LAFVIN ESP32 asosiy boshlang'ich to'plami - web serverEslatma: Brauzeringiz va ESP32 bir xil LANga ulangan bo'lishi kerak.
Siz kodingizda aniqlagan o'rni soni kabi ikkita tugmachani quyidagi kabi olishingiz kerak.LAFVIN ESP32 Basic Starter Kit - smartfonEndi siz smartfoningiz yordamida o'z o'rningizni boshqarish uchun tugmalardan foydalanishingiz mumkin.LAFVIN ESP32 Basic Starter Kit - smartfon 1

Loyiha_8_Chiqish_Holati_Sinxronizatsiya_ Web_Server

Ushbu loyiha ESP32 yoki ESP8266 chiqishlarini a yordamida qanday boshqarishni ko'rsatadi web server va jismoniy tugma bir vaqtning o'zida. Chiqish holati yangilanadi web sahifa jismoniy tugma orqali o'zgartiriladimi yoki web server.
Loyiha tugadiview
Keling, loyiha qanday ishlashini tezda ko'rib chiqaylik.LAFVIN ESP32 asosiy boshlang'ich to'plami - Loyiha tugadiviewESP32 yoki ESP8266 xostlari a web chiqish holatini boshqarish imkonini beruvchi server;

  • Joriy chiqish holati ekranda ko'rsatiladi web server;
  • ESP shuningdek, bir xil chiqishni boshqaradigan jismoniy tugmachaga ulangan;
  • Agar siz jismoniy tugma yordamida chiqish holatini o'zgartirsangiz, uning joriy holati ham yangilanadi web server.

Xulosa qilib aytganda, ushbu loyiha a yordamida bir xil chiqishni boshqarish imkonini beradi web server va tugmani bir vaqtning o'zida. Har safar chiqish holati o'zgarganda, web server yangilanadi.
Majburiy qismlar
Sxemani qurish uchun sizga kerak bo'lgan qismlar ro'yxati:

  • ESP32 DEVKIT V1 platasi
  • 5 mm LED
  • 220 Ohm qarshilik
  • Bosish tugmasi
  • 10k Ohm qarshilik
  • Non taxtasi
  • O'tkazgich simlari

SxematikLAFVIN ESP32 asosiy boshlang'ich to'plami - Sxema 1ESP32 uchun kutubxonani o'rnatish
Buni qurish uchun web serverda biz ESPAsync dan foydalanamizWebServer kutubxonasi va AsyncTCP kutubxonasi.(Agar siz bu qadamni allaqachon bajargan boʻlsangiz, keyingi bosqichga oʻtishingiz mumkin.)
ESPAsync o'rnatilmoqdaWebServer kutubxonasi
ESPAsync-ni o'rnatish uchun keyingi bosqichlarni bajaringWebServer kutubxonasi:

  1. ESPAsync dasturini yuklab olish uchun shu yerni bosingWebServer kutubxonasi. Sizda bo'lishi kerak
    Yuklashlar jildida .zip jildi
  2. .zip jildini oching va siz ESPAsync dasturini olishingiz kerakWebServer-master papkasi
  3. ESPAsync-dan jild nomini o'zgartiringWebESPAsync uchun server-masterWebServer
  4. ESPAsync-ni ko'chiringWebServer papkasini Arduino IDE o'rnatish kutubxonalari jildiga
    Shu bilan bir qatorda, Arduino IDE-da siz Sketch > Include-ga o'tishingiz mumkin
    Kutubxona > .ZIP kutubxonasini qo‘shish… va hozirgina yuklab olingan kutubxonani tanlang.

ESP32 uchun AsyncTCP kutubxonasini o'rnatish
ESPAsyncWebServer kutubxonasi ishlashi uchun AsyncTCP kutubxonasi talab qilinadi. Ushbu kutubxonani o'rnatish uchun quyidagi amallarni bajaring:

  1. AsyncTCP kutubxonasini yuklab olish uchun shu yerni bosing. Yuklashlar jildida .zip jildi bo'lishi kerak
  2. .zip jildini oching va siz AsyncTCP-master jildini olishingiz kerak
  3. Jildingiz nomini AsyncTCP-master-dan AsyncTCP-ga o'zgartiring
  4. AsyncTCP jildini Arduino IDE o'rnatish kutubxonalari jildiga o'tkazing
  5. Nihoyat, Arduino IDE-ni qayta oching
    Shu bilan bir qatorda, Arduino IDE-da siz Sketch > Include-ga o'tishingiz mumkin
    Kutubxona > .ZIP kutubxonasini qo‘shish… va hozirgina yuklab olingan kutubxonani tanlang.

Kod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Kerakli kutubxonalarni o'rnatgandan so'ng, kodni oching
Loyiha_8_Chiqish_Holati_Sinxronizatsiya_Web_Server.ino arduino IDE da.
Kodni yuklashdan oldin, ESP mahalliy tarmog'ingizga ulanishi uchun tarmoq hisob ma'lumotlarini kiritishni unutmang.LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod

Kod qanday ishlaydi

Tugma holati va chiqish holati
ledState o'zgaruvchisi LED chiqish holatini ushlab turadi. Odatiy bo'lib, qachon web server ishga tushdi, u PAY.LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod ishlaydi

ButtonState va lastButtonState tugmachaning bosilgan yoki bosilmaganligini aniqlash uchun ishlatiladi.LAFVIN ESP32 Basic Starter Kit - bosildiTugma (web server)
Biz index_html oʻzgaruvchisidagi tugmani yaratish uchun HTMLni kiritmadik.
Buning sababi, biz uni joriy LED holatiga qarab o'zgartirishni xohlaymiz, uni tugma yordamida ham o'zgartirish mumkin.
Shunday qilib, biz %BUTTONPLACEHOLDER% tugmasi uchun joy ushlagich yaratdik, bu tugma keyinchalik kodda yaratish uchun HTML matni bilan almashtiriladi (bu protsessor() funksiyasida amalga oshiriladi).LAFVIN ESP32 asosiy boshlang'ich to'plami - 1 bosildiprotsessor()
Protsessor() funksiyasi HTML matnidagi har qanday to'ldiruvchini haqiqiy qiymatlar bilan almashtiradi. Birinchidan, u HTML matnlarida biror narsa bor yoki yo'qligini tekshiradi
%BUTTONPLACEHOLDER% joy egalari.LAFVIN ESP32 Basic Starter Kit - protsessorKeyin joriy chiqish holatini qaytaradigan theoutputState() funksiyasini chaqiring. Biz uni outputStateValue o'zgaruvchisida saqlaymiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - outputStateShundan so'ng, tugmani to'g'ri holatda ko'rsatish uchun HTML matnini yaratish uchun ushbu qiymatdan foydalaning:LAFVIN ESP32 asosiy boshlang'ich to'plami - kod 4Chiqish holatini o'zgartirish uchun HTTP GET so'rovi (JavaScript)
Tugmani bosganingizda toggleCheckbox() funksiyasi chaqiriladi. Bu funktsiya boshqasiga so'rov yuboradi URLs LEDni yoqish yoki o'chirish uchun.LAFVIN ESP32 asosiy boshlang'ich to'plami - JavaScriptLEDni yoqish uchun u /update?state=1 bo'yicha so'rov yuboradi URL:LAFVIN ESP32 asosiy boshlang'ich to'plami - element.checkedAks holda, u /update?state=0 bo'yicha so'rov yuboradi URL.
HTTP GET holatini yangilash so'rovi (JavaScript)
Chiqish holatini yangilanib turish uchun web serverda biz /statega yangi so'rov yuboradigan quyidagi funktsiyani chaqiramiz URL har soniyada.LAFVIN ESP32 asosiy boshlang'ich to'plami - Yangilash holatiLAFVIN ESP32 asosiy boshlang'ich to'plami - Yangilash holati 1So'rovlarni ko'rib chiqish
Keyin, biz ESP32 yoki ESP8266 so'rovlarni qabul qilganda nima sodir bo'lishini hal qilishimiz kerak. URLs.
Ildizda so'rov qabul qilinganda /URL, biz HTML sahifani hamda protsessorni yuboramiz.LAFVIN ESP32 asosiy boshlang'ich to'plami - so'rovlarni boshqarishLAFVIN ESP32 asosiy boshlang'ich to'plami - so'rovlarni ko'rib chiqish 1Quyidagi qatorlar /update?state=1 yoki /update?state=0 bo'yicha so'rov olganingizni tekshiradi. URL va shunga mos ravishda ledStateni o'zgartiradi.LAFVIN ESP32 asosiy boshlang'ich to'plami - ledStateLAFVIN ESP32 asosiy boshlang'ich to'plami - inputParam/davlatda so'rov qabul qilinganda URL, biz joriy chiqish holatini yuboramiz:LAFVIN ESP32 Basic Starter Kit - chiqish holatiloop()
Loop() da biz tugmani o'chiramiz va ledState qiymatiga qarab LEDni yoqamiz yoki o'chiramiz. o'zgaruvchan.LAFVIN ESP32 asosiy boshlang'ich to'plami - halqa 1Namoyish
Kodni ESP32 platangizga yuklang. Kodga havola qadamlarini yuklang.
Keyin, 115200 uzatish tezligida Serial Monitorni oching. IP manzilini olish uchun bortdagi EN/RST tugmasini bosing.LAFVIN ESP32 asosiy boshlang'ich to'plami - NamoyishMahalliy tarmoqdagi brauzerni oching va ESP IP manzilini kiriting. Siz kirish huquqiga ega bo'lishingiz kerak web server quyida ko'rsatilganidek.
Eslatma: Brauzeringiz va ESP32 bir xil LANga ulangan bo'lishi kerak.LAFVIN ESP32 Basic Starter Kit - brauzerSiz tugmachani o'zgartirishingiz mumkin web LEDni yoqish uchun server.LAFVIN ESP32 asosiy boshlang'ich to'plami - web 1 serverXuddi shu LEDni jismoniy tugma bilan ham boshqarishingiz mumkin. Uning holati har doim avtomatik ravishda yangilanadi web server.

Loyiha 9 ESP32 DHT11 Web Server

Ushbu loyihada siz asinxron ESP32 ni qanday yaratishni o'rganasiz web Arduino IDE yordamida harorat va namlikni ko'rsatadigan DHT11 serveri.
Old shartlar
The web server biz o'qishni yangilamasdan avtomatik ravishda yangilashni yaratamiz web sahifa.
Ushbu loyiha yordamida siz quyidagilarni o'rganasiz:

  • DHT sensorlaridan harorat va namlikni qanday o'qish mumkin;
  • Asinxron tuzing web yordamida server ESPAsyncWebServer kutubxonasi;
  • Sensor ko'rsatkichlarini yangilamasdan avtomatik ravishda yangilang web sahifa.

Asinxron Web Server
ni qurish uchun web serverdan foydalanamiz ESPAsyncWebServer kutubxonasi bu asinxronni yaratishning oson yo'lini ta'minlaydi web server. Asinxronni qurish web server bir nechta afzalliklarga egatages kutubxonasi GitHub sahifasida aytib o'tilganidek, masalan:

  • "Bir vaqtning o'zida bir nechta ulanishni boshqarish";
  • "Javobni yuborganingizda, server javobni fonda yuborish bilan shug'ullanayotganda, siz darhol boshqa ulanishlarni boshqarishga tayyor bo'lasiz";
  • "Shablonlarni qayta ishlash uchun oddiy shablonni qayta ishlash mexanizmi";

Majburiy qismlar
Ushbu qo'llanmani bajarish uchun sizga quyidagi qismlar kerak bo'ladi:

  • ESP32 ishlab chiqish platasi
  • DHT11 moduli
  • Non taxtasi
  • O'tkazgich simlari

SxematikLAFVIN ESP32 asosiy boshlang'ich to'plami - Sxema 2Kutubxonalarni o'rnatish
Ushbu loyiha uchun bir nechta kutubxonalarni o'rnatishingiz kerak:

DHT Sensor kutubxonasini o'rnatish
Arduino IDE yordamida DHT sensoridan o'qish uchun siz o'rnatishingiz kerak DHT sensori kutubxonasi. Kutubxonani o'rnatish uchun keyingi bosqichlarni bajaring.

  1. DHT Sensor kutubxonasini yuklab olish uchun shu yerni bosing. Yuklashlar jildida .zip jildi bo'lishi kerak
  2. .zip jildini oching va siz DHT-sensor-library-master papkasini olishingiz kerak
  3. Jildingiz nomini DHT-sensor-libraries-masterdan DHT_sensorga o‘zgartiring
  4. DHT_sensor jildini Arduino IDE o'rnatish kutubxonalari jildiga o'tkazing
  5. Nihoyat, Arduino IDE-ni qayta oching

Adafruit Unified Sensor drayverini o'rnatish
ni ham o'rnatishingiz kerak Adafruit Unified Sensor Driver kutubxonasi DHT sensori bilan ishlash uchun. Kutubxonani o'rnatish uchun keyingi bosqichlarni bajaring.

  1. Adafruit Unified Sensor kutubxonasini yuklab olish uchun shu yerni bosing. Yuklashlar jildida .zip jildi bo'lishi kerak
  2. .zip jildini oching va siz Adafruit_sensor-master jildini olishingiz kerak
  3. Jildingiz nomini Adafruit_sensor-master dan Adafruit_sensor ga o'zgartiring
  4. Adafruit_sensor jildini Arduino IDE o'rnatish kutubxonalari jildiga o'tkazing
  5. Nihoyat, Arduino IDE-ni qayta oching

ESPAsync o'rnatilmoqdaWebServer kutubxonasi

O'rnatish uchun keyingi bosqichlarni bajaring ESPAsyncWebServer kutubxona:

  1. ESPAsync dasturini yuklab olish uchun shu yerni bosingWebServer kutubxonasi. Sizda bo'lishi kerak
    Yuklashlar jildida .zip jildi
  2. .zip jildini oching va kerak
    ESPAsync-ni olingWebServer-master papkasi
  3. ESPAsync-dan jild nomini o'zgartiringWebESPAsync uchun server-masterWebServer
  4. ESPAsync-ni ko'chiringWebServer papkasini Arduino IDE o'rnatish kutubxonalari jildiga

ESP32 uchun Async TCP kutubxonasini o'rnatish
The ESPAsyncWebServer kutubxona talab qiladi AsyncTCP ishlash uchun kutubxona. Ushbu kutubxonani o'rnatish uchun quyidagi amallarni bajaring:

  1. AsyncTCP kutubxonasini yuklab olish uchun shu yerni bosing. Yuklashlar jildida .zip jildi bo'lishi kerak
  2. .zip jildini oching va siz AsyncTCP-master jildini olishingiz kerak
  3. Jildingiz nomini AsyncTCP-master-dan AsyncTCP-ga o'zgartiring
  4. AsyncTCP jildini Arduino IDE o'rnatish kutubxonalari jildiga o'tkazing
  5. Nihoyat, Arduino IDE-ni qayta oching

Kod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar siz bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatish
Kerakli kutubxonalarni o'rnatgandan so'ng, kodni oching
Project_9_ESP32_DHT11_Web_Server.ino arduino IDE da.
Kodni yuklashdan oldin, ESP mahalliy tarmog'ingizga ulanishi uchun tarmoq hisob ma'lumotlarini kiritishni unutmang.LAFVIN ESP32 asosiy boshlang'ich to'plami - KodKod qanday ishlaydi
Keyingi paragraflarda biz kod qanday ishlashini tushuntiramiz. Agar siz ko'proq ma'lumot olishni istasangiz, o'qishni davom eting yoki yakuniy natijani ko'rish uchun Namoyish bo'limiga o'ting.
Kutubxonalarni import qilish
Birinchidan, kerakli kutubxonalarni import qiling. WiFi, ESPAsyncWebni yaratish uchun server va ESPAsyncTCP kerak web server. Adafruit_Sensor va DHT kutubxonalari DHT11 yoki DHT22 sensorlaridan o'qish uchun kerak.LAFVIN ESP32 asosiy boshlang'ich to'plami - kutubxonalarni import qilishLAFVIN ESP32 asosiy boshlang'ich to'plami - Kod qanday ishlaydiO'zgaruvchilar ta'rifi
DHT ma'lumotlar piniga ulangan GPIO ni aniqlang. Bunday holda, u GPIO 4 ga ulangan.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'zgaruvchilar ta'rifiKeyin foydalanayotgan DHT sensori turini tanlang. Bizning sobiqimizdaample, biz DHT22 dan foydalanmoqdamiz. Agar siz boshqa turdan foydalanayotgan bo'lsangiz, sensoringizni izohdan olib tashlashingiz va qolganlariga izoh berishingiz kifoya.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'zgaruvchilar ta'rifi 1

Biz ilgari aniqlagan tur va pin bilan DHT ob'ektini yarating.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'zgaruvchilar ta'rifi 2Async yaratingWeb80-portdagi server ob'ekti.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'zgaruvchilar ta'rifi 3Harorat va namlik funktsiyalarini o'qing
Biz ikkita funktsiyani yaratdik: biri haroratni o'qish uchun Biz ikkita funktsiyani yaratdik: biri haroratni o'qish (readDHTTemperature()) va ikkinchisi namlikni o'qish (readDHTHumidity()).LAFVIN ESP32 asosiy boshlang'ich to'plami - o'qingDHT namligiLAFVIN ESP32 asosiy boshlang'ich to'plami - sensor ko'rsatkichlariSensor ko'rsatkichlarini olish, Sensor ko'rsatkichlarini olish dht ob'ektida readTemperature() va readHumidity() usullaridan foydalanish kabi oddiy.LAFVIN ESP32 asosiy boshlang'ich to'plami - ob'ektSensor ko'rsatkichlarni ololmasa, ikkita chiziqcha (-) qaytaradigan shartimiz ham mavjud.LAFVIN ESP32 asosiy boshlang'ich to'plami - o'qishlarO'qishlar satr turi sifatida qaytariladi. Floatni satrga aylantirish uchun String() funksiyasidan foydalaningLAFVIN ESP32 asosiy boshlang'ich to'plami - StringOdatiy bo'lib, biz haroratni Selsiy darajasida o'qiymiz. Farengeyt gradusidagi haroratni bilish uchun haroratni Selsiy bo'yicha izohlang va Farengeytdagi haroratni izohlang, shunda sizda quyidagilar mavjud:LAFVIN ESP32 asosiy boshlang'ich to'plami - FarengeytLAFVIN ESP32 asosiy boshlang'ich to'plami - Farengeyt 1Kodni yuklang
Endi kodni ESP32 ga yuklang. To'g'ri plata va MAQOMOTI porti tanlanganligiga ishonch hosil qiling. Kodni yuklash uchun mos yozuvlar qadamlari.
Yuklagandan so'ng, Serial Monitorni 115200 uzatish tezligida oching. ESP32 reset tugmasini bosing. ESP32 IP manzili ketma-ket chop etilishi kerak monitor.LAFVIN ESP32 asosiy boshlang'ich to'plami - kodni yuklangNamoyish
Brauzerni oching va ESP32 IP manzilini kiriting. Sizning web server oxirgi sensor o'qishlarini ko'rsatishi kerak.
Eslatma: Brauzeringiz va ESP32 bir xil LANga ulangan bo'lishi kerak.
E'tibor bering, harorat va namlik ko'rsatkichlari yangilanishni talab qilmasdan avtomatik ravishda yangilanadi web sahifa.LAFVIN ESP32 asosiy boshlang'ich to'plami - Namoyish 1

Project_10_ESP32_OLED_Display

Ushbu loyiha Arduino IDE yordamida ESP0.96 bilan 1306 dyuymli SSD32 OLED displeydan qanday foydalanishni ko'rsatadi.
0.96 dyuymli OLED displey taqdimoti
The OLED displey Biz ushbu qo'llanmada SSD1306 modelidan foydalanamiz: quyidagi rasmda ko'rsatilganidek, monokolor, 0.96 dyuymli 128×64 pikselli displey.LAFVIN ESP32 asosiy boshlang'ich to'plami - OLEDDisplayOLED displey orqa yorug'likni talab qilmaydi, bu esa qorong'u muhitda juda yaxshi kontrastga olib keladi. Bundan tashqari, uning piksellari faqat yoqilganda energiya sarflaydi, shuning uchun OLED displey boshqa displeylarga qaraganda kamroq quvvat sarflaydi.
OLED displeyi I2C aloqa protokolidan foydalanganligi sababli, simlarni ulash juda oddiy. Malumot sifatida quyidagi jadvaldan foydalanishingiz mumkin.

OLED pin ESP32
Vin 3.3V
GND GND
SCL GPIO 22
SDA GPIO 21

SxematikLAFVIN ESP32 asosiy boshlang'ich to'plami - SxemaSSD1306 OLED kutubxonasini o'rnatish - ESP32
OLED displeyni ESP32 bilan boshqarish uchun bir nechta kutubxonalar mavjud.
Ushbu qo'llanmada biz ikkita Adafruit kutubxonasidan foydalanamiz: Adafruit_SSD1306 kutubxonasi va Adafruit_GFX kutubxonasi.
Ushbu kutubxonalarni o'rnatish uchun keyingi bosqichlarni bajaring.

  1. Arduino IDE-ni oching va Sketch > Include Library > Manage Library-ga o'ting. Kutubxona menejeri ochilishi kerak.
  2. Qidiruv maydoniga "SSD1306" ni kiriting va Adafruit-dan SSD1306 kutubxonasini o'rnating.LAFVIN ESP32 asosiy boshlang'ich to'plami - OLEDLibrary–
  3. Adafruit-dan SSD1306 kutubxonasini o'rnatgandan so'ng, qidiruv maydoniga "GFX" ni kiriting va kutubxonani o'rnating.LAFVIN ESP32 Basic Starter Kit - kutubxona
  4. Kutubxonalarni o'rnatgandan so'ng, Arduino IDE-ni qayta ishga tushiring.

Kod
Kerakli kutubxonalarni o'rnatgandan so'ng, Project_10_ESP32_OLED_Display.ino ni arduino IDE da oching. kod
Biz ESP32 ni Arduino IDE yordamida dasturlashtiramiz, shuning uchun davom etishdan oldin sizda ESP32 qo‘shimchasi o‘rnatilganligiga ishonch hosil qiling: (Agar bu bosqichni allaqachon bajargan bo‘lsangiz, keyingi bosqichga o‘tishingiz mumkin.)
Arduino IDE-da ESP32 qo'shimchasini o'rnatishLAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 1LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 2LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod 3Kod qanday ishlaydi
Kutubxonalarni import qilish
Birinchidan, kerakli kutubxonalarni import qilishingiz kerak. I2C-dan foydalanish uchun Wire kutubxonasi va displeyga yozish uchun Adafruit kutubxonalari: Adafruit_GFX va Adafruit_SSD1306.LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod ishlaydi 1LAFVIN ESP32 asosiy boshlang'ich to'plami - Kod ishlaydi 2OLED displeyni ishga tushiring
Keyin OLED kengligi va balandligini aniqlaysiz. Bu sobiqample, biz 128×64 OLED displeydan foydalanmoqdamiz. Agar siz boshqa oʻlchamlardan foydalanayotgan boʻlsangiz, uni SCREEN_WIDTH va SCREEN_HEIGHT oʻzgaruvchilarda oʻzgartirishingiz mumkin.LAFVIN ESP32 asosiy boshlang'ich to'plami - OLED displeyKeyin, I2C aloqa protokoli (&Wire) yordamida ilgari belgilangan kenglik va balandlik bilan ko'rsatish ob'ektini ishga tushiring.LAFVIN ESP32 Basic Starter Kit - aloqa protokoli(-1) parametr sizning OLED displeyingizda RESET piniga ega emasligini bildiradi. Agar OLED displeyingiz RESET piniga ega bo'lsa, u GPIO ga ulangan bo'lishi kerak. Bunday holda, siz GPIO raqamini parametr sifatida topshirishingiz kerak.
Setup() da disk raskadrovka maqsadida Serial Monitorni 115200 uzatish tezligida ishga tushiring.LAFVIN ESP32 asosiy boshlang'ich to'plami - maqsadlarOLED displeyni start() usuli bilan quyidagi tarzda ishga tushiring:LAFVIN ESP32 asosiy boshlang'ich to'plami - display.beginLAFVIN ESP32 asosiy boshlang'ich to'plami - Serial.printlnUshbu parcha, shuningdek, displeyga ulana olmasak, Serial Monitorda xabarni chop etadi.

LAFVIN ESP32 asosiy boshlang'ich to'plami - Serial.println 1Agar siz boshqa OLED displeydan foydalanayotgan bo'lsangiz, OLED manzilini o'zgartirishingiz kerak bo'lishi mumkin. Bizning holatda, manzil 0x3C.LAFVIN ESP32 asosiy boshlang'ich to'plami - manzilDispleyni ishga tushirgandan so'ng, OLED matn yozishdan oldin ishga tushirish uchun etarli vaqtga ega bo'lishi uchun ikki soniya kechikish qo'shing:LAFVIN ESP32 asosiy boshlang'ich to'plami - kechikishDispleyni tozalang, shrift hajmini, rangini o'rnating va matn yozing
Displeyni ishga tushirgandan so'ng, displey buferini clearDisplay() usuli bilan tozalang:LAFVIN ESP32 Basic Starter Kit - displey

Matn yozishdan oldin siz matn hajmini, rangini va matn OLED-da ko'rsatiladigan joyni belgilashingiz kerak.
Shrift hajmini setTextSize() usuli yordamida o'rnating:LAFVIN ESP32 asosiy boshlang'ich to'plami - displey 1Shrift rangini setTextColor() usuli bilan o'rnating:
WHITE oq shrift va qora fonni o'rnatadi.
setCursor(x,y) usuli yordamida matn boshlanadigan joyni aniqlang. Bunday holda, biz matnni (0,0) koordinatalardan boshlanadigan qilib o'rnatamiz - yuqori chap burchakda.LAFVIN ESP32 asosiy boshlang'ich to'plami - setTextColor 1Nihoyat, siz println() usuli yordamida matnni quyidagi tarzda displeyga yuborishingiz mumkinLAFVIN ESP32 asosiy boshlang'ich to'plami - kod 5Keyin, matnni ekranda ko'rsatish uchun displey() usulini chaqirishingiz kerak.LAFVIN ESP32 Basic Starter Kit - displey

Adafruit OLED kutubxonasi matnni osongina aylantirish uchun foydali usullarni taqdim etadi.

  • startscrollright(0x00, 0x0F): matnni chapdan oʻngga aylantiring
  • startscrollleft(0x00, 0x0F): matnni o'ngdan chapga aylantiring
  • startscrolldiagright(0x00, 0x07): matnni pastki chap burchakdan o‘ng yuqori burchakka aylantiring startscrolldiagleft(0x00, 0x07): matnni o‘ng pastki burchakdan chap yuqori burchakka aylantiring

Kodni yuklang
Endi kodni ESP32.Yuklab olish kodiga havola qadamlaringizga yuklang.
Kodni yuklaganingizdan so'ng, OLED aylantiruvchi matnni ko'rsatadi.LAFVIN ESP32 asosiy boshlang'ich to'plami - matnni aylantirishLAFVIN logotipi

Hujjatlar / manbalar

LAFVIN ESP32 asosiy boshlang'ich to'plami [pdf] Qo'llanma
ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit

Ma'lumotnomalar

Fikr qoldiring

Sizning elektron pochta manzilingiz nashr etilmaydi. Majburiy maydonlar belgilangan *