LAFVIN-ის ლოგოESP32 ძირითადი დამწყები
ნაკრები

შეფუთვის სია

LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - შეფუთვის სია

ESP32 შესავალი

ახალია ESP32? დაიწყე აქედან! ESP32 არის ჩიპზე (SoC) მიკროკონტროლერების სერია, რომელიც შემუშავებულია Espressif-ის მიერ, რომელიც მოიცავს Wi-Fi და Bluetooth უკაბელო შესაძლებლობებს და ორბირთვიან პროცესორს. თუ თქვენ იცნობთ ESP8266-ს, ESP32 არის მისი მემკვიდრე, დატვირთული უამრავი ახალი ფუნქციით.LAFVIN ESP32 Basic Starter Kit - ESP32 შესავალიESP32 სპეციფიკაციები
თუ გსურთ მიიღოთ ცოტა უფრო ტექნიკური და კონკრეტული, შეგიძლიათ გადახედოთ ESP32-ის შემდეგ დეტალურ სპეციფიკაციებს (წყარო: http://esp32.net/) - დამატებითი დეტალებისთვის, შეამოწმეთ მონაცემთა ფურცელი):

  • უსადენო კავშირი WiFi: 150.0 Mbps მონაცემთა სიჩქარე HT40-ით
  • Bluetooth: BLE (Bluetooth Low Energy) და Bluetooth Classic
  • პროცესორი: Tensilica Xtensa Dual-Core 32-bit LX6 მიკროპროცესორი, მუშაობს 160 ან 240 MHz-ზე
  • მეხსიერება:
  • ROM: 448 KB (ჩატვირთვისა და ძირითადი ფუნქციებისთვის)
  • SRAM: 520 KB (მონაცემებისა და ინსტრუქციებისთვის)
  • RTC fas SRAM: 8 KB (მონაცემთა შესანახად და მთავარი CPU-სთვის RTC ჩატვირთვისას ღრმა ძილის რეჟიმიდან)
  • RTC ნელი SRAM: 8KB (თანაპროცესორთან წვდომისთვის ღრმა ძილის რეჟიმში) eFuse: 1 Kbit (აქედან 256 ბიტი გამოიყენება სისტემისთვის (MAC მისამართი და ჩიპის კონფიგურაცია) და დარჩენილი 768 ბიტი დაცულია მომხმარებლის აპლიკაციებისთვის, მათ შორის Flash-შიფრაცია და Chip-ID)

ჩაშენებული ფლეშ: ფლეშ ჩართულია შიდა IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 და SD_DATA_1 ESP32-D2WD-ზე და ESP32-PICO-D4-ზე.

  • 0 MiB (ESP32-D0WDQ6, ESP32-D0WD და ESP32-S0WD ჩიპები)
  • 2 MiB (ESP32-D2WD ჩიპი)
  • 4 MiB (ESP32-PICO-D4 SiP მოდული)

დაბალი სიმძლავრე: უზრუნველყოფს, რომ კვლავ შეგიძლიათ გამოიყენოთ ADC კონვერტაციები, მაგampღრმა ძილის დროს.
პერიფერიული შეყვანა/გამომავალი:

  • პერიფერიული ინტერფეისი DMA-ით, რომელიც მოიცავს capacitive touch-ს
  • 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 (ორბირთვიანი)
Wi-Fi 2.4 გჰც 150 მბიტ/წმ-მდე
Bluetooth BLE (Bluetooth Low Energy) და ძველი Bluetooth
არქიტექტურა 32 ბიტი
საათის სიხშირე 240 MHz-მდე
ოპერატიული მეხსიერება 512 კბ
ქინძისთავები 30 (დამოკიდებულია მოდელზე)
პერიფერიული მოწყობილობები ტევადი შეხება, ADC (ანალოგური ციფრული გადამყვანი), DAC (ციფრული ანალოგური გადამყვანი), 12C (ინტეგრირებული წრე), UART (უნივერსალური ასინქრონული მიმღები/გადამცემი), CAN 2.0 (კონტროლერის არეალის ქსელი), SPI (სერიული პერიფერიული ინტერფეისი) , 12S (ინტეგრირებული ინტერ-IC
ხმა), RMII (შემცირებული მედია დამოუკიდებელი ინტერფეისი), PWM (პულსის სიგანის მოდულაცია) და სხვა.
ჩაშენებული ღილაკები RESET და BOOT ღილაკები
ჩამონტაჟებული LED-ები ჩაშენებული ლურჯი LED, რომელიც დაკავშირებულია GPIO2-თან; ჩაშენებული წითელი LED, რომელიც აჩვენებს, რომ დაფა იკვებება
USB UART-ზე
ხიდი
CP2102

LAFVIN ESP32 Basic Starter Kit - ESP32 DEVKITმას გააჩნია microUSB ინტერფეისი, რომელიც შეგიძლიათ გამოიყენოთ დაფის დასაკავშირებლად თქვენს კომპიუტერთან კოდის ასატვირთად ან დენის გამოსაყენებლად.
ის იყენებს CP2102 ჩიპს (USB to UART) თქვენს კომპიუტერთან კომუნიკაციისთვის COM პორტის საშუალებით სერიული ინტერფეისის გამოყენებით. კიდევ ერთი პოპულარული ჩიპი არის CH340. შეამოწმეთ, რა არის USB-დან UART ჩიპის გადამყვანი თქვენს დაფაზე, რადგან თქვენ უნდა დააინსტალიროთ საჭირო დრაივერები, რათა კომპიუტერმა შეძლოს დაფასთან კომუნიკაცია (დამატებითი ინფორმაცია ამის შესახებ მოგვიანებით ამ სახელმძღვანელოში).
ამ დაფას ასევე მოყვება RESET ღილაკი (შეიძლება ეწოდოს EN) დაფის გადატვირთვისთვის და BOOT ღილაკი დაფის ციმციმის რეჟიმში დასაყენებლად (ხელმისაწვდომია კოდის მისაღებად). გაითვალისწინეთ, რომ ზოგიერთ დაფას შეიძლება არ ჰქონდეს BOOT ღილაკი.
მას ასევე გააჩნია ჩაშენებული ლურჯი LED, რომელიც იძულებით არის დაკავშირებული GPIO 2-თან. ეს LED გამოსადეგია გამართვისთვის, რათა გარკვეული ვიზუალური ფიზიკური გამომავალი იყოს. ასევე არის წითელი LED, რომელიც ანათებს, როდესაც თქვენ მიაწოდებთ დაფას ელექტროენერგიით.LAFVIN ESP32 Basic Starter Kit-დაფაESP32 Pinout
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-ზე, უნდა დარჩეს მცურავი ან დაბალი, რათა შეხვიდეთ ციმციმის რეჟიმში
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 მხოლოდ შეყვანა

განაგრძეთ კითხვა ESP32 GPIO-ების და მისი ფუნქციების უფრო დეტალური და სიღრმისეული ანალიზისთვის.
შეიყვანეთ მხოლოდ ქინძისთავები
GPIO 34-დან 39-მდე არის GPI - შეიყვანეთ მხოლოდ ქინძისთავები. ამ ქინძისთავებს არ აქვთ შიდა ასაწევი ან ჩამოსაშლელი რეზისტორები. მათი გამოყენება არ შეიძლება გამოსავალებად, ამიტომ გამოიყენეთ ეს ქინძისთავები მხოლოდ შეყვანის სახით:

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

SPI flash ინტეგრირებული 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)

Capacitive touch GPIOs
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-ს აქვს 18 x 12 ბიტიანი ADC შეყვანის არხები (მაშინ, როცა ESP8266-ს აქვს მხოლოდ 1x10 ბიტიანი 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)

შენიშვნა: ADC2 პინების გამოყენება შეუძლებელია Wi-Fi-ის გამოყენებისას. ასე რომ, თუ იყენებთ Wi-Fi-ს და გიჭირთ მნიშვნელობის მიღება ADC2 GPIO-დან, შეგიძლიათ გამოიყენოთ ADC1 GPIO. ამან უნდა გადაჭრას შენი პრობლემა.
ADC შეყვანის არხებს აქვს 12 ბიტიანი გარჩევადობა. ეს ნიშნავს, რომ თქვენ შეგიძლიათ მიიღოთ ანალოგური წაკითხვები 0-დან 4095-მდე, რომელშიც 0 შეესაბამება 0V-ს და 4095-დან 3.3V-მდე. თქვენ ასევე შეგიძლიათ დააყენოთ თქვენი არხების გარჩევადობა კოდზე და ADC დიაპაზონზე.
ESP32 ADC პინებს არ აქვთ ხაზოვანი ქცევა. თქვენ ალბათ ვერ შეძლებთ განასხვავოთ 0 და 0.1 ვ, ან 3.2 და 3.3 ვ. თქვენ უნდა გაითვალისწინოთ ეს ADC პინების გამოყენებისას. თქვენ მიიღებთ მსგავს ქცევას, რაც ნაჩვენებია შემდეგ ფიგურაში.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ქცევაციფრული ანალოგური გადამყვანი (DAC)
ESP2-ზე არის 8 x 32 ბიტიანი DAC არხი ციფრული სიგნალების ანალოგურ მოცულობაში გადასაყვანადtage სიგნალის გამომავალი. ეს არის DAC არხები:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
ESP32-ზე არის RTC GPIO მხარდაჭერა. RTC დაბალი სიმძლავრის ქვესისტემაზე გადაყვანილი GPIO შეიძლება გამოყენებულ იქნას, როდესაც ESP32 ღრმა ძილშია. ეს RTC GPIO შეიძლება გამოყენებულ იქნას 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
ESP32 LED PWM კონტროლერს აქვს 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 (ჩატვირთვის რეჟიმში შესასვლელად უნდა იყოს დაბალი)
  • GPIO 2 (ჩატვირთვისას უნდა იყოს მცურავი ან დაბალი)
  • GPIO 4
  • GPIO 5 (ჩატვირთვისას მაღალი უნდა იყოს)
  • GPIO 12 (ჩატვირთვისას დაბალი უნდა იყოს)
  • GPIO 15 (ჩატვირთვისას მაღალი უნდა იყოს)

ისინი გამოიყენება ESP32-ის ჩამტვირთველში ან ციმციმის რეჟიმში დასაყენებლად. უმეტეს დეველოპერულ დაფებზე ჩაშენებული USB/სერიული, თქვენ არ გჭირდებათ ფიქრი ამ ქინძისთავების მდგომარეობის შესახებ. დაფა აყენებს ქინძისთავებს სწორ მდგომარეობაში ციმციმის ან ჩატვირთვის რეჟიმში. დამატებითი ინფორმაცია ESP32 Boot Mode Selection-ის შესახებ შეგიძლიათ იხილოთ აქ.
თუმცა, თუ თქვენ გაქვთ პერიფერიული მოწყობილობები დაკავშირებული ამ ქინძისთავებთან, შეიძლება გაგიჭირდეთ ახალი კოდის ატვირთვის მცდელობა, ESP32-ის გამორთვა ახალი firmware-ით ან დაფის გადატვირთვა. თუ თქვენ გაქვთ რამდენიმე პერიფერიული მოწყობილობა დაკავშირებული სამაგრის ქინძისთავებთან და პრობლემები გაქვთ კოდის ატვირთვისას ან ESP32-ის ციმციმის დროს, ეს შეიძლება იყოს იმიტომ, რომ ეს პერიფერიული მოწყობილობები ხელს უშლიან ESP32-ს სწორ რეჟიმში შესვლას. წაიკითხეთ ჩატვირთვის რეჟიმის შერჩევის დოკუმენტაცია, რათა გაგიწიოთ სწორი მიმართულებით. გადატვირთვის, ციმციმის ან ჩატვირთვის შემდეგ, ეს ქინძისთავები მუშაობს ისე, როგორც მოსალოდნელია.
ამაგრებს HIGH ჩატვირთვისას
ზოგიერთი GPIO ცვლის თავის მდგომარეობას HIGH-ზე ან გამოსცემს PWM სიგნალებს ჩატვირთვის ან გადატვირთვისას.
ეს ნიშნავს, რომ თუ ამ GPIO-ებთან დაკავშირებული გამომავალი გაქვთ, შეიძლება მიიღოთ მოულოდნელი შედეგები ESP32-ის გადატვირთვის ან ჩატვირთვისას.

  • GPIO 1
  • GPIO 3
  • GPIO 5
  • GPIO 6-დან GPIO 11-მდე (დაკავშირებულია ESP32 ინტეგრირებულ SPI ფლეშ მეხსიერებასთან – არ არის რეკომენდებული გამოყენება).
  • GPIO 14
  • GPIO 15

ჩართვა (EN)
Enable (EN) არის 3.3V რეგულატორის ჩართვის პინი. ის ამოწეულია, ამიტომ დააკავშირეთ მიწაზე 3.3 ვ რეგულატორის გამორთვისთვის. ეს ნიშნავს, რომ თქვენ შეგიძლიათ გამოიყენოთ ეს პინი, რომელიც დაკავშირებულია ღილაკთან, რომ გადატვირთოთ თქვენი ESP32, მაგალითადampლე.
GPIO დენი შედგენილია
GPIO-ზე გაყვანილი აბსოლუტური მაქსიმალური დენი არის 40 mA ESP32 მონაცემთა ფურცლის „რეკომენდებული საოპერაციო პირობების“ განყოფილების შესაბამისად.
ESP32 ჩაშენებული ჰოლის ეფექტის სენსორი
ESP32 ასევე აღჭურვილია ჰოლის ეფექტის ჩაშენებული სენსორით, რომელიც აღმოაჩენს ცვლილებებს მაგნიტურ ველში მის შემოგარენში
ESP32 Arduino IDE
არის დანამატი Arduino IDE-სთვის, რომელიც საშუალებას გაძლევთ დაპროგრამოთ ESP32 Arduino IDE-ისა და მისი პროგრამირების ენის გამოყენებით. ამ სახელმძღვანელოში ჩვენ გაჩვენებთ, თუ როგორ დააინსტალიროთ ESP32 დაფა Arduino IDE-ში, მიუხედავად იმისა, იყენებთ Windows-ს, Mac OS X-ს თუ Linux-ს.
წინაპირობები: დაინსტალირებულია Arduino IDE
ამ ინსტალაციის პროცედურის დაწყებამდე, თქვენ უნდა გქონდეთ დაინსტალირებული Arduino IDE თქვენს კომპიუტერში. არსებობს Arduino IDE-ის ორი ვერსია, რომელიც შეგიძლიათ დააინსტალიროთ: ვერსია 1 და ვერსია 2.
შეგიძლიათ ჩამოტვირთოთ და დააინსტალიროთ Arduino IDE შემდეგ ბმულზე დაწკაპუნებით: arduino.cc/en/Main/Software
რომელ Arduino IDE ვერსიას გირჩევთ? ამ დროისთვის არის რამდენიმე plugins ESP32-ისთვის (როგორც SPIFFS Fileსისტემის Uploader Plugin), რომლებიც ჯერ არ არის მხარდაჭერილი Arduino 2-ზე. ასე რომ, თუ მომავალში აპირებთ SPIFFS მოდულის გამოყენებას, გირჩევთ დააინსტალიროთ ძველი ვერსია 1.8.X. თქვენ უბრალოდ უნდა გადახვიდეთ Arduino პროგრამული უზრუნველყოფის გვერდზე, რომ იპოვოთ იგი.
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
იმისათვის, რომ დააინსტალიროთ ESP32 დაფა თქვენს Arduino IDE-ში, მიჰყევით შემდეგ ინსტრუქციებს:

  1. თქვენს Arduino IDE-ში გადადით File> პარამეტრებიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - პრეფერენციები
  2. შეიყვანეთ შემდეგი "დამატებითი საბჭოს მენეჯერი URLs” ველი:

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
გახსენით დაფების მენეჯერი. გადადით ინსტრუმენტები > დაფა > დაფების მენეჯერი…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 დაფა თქვენს კომპიუტერში. თუ თქვენი Arduino IDE ღიაა, მიჰყევით ამ ნაბიჯებს:

  1. აირჩიეთ თქვენი დაფა მენიუში Tools > Board (ჩემს შემთხვევაში ეს არის ESP32 DEV მოდული).LAFVIN ESP32 Basic Starter Kit - Tools Board
  2. აირჩიეთ პორტი (თუ არ ხედავთ COM პორტს თქვენს Arduino IDE-ში, თქვენ უნდა დააინსტალიროთ CP210x USB UART Bridge VCP დრაივერებზე):LAFVIN ESP32 Basic Starter Kit - UART Bridge
  3. გახსენით შემდეგი ყოფილიampქვეშ File > მაგamples > WiFi
    (ESP32) > WiFiScanLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - WiFiScanLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - WiFiScan 1
  4. ახალი ესკიზი იხსნება თქვენს Arduino IDE-ში:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - Arduino IDE
  5. დააჭირეთ ატვირთვის ღილაკს Arduino IDE-ში. დაელოდეთ რამდენიმე წამს, სანამ კოდი შედგენილია და აიტვირთება თქვენს დაფაზე.LAFVIN ESP32 Basic Starter Kit - დაფა
  6. თუ ყველაფერი ისე წავიდა, როგორც მოსალოდნელი იყო, უნდა ნახოთ „ატვირთვა დასრულებულია“. შეტყობინება.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ატვირთვა დასრულდა
  7. გახსენით Arduino IDE სერიული მონიტორი ბაუდის სიჩქარით 115200:LAFVIN ESP32 Basic Starter Kit - მონიტორი
  8. დააჭირეთ ESP32-ის ჩართვის ღილაკს და დაინახავთ ქსელებს, რომლებიც ხელმისაწვდომია თქვენს ESP32-თან:LAFVIN ESP32 Basic Starter Kit - ჩართვის ღილაკი

პრობლემების მოგვარება

თუ თქვენ ცდილობთ ატვირთოთ ახალი ესკიზი თქვენს ESP32-ზე და მიიღებთ ამ შეცდომის შეტყობინებას „მოხდა ფატალური შეცდომა: ESP32-თან დაკავშირება ვერ მოხერხდა: დრო ამოიწურა… დაკავშირება…“. ეს ნიშნავს, რომ თქვენი ESP32 არ არის მოციმციმე/ატვირთვის რეჟიმში.
სწორი დაფის სახელის და COM-ის არჩევის შემდეგ, მიჰყევით ამ ნაბიჯებს:
გეჭიროთ „BOOT“ ღილაკი თქვენს ESP32 დაფაზეLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - "BOOT"

  • დააჭირეთ ღილაკს "ატვირთვა" Arduino IDE-ში თქვენი ესკიზის ასატვირთად:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ICON 6
  • მას შემდეგ, რაც იხილავთ "დაკავშირებას ...". გაგზავნეთ თქვენი Arduino IDE-ში, გაათავისუფლეთ თითი ღილაკიდან „BOOT“:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - „ატვირთვა დასრულდა
  • ამის შემდეგ, თქვენ უნდა იხილოთ შეტყობინება "დასრულებულია ატვირთვა".
    ესე იგი. თქვენს 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 flash-თან) და GPIO 34, 35, 36 და 39 (შეიტანეთ მხოლოდ GPIO);
შეიტყვეთ მეტი ESP32 GPIO-ების შესახებ: ESP32 GPIO საცნობარო სახელმძღვანელო
ESP32 წაკითხული ციფრული შეყვანები
პირველ რიგში, დააყენეთ GPIO, რომლის წაკითხვაც გსურთ, როგორც INPUT, pinMode() ფუნქციის გამოყენებით შემდეგნაირად:
pinMode (GPIO, INPUT);
ციფრული შეყვანის წასაკითხად, ღილაკის მსგავსად, იყენებთ digitalRead() ფუნქციას, რომელიც არგუმენტად იღებს GPIO-ს (int ნომერი), რომელსაც თქვენ მიუთითებთ.
digitalRead (GPIO);
ყველა ESP32 GPIO შეიძლება გამოყენებულ იქნას შეყვანის სახით, გარდა GPIO 6-დან 11-მდე (დაკავშირებული ინტეგრირებულ SPI flash-თან).
შეიტყვეთ მეტი ESP32 GPIO-ების შესახებ: ESP32 GPIO საცნობარო სახელმძღვანელო
პროექტი მაგample
იმისათვის, რომ გაჩვენოთ, თუ როგორ გამოიყენოთ ციფრული შეყვანა და ციფრული გამომავალი, ჩვენ ავაშენებთ მარტივ პროექტსampღილაკით და LED-ით. ჩვენ წავიკითხავთ ღილაკის მდგომარეობას და ავანთებთ LED-ს შესაბამისად, როგორც ეს ნაჩვენებია შემდეგ ფიგურაში.LAFVIN ESP32 Basic Starter Kit - Project Example

საჭირო ნაწილები
აქ მოცემულია იმ ნაწილების სია, რომლებიც გჭირდებათ მიკროსქემის შესაქმნელად:

  • ESP32 DEVKIT V1
  • 5 მმ LED
  • 220 Ohm რეზისტორი
  • ღილაკი
  • 10k Ohm რეზისტორი
  • პურის დაფა
  • ჯუმპერის მავთულები

სქემატური დიაგრამა
სანამ გააგრძელებთ, თქვენ უნდა ააწყოთ წრე LED-ით და ღილაკით.
ჩვენ დავუკავშირებთ LED-ს GPIO 5-ს და ღილაკს GPIO-ს 4.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატური დიაგრამაკოდი
გახსენით კოდი Project_1_ESP32_Inputs_Outputs.ino arduino IDE-შიLAFVIN ESP32 Basic Starter Kit - კოდი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 (ღილაკიPin, INPUT);
pinMode (ledPin, OUTPUT);
მარყუჟში() არის სადაც წაიკითხავთ ღილაკის მდგომარეობას და შესაბამისად აყენებთ LED-ს.
შემდეგ სტრიქონში წაიკითხავთ ღილაკის მდგომარეობას და შეინახავთ მას buttonState ცვლადში.
როგორც ადრე ვნახეთ, თქვენ იყენებთ digitalRead() ფუნქციას.
buttonState = digitalRead(buttonPin);
შემდეგი if განცხადება ამოწმებს არის თუ არა ღილაკის მდგომარეობა HIGH. თუ ეს ასეა, ის ჩართავს LED-ს digitalWrite() ფუნქციის გამოყენებით, რომელიც არგუმენტად იღებს ledPin-ს და მდგომარეობას HIGH.
თუ (buttonState == HIGH)LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - Code Works 1თუ ღილაკის მდგომარეობა არ არის მაღალი, გამორთეთ LED. უბრალოდ დააყენეთ LOW, როგორც მეორე არგუმენტი digitalWrite() ფუნქციაში.LAFVIN ESP32 Basic Starter Kit - digitalWriteკოდის ატვირთვა
ატვირთვის ღილაკზე დაწკაპუნებამდე გადადით Tools > Board და აირჩიეთ დაფა :DOIT ESP32 DEVKIT V1.
გადადით Tools > Port და აირჩიეთ COM პორტი, რომელზეც დაკავშირებულია ESP32. შემდეგ, დააჭირეთ ატვირთვის ღილაკს და დაელოდეთ შეტყობინებას „დასრულებულია ატვირთვა“.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ICON 7შენიშვნა: თუ ხედავთ უამრავ წერტილს (დაკავშირება…__…__) გამართვის ფანჯარაში და შეტყობინებას „ვერ მოხდა ESP32-თან დაკავშირება: პაკეტის სათაურის მოლოდინის დრო ამოიწურა“, ეს ნიშნავს, რომ თქვენ უნდა დააჭიროთ ESP32-ის ბორტ BOOT-ს. ღილაკი წერტილების შემდეგ
დაიწყოს გამოჩენა.პრობლემების მოგვარება

დემონსტრაცია

კოდის ატვირთვის შემდეგ შეამოწმეთ თქვენი წრე. თქვენი LED უნდა აანთოს, როდესაც დააჭირეთ ღილაკს:LAFVIN ESP32 Basic Starter Kit - დემონსტრირებადა გამორთეთ, როცა გაათავისუფლებთ:LAFVIN ESP32 Basic Starter Kit - მხრივ

პროექტი 2 ESP32 ანალოგური შეყვანა

ეს პროექტი გვიჩვენებს, თუ როგორ უნდა წაიკითხოთ ანალოგური შეყვანა ESP32-ით Arduino IDE-ის გამოყენებით.
ანალოგური კითხვა სასარგებლოა ცვლადი რეზისტორების მნიშვნელობების წასაკითხად, როგორიცაა პოტენციომეტრები ან ანალოგური სენსორები.
ანალოგური შეყვანა (ADC)
ESP32-ით ანალოგური მნიშვნელობის წაკითხვა ნიშნავს, რომ შეგიძლიათ გაზომოთ ცვალებად მოცულობაtage დონეები 0 ვ-დან 3.3 ვ-მდე.
ტომიtagგაზომილი e ენიჭება მნიშვნელობას 0-დან 4095-მდე, რომელშიც 0 ვ შეესაბამება 0-ს, ხოლო 3.3 ვ შეესაბამება 4095-ს. ნებისმიერი მოც.tage 0 V-სა და 3.3 V-ს შორის მიენიჭება შესაბამისი მნიშვნელობა მათ შორის.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ანალოგური შეყვანაADC არის არაწრფივი
იდეალურ შემთხვევაში, თქვენ მოელით წრფივ ქცევას ESP32 ADC ქინძისთავების გამოყენებისას.
თუმცა, ეს არ ხდება. რასაც თქვენ მიიღებთ არის ქცევა, როგორც ნაჩვენებია შემდეგ დიაგრამაში:LAFVIN ESP32 Basic Starter Kit - არაწრფივიეს ქცევა ნიშნავს, რომ თქვენს ESP32-ს არ შეუძლია განასხვავოს 3.3 ვ 3.2 ვ-დან.
თქვენ მიიღებთ იგივე მნიშვნელობას ორივე ტომისთვისtagეს: 4095.
იგივე ხდება ძალიან დაბალი მოცულობის შემთხვევაშიtage მნიშვნელობები: 0 V და 0.1 V-სთვის თქვენ მიიღებთ იგივე მნიშვნელობას: 0. ეს უნდა გახსოვდეთ ESP32 ADC პინების გამოყენებისას.
analogRead() ფუნქცია
ანალოგური შეყვანის კითხვა ESP32-ით Arduino IDE-ის გამოყენებით ისეთივე მარტივია, როგორც analogRead() ფუნქციის გამოყენება. ის არგუმენტად იღებს GPIO-ს, რომლის წაკითხვაც გსურთ:
analogRead (GPIO);
მხოლოდ 15 არის ხელმისაწვდომი DEVKIT V1 დაფაზე (ვერსია 30 GPIO-ით).
აიღეთ თქვენი ESP32 დაფის პინი და იპოვნეთ ADC ქინძისთავები. ისინი ხაზგასმულია წითელი საზღვრით ქვემოთ მოცემულ ფიგურაში.LAFVIN ESP32 Basic Starter Kit - საზღვარიამ ანალოგური შეყვანის პინებს აქვს 12-ბიტიანი გარჩევადობა. ეს ნიშნავს, რომ ანალოგური შეყვანის წაკითხვისას, მისი დიაპაზონი შეიძლება განსხვავდებოდეს 0-დან 4095-მდე.
შენიშვნა: ADC2 პინების გამოყენება შეუძლებელია Wi-Fi გამოყენებისას. ასე რომ, თუ იყენებთ Wi-Fi-ს და გიჭირთ მნიშვნელობის მიღება ADC2 GPIO-დან, შეგიძლიათ განიხილოთ ADC1 GPIO-ის გამოყენება, რაც თქვენს პრობლემას გადაჭრის.
იმის სანახავად, თუ როგორ უკავშირდება ყველაფერი ერთმანეთს, ჩვენ გავაკეთებთ მარტივ ყოფილსampანალოგური მნიშვნელობის წაკითხვა პოტენციომეტრიდან.
საჭირო ნაწილები
ამისთვის ყოფილიampთქვენ გჭირდებათ შემდეგი ნაწილები:

  • ESP32 DEVKIT V1 დაფა
  • Potentiometer
  • პურის დაფა
  • ჯუმპერის მავთულები

სქემატური
შეაერთეთ პოტენციომეტრი თქვენს ESP32-ზე. პოტენციომეტრის შუა პინი უნდა იყოს დაკავშირებული GPIO 4-თან. შეგიძლიათ გამოიყენოთ შემდეგი სქემატური დიაგრამა, როგორც მითითება.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატურიკოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
გახსენით კოდი Project_2_ESP32_Inputs_Outputs.ino arduino IDE-შიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 2ეს კოდი უბრალოდ კითხულობს მნიშვნელობებს პოტენციომეტრიდან და ბეჭდავს ამ მნიშვნელობებს სერიულ მონიტორში.
კოდში, თქვენ იწყებთ GPIO-ს განსაზღვრით, რომელსაც უკავშირდება პოტენციომეტრი. ამ ყოფილშიample, GPIO 4.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - მაგamplesetup()-ში მოაწყეთ სერიული კომუნიკაცია ბაუდის სიჩქარით 115200.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - მაგampლე 1loop()-ში გამოიყენეთ analogRead() ფუნქცია potPin-დან ანალოგური შეყვანის წასაკითხად.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - მაგampლე 2ბოლოს დაბეჭდეთ პოტენციომეტრიდან წაკითხული მნიშვნელობები სერიულ მონიტორზე.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - მაგampლე 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() ფუნქციას.
  • ESP32 ADC პინებს არ აქვთ ხაზოვანი ქცევა. თქვენ ალბათ ვერ შეძლებთ განასხვავოთ 0 და 0.1 ვ, ან 3.2 და 3.3 ვ. თქვენ უნდა გაითვალისწინოთ ეს ADC პინების გამოყენებისას.

Project 3 ESP32 PWM (ანალოგური გამომავალი)

ამ სახელმძღვანელოში ჩვენ გაჩვენებთ, თუ როგორ უნდა გენერირება PWM სიგნალები ESP32-ით Arduino IDE-ის გამოყენებით. როგორც ყოფილიampჩვენ ავაშენებთ მარტივ წრეს, რომელიც აქრობს LED-ს ESP32-ის LED PWM კონტროლერის გამოყენებით.LAFVIN ESP32 Basic Starter Kit - AnalogOutputESP32 LED PWM კონტროლერი
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 დაფა
  • 5 მმ LED
  • 220 Ohm რეზისტორი
  •  პურის დაფა
  • ჯუმპერის მავთულები

სქემატური
მიამაგრეთ LED თქვენს ESP32-ს, როგორც ქვემოთ მოცემულ სქემატურ დიაგრამაში. LED უნდა იყოს დაკავშირებული GPIO-სთან 4.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატურიშენიშვნა: თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი პინი, რომელიც გსურთ, თუ მას შეუძლია იმოქმედოს როგორც გამომავალი. ყველა ქინძისთავები, რომლებსაც შეუძლიათ გამოსავალის როლი შეასრულონ, შეიძლება გამოყენებულ იქნას როგორც PWM. დამატებითი ინფორმაციისთვის ESP32 GPIO-ების შესახებ წაიკითხეთ: ESP32 Pinout მითითება: რომელი GPIO პინები უნდა გამოიყენოთ?
კოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
გახსენით კოდი Project_3_ESP32_PWM.ino arduino IDE-შიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 3LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 4თქვენ იწყებთ პინის განსაზღვრით, რომელზეც LED არის მიმაგრებული. ამ შემთხვევაში LED არის მიმაგრებული GPIO 4-ზე.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 5შემდეგ, თქვენ დააყენეთ PWM სიგნალის თვისებები. თქვენ განსაზღვრავთ 5000 ჰც სიხშირეს, ირჩევთ 0 არხს სიგნალის გენერირებისთვის და ადგენთ გარჩევადობას 8 ბიტი. თქვენ შეგიძლიათ აირჩიოთ სხვა თვისებები, მათგან განსხვავებული, სხვადასხვა PWM სიგნალების გენერირებისთვის.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 6setup()-ში თქვენ უნდა დააკონფიგურიროთ 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 ძირითადი შემქმნელის ნაკრები - სიკაშკაშე 1LED-ის სიკაშკაშის დასაყენებლად, თქვენ უბრალოდ უნდა გამოიყენოთ ledcWrite() ფუნქცია, რომელიც არგუმენტად იღებს არხს, რომელიც აწარმოებს სიგნალს და სამუშაო ციკლს.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სიკაშკაშე 2ვინაიდან ჩვენ ვიყენებთ 8-ბიტიან გარჩევადობას, სამუშაო ციკლი გაკონტროლდება 0-დან 255-მდე მნიშვნელობის გამოყენებით. გაითვალისწინეთ, რომ ledcWrite() ფუნქციაში ვიყენებთ არხს, რომელიც აგენერირებს სიგნალს და არა GPIO.

ტესტირება ყოფილიample

ატვირთეთ კოდი თქვენს ESP32-ზე. დარწმუნდით, რომ არჩეული გაქვთ სწორი დაფა და COM პორტი. შეხედე შენს წრეს. თქვენ უნდა გქონდეთ dimmer LED, რომელიც ზრდის და ამცირებს სიკაშკაშეს.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ტესტირება მაგample

პროექტი 4 ESP32 PIR მოძრაობის სენსორი

ეს პროექტი გვიჩვენებს, თუ როგორ ამოვიცნოთ მოძრაობა 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შენიშვნა: სამუშაო ტომიtagHC-SR501-ის e არის 5V. გამოიყენეთ Vin პინი მის გასააქტიურებლად.
კოდი
სანამ ამ სახელმძღვანელოს გააგრძელებთ, თქვენ უნდა გქონდეთ ESP32 დანამატი დაინსტალირებული თქვენს Arduino IDE-ში. მიჰყევით ერთ-ერთ შემდეგ ინსტრუქციას, რათა დააინსტალიროთ ESP32 Arduino IDE-ზე, თუ ჯერ არ გაგიკეთებიათ. (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
გახსენით კოდი Project_4_ESP32_PIR_Motion_Sensor.ino arduino IDE-ში.
დემონსტრაცია
ატვირთეთ კოდი თქვენს ESP32 დაფაზე. დარწმუნდით, რომ არჩეული გაქვთ სწორი დაფა და COM პორტი. ატვირთეთ კოდის მითითების ნაბიჯები.
გახსენით სერიული მონიტორი ბაუდის სიხშირით 115200.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - დემონსტრირება 1გადაიტანეთ ხელი PIR სენსორის წინ. ზუმერი უნდა ჩართოს და შეტყობინება იბეჭდება სერიულ მონიტორზე, რომელშიც ნათქვამია: „მოძრაობა აღმოჩენილია! ზუმერის სიგნალიზაცია“.
4 წამის შემდეგ ზუმერი უნდა გამორთოთ.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ზუმერი

პროექტი 5 ESP32 გადამრთველი Web სერვერი

ამ პროექტში თქვენ შექმნით დამოუკიდებელ web სერვერი ESP32-ით, რომელიც აკონტროლებს გამოსავალს (ორი LED) Arduino IDE პროგრამირების გარემოს გამოყენებით. The web სერვერი რეაგირებს მობილურზე და მისი წვდომა შესაძლებელია ნებისმიერი მოწყობილობით, როგორც ბრაუზერი ლოკალურ ქსელში. ჩვენ გაჩვენებთ როგორ შექმნათ web სერვერზე და როგორ მუშაობს კოდი ეტაპობრივად.
პროექტი დასრულდაview
სანამ პირდაპირ პროექტზე გადავიდოდეთ, მნიშვნელოვანია გამოვყოთ ჩვენი web სერვერი გააკეთებს, ასე რომ შემდგომში უფრო ადვილი იქნება ნაბიჯების შესრულება.

  • The web სერვერი, რომელსაც თქვენ ააშენებთ საკონტროლო ორ LED- სთან, რომლებიც დაკავშირებულია ESP32 GPIO 26 და GPIO 27;
  • თქვენ შეგიძლიათ შეხვიდეთ ESP32-ზე web სერვერი ლოკალურ ქსელში ბრაუზერზე ESP32 IP მისამართის აკრეფით;
  • თქვენს ღილაკებზე დაწკაპუნებით web სერვერზე შეგიძლიათ მყისიერად შეცვალოთ თითოეული LED-ის მდგომარეობა.

საჭირო ნაწილები
ამ გაკვეთილისთვის დაგჭირდებათ შემდეგი ნაწილები:

  • ESP32 DEVKIT V1 დაფა
  • 2 x 5 მმ LED
  • 2 x 200 Ohm რეზისტორი
  • პურის დაფა
  • ჯუმპერის მავთულები

სქემატური
დაიწყეთ მიკროსქემის აგებით. შეაერთეთ ორი LED ESP32-ზე, როგორც ეს ნაჩვენებია შემდეგ სქემატურ დიაგრამაში - ერთი LED დაკავშირებულია GPIO 26-თან, მეორე კი GPIO 27-თან.
შენიშვნა: ჩვენ ვიყენებთ ESP32 DEVKIT DOIT დაფას 36 ქინძისთავთან ერთად. მიკროსქემის აწყობამდე, დარწმუნდით, რომ შეამოწმეთ პინი დაფისთვის, რომელსაც იყენებთ.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატურიკოდი
აქ ჩვენ გთავაზობთ კოდს, რომელიც ქმნის ESP32-ს web სერვერი. გახსენით კოდი Project_5_ESP32_Switch _Web_Server.ino arduino 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 ძირითადი შემქმნელის ნაკრები - კოდის ატვირთვა
  3. აირჩიეთ COM პორტი ინსტრუმენტებში > პორტში.LAFVIN ESP32 Basic Starter Kit - Tools Port
  4. დააჭირეთ ღილაკს ატვირთვა Arduino IDE-ში და დაელოდეთ რამდენიმე წამს, სანამ კოდი შედგენილია და აიტვირთება თქვენს დაფაზე.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ICON 7
  5. დაელოდეთ შეტყობინებას "დასრულებულია ატვირთვა".LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ატვირთვა დასრულდა 1

იპოვეთ ESP IP მისამართი
კოდის ატვირთვის შემდეგ გახსენით სერიული მონიტორი ბაუდის სიჩქარით 115200.LAFVIN ESP32 Basic Starter Kit - ESP IP მისამართიდააჭირეთ ESP32 EN ღილაკს (გადატვირთვა). ESP32 უკავშირდება Wi-Fi-ს და გამოსცემს ESP IP მისამართს სერიულ მონიტორზე. დააკოპირეთ ეს IP მისამართი, რადგან ის გჭირდებათ ESP32-ზე წვდომისთვის web სერვერი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - web სერვერიწვდომა Web სერვერი
წვდომისათვის web სერვერზე, გახსენით თქვენი ბრაუზერი, ჩასვით ESP32 IP მისამართი და დაინახავთ შემდეგ გვერდს.
შენიშვნა: თქვენი ბრაუზერი და ESP32 უნდა იყოს დაკავშირებული იმავე LAN-თან.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - წვდომა 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 მიიღებს ამ მოთხოვნას, ის ჩართავს GPIO 26-ზე დამაგრებულ LED-ს და განაახლებს მის მდგომარეობას web გვერდი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - web გვერდიGPIO 27-ის ღილაკი ანალოგიურად მუშაობს. შეამოწმეთ, რომ ის გამართულად მუშაობს.LAFVIN ESP32 Basic Starter Kit - მუშაობს გამართულად

როგორ მუშაობს კოდი

ამ განყოფილებაში უფრო დეტალურად განვიხილავთ კოდს, რომ ნახოთ როგორ მუშაობს.
პირველი რაც უნდა გააკეთოთ არის WiFi ბიბლიოთეკის ჩართვა.LAFVIN ESP32 Basic Starter Kit - WiFi ბიბლიოთეკაროგორც უკვე აღვნიშნეთ, თქვენ უნდა ჩაწეროთ თქვენი ssid და პაროლი შემდეგ სტრიქონებში ორმაგი ბრჭყალების შიგნით.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ორმაგი ციტატებიშემდეგ, თქვენ დააყენეთ თქვენი web სერვერი 80 პორტზე.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - web სერვერიშემდეგი ხაზი ქმნის ცვლადს HTTP მოთხოვნის სათაურის შესანახად:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - HTTP მოთხოვნაშემდეგი, თქვენ ქმნით დამხმარე ცვლადებს თქვენი შედეგების მიმდინარე მდგომარეობის შესანახად. თუ გსურთ დაამატოთ მეტი გამოსავალი და შეინახოთ მისი მდგომარეობა, თქვენ უნდა შექმნათ მეტი ცვლადი.LAFVIN ESP32 Basic Starter Kit - ცვლადებითქვენ ასევე უნდა მიანიჭოთ GPIO თქვენს თითოეულ გამომავალს. აქ ჩვენ ვიყენებთ GPIO 26 და GPIO 27. შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა შესაფერისი GPIO.LAFVIN ESP32 Basic Starter Kit - სხვა შესაფერისიდაყენება ()
ახლა მოდით გადავიდეთ setup(). პირველი, ჩვენ ვიწყებთ სერიულ კომუნიკაციას ბაუდის სიჩქარით 115200 გამართვის მიზნით.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - დანიშნულებათქვენ ასევე განსაზღვრავთ თქვენს GPIO-ებს, როგორც OUTPUT-ებს და დააყენებთ მათ LOW-ზე.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - GPIOs როგორც OUTPUTsშემდეგი ხაზები იწყებს Wi-Fi კავშირს WiFi.begin-ით (ssid, პაროლი), დაელოდეთ წარმატებულ კავშირს და დაბეჭდეთ ESP IP მისამართი სერიულ მონიტორში.LAFVIN ESP32 Basic Starter Kit - სერიულიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სერია 1loop ()
loop()-ში ვაპროგრამებთ რა ხდება, როდესაც ახალი კლიენტი ამყარებს კავშირს web სერვერი.
ESP32 ყოველთვის უსმენს შემომავალ კლიენტებს შემდეგი ხაზით:LAFVIN ESP32 Basic Starter Kit - loopროდესაც მოთხოვნა მიიღება კლიენტისგან, ჩვენ შევინახავთ შემოსულ მონაცემებს. ხოლო შემდეგ ციკლი იმუშავებს მანამ, სანამ კლიენტი დაკავშირებულია. ჩვენ არ გირჩევთ შეცვალოთ კოდის შემდეგი ნაწილი, თუ ზუსტად არ იცით რას აკეთებთ.LAFVIN ESP32 Basic Starter Kit - ზუსტადLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ზუსტად 1LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ზუსტად 2if და else განცხადებების შემდეგი განყოფილება ამოწმებს, რომელ ღილაკზე იყო დაჭერილი web გვერდზე და შესაბამისად აკონტროლებს გამომავალს. როგორც ადრე ვნახეთ, ჩვენ ვთხოვთ განსხვავებულს URLs დამოკიდებულია დაჭერილ ღილაკზე.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 გვერდი.
The web გვერდი ეგზავნება კლიენტს ამ გამოხატვის კლიენტს.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 ძირითადი შემქმნელის ნაკრები - სტილისტიკა Web გვერდიჩვენ ღილაკებს ვაწყობთ #4CAF50 ფერით, საზღვრების გარეშე, ტექსტით თეთრი ფერით და ამ ბალიშით: 16px 40px. ჩვენ ასევე ვაყენებთ ტექსტის დეკორაციას None-ზე, განვსაზღვრავთ შრიფტის ზომას, ზღვარს და კურსორს მაჩვენებელზე.LAFVIN ESP32 Basic Starter Kit - მაჩვენებელიჩვენ ასევე განვსაზღვრავთ მეორე ღილაკის სტილს, ღილაკის ყველა თვისებით, რომელიც ადრე განვსაზღვრეთ, მაგრამ განსხვავებული ფერით. ეს იქნება გამორთვის ღილაკის სტილი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - 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 - გამორთვის ღილაკის ჩვენებაჩვენ ვიყენებთ იგივე პროცედურას GPIO 27-ისთვის.
კავშირის დახურვა
ბოლოს, როდესაც პასუხი დასრულდება, ჩვენ ვასუფთავებთ სათაურის ცვლადს და ვწყვეტთ კლიენტთან კავშირს client.stop().LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კავშირის დახურვა

შეფუთვა

ამ გაკვეთილში ჩვენ გაჩვენეთ, თუ როგორ უნდა ააწყოთ ა web სერვერი ESP32-ით. ჩვენ გაჩვენეთ უბრალო ყოფილიample, რომელიც აკონტროლებს ორ LED-ს, მაგრამ იდეა არის შეცვალოს ეს LED-ები რელეთი, ან ნებისმიერი სხვა გამოსავალი, რომლის კონტროლიც გსურთ.

პროექტი 6 RGB LED Web სერვერი

ამ პროექტში ჩვენ გაჩვენებთ, თუ როგორ დისტანციურად მართოთ RGB LED ESP32 დაფით. web სერვერი ფერის ამომრჩეველით.
პროექტი დასრულდაview
სანამ დავიწყებთ, ვნახოთ, როგორ მუშაობს ეს პროექტი:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - პროექტი დასრულდაview

  • ESP32 web სერვერი აჩვენებს ფერის ამომრჩეველს.
  • როდესაც თქვენ აირჩევთ ფერს, თქვენი ბრაუზერი აკეთებს მოთხოვნას a URL რომელიც შეიცავს არჩეული ფერის R, G და B პარამეტრებს.
  • თქვენი ESP32 იღებს მოთხოვნას და ყოფს მნიშვნელობას თითოეული ფერის პარამეტრისთვის.
  • შემდეგ, ის აგზავნის PWM სიგნალს შესაბამისი მნიშვნელობით GPIO-ებზე, რომლებიც აკონტროლებენ RGB LED-ს.

როგორ მუშაობს RGB LED-ები?
საერთო კათოდური RGB LED-ში სამივე LED იზიარებს ნეგატიურ კავშირს (კათოდი). ყველა კომპლექტში შედის საერთო კათოდური RGB.LAFVIN ESP32 Basic Starter Kit - მუშაობს RGB LED-ებიროგორ შევქმნათ სხვადასხვა ფერები?
RGB LED-ით, რა თქმა უნდა, შეგიძლიათ აწარმოოთ წითელი, მწვანე და ლურჯი შუქი და თითოეული LED-ის ინტენსივობის კონფიგურაციით, შეგიძლიათ სხვა ფერების წარმოებაც.
მაგampწმინდა ლურჯი შუქის წარმოებისთვის, თქვენ დააყენეთ ლურჯი LED უმაღლეს ინტენსივობაზე და მწვანე და წითელი LED-ები ყველაზე დაბალ ინტენსივობაზე. თეთრი განათებისთვის, თქვენ დააყენეთ სამივე LED უმაღლეს ინტენსივობაზე.
ფერების შერევა
სხვა ფერების შესაქმნელად, შეგიძლიათ დააკავშიროთ სამი ფერი სხვადასხვა ინტენსივობით. თითოეული LED-ის ინტენსივობის დასარეგულირებლად შეგიძლიათ გამოიყენოთ PWM სიგნალი.
იმის გამო, რომ LED-ები ძალიან ახლოს არიან ერთმანეთთან, ჩვენი თვალები ხედავს ფერების შერწყმის შედეგს და არა ცალ-ცალკე სამ ფერს.
იმისათვის, რომ გქონდეთ იდეა, თუ როგორ დააკავშიროთ ფერები, შეხედეთ შემდეგ სქემას.
ეს არის უმარტივესი ფერების შერევის სქემა, მაგრამ გაძლევთ წარმოდგენას, თუ როგორ მუშაობს იგი და როგორ აწარმოოთ სხვადასხვა ფერები.LAFVIN ESP32 Basic Starter Kit - სხვადასხვა ფერებისაჭირო ნაწილები
ამ პროექტისთვის გჭირდებათ შემდეგი ნაწილები:

  • ESP32 DEVKIT V1 დაფა
  • RGB LED
  • 3 x 220 ohm რეზისტორები
  • ჯუმპერის მავთულები
  • პურის დაფა

სქემატურიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატურიკოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)

  • ESP32 დანამატის ინსტალაცია Arduino IDE-ში

მიკროსქემის აწყობის შემდეგ გახსენით კოდი
პროექტი_6_RGB_LED_Web_Server.ino arduino 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 ძირითადი შემქმნელის ნაკრები - საჭიროა 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 ძირითადი შემქმნელის ნაკრები - 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 ძირითადი დამწყებ ნაკრები - HTTP მოთხოვნა 1შენიშვნა: შეიტყვეთ მეტი PWM-ის შესახებ ESP32-ით: პროექტი 3 ESP32 PWM (ანალოგური გამომავალი)
ზოლის გასაკონტროლებლად ESP8266, ჩვენ უბრალოდ უნდა გამოვიყენოთ
analogWrite() ფუნქცია PWM სიგნალების გენერირებისთვის HTPP მოთხოვნიდან დეკოდირებული მნიშვნელობებით.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
იმის გამო, რომ ჩვენ ვიღებთ მნიშვნელობებს string ცვლადში, ჩვენ უნდა გადავიყვანოთ ისინი მთელ რიცხვებად toInt() მეთოდის გამოყენებით.
დემონსტრაცია
თქვენი ქსელის რწმუნებათა სიგელების ჩასმის შემდეგ, აირჩიეთ მარჯვენა დაფა და COM პორტი და ატვირთეთ კოდი თქვენს ESP32-ზე. ატვირთვის კოდის მითითების ნაბიჯები.
ატვირთვის შემდეგ გახსენით სერიული მონიტორი ბაუდის სიჩქარით 115200 და დააჭირეთ ღილაკს ESP Enable/Reset. თქვენ უნდა მიიღოთ დაფის IP მისამართი.LAFVIN ESP32 Basic Starter Kit - იგივე LANგახსენით თქვენი ბრაუზერი და ჩადეთ ESP IP მისამართი. ახლა გამოიყენეთ ფერის ამომრჩევი RGB LED-ისთვის ფერის ასარჩევად.
შემდეგ, თქვენ უნდა დააჭიროთ ღილაკს "ფერის შეცვლა", რომ ფერი ამოქმედდეს.LAFVIN ESP32 Basic Starter Kit - RGB LEDRGB LED-ის გამორთვისთვის აირჩიეთ შავი ფერი.
ყველაზე ძლიერი ფერები (ფერების ამომრჩევის ზედა ნაწილში) არის ის, რაც უკეთეს შედეგს გამოიღებს.LAFVIN ESP32 Basic Starter Kit - უკეთესი შედეგი

პროექტი 7 ESP32 რელე Web სერვერი

ESP32-ით რელეს გამოყენება შესანიშნავი გზაა AC საყოფაცხოვრებო ტექნიკის დისტანციურად მართვისთვის. ეს სახელმძღვანელო განმარტავს, თუ როგორ უნდა მართოთ სარელეო მოდული ESP32-ით.
ჩვენ გადავხედავთ, თუ როგორ მუშაობს სარელეო მოდული, როგორ დავაკავშიროთ რელე ESP32-თან და ავაშენოთ web სერვერი რელეს დისტანციურად გასაკონტროლებლად.
რელეების გაცნობა
რელე არის ელექტრომომარაგებული გადამრთველი და როგორც ნებისმიერი სხვა გადამრთველი, ის შეიძლება ჩართოთ ან გამორთოთ, დენი გაუშვას თუ არა. მისი კონტროლი შესაძლებელია დაბალი მოცულობითtages, ისევე როგორც ESP3.3 GPIO-ების მიერ მოწოდებული 32 ვ და გვაძლევს საშუალებას ვაკონტროლოთ მაღალი მოცულობისtagროგორიცაა 12V, 24V ან ქსელის მოცtage (230V ევროპაში და 120V აშშ-ში).LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - წარმოგიდგენთ რელეებსმარცხენა მხარეს არის სამი სოკეტის ორი კომპლექტი მაღალი მოცულობის დასაკავშირებლადtages და ქინძისთავები მარჯვენა მხარეს (დაბალი მოცულობითtagე) დაუკავშირდით ESP32 GPIO-ს.
Mains Voltage კავშირებიLAFVIN ESP32 Basic Starter Kit - Mains Voltage კავშირებიწინა ფოტოზე ნაჩვენები სარელეო მოდულს აქვს ორი კონექტორი, თითოეულს აქვს სამი სოკეტი: საერთო (COM), ნორმალურად დახურული (NC) და ნორმალურად ღია (NO).

  • COM: შეაერთეთ დენი, რომლის კონტროლიც გსურთ (ქსელის ტtagდა).
  • NC (ნორმალურად დახურულია): ჩვეულებრივ დახურული კონფიგურაცია გამოიყენება, როდესაც გსურთ რელე დახურული იყოს ნაგულისხმევად. NC არის COM ქინძისთავები დაკავშირებულია, რაც ნიშნავს, რომ დენი მიედინება, თუ არ გაუგზავნით სიგნალს ESP32-დან სარელეო მოდულზე, რომ გაიხსნას წრე და შეაჩეროს დენის ნაკადი.
  • NO (ნორმალურად ღია): ჩვეულებრივ ღია კონფიგურაცია მუშაობს პირიქით: არ არის კავშირი NO და COM ქინძისთავებს შორის, ამიტომ წრე წყდება, თუ არ გამოგიგზავნით სიგნალს ESP32-დან წრედის დახურვისთვის.

საკონტროლო ქინძისთავებიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - საკონტროლო ქინძისთავებიდაბალი მოცულობისtage მხარეს აქვს ოთხი ქინძისთავის ნაკრები და სამი ქინძისთავის ნაკრები. პირველი ნაკრები შედგება VCC და GND-ისგან მოდულის გასააქტიურებლად და შეყვანის 1 (IN1) და შეყვანის 2 (IN2) ქვედა და ზედა რელეების გასაკონტროლებლად, შესაბამისად.
თუ თქვენს სარელეო მოდულს აქვს მხოლოდ ერთი არხი, გექნებათ მხოლოდ ერთი IN პინი. თუ თქვენ გაქვთ ოთხი არხი, გექნებათ ოთხი IN პინი და ა.შ.
სიგნალი, რომელსაც თქვენ უგზავნით IN ქინძისთავებს, განსაზღვრავს რელე აქტიურია თუ არა. რელე ამოქმედდება, როდესაც შემავალი ჩადის დაახლოებით 2 ვ-ზე დაბლა. ეს ნიშნავს, რომ თქვენ გექნებათ შემდეგი სცენარები:

  • ჩვეულებრივ დახურული კონფიგურაცია (NC):
  • მაღალი სიგნალი - დენი მიედინება
  • დაბალი სიგნალი - დენი არ მიედინება
  • ჩვეულებრივ ღია კონფიგურაცია (NO):
  • მაღალი სიგნალი - დენი არ მიედინება
  • დაბალი სიგნალი - დენი მიედინება

თქვენ უნდა გამოიყენოთ ჩვეულებრივ დახურული კონფიგურაცია, როდესაც დენი უნდა მიედინება უმეტეს დროს და მხოლოდ ზოგჯერ გსურთ მისი შეჩერება.
გამოიყენეთ ჩვეულებრივ ღია კონფიგურაცია, როდესაც გსურთ დენი დროდადრო შემოვიდეს (მაგampლე, ჩართეთ ალamp ხანდახან).
კვების წყაროს შერჩევაLAFVIN ESP32 Basic Starter Kit - კვების წყაროს შერჩევაქინძისთავების მეორე ნაკრები შედგება GND, VCC და JD-VCC ქინძისთავებისაგან.
JD-VCC პინი კვებავს რელეს ელექტრომაგნიტს. გაითვალისწინეთ, რომ მოდულს აქვს ჯუმპერის თავსახური, რომელიც აკავშირებს VCC და JD-VCC ქინძისთავებს; აქ ნაჩვენები არის ყვითელი, მაგრამ თქვენი შეიძლება იყოს განსხვავებული ფერი.
ჯუმპერის თავსახურით, VCC და JD-VCC ქინძისთავები დაკავშირებულია. ეს ნიშნავს, რომ სარელეო ელექტრომაგნიტი იკვებება პირდაპირ ESP32 დენის პინიდან, ამიტომ რელეს მოდული და ESP32 სქემები ფიზიკურად არ არიან ერთმანეთისგან იზოლირებული.
ჯუმპერის თავსახურის გარეშე, თქვენ უნდა მიაწოდოთ დამოუკიდებელი დენის წყარო რელეს ელექტრომაგნიტის გასააქტიურებლად JD-VCC პინის მეშვეობით. ეს კონფიგურაცია ფიზიკურად იზოლირებს რელეებს ESP32-დან მოდულის ჩაშენებული ოპტოკუპლერით, რომელიც ხელს უშლის ESP32-ის დაზიანებას ელექტრული მწვერვალების შემთხვევაში.
სქემატურიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატურიგაფრთხილება: მაღალი მოცულობის გამოყენებაtagელექტრომომარაგებამ შეიძლება გამოიწვიოს სერიოზული დაზიანება.
ამიტომ, 5 მმ LED-ები გამოიყენება მაღალი მიწოდების მოცულობის ნაცვლადtagე ნათურები ექსპერიმენტში. თუ არ იცნობთ ქსელის ტომსtagსთხოვეთ ვინმეს, ვინც დაგეხმარებათ. ESP-ის დაპროგრამების ან თქვენი მიკროსქემის გაყვანილობისას დარწმუნდით, რომ ყველაფერი გათიშულია ქსელიდანtage.LAFVIN ESP32 Basic Starter Kit - ქსელის ტtageბიბლიოთეკის ინსტალაცია ESP32-ისთვის
ამის ასაშენებლად web სერვერზე, ჩვენ ვიყენებთ ESPAsync-სWebსერვერის ბიბლიოთეკა და AsyncTCP ბიბლიოთეკა.
ESPAsync-ის ინსტალაციაWebსერვერის ბიბლიოთეკა
მიჰყევით შემდეგ ნაბიჯებს ინსტალაციისთვის ESPAsyncWebსერვერი ბიბლიოთეკა:

  1. დააწკაპუნეთ აქ ESPAsync-ის ჩამოსატვირთადWebსერვერის ბიბლიოთეკა. უნდა გქონდეს
    .zip საქაღალდე თქვენს ჩამოტვირთვების საქაღალდეში
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ ESPAsyncWebServer-Master საქაღალდე
  3. თქვენი საქაღალდის გადარქმევა ESPAsync-დანWebსერვერის ოსტატი ESPAsync-ზეWebსერვერი
  4. გადაიტანეთ ESPAsyncWebსერვერის საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში

ალტერნატიულად, თქვენს Arduino IDE-ში შეგიძლიათ გადახვიდეთ Sketch > Include
ბიბლიოთეკა > დაამატეთ .ZIP ბიბლიოთეკა… და აირჩიეთ ბიბლიოთეკა, რომელიც ახლახან გადმოწერეთ.
AsyncTCP ბიბლიოთეკის ინსტალაცია ESP32-ისთვის
The ESPAsyncWebსერვერი ბიბლიოთეკა მოითხოვს AsyncTCP ბიბლიოთეკა სამუშაოდ. მიჰყევით
შემდეგი ნაბიჯები ამ ბიბლიოთეკის ინსტალაციისთვის:

  1. დააწკაპუნეთ აქ AsyncTCP ბიბლიოთეკის ჩამოსატვირთად. ჩამოტვირთვების საქაღალდეში უნდა გქონდეთ .zip საქაღალდე
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ AsyncTCP-master საქაღალდე
    1. თქვენი საქაღალდის გადარქმევა AsyncTCP-master-დან AsyncTCP
    3. გადაიტანეთ AsyncTCP საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში
    4. და ბოლოს, ხელახლა გახსენით თქვენი Arduino IDE

ალტერნატიულად, თქვენს Arduino IDE-ში შეგიძლიათ გადახვიდეთ Sketch > Include
ბიბლიოთეკა > დაამატეთ .ZIP ბიბლიოთეკა… და აირჩიეთ ბიბლიოთეკა, რომელიც ახლახან გადმოწერეთ.
კოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
საჭირო ბიბლიოთეკების დაყენების შემდეგ გახსენით კოდი Project_7_ESP32_Relay_Web_Server.ino arduino IDE-ში.
კოდის ატვირთვამდე არ დაგავიწყდეთ თქვენი ქსელის რწმუნებათა სიგელების ჩასმა, რათა ESP-მ შეძლოს თქვენს ლოკალურ ქსელთან დაკავშირება.LAFVIN ESP32 Basic Starter Kit - ოკალური ქსელიდემონსტრაცია
საჭირო ცვლილებების განხორციელების შემდეგ, ატვირთეთ კოდი თქვენს ESP32-ზე. ატვირთვის კოდის მითითების ნაბიჯები.
გახსენით სერიული მონიტორი ბაუდის სიჩქარით 115200 და დააჭირეთ ESP32 EN ღილაკს მისი IP მისამართის მისაღებად. შემდეგ გახსენით ბრაუზერი თქვენს ლოკალურ ქსელში და აკრიფეთ ESP32 IP მისამართი, რომ მიიღოთ წვდომა web სერვერი.
გახსენით სერიული მონიტორი ბაუდის სიჩქარით 115200 და დააჭირეთ ESP32 EN ღილაკს მისი IP მისამართის მისაღებად. შემდეგ გახსენით ბრაუზერი თქვენს ლოკალურ ქსელში და აკრიფეთ ESP32 IP მისამართი, რომ მიიღოთ წვდომა 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 გამომავალი ა web სერვერი და ფიზიკური ღილაკი ერთდროულად. გამომავალი მდგომარეობა განახლებულია web გვერდის შეცვლა ფიზიკური ღილაკით თუ web სერვერი.
პროექტი დასრულდაview
მოდით შევხედოთ როგორ მუშაობს პროექტი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - პროექტი დასრულდაviewESP32 ან ESP8266 მასპინძლებს ა web სერვერი, რომელიც საშუალებას გაძლევთ აკონტროლოთ გამომავალი მდგომარეობა;

  • მიმდინარე გამომავალი მდგომარეობა ნაჩვენებია web სერვერი;
  • ESP ასევე დაკავშირებულია ფიზიკურ ღილაკთან, რომელიც აკონტროლებს იმავე გამომავალს;
  • თუ თქვენ შეცვლით გამომავალ მდგომარეობას ფიზიკური ღილაკის გამოყენებით, მისი ამჟამინდელი მდგომარეობა ასევე განახლდება web სერვერი.

მოკლედ, ეს პროექტი საშუალებას გაძლევთ აკონტროლოთ იგივე გამომავალი ა web სერვერი და ღილაკი ერთდროულად. როდესაც გამომავალი მდგომარეობა იცვლება, web სერვერი განახლებულია.
საჭირო ნაწილები
აქ მოცემულია იმ ნაწილების სია, რომლებიც გჭირდებათ მიკროსქემის შესაქმნელად:

  • ESP32 DEVKIT V1 დაფა
  • 5 მმ LED
  • 220 Ohm რეზისტორი
  • ღილაკი
  • 10k Ohm რეზისტორი
  • პურის დაფა
  • ჯუმპერის მავთულები

სქემატურიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატური 1ბიბლიოთეკის ინსტალაცია ESP32-ისთვის
ამის ასაშენებლად web სერვერზე, ჩვენ ვიყენებთ ESPAsync-სWebსერვერის ბიბლიოთეკა და AsyncTCP ბიბლიოთეკა. (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESPAsync-ის ინსტალაციაWebსერვერის ბიბლიოთეკა
მიჰყევით შემდეგ ნაბიჯებს ESPAsync-ის ინსტალაციისთვისWebსერვერის ბიბლიოთეკა:

  1. დააწკაპუნეთ აქ ESPAsync-ის ჩამოსატვირთადWebსერვერის ბიბლიოთეკა. უნდა გქონდეს
    .zip საქაღალდე თქვენს ჩამოტვირთვების საქაღალდეში
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ ESPAsyncWebServer-Master საქაღალდე
  3. თქვენი საქაღალდის გადარქმევა ESPAsync-დანWebსერვერის ოსტატი ESPAsync-ზეWebსერვერი
  4. გადაიტანეთ ESPAsyncWebსერვერის საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში
    ალტერნატიულად, თქვენს Arduino IDE-ში შეგიძლიათ გადახვიდეთ Sketch > Include
    ბიბლიოთეკა > დაამატეთ .ZIP ბიბლიოთეკა… და აირჩიეთ ბიბლიოთეკა, რომელიც ახლახან გადმოწერეთ.

AsyncTCP ბიბლიოთეკის ინსტალაცია ESP32-ისთვის
ESPAsyncWebსერვერის ბიბლიოთეკა მოითხოვს AsyncTCP ბიბლიოთეკის მუშაობას. მიჰყევით შემდეგ ნაბიჯებს ამ ბიბლიოთეკის ინსტალაციისთვის:

  1. დააწკაპუნეთ აქ AsyncTCP ბიბლიოთეკის ჩამოსატვირთად. ჩამოტვირთვების საქაღალდეში უნდა გქონდეთ .zip საქაღალდე
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ AsyncTCP-master საქაღალდე
  3. თქვენი საქაღალდის გადარქმევა AsyncTCP-master-დან AsyncTCP
  4. გადაიტანეთ AsyncTCP საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში
  5. და ბოლოს, ხელახლა გახსენით თქვენი Arduino IDE
    ალტერნატიულად, თქვენს Arduino IDE-ში შეგიძლიათ გადახვიდეთ Sketch > Include
    ბიბლიოთეკა > დაამატეთ .ZIP ბიბლიოთეკა… და აირჩიეთ ბიბლიოთეკა, რომელიც ახლახან გადმოწერეთ.

კოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
საჭირო ბიბლიოთეკების დაყენების შემდეგ გახსენით კოდი
Project_8_Output_State_Synchronization_Web_Server.ino arduino IDE-ში.
კოდის ატვირთვამდე არ დაგავიწყდეთ თქვენი ქსელის რწმუნებათა სიგელების ჩასმა, რათა ESP-მ შეძლოს თქვენს ლოკალურ ქსელთან დაკავშირება.LAFVIN ESP32 Basic Starter Kit - კოდი

როგორ მუშაობს კოდი

ღილაკის მდგომარეობა და გამომავალი მდგომარეობა
ledState ცვლადი ინახავს LED გამომავალი მდგომარეობას. ნაგულისხმევად, როდესაც web სერვერი იწყება, ის დაბალია.LAFVIN ESP32 Basic Starter Kit - Code Works

ღილაკსState და lastButtonState გამოიყენება იმის დასადგენად, დაჭერილი იყო თუ არა ღილაკი.LAFVIN ESP32 Basic Starter Kit - დაჭერილი იყოღილაკი (web სერვერი)
ჩვენ არ ჩავურთეთ HTML ღილაკის შესაქმნელად index_html ცვლადზე.
ეს იმიტომ ხდება, რომ ჩვენ გვსურს მისი შეცვლა არსებული LED მდგომარეობიდან გამომდინარე, რომელიც ასევე შეიძლება შეიცვალოს ღილაკით.
ასე რომ, ჩვენ შევქმენით ჩანაცვლების ველი ღილაკისთვის %BUTTONPLACEHOLDER%, რომელიც შეიცვლება HTML ტექსტით, რათა შეიქმნას ღილაკი მოგვიანებით კოდზე (ეს კეთდება პროცესორის() ფუნქციაში).LAFVIN ESP32 Basic Starter Kit - დაჭერილი იყო 1პროცესორი ()
პროცესორი() ფუნქცია ცვლის HTML ტექსტის ნებისმიერ ადგილსამყოფელს რეალური მნიშვნელობებით. პირველ რიგში, ის ამოწმებს შეიცავს თუ არა HTML ტექსტებს რაიმე
ჩანაცვლების ადგილი %BUTTONPLACEHOLDER%.LAFVIN ESP32 Basic Starter Kit - პროცესორიშემდეგ გამოიძახეთ theoutputState() ფუნქცია, რომელიც აბრუნებს მიმდინარე გამომავალ მდგომარეობას. ჩვენ ვინახავთ მას outputStateValue ცვლადში.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - outputStateამის შემდეგ, გამოიყენეთ ეს მნიშვნელობა HTML ტექსტის შესაქმნელად, რათა აჩვენოთ ღილაკი სწორი მდგომარეობით:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 4HTTP GET მოთხოვნა გამომავალი მდგომარეობის შესაცვლელად (JavaScript)
ღილაკზე დაჭერისას გამოიძახება ფუნქცია thetoggleCheckbox(). ეს ფუნქცია დააყენებს მოთხოვნას სხვადასხვაზე URLs ჩართოთ ან გამორთოთ LED.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - JavaScriptLED-ის ჩასართავად ის ითხოვს /update?state=1-ს URL:LAFVIN ESP32 Basic Starter Kit - ელემენტი.შემოწმებულიაწინააღმდეგ შემთხვევაში, ის აკეთებს მოთხოვნას /update?state=0-ზე URL.
HTTP GET სტატუსის განახლების მოთხოვნა (JavaScript)
გამომავალი მდგომარეობის განახლების მიზნით web სერვერზე, ჩვენ ვუწოდებთ შემდეგ ფუნქციას, რომელიც აკეთებს ახალ მოთხოვნას /state-ზე URL ყოველ წამს.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - განახლების მდგომარეობაLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - განახლების მდგომარეობა 1მოთხოვნების დამუშავება
შემდეგ, ჩვენ უნდა მოვაგვაროთ რა მოხდება, როდესაც ESP32 ან ESP8266 მიიღებს მოთხოვნებს მათზე URLs.
როდესაც მოთხოვნა მიიღება root-ზე /URL, ვაგზავნით როგორც HTML გვერდს, ასევე პროცესორს.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - მოთხოვნების დამუშავებაLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ამუშავებს მოთხოვნებს 1შემდეგი სტრიქონები ამოწმებს, მიიღეთ თუ არა მოთხოვნა /update?state=1 ან /update?state=0-ზე URL და შესაბამისად ცვლის ledState-ს.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ledStateLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - inputParamროდესაც მოთხოვნა მიიღება /state-ზე URL, ჩვენ ვაგზავნით მიმდინარე გამომავალ მდგომარეობას:LAFVIN ESP32 Basic Starter Kit - გამომავალი მდგომარეობაloop ()
მარყუჟში(), ჩვენ ვახდენთ ღილაკს და ჩართავთ ან გამორთავთ LED-ს ledState-ის მნიშვნელობიდან გამომდინარე. ცვლადი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - მარყუჟი 1დემონსტრაცია
ატვირთეთ კოდი თქვენს ESP32 დაფაზე. ატვირთეთ კოდის მითითების ნაბიჯები.
შემდეგ გახსენით სერიული მონიტორი ბაუდის სიჩქარით 115200. დააჭირეთ ბორტზე EN/RST ღილაკს IP მისამართის მისაღებად.LAFVIN ESP32 Basic Starter Kit - დემონსტრირებაგახსენით ბრაუზერი თქვენს ლოკალურ ქსელში და ჩაწერეთ ESP IP მისამართი. თქვენ უნდა გქონდეთ წვდომა 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-ის გამოყენებით.
წინაპირობები
The web სერვერი ჩვენ ავაშენებთ განახლებებს კითხვას ავტომატურად, განახლების საჭიროების გარეშე web გვერდი.
ამ პროექტით თქვენ შეისწავლით:

  • როგორ წავიკითხოთ ტემპერატურა და ტენიანობა DHT სენსორებიდან;
  • ასინქრონულის აშენება web სერვერის გამოყენებით ESPAsyncWebსერვერის ბიბლიოთეკა;
  • განაახლეთ სენსორის წაკითხვები ავტომატურად, განახლების საჭიროების გარეშე web გვერდი.

ასინქრონული Web სერვერი
ასაშენებლად web სერვერი, რომელსაც ჩვენ გამოვიყენებთ ESPAsyncWebსერვერის ბიბლიოთეკა რომელიც უზრუნველყოფს მარტივ გზას ასინქრონული სისტემის შესაქმნელად web სერვერი. ასინქრონულის აგება web სერვერს აქვს რამდენიმე ადვანსიtages როგორც აღნიშნულია ბიბლიოთეკის GitHub გვერდზე, როგორიცაა:

  • "ერთზე მეტი კავშირის დამუშავება ერთდროულად";
  • „როდესაც პასუხს აგზავნით, მაშინვე მზად ხართ სხვა კავშირების დასამუშავებლად, სანამ სერვერი ზრუნავს პასუხის ფონზე გაგზავნაზე“;
  • „მარტივი შაბლონის დამუშავების ძრავა შაბლონების დასამუშავებლად“;

საჭირო ნაწილები
ამ გაკვეთილის დასასრულებლად გჭირდებათ შემდეგი ნაწილები:

  • ESP32 განვითარების დაფა
  • DHT11 მოდული
  • პურის დაფა
  • ჯუმპერის მავთულები

სქემატურიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატური 2ბიბლიოთეკების ინსტალაცია
თქვენ უნდა დააინსტალიროთ რამდენიმე ბიბლიოთეკა ამ პროექტისთვის:

DHT სენსორის ბიბლიოთეკის ინსტალაცია
DHT სენსორიდან Arduino IDE-ს გამოყენებით წასაკითხად, თქვენ უნდა დააინსტალიროთ DHT სენსორის ბიბლიოთეკა. მიჰყევით შემდეგ ნაბიჯებს ბიბლიოთეკის ინსტალაციისთვის.

  1. დააწკაპუნეთ აქ DHT სენსორის ბიბლიოთეკის ჩამოსატვირთად. ჩამოტვირთვების საქაღალდეში უნდა გქონდეთ .zip საქაღალდე
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ DHT-sensor-library-master საქაღალდე
  3. დაარქვით თქვენი საქაღალდე DHT-sensor-library-master-დან DHT_sensor
  4. გადაიტანეთ DHT_sensor საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში
  5. და ბოლოს, ხელახლა გახსენით თქვენი Arduino IDE

Adafruit Unified Sensor Driver-ის დაყენება
თქვენ ასევე უნდა დააინსტალიროთ Adafruit Unified Sensor Driver ბიბლიოთეკა DHT სენსორთან მუშაობისთვის. მიჰყევით შემდეგ ნაბიჯებს ბიბლიოთეკის ინსტალაციისთვის.

  1. დააწკაპუნეთ აქ, რომ ჩამოტვირთოთ Adafruit Unified Sensor ბიბლიოთეკა. ჩამოტვირთვების საქაღალდეში უნდა გქონდეთ .zip საქაღალდე
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ Adafruit_sensor-master საქაღალდე
  3. დაარქვით თქვენი საქაღალდე Adafruit_sensor-master-ით Adafruit_sensor
  4. გადაიტანეთ Adafruit_sensor საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში
  5. და ბოლოს, ხელახლა გახსენით თქვენი Arduino IDE

ESPAsync-ის ინსტალაციაWebსერვერის ბიბლიოთეკა

მიჰყევით შემდეგ ნაბიჯებს ინსტალაციისთვის ESPAsyncWebსერვერი ბიბლიოთეკა:

  1. დააწკაპუნეთ აქ ESPAsync-ის ჩამოსატვირთადWebსერვერის ბიბლიოთეკა. უნდა გქონდეს
    .zip საქაღალდე თქვენს ჩამოტვირთვების საქაღალდეში
  2. გახსენით .zip საქაღალდე და თქვენ უნდა
    მიიღეთ ESPAsyncWebServer-Master საქაღალდე
  3. თქვენი საქაღალდის გადარქმევა ESPAsync-დანWebსერვერის ოსტატი ESPAsync-ზეWebსერვერი
  4. გადაიტანეთ ESPAsyncWebსერვერის საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში

Async TCP ბიბლიოთეკის ინსტალაცია ESP32-ისთვის
The ESPAsyncWebსერვერი ბიბლიოთეკა მოითხოვს AsyncTCP ბიბლიოთეკა სამუშაოდ. მიჰყევით შემდეგ ნაბიჯებს ამ ბიბლიოთეკის ინსტალაციისთვის:

  1. დააწკაპუნეთ აქ AsyncTCP ბიბლიოთეკის ჩამოსატვირთად. ჩამოტვირთვების საქაღალდეში უნდა გქონდეთ .zip საქაღალდე
  2. გახსენით .zip საქაღალდე და თქვენ უნდა მიიღოთ AsyncTCP-master საქაღალდე
  3. თქვენი საქაღალდის გადარქმევა AsyncTCP-master-დან AsyncTCP
  4. გადაიტანეთ AsyncTCP საქაღალდე თქვენს Arduino IDE ინსტალაციის ბიბლიოთეკების საქაღალდეში
  5. და ბოლოს, ხელახლა გახსენით თქვენი Arduino IDE

კოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-ში
საჭირო ბიბლიოთეკების დაყენების შემდეგ გახსენით კოდი
პროექტი_9_ESP32_DHT11_Web_Server.ino arduino IDE-ში.
კოდის ატვირთვამდე არ დაგავიწყდეთ თქვენი ქსელის რწმუნებათა სიგელების ჩასმა, რათა ESP-მ შეძლოს თქვენს ლოკალურ ქსელთან დაკავშირება.LAFVIN ESP32 Basic Starter Kit - კოდიროგორ მუშაობს კოდი
შემდეგ აბზაცებში ჩვენ აგიხსნით როგორ მუშაობს კოდი. განაგრძეთ კითხვა, თუ გსურთ გაიგოთ მეტი ან გადადით დემონსტრაციის განყოფილებაში, რომ ნახოთ საბოლოო შედეგი.
ბიბლიოთეკების იმპორტი
პირველი, შემოიტანეთ საჭირო ბიბლიოთეკები. 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 ძირითადი შემქმნელის ნაკრები - ცვლადების განმარტება 1

შექმენით DHT ობიექტის ტიპი და პინი, რომელიც ადრე განვსაზღვრეთ.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ცვლადების განმარტება 2შექმენით ასინქრონულიWebსერვერის ობიექტი 80 პორტზე.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ცვლადების განმარტება 3წაიკითხეთ ტემპერატურისა და ტენიანობის ფუნქციები
ჩვენ შევქმენით ორი ფუნქცია: ერთი ტემპერატურის წასაკითხად ჩვენ შევქმენით ორი ფუნქცია: ერთი ტემპერატურის წასაკითხად (readDHTTemperature()) და მეორე ტენიანობის წასაკითხად (readDHTHumidity()).LAFVIN ESP32 Basic Starter Kit - readDHTHტენიანობაLAFVIN ESP32 Basic Starter Kit - სენსორების ჩვენებებისენსორის წაკითხვის მიღება ისეთივე მარტივია, როგორც გამოყენება სენსორის წაკითხვის მიღება ისეთივე მარტივია, როგორც readTemperature() და readHumidity() მეთოდების გამოყენება dht ობიექტზე.LAFVIN ESP32 Basic Starter Kit - ობიექტიჩვენ ასევე გვაქვს პირობა, რომელიც აბრუნებს ორ ტირეს (–) იმ შემთხვევაში, თუ სენსორი ვერ მიიღებს კითხვებს.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - წაკითხვებიწაკითხვები ბრუნდება სტრიქონის ტიპად. float სტრინგად გადასაყვანად გამოიყენეთ String() ფუნქციაLAFVIN ESP32 Basic Starter Kit - Stringნაგულისხმევად, ჩვენ ვკითხულობთ ტემპერატურას ცელსიუს გრადუსებში. იმისათვის, რომ მიიღოთ ტემპერატურა ფარენჰეიტის გრადუსებში, დააკომენტარეთ ტემპერატურა ცელსიუსში და გააუქმეთ ტემპერატურა ფარენჰეიტში, ასე რომ თქვენ გაქვთ შემდეგი:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ფარენჰეიტიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ფარენჰეიტი 1ატვირთეთ კოდი
ახლა ატვირთეთ კოდი თქვენს ESP32-ზე. დარწმუნდით, რომ არჩეული გაქვთ სწორი დაფა და COM პორტი. ატვირთეთ კოდის მითითების ნაბიჯები.
ატვირთვის შემდეგ გახსენით სერიული მონიტორი ბაუდის სიხშირით 115200. დააჭირეთ ESP32 გადატვირთვის ღილაკს. ESP32 IP მისამართი უნდა იყოს დაბეჭდილი სერიულად მონიტორი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ატვირთეთ კოდიდემონსტრაცია
გახსენით ბრაუზერი და ჩაწერეთ ESP32 IP მისამართი. შენი web სერვერმა უნდა აჩვენოს უახლესი სენსორის წაკითხვები.
შენიშვნა: თქვენი ბრაუზერი და ESP32 უნდა იყოს დაკავშირებული იმავე LAN-თან.
გაითვალისწინეთ, რომ ტემპერატურისა და ტენიანობის ჩვენებები განახლდება ავტომატურად, განახლების საჭიროების გარეშე web გვერდი.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - დემონსტრირება 1

Project_10_ESP32_OLED_Display

ეს პროექტი გვიჩვენებს, თუ როგორ გამოიყენოთ 0.96 დიუმიანი SSD1306 OLED დისპლეი ESP32-ით Arduino IDE-ის გამოყენებით.
წარმოგიდგენთ 0.96 დიუმიანი OLED ეკრანი
The OLED დისპლეი რომელსაც ამ სახელმძღვანელოში გამოვიყენებთ არის SSD1306 მოდელი: მონოკოლური, 0.96 დიუმიანი დისპლეი 128×64 პიქსელით, როგორც ნაჩვენებია შემდეგ სურათზე.LAFVIN ESP32 Basic Starter Kit - OLEDdisplayOLED დისპლეი არ საჭიროებს უკანა განათებას, რაც იწვევს ძალიან კარგ კონტრასტს ბნელ გარემოში. გარდა ამისა, მისი პიქსელები ენერგიას მოიხმარენ მხოლოდ ჩართულის დროს, ამიტომ OLED დისპლეი მოიხმარს ნაკლებ ენერგიას სხვა ეკრანებთან შედარებით.
იმის გამო, რომ OLED დისპლეი იყენებს I2C საკომუნიკაციო პროტოკოლს, გაყვანილობა ძალიან მარტივია. თქვენ შეგიძლიათ გამოიყენოთ შემდეგი ცხრილი, როგორც მითითება.

OLED პინი ESP32
ვინ 3.3 ვ
GND GND
SCL GPIO 22
SDA GPIO 21

სქემატურიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - სქემატურიSSD1306 OLED ბიბლიოთეკის ინსტალაცია – ESP32
არსებობს რამდენიმე ბიბლიოთეკა OLED დისპლეის გასაკონტროლებლად ESP32-ით.
ამ სახელმძღვანელოში ჩვენ გამოვიყენებთ Adafruit-ის ორ ბიბლიოთეკას: Adafruit_SSD1306 ბიბლიოთეკა და Adafruit_GFX ბიბლიოთეკა.
მიჰყევით შემდეგ ნაბიჯებს ამ ბიბლიოთეკების დასაყენებლად.

  1. გახსენით თქვენი Arduino IDE და გადადით Sketch > Include Library > Manage Library. ბიბლიოთეკის მენეჯერი უნდა გაიხსნას.
  2. ჩაწერეთ „SSD1306“ საძიებო ველში და დააინსტალირეთ SSD1306 ბიბლიოთეკა Adafruit-დან.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - OLEDLibrary–
  3. Adafruit-ისგან SSD1306 ბიბლიოთეკის დაყენების შემდეგ საძიებო ველში ჩაწერეთ „GFX“ და დააინსტალირეთ ბიბლიოთეკა.LAFVIN ESP32 Basic Starter Kit - ბიბლიოთეკა
  4. ბიბლიოთეკების დაყენების შემდეგ, გადატვირთეთ თქვენი Arduino IDE.

კოდი
საჭირო ბიბლიოთეკების დაყენების შემდეგ გახსენით Project_10_ESP32_OLED_Display.ino arduino IDE-ში. კოდი
ჩვენ დავაპროგრამებთ ESP32-ს Arduino IDE-ს გამოყენებით, ამიტომ დარწმუნდით, რომ დაინსტალირებული გაქვთ ESP32 დანამატი სანამ გააგრძელებთ: (თუ ეს ნაბიჯი უკვე გააკეთეთ, შეგიძლიათ გადახვიდეთ შემდეგ ეტაპზე.)
ESP32 დანამატის ინსტალაცია Arduino IDE-შიLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 1LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 2LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 3როგორ მუშაობს კოდი
ბიბლიოთეკების იმპორტი
პირველ რიგში, თქვენ უნდა შემოიტანოთ საჭირო ბიბლიოთეკები. Wire ბიბლიოთეკა I2C-ის გამოსაყენებლად და Adafruit ბიბლიოთეკები ეკრანზე დასაწერად: Adafruit_GFX და Adafruit_SSD1306.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - Code Works 1LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - Code Works 2OLED დისპლეის ინიციალიზაცია
შემდეგ, თქვენ განსაზღვრავთ თქვენს 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 pin. თუ თქვენს OLED ეკრანს აქვს RESET pin, ის უნდა იყოს დაკავშირებული GPIO-სთან. ამ შემთხვევაში, პარამეტრად უნდა გადასცეთ GPIO ნომერი.
setup()-ში მოაწყეთ სერიული მონიტორი 115200 ბაუდის სიჩქარით გამართვის მიზნით.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - დანიშნულებაOLED დისპლეის ინიცირება დაიწყეთ () მეთოდით შემდეგნაირად:LAFVIN ESP32 Basic Starter Kit - display.beginLAFVIN ESP32 Basic Starter Kit - Serial.printlnეს ფრაგმენტი ასევე ბეჭდავს შეტყობინებას სერიულ მონიტორზე, იმ შემთხვევაში, თუ ჩვენ ვერ შევძლებთ ეკრანთან დაკავშირებას.

LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - Serial.println 1თუ თქვენ იყენებთ სხვა OLED ეკრანს, შეიძლება დაგჭირდეთ OLED მისამართის შეცვლა. ჩვენს შემთხვევაში, მისამართი არის 0x3C.LAFVIN ESP32 Basic Starter Kit - მისამართიეკრანის ინიციალიზაციის შემდეგ დაამატეთ ორი წამის შეფერხება, რათა OLED-ს ჰქონდეს საკმარისი დრო ინიციალიზაციისთვის ტექსტის დაწერამდე:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - დაგვიანებითეკრანის გასუფთავება, შრიფტის ზომის, ფერის დაყენება და ტექსტის დაწერა
ეკრანის ინიციალიზაციის შემდეგ გაასუფთავეთ ეკრანის ბუფერი clearDisplay() მეთოდით:LAFVIN ESP32 Basic Starter Kit - დისპლეი

ტექსტის დაწერამდე, თქვენ უნდა დააყენოთ ტექსტის ზომა, ფერი და ადგილი, სადაც ტექსტი იქნება ნაჩვენები OLED-ში.
დააყენეთ შრიფტის ზომა setTextSize() მეთოდის გამოყენებით:LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - ეკრანი 1დააყენეთ შრიფტის ფერი setTextColor() მეთოდით:
WHITE ადგენს თეთრ შრიფტს და შავ ფონს.
განსაზღვრეთ პოზიცია, სადაც ტექსტი იწყება setCursor(x,y) მეთოდის გამოყენებით. ამ შემთხვევაში, ჩვენ ვაყენებთ ტექსტის დაწყებას (0,0) კოორდინატებიდან - ზედა მარცხენა კუთხეში.LAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - setTextColor 1და ბოლოს, თქვენ შეგიძლიათ გაგზავნოთ ტექსტი ეკრანზე println() მეთოდის გამოყენებით, შემდეგნაირადLAFVIN ESP32 ძირითადი შემქმნელის ნაკრები - კოდი 5შემდეგ, თქვენ უნდა გამოიძახოთ display() მეთოდი, რათა რეალურად გამოჩნდეს ტექსტი ეკრანზე.LAFVIN ESP32 Basic Starter Kit - დისპლეი

Adafruit OLED ბიბლიოთეკა გთავაზობთ სასარგებლო მეთოდებს ტექსტის მარტივად გადახვევისთვის.

  • startscrollright (0x00, 0x0F): გადაახვიეთ ტექსტი მარცხნიდან მარჯვნივ
  • startscrollleft (0x00, 0x0F): გადაახვიეთ ტექსტი მარჯვნიდან მარცხნივ
  • startscrolldiagright(0x00, 0x07): გადაახვიეთ ტექსტი მარცხენა ქვედა კუთხიდან მარჯვენა ზედა კუთხეში startscrolldiagleft(0x00, 0x07): გადაახვიეთ ტექსტი ქვედა მარჯვენა კუთხიდან მარცხენა ზედა კუთხეში

ატვირთეთ კოდი
ახლა, ატვირთეთ კოდი თქვენს ESP32-ზე. ატვირთეთ კოდის მითითების ნაბიჯები.
კოდის ატვირთვის შემდეგ, OLED აჩვენებს გადახვევის ტექსტს.LAFVIN ESP32 Basic Starter Kit - ტექსტის გადახვევაLAFVIN-ის ლოგო

დოკუმენტები / რესურსები

LAFVIN ESP32 საბაზისო სასტარტო ნაკრები [pdf] ინსტრუქციის სახელმძღვანელო
ESP32 საბაზისო სასტარტო ნაკრები, ESP32, საბაზისო სასტარტო ნაკრები, სასტარტო ნაკრები

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *