ESP32 Основен стартер
Комплет
Список за пакување
ESP32 Вовед
Нов на ESP32? Започнете овде! ESP32 е серија на евтини и евтини микроконтролери Систем на чип (SoC) развиени од Espressif кои вклучуваат безжични можности за Wi-Fi и Bluetooth и процесор со две јадра. Ако сте запознаени со ESP8266, ESP32 е негов наследник, полн со многу нови функции.ESP32 Спецификации
Ако сакате да добиете малку повеќе технички и специфични, можете да ги погледнете следните детални спецификации на ESP32 (извор: http://esp32.net/) - за повеќе детали, проверете го листот со податоци):
- Безжично поврзување WiFi: брзина на податоци од 150.0 Mbps со HT40
- Bluetooth: BLE (Bluetooth Low Energy) и Bluetooth Classic
- Процесор: Tensilica Xtensa Dual-Core 32-битен микропроцесор LX6, работи на 160 или 240 MHz
- Меморија:
- ROM: 448 KB (за подигање и основни функции)
- SRAM: 520 KB (за податоци и инструкции)
- RTC fas SRAM: 8 KB (за складирање податоци и главен процесор за време на RTC подигање од режим на длабок сон)
- RTC бавен SRAM: 8KB (за пристап до копроцесор за време на режимот на длабок сон) eFuse: 1 Kbit (од кои 256 бита се користат за системот (MAC адреса и конфигурација на чипот) а останатите 768 бита се резервирани за апликации на клиентите, вклучувајќи Flash-енкрипција и чип-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 кој вклучува капацитивен допир
- ADCs (аналогно-дигитален конвертор)
- 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 пинови.Спецификации – ESP32 DEVKIT V1
Следната табела покажува резиме на карактеристиките и спецификациите на плочката ESP32 DEVKIT V1 DOIT:
Број на јадра | 2 (двојно јадро) |
Wi-Fi | 2.4 GHz до 150 Mbits/s |
Bluetooth | BLE (Bluetooth Low Energy) и наследен Bluetooth |
Архитектура | 32 бита |
Фреквенција на часовник | До 240 MHz |
RAM меморија | 512 KB |
Иглички | 30 (во зависност од моделот) |
Периферни уреди | Капацитивен допир, ADC (конвертор од аналогно во дигитално), DAC (конвертор од дигитално во аналогно), 12C (интегрирано коло), UART (универзален асинхрон приемник/предавател), CAN 2.0 (Netwokr со област на контролорот), SPI (сериски периферен интерфејс) , 12S (Интегриран меѓу IC Звук), RMII (редуциран медиумски независен интерфејс), PWM (модулација на ширина на пулсот) и многу повеќе. |
Вградени копчиња | Копчињата RESET и BOOT |
Вградени LED диоди | вградена сина LED диода поврзана со GPIO2; вградена црвена ЛЕД што покажува дека плочата се напојува |
USB до UART мост |
CP2102 |
Доаѓа со microUSB интерфејс што можете да го користите за да ја поврзете плочата со вашиот компјутер за да поставите код или да примените напојување.
Го користи чипот CP2102 (USB во UART) за да комуницира со вашиот компјутер преку COM порта користејќи сериски интерфејс. Друг популарен чип е CH340. Проверете што е конверторот на USB во UART чип на вашата плочка бидејќи ќе треба да ги инсталирате потребните драјвери за да може вашиот компјутер да комуницира со плочата (повеќе информации за ова подоцна во ова упатство).
Оваа плочка доаѓа и со копче RESET (може да биде означено со EN) за рестартирање на плочата и копче BOOT за ставање на плочата во режим на трепкање (достапно за примање код). Имајте предвид дека некои табли можеби немаат копче BOOT.
Доаѓа и со вградена сина LED диода која е внатрешно поврзана со GPIO 2. Оваа LED е корисна за дебагирање за да даде некој вид визуелен физички излез. Има и црвена LED диода која свети кога ќе ја напојувате плочата.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.
Иако можете да ги дефинирате својствата на пиновите на софтверот, има стандардно доделени пинови како што е прикажано на следната сликаДополнително, постојат иглички со специфични карактеристики што ги прават соодветни или не за одреден проект. Следната табела покажува кои пинови се најдобро да се користат како влезови, излези и кои треба да бидете претпазливи.
Пиновите означени со зелено се во ред за употреба. Оние означени со жолто се во ред за употреба, но треба да обрнете внимание бидејќи тие може да имаат неочекувано однесување главно при подигање. Пиновите означени со црвено не се препорачуваат да се користат како влезни или излези.
GP IO | Влез | Излез | Белешки |
0 | повлечен нагоре | OK | излегува PWM сигнал при подигање, мора да биде LOW за да влезе во режим на трепкање |
1 | TX пин | OK | излез од грешки при подигнување |
2 | OK | OK | поврзан со LED 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 - внесуваат само пинови. Овие пинови немаат внатрешни отпорници за повлекување или спуштање. Тие не можат да се користат како излези, затоа користете ги овие пинови само како влезови:
- ГПИО 34
- ГПИО 35
- ГПИО 36
- ГПИО 39
SPI блиц интегриран на ESP-WROOM-32
GPIO 6 до GPIO 11 се изложени во некои развојни табли ESP32. Сепак, овие пинови се поврзани со интегрираниот SPI блиц на чипот ESP-WROOM-32 и не се препорачуваат за друга употреба. Затоа, не користете ги овие пинови во вашите проекти:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
GPIO со капацитивен допир
ESP32 има 10 внатрешни капацитивни сензори за допир. Тие можат да почувствуваат варијации во сè што има електричен полнеж, како човечката кожа. Така тие можат да детектираат варијации предизвикани при допирање на GPIO со прст. Овие пинови може лесно да се интегрираат во капацитивни влошки и да ги заменат механичките копчиња. Капацитивните иглички на допир може да се користат и за будење на ESP32 од длабок сон. Овие внатрешни сензори за допир се поврзани со овие GPIO:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
Аналоген кон дигитален конвертор (ADC)
ESP32 има 18 x 12 бита ADC влезни канали (додека ESP8266 има само 1x 10 бита ADC). Ова се GPIO кои можат да се користат како ADC и соодветни канали:
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
Забелешка: ADC2 пиновите не може да се користат кога се користи Wi-Fi. Значи, ако користите Wi-Fi и имате проблем да ја добиете вредноста од ADC2 GPIO, може да размислите наместо тоа да користите ADC1 GPIO. Тоа треба да ви го реши проблемот.
Влезните ADC канали имаат 12-битна резолуција. Ова значи дека можете да добиете аналогни отчитувања кои се движат од 0 до 4095, во кои 0 одговара на 0V и 4095 до 3.3V. Можете исто така да ја поставите резолуцијата на вашите канали на кодот и опсегот ADC.
ESP32 ADC пиновите немаат линеарно однесување. Веројатно нема да можете да разликувате помеѓу 0 и 0.1V или помеѓу 3.2 и 3.3V. Треба да го имате на ум тоа кога ги користите ADC пиновите. Ќе добиете однесување слично на она што е прикажано на следната слика.Дигитален кон аналоген конвертор (DAC)
Има 2 x 8 битни DAC канали на ESP32 за конвертирање на дигитални сигнали во аналогни јачинаtage сигнални излези. Ова се DAC каналите:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
Има поддршка за RTC GPIO на ESP32. GPIO-овите насочени кон потсистемот RTC со мала моќност може да се користат кога ESP32 е во длабок сон. Овие RTC GPIO може да се користат за будење на ESP32 од длабок сон кога е Ultra Low
Копроцесорот за напојување (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 е:
СПИ | МОСИ | МИСО | CLK | CS |
ВСПИ | ГПИО 23 | ГПИО 19 | ГПИО 18 | ГПИО 5 |
HSPI | ГПИО 13 | ГПИО 12 | ГПИО 14 | ГПИО 15 |
Прекинува
Сите GPIO може да се конфигурираат како прекини.
Иглички за прерамки
Чипот ESP32 ги има следните иглички за прицврстување:
- GPIO 0 (мора да биде НИСКО за да влезете во режим на подигање)
- GPIO 2 (мора да лебди или НИСКИ за време на подигањето)
- ГПИО 4
- GPIO 5 (мора да биде ВИСОК при подигање)
- GPIO 12 (мора да биде НИСК за време на подигањето)
- GPIO 15 (мора да биде ВИСОК при подигање)
Тие се користат за ставање на ESP32 во режим на подигнувач или трепкање. На повеќето развојни табли со вграден USB/Serial, не треба да се грижите за состојбата на овие пинови. Плочката ги става пиновите во вистинската состојба за трепкање или режим на подигање. Повеќе информации за ESP32 Boot Mode Selection може да најдете овде.
Меѓутоа, ако имате периферни уреди поврзани со тие пинови, може да имате проблем да прикачите нов код, да трепкате ESP32 со нов фирмвер или да ја ресетирате плочата. Ако имате некои периферни уреди поврзани со игличките за поврзување и имате проблеми со поставувањето на кодот или трепкањето на ESP32, можеби тоа е затоа што тие периферни уреди го спречуваат ESP32 да влезе во вистинскиот режим. Прочитајте ја документацијата за избор на режим за подигање за да ве води во вистинската насока. По ресетирање, трепкање или подигнување, тие пинови работат како што се очекуваше.
Пиновите HIGH при подигање
Некои GPIO ја менуваат нивната состојба во HIGH или излегуваат PWM сигнали при подигање или ресетирање.
Ова значи дека ако имате излези поврзани со овие GPIO, може да добиете неочекувани резултати кога ESP32 ќе се ресетира или ќе се подигне.
- ГПИО 1
- ГПИО 3
- ГПИО 5
- GPIO 6 до GPIO 11 (поврзан со интегрираната SPI флеш меморија ESP32 – не се препорачува да се користи).
- ГПИО 14
- ГПИО 15
Овозможи (EN)
Enable (EN) е пин за овозможување на регулаторот 3.3V. Тој е повлечен нагоре, затоа поврзете се со земјата за да го оневозможите регулаторот на 3.3V. Ова значи дека можете да го користите овој пин поврзан со копче за да го рестартирате вашиот 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 FileSystem Uploader Plugin) кои сè уште не се поддржани на Arduino 2. Значи, ако имате намера да го користите приклучокот SPIFFS во иднина, препорачуваме да ја инсталирате старата верзија 1.8.X. Само треба да скролувате надолу на страницата со софтверот Arduino за да ја најдете.
Инсталирање на додаток ESP32 во Arduino IDE
За да ја инсталирате плочката ESP32 во вашиот Arduino IDE, следете ги следните упатства:
- Во вашиот Arduino IDE, одете на File> Преференци
- Внесете го следново во „Дополнителен менаџер на одборот URLs” поле:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Потоа, кликнете на копчето „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
Отворете го Менаџерот на одбори. Одете во Алатки > Табла > Менаџер на табли…Пребарај за ESP32 and press install button for the “ESP32 by Espressif Systems“:
Тоа е тоа. Треба да се инсталира по неколку секунди.
Поставете тест код
Приклучете ја плочката ESP32 на вашиот компјутер. Со отворениот Arduino IDE, следете ги овие чекори:
- Изберете ја вашата табла во менито Алатки > Табла (во мојот случај тоа е модулот ESP32 DEV)
- Изберете ја порта (ако не ја гледате COM портата во вашиот Arduino IDE, треба да ги инсталирате CP210x USB на UART Bridge VCP драјвери):
- Отворете го следниот прampле под File > Прamples > WiFi
(ESP32) > WiFiScan - Се отвора нова скица во вашиот Arduino IDE:
- Притиснете го копчето Upload во Arduino IDE. Почекајте неколку секунди додека кодот се компајлира и се прикачува на вашата табла.
- Ако сè се одвиваше како што се очекуваше, треба да видите „Прикачувањето е завршено“. порака.
- Отворете го Arduino IDE серискиот монитор со брзина на бауд од 115200:
- Притиснете го копчето Овозможи вградена ESP32 и треба да ги видите мрежите достапни во близина на вашиот ESP32:
Решавање проблеми
Ако се обидете да поставите нова скица на вашиот ESP32 и ја добиете оваа порака за грешка „Се случи фатална грешка: Не успеа да се поврзе со ESP32: истече времето… Се поврзува…“. Тоа значи дека вашиот ESP32 не е во режим на трепкање/поставување.
Имајќи го избраното вистинското име на таблата и COM por, следете ги овие чекори:
Држете го копчето „BOOT“ на вашата плочка ESP32
- Притиснете го копчето „Подигни“ во Arduino IDE за да ја поставите вашата скица:
- Откако ќе го видите „Поврзување…“. порака во вашиот Arduino IDE, отпуштете го прстот од копчето „BOOT“:
- После тоа, треба да ја видите пораката „Заврши поставувањето“.
Тоа е тоа. На вашиот ESP32 треба да работи новата скица. Притиснете го копчето „ENABLE“ за да го рестартирате ESP32 и да ја извршите новата поставена скица.
Исто така, ќе мора да ја повторувате таа низа на копчиња секогаш кога сакате да прикачите нова скица.
Проект 1 ESP32 Влезни излези
Во овој водич за почеток, ќе научите како да читате дигитални влезови како прекинувач со копчиња и да ги контролирате дигиталните излези како LED со помош на ESP32 со Arduino IDE.
Предуслови
Ќе го програмираме ESP32 користејќи Arduino IDE. Затоа, проверете дали сте го инсталирале додатокот за ESP32 плочите пред да продолжите:
- Инсталирање на додаток ESP32 во Arduino IDE
ESP32 Контролни дигитални излези
Прво, треба да го поставите GPIO што сакате да го контролирате како OUTPUT. Користете ја функцијата pinMode() на следниов начин:
pinMode (GPIO, OUTPUT);
За да контролирате дигитален излез, само треба да ја користите функцијата digitalWrite(), која ги прифаќа како аргументи, GPIO (int број) на којшто се повикувате и состојбата, или HIGH или LOW.
digitalWrite (GPIO, STATE);
Сите GPIO може да се користат како излези освен GPIO од 6 до 11 (поврзани со интегрираниот SPI блиц) и GPIO 34, 35, 36 и 39 (внесувајте само GPIO);
Дознајте повеќе за ESP32 GPIO: ESP32 GPIO Reference Guide
ESP32 Читање на дигитални влезови
Прво, поставете го GPIO што сакате да го прочитате како INPUT, користејќи ја функцијата pinMode() на следниов начин:
pinMode (GPIO, INPUT);
За да прочитате дигитален влез, како копче, ја користите функцијата digitalRead(), која како аргумент го прифаќа GPIO (int број) на којшто се повикувате.
digitalRead (GPIO);
Сите ESP32 GPIO може да се користат како влезови, освен GPIO од 6 до 11 (поврзани со интегрираниот SPI блиц).
Дознајте повеќе за ESP32 GPIO: ESP32 GPIO Reference Guide
Проект Прample
За да ви покажеме како да користите дигитални влезови и дигитални излези, ќе изградиме едноставен проект на прampЛе со копче и ЛЕД. Ќе ја прочитаме состојбата на копчето и соодветно ќе ја запалиме LED како што е илустрирано на следната слика.
Потребни делови
Еве список на делови што ви се потребни за да го изградите колото:
- ESP32 DEVKIT V1
- LED 5 mm
- Отпорник од 220 Ом
- Притискање на копчето
- Отпорник од 10 k Ohm
- Даска за леб
- Скокачки жици
Шематски дијаграм
Пред да продолжите, треба да составите коло со LED и копче.
Ќе го поврземе ЛЕР-то со GPIO 5, а копчето со GPIO 4.Код
Отворете го кодот Project_1_ESP32_Inputs_Outputs.ino во arduino IDEКако работи кодот
Во следните две линии, креирате променливи за доделување пинови:
Копчето е поврзано со GPIO 4 и ЛЕР е поврзано со GPIO 5. Кога користите Arduino IDE со ESP32, 4 одговара на GPIO 4, а 5 одговара на GPIO 5.
Следно, креирате променлива за да ја задржите состојбата на копчето. Стандардно, тоа е 0 (не е притиснато).
int копчеСостојба = 0;
Во поставувањето(), го иницијализирате копчето како ВЛЕЗ, а ЛЕР како ИЗЛЕЗ.
За тоа, ја користите функцијата pinMode() која го прифаќа пинот на којшто се повикувате и режимот: INPUT или OUTPUT.
pinMode (копчеPin, INPUT);
pinMode (ledPin, OUTPUT);
Во јамката () е местото каде што ја читате состојбата на копчето и соодветно ја поставувате ЛЕД-то.
Во следниот ред, ја читате состојбата на копчето и ја зачувувате во променливата buttonState.
Како што видовме претходно, ја користите функцијата digitalRead().
buttonState = digitalRead (buttonPin);
Следната изјава if проверува дали состојбата на копчето е ВИСОКА. Ако е така, ја вклучува ЛЕР со помош на функцијата digitalWrite() која како аргумент ги прифаќа ledPin-от и состојбата HIGH.
ако (копче Состојба == ВИСОКО)Ако состојбата на копчето не е ВИСОКА, ќе ја исклучите ЛЕД-то. Само поставете LOW како втор аргумент во функцијата digitalWrite().
Поставување на кодот
Пред да кликнете на копчето за поставување, одете во Tools > Board и изберете ја таблата :DOIT ESP32 DEVKIT V1.
Одете во Tools > Port и изберете ја COM портата на која е поврзан ESP32. Потоа, притиснете го копчето за поставување и почекајте ја пораката „Заврши поставувањето“.Забелешка: Ако видите многу точки (се поврзуваат…__…__) на прозорецот за отстранување грешки и пораката „Не успеав да се поврзам со ESP32: истече времето на чекање за заглавие на пакетот“, тоа значи дека треба да го притиснете ESP32 вградениот BOOT копчето по точките
почне да се појавува.Решавање проблеми
Демонстрација
Откако ќе го поставите кодот, тестирајте го вашето коло. Вашата ЛЕД треба да светне кога ќе го притиснете копчето:И исклучете го кога ќе го ослободите:
Проект 2 ESP32 Аналогни влезови
Овој проект покажува како да читате аналогни влезови со ESP32 користејќи Arduino IDE.
Аналогното читање е корисно за читање вредности од променливи отпорници како потенциометри или аналогни сензори.
Аналогни влезови (ADC)
Читањето аналогна вредност со ESP32 значи дека можете да измерите различен волуменtage нивоа помеѓу 0 V и 3.3 V.
Волtage измерено потоа се доделува на вредност помеѓу 0 и 4095, во која 0 V одговара на 0, а 3.3 V одговара на 4095. Било кој волtage помеѓу 0 V и 3.3 V ќе се даде соодветната вредност помеѓу.ADC е нелинеарен
Идеално, би очекувале линеарно однесување при користење на ESP32 ADC пиновите.
Сепак, тоа не се случува. Она што ќе го добиете е однесување како што е прикажано на следната табела:Ова однесување значи дека вашиот ESP32 не може да разликува 3.3 V од 3.2 V.
Ќе ја добиете истата вредност за двата том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 игличките. Тие се означени со црвена граница на сликата подолу.Овие аналогни влезни пинови имаат 12-битна резолуција. Ова значи дека кога читате аналоген влез, неговиот опсег може да варира од 0 до 4095.
Забелешка: ADC2 пиновите не може да се користат кога се користи Wi-Fi. Значи, ако користите Wi-Fi и имате проблем да ја добиете вредноста од ADC2 GPIO, може да размислите да користите ADC1 GPIO наместо тоа, што треба да го реши вашиот проблем.
За да видиме како сè е поврзано, ќе направиме едноставен ексample да чита аналогна вредност од потенциометар.
Потребни делови
За оваа ексampле, ви требаат следниве делови:
- Табла ESP32 DEVKIT V1
- Potentiometer
- Даска за леб
- Скокачки жици
Шематски
Поврзете потенциометар на вашиот ESP32. Средниот пин на потенциометарот треба да се поврзе со GPIO 4. Можете да го користите следниов шематски дијаграм како референца.Код
Ќе го програмираме ESP32 користејќи Arduino IDE, затоа проверете дали сте го инсталирале додатокот ESP32 пред да продолжите: (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на додаток ESP32 во Arduino IDE
Отворете го кодот Project_2_ESP32_Inputs_Outputs.ino во arduino IDEОвој код едноставно ги чита вредностите од потенциометарот и ги печати тие вредности во Серискиот монитор.
Во кодот, започнувате со дефинирање на GPIO на кој е поврзан потенциометарот. Во овој ексample, GPIO 4.Во поставувањето(), иницијализирајте сериска комуникација со брзина на бауд од 115200.
Во loop(), користете ја функцијата analogRead() за да го прочитате аналогниот влез од potPin-от.
Конечно, испечатете ги вредностите прочитани од потенциометарот во серискиот монитор.
Поставете го кодот даден на вашиот ESP32. Проверете дали сте ја одбрале вистинската плочка и COM порта во менито Tools.
Тестирање на Прample
Откако ќе го поставите кодот и ќе го притиснете копчето за ресетирање ESP32, отворете го Серискиот монитор со брзина на бауд од 115200. Завртете го потенциометарот и видете како се менуваат вредностите.Максималната вредност што ќе ја добиете е 4095, а минималната вредност е 0.
Завиткување
Во оваа статија научивте како да читате аналогни влезови користејќи ESP32 со Arduino IDE. Накратко:
- Плочката ESP32 DEVKIT V1 DOIT (верзија со 30 пинови) има 15 ADC пинови што можете да ги користите за читање аналогни влезови.
- Овие пинови имаат резолуција од 12 бита, што значи дека можете да добиете вредности од 0 до 4095.
- За да прочитате вредност во Arduino IDE, едноставно ја користите функцијата analogRead().
- ESP32 ADC пиновите немаат линеарно однесување. Веројатно нема да можете да разликувате помеѓу 0 и 0.1V или помеѓу 3.2 и 3.3V. Треба да го имате на ум тоа кога ги користите ADC пиновите.
Project 3 ESP32 PWM (аналоген излез)
Во ова упатство ќе ви покажеме како да генерирате PWM сигнали со ESP32 користејќи Arduino IDE. Како ексampќе изградиме едноставно коло што го затемнува LED со помош на LED PWM контролер на ESP32.ESP32 LED PWM контролер
ESP32 има LED PWM контролер со 16 независни канали кои можат да се конфигурираат да генерираат PWM сигнали со различни својства.
Еве ги чекорите што треба да ги следите за да затемните LED со PWM користејќи Arduino IDE:
- Прво, треба да изберете PWM канал. Има 16 канали од 0 до 15.
- Потоа, треба да ја поставите фреквенцијата на сигналот PWM. За ЛЕР, фреквенција од 5000 Hz е добра за употреба.
- Исто така, треба да ја поставите резолуцијата на работниот циклус на сигналот: имате резолуции од 1 до 16 бита. Ќе користиме 8-битна резолуција, што значи дека можете да ја контролирате осветленоста на LED диодата користејќи вредност од 0 до 255.
- Следно, треба да одредите на кои GPIO или GPIO ќе се појави сигналот. За тоа ќе ја користите следнава функција:
ledcAttachPin (GPIO, канал)
Оваа функција прифаќа два аргументи. Првиот е GPIO кој ќе го емитува сигналот, а вториот е каналот што ќе го генерира сигналот. - Конечно, за да ја контролирате светлината на LED со помош на PWM, ја користите следнава функција:
ledcWrite (канал, работен циклус)
Оваа функција ги прифаќа како аргументи каналот што го генерира PWM сигналот и работниот циклус.
Потребни делови
За да го следите ова упатство, потребни ви се овие делови:
- Табла ESP32 DEVKIT V1
- 5мм ЛЕР
- Отпорник од 220 Ом
- Даска за леб
- Скокачки жици
Шематски
Поврзете ЛЕР на вашиот ESP32 како на следниот шематски дијаграм. ЛЕР треба да биде поврзан со GPIO 4.Забелешка: можете да користите кој било пин што го сакате, се додека може да дејствува како излез. Сите пинови кои можат да дејствуваат како излези може да се користат како пинови PWM. За повеќе информации за ESP32 GPIO, прочитајте: ESP32 Pinout Reference: Кои GPIO пинови треба да ги користите?
Код
Ќе го програмираме ESP32 користејќи Arduino IDE, затоа проверете дали сте го инсталирале додатокот ESP32 пред да продолжите: (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на додаток ESP32 во Arduino IDE
Отворете го кодот Project_3_ESP32_PWM.ino во arduino IDEЗапочнувате со дефинирање на пинот на кој е прикачен ЛЕР. Во овој случај, ЛЕР е прикачен на GPIO 4.
Потоа, ги поставувате својствата на сигналот PWM. Вие дефинирате фреквенција од 5000 Hz, избирате канал 0 за генерирање на сигналот и поставувате резолуција од 8 бита. Можете да изберете други својства, различни од овие, за да генерирате различни PWM сигнали.
Во setup(), треба да го конфигурирате LED PWM со својствата што сте ги дефинирале претходно со користење на функцијата ledcSetup() која ги прифаќа како аргументи, ledChannel, фреквенцијата и резолуцијата, на следниов начин:
Следно, треба да го изберете GPIO од кој ќе го добивате сигналот. За тоа користете ја функцијата ledcAttachPin() која ги прифаќа како аргументи GPIO каде што сакате да го добиете сигналот и каналот што го генерира сигналот. Во овој ексample, ќе го добиеме сигналот во ledPin GPIO, што одговара на GPIO 4. Каналот што го генерира сигналот е ledChannel, што одговара на каналот 0.
Во циклусот, ќе го менувате работниот циклус помеѓу 0 и 255 за да ја зголемите светлината на LED.
И потоа, помеѓу 255 и 0 за да се намали осветленоста.
За да ја поставите осветленоста на ЛЕР, само треба да ја користите функцијата ledcWrite() која го прифаќа како аргумент каналот што го генерира сигналот и работниот циклус.
Бидејќи користиме 8-битна резолуција, работниот циклус ќе се контролира со помош на вредност од 0 до 255. Забележете дека во функцијата ledcWrite() го користиме каналот што го генерира сигналот, а не GPIO.
Тестирање на Прample
Поставете го кодот на вашиот ESP32. Проверете дали сте ја одбрале вистинската плочка и COM порта. Погледнете го вашето коло. Треба да имате ЛЕД со затемнување што ја зголемува и намалува осветленоста.
Проект 4 ESP32 PIR сензор за движење
Овој проект покажува како да детектира движење со ESP32 со помош на PIR сензор за движење. Сирената ќе се огласи со аларм кога ќе се открие движење и ќе го запре алармот кога не се открие движење за претходно поставено време (како 4 секунди)
Како работи сензорот за движење HC-SR501
.Принципот на работа на сензорот HC-SR501 се заснова на промената на инфрацрвеното зрачење на подвижниот објект. За да биде откриен од сензорот HC-SR501, објектот мора да исполнува две барања:
- Објектот емитира на инфрацрвен начин.
- Предметот се движи или се тресе
Значи:
Ако некој објект емитира инфрацрвен зрак, но не се движи (на пр., човек стои во место без да се движи), тој не е откриен од сензорот.
Ако некој предмет се движи, но не емитира инфрацрвен зрак (на пример, робот или возило), тој НЕ е откриен од сензорот.
Ви ги претставуваме тајмерите
Во овој ексampќе воведеме и тајмери. Сакаме ЛЕР да остане вклучен предодреден број секунди откако ќе се открие движењето. Наместо да користиме функција delay() која го блокира вашиот код и не дозволува да правите ништо друго одреден број секунди, треба да користиме тајмер.Функцијата delay().
Треба да сте запознаени со функцијата delay() бидејќи таа е широко користена. Оваа функција е прилично едноставна за користење. Прифаќа единечен int број како аргумент.
Овој број го претставува времето во милисекунди кога програмата треба да чека додека не премине на следната линија на код.Кога ќе направите delay (1000), вашата програма запира на таа линија за 1 секунда.
delay() е блокирачка функција. Функциите за блокирање ја спречуваат програмата да прави нешто друго додека не се заврши таа одредена задача. Ако ви треба повеќе задачи да се случуваат истовремено, не можете да користите delay().
За повеќето проекти треба да избегнувате да користите одложувања и наместо тоа да користите тајмери.
Функцијата millis().
Користејќи ја функцијата наречена millis() можете да го вратите бројот на милисекунди што поминале од првиот старт на програмата.Зошто е корисна таа функција? Бидејќи со користење на некоја математика, можете лесно да потврдите колку време поминало без да го блокирате вашиот код.
Потребни делови
За да го следите ова упатство ви требаат следните делови
- Табла ESP32 DEVKIT V1
- PIR сензор за движење (HC-SR501)
- Активно зуи
- Скокачки жици
- Даска за леб
ШематскиЗабелешка: Работниот томtage на HC-SR501 е 5V. Користете го Vin пинот за да го напојувате.
Код
Пред да продолжите со ова упатство, треба да го инсталирате додатокот ESP32 во вашиот Arduino IDE. Следете едно од следните упатства за да го инсталирате ESP32 на Arduino IDE, ако веќе не сте го направиле. (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на додаток ESP32 во Arduino IDE
Отворете го кодот Project_4_ESP32_PIR_Motion_Sensor.ino во arduino IDE.
Демонстрација
Поставете го кодот на вашата плочка ESP32. Проверете дали сте ја одбрале вистинската плочка и COM порта. Поставете референтни чекори за кодот.
Отворете го серискиот монитор со брзина на бауд од 115200.Движете ја раката пред PIR сензорот. Звучникот треба да се вклучи, а пораката се печати во серискиот монитор велејќи „Движење е откриено! Аларм со звучен сигнал“.
По 4 секунди, звучникот треба да се исклучи.
Проект 5 Прекинувач ESP32 Web Сервер
Во овој проект ќе создадете самостоен web сервер со ESP32 кој ги контролира излезите (две LED диоди) користејќи ја програмската средина Arduino IDE. На web серверот е одговорен за мобилни телефони и може да се пристапи со кој било уред што е прелистувач на локалната мрежа. Ќе ви покажеме како да го креирате web сервер и како функционира кодот чекор-по-чекор.
Проектот завршиview
Пред да одите директно на проектот, важно е да се наведе што е нашето web серверот ќе го стори тоа, така што подоцна ќе биде полесно да се следат чекорите.
- На web серверот што ќе го изградите контроли на две LED диоди поврзани со ESP32 GPIO 26 и GPIO 27;
- Можете да пристапите до ESP32 web сервер со внесување на IP адресата ESP32 на прелистувач во локалната мрежа;
- Со кликнување на копчињата на вашиот web сервер можете веднаш да ја промените состојбата на секоја LED диода.
Потребни делови
За ова упатство ќе ви требаат следниве делови:
- Табла ESP32 DEVKIT V1
- 2 x 5 mm LED
- Отпорник 2x200 Ohm
- Даска за леб
- Скокачки жици
Шематски
Започнете со градење на колото. Поврзете две LED диоди на ESP32 како што е прикажано на следниот шематски дијаграм - едната LED е поврзана на GPIO 26, а другата на GPIO 27.
Забелешка: Ја користиме плочката ESP32 DEVKIT DOIT со 36 пинови. Пред да го монтирате колото, проверете дали сте го проверувале пинот за плочата што ја користите.Код
Овде го даваме кодот што го создава ESP32 web сервер. Отворете го кодот Project_5_ESP32_Switch _Web_Server.ino во arduino IDE, но сè уште не го поставувајте. Треба да направите некои промени за да функционира за вас.
Ќе го програмираме ESP32 користејќи Arduino IDE, затоа проверете дали сте го инсталирале додатокот ESP32 пред да продолжите: (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на додаток ESP32 во Arduino IDE
Поставување на вашите мрежни акредитиви
Треба да ги измените следните линии со вашите мрежни ингеренции: SSID и лозинка. Кодот е добро коментиран за тоа каде треба да ги направите промените.Поставување на кодот
Сега, можете да го испратите кодот и и на web серверот ќе работи веднаш.
Следете ги следните чекори за да поставите код на ESP32:
- Приклучете ја вашата ESP32 плоча во вашиот компјутер;
- Во Arduino IDE изберете ја вашата табла во Tools > Board (во нашиот случај ја користиме плочката ESP32 DEVKIT DOIT);
- Изберете ја портата COM во Алатки > Порта.
- Притиснете го копчето Upload во Arduino IDE и почекајте неколку секунди додека кодот се компајлира и се поставува на вашата табла.
- Почекајте ја пораката „Заврши поставувањето“.
Наоѓање на ESP IP адресата
Откако ќе го поставите кодот, отворете го серискиот монитор со брзина на бауд од 115200.Притиснете го копчето ESP32 EN (ресетирање). ESP32 се поврзува со Wi-Fi и ја емитува ESP IP адресата на серискиот монитор. Копирајте ја таа IP адреса, бидејќи ви е потребна за пристап до ESP32 web сервер.
Пристапување до Web Сервер
За пристап до web сервер, отворете го вашиот прелистувач, залепете ја IP адресата на ESP32 и ќе ја видите следната страница.
Забелешка: Вашиот прелистувач и ESP32 треба да бидат поврзани на истата LAN.Ако го погледнете серискиот монитор, можете да видите што се случува на позадината. ESP добива HTTP барање од нов клиент (во овој случај, вашиот прелистувач).
Може да видите и други информации за барањето HTTP.
Демонстрација
Сега можете да тестирате дали вашиот web серверот работи правилно. Кликнете на копчињата за да ги контролирате LED диодите.Во исто време, можете да го погледнете серискиот монитор за да видите што се случува во позадина. За прample, кога ќе кликнете на копчето за да го вклучите GPIO 26, ESP32 добива барање на /26/on URL.
Кога ESP32 ќе го прими тоа барање, ја вклучува LED сијаличката прикачена на GPIO 26 и ја ажурира својата состојба на web страница.
Копчето за GPIO 27 работи на сличен начин. Тестирајте дали работи правилно.
Како работи кодот
Во овој дел ќе го разгледаме подетално кодот за да видите како функционира.
Првото нешто што треба да направите е да ја вклучите библиотеката WiFi.Како што споменавме претходно, треба да ги вметнете вашите ssid и лозинка во следните редови во двојните наводници.
Потоа, вие го поставите вашиот web сервер до порта 80.
Следната линија создава променлива за складирање на заглавието на барањето HTTP:
Следно, креирате помошни променливи за да ја зачувате моменталната состојба на вашите излези. Ако сакате да додадете повеќе излези и да ја зачувате нејзината состојба, треба да креирате повеќе променливи.
Исто така, треба да доделите GPIO на секој од вашите излези. Овде користиме GPIO 26 и GPIO 27. Можете да користите кои било други соодветни GPIO.
поставување ()
Сега, ајде да одиме во поставувањето(). Прво, започнуваме сериска комуникација со брзина на бауд од 115200 за цели на отстранување грешки.Вие исто така ги дефинирате вашите GPIO како ИЗЛЕЗ и ги поставувате на LOW.
Следните редови ја започнуваат врската Wi-Fi со WiFi.begin (ssid, лозинка), почекајте успешно поврзување и испечатете ја ESP IP адресата во Серискиот монитор.
јамка ()
Во loop() програмираме што се случува кога нов клиент воспоставува врска со web сервер.
ESP32 секогаш ги слуша дојдовните клиенти со следнава линија:Кога ќе се прими барање од клиент, ќе ги зачуваме дојдовните податоци. Јамката while што следи ќе работи се додека клиентот остане поврзан. Не препорачуваме менување на следниот дел од кодот освен ако не знаете што точно правите.
Следниот дел од изјавите if и else проверува кое копче е притиснато во вашето web страница, и соодветно ги контролира излезите. Како што видовме претходно, поднесуваме барање за различни URLs во зависност од притиснато копче.
За прampако сте го притиснале копчето GPIO 26 ON, ESP32 добива барање на /26/ON URL (можеме да видиме дека тие информации на заглавието на HTTP на серискиот монитор). Значи, можеме да провериме дали заглавието го содржи изразот GET /26/on. Ако содржи, ја менуваме променливата output26state во ON, а ESP32 ја вклучува ЛЕД-то.
Ова функционира слично и за другите копчиња. Значи, ако сакате да додадете повеќе излези, треба да го измените овој дел од кодот за да ги вклучите.
Прикажување на HTML web страница
Следното нешто што треба да направите е да го креирате web страница. ESP32 ќе испрати одговор до вашиот прелистувач со некој HTML код за да го изгради web страница.
На web страницата се испраќа до клиентот користејќи го овој изразувачки клиент.println(). Треба да внесете што сакате да му испратите на клиентот како аргумент.
Првото нешто што треба да го испратиме е секогаш следната линија, што покажува дека испраќаме HTML.Потоа, следната линија го прави web страница одговора во која било web прелистувач.
И следново се користи за да се спречат барањата на фавиконот. – Не треба да се грижите за оваа линија.
Стајлирање на Web Страница
Следно, имаме малку CSS текст за стилизирање на копчињата и на web изглед на страницата.
Го избираме фонтот Helvetica, ја дефинираме содржината што треба да се прикаже како блок и да се порамни во центарот.Ги стилизираме нашите копчиња со бојата #4CAF50, без раб, текст во бела боја, и со ова полнење: 16px 40px. Ние, исто така, поставивме декорација на текст на none, ја дефиниравме големината на фонтот, маргината и курсорот на покажувач.
Го дефинираме и стилот за второ копче, со сите својства на копчето што ги дефиниравме претходно, но со различна боја. Ова ќе биде стилот на копчето за исклучување.
Поставување на Web Првиот наслов на страницата
Во следната линија можете да го поставите првиот наслов на вашиот web страница. Тука имаме „ESP32 Web Сервер“, но можете да го промените овој текст во што сакате.Прикажување на копчињата и соодветната состојба
Потоа, пишувате пасус за прикажување на моменталната состојба на GPIO 26. Како што можете да видите, ја користиме променливата output26State, така што состојбата веднаш се ажурира кога оваа променлива се менува.Потоа, го прикажуваме копчето за вклучување или исклучување, во зависност од моменталната состојба на GPIO. Ако моменталната состојба на GPIO е исклучена, го прикажуваме копчето ON, ако не, го прикажуваме копчето OFF.
Ја користиме истата процедура за GPIO 27.
Затворање на врската
Конечно, кога ќе заврши одговорот, ја бришеме променливата за заглавие и ја прекинуваме врската со клиентот со client.stop().
Завиткување
Во ова упатство ви покажавме како да изградите а web сервер со ESP32. Ви покажавме едноставен бившиampшто контролира две LED диоди, но идејата е да ги замените тие LED диоди со реле или кој било друг излез што сакате да го контролирате.
Проект 6 RGB LED Web Сервер
Во овој проект ќе ви покажеме како далечински да контролирате RGB LED со плочка ESP32 користејќи web сервер со избирач на бои.
Проектот завршиview
Пред да започнеме, да видиме како функционира овој проект:
- ESP32 web серверот прикажува избирач на бои.
- Кога избирате боја, вашиот прелистувач испраќа барање на a URL што ги содржи R, G и B параметрите на избраната боја.
- Вашиот ESP32 го прима барањето и ја дели вредноста за секој параметар на бојата.
- Потоа, тој испраќа PWM сигнал со соодветната вредност до GPIO кои го контролираат RGB LED.
Како работат RGB LED диоди?
Во заедничка катодна RGB LED, сите три LED диоди споделуваат негативна врска (катода). Сите вклучени во комплетот се RGB со заедничка катодна.Како да креирате различни бои?
Со RGB LED, се разбира, можете да произведувате црвено, зелено и сино светло, а со конфигурирање на интензитетот на секоја LED диода, можете да произведувате и други бои.
За прampЗа да произведете чисто сина светлина, ќе ја поставите сината LED на највисок интензитет и зелените и црвените LED диоди на најмал интензитет. За бело светло, ќе ги поставите сите три LED диоди на највисок интензитет.
Мешање бои
За да произведете други бои, можете да ги комбинирате трите бои во различен интензитет. За да го прилагодите интензитетот на секоја LED, можете да користите PWM сигнал.
Бидејќи LED диодите се многу блиску една до друга, нашите очи го гледаат резултатот од комбинацијата на бои, наместо трите бои поединечно.
За да имате идеја како да ги комбинирате боите, погледнете ја следната табела.
Ова е наједноставната табела за мешање на бои, но ви дава идеја како функционира и како да произведувате различни бои.Потребни делови
За овој проект ви се потребни следните делови:
- Табла ESP32 DEVKIT V1
- RGB LED
- Отпорници од 3 x 220 оми
- Скокачки жици
- Даска за леб
ШематскиКод
Ќе го програмираме ESP32 користејќи Arduino IDE, затоа проверете дали сте го инсталирале додатокот ESP32 пред да продолжите: (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
- Инсталирање на додаток ESP32 во Arduino IDE
Откако ќе го склопите колото, отворете го кодот
Проект_6_RGB_LED_Web_Server.ino во arduino IDE.
Пред да го поставите кодот, не заборавајте да ги вметнете вашите мрежни ингеренции за да може ESP да се поврзе со вашата локална мрежа.Како функционира кодот
Скицата ESP32 ја користи библиотеката WiFi.h.Следниве линии ги дефинираат променливите низа за да ги задржат параметрите R, G и B од барањето.
Следните четири променливи се користат за декодирање на барањето HTTP подоцна.
Направете три променливи за GPIO кои ќе ги контролираат параметрите на лентата R, G и B. Во овој случај користиме GPIO 13, GPIO 12 и GPIO 14.
Овие GPIO треба да излезат PWM сигнали, така што прво треба да ги конфигурираме својствата на PWM. Поставете ја фреквенцијата на сигналот PWM на 5000 Hz. Потоа, поврзете PWM канал за секоја боја
И, конечно, поставете ја резолуцијата на PWM каналите на 8-битни
Во поставувањето(), доделете ги својствата на PWM на каналите PWM
Прикачете ги PWM каналите на соодветните GPIO
Следниот дел за код го прикажува избирачот на бои во вашиот web страница и поднесува барање врз основа на бојата што сте ја одбрале.
Кога избирате боја, добивате барање со следниов формат.
Значи, треба да ја поделиме оваа низа за да ги добиеме параметрите R, G и B. Параметрите се зачувани во променливите redString, greenString и blueString и може да имаат вредности помеѓу 0 и 255.За да ја контролирате лентата со ESP32, користете ја функцијата ledcWrite() за да генерирате PWM сигнали со вредностите декодирани од HTTP барање.
Забелешка: дознајте повеќе за PWM со ESP32: Project 3 ESP32 PWM (аналоген излез)
За да ја контролираме лентата со ESP8266, само треба да користиме
функцијата analogWrite() за генерирање на PWM сигнали со вредностите декодирани од барањето HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Бидејќи ги добиваме вредностите во променливата низа, треба да ги претвориме во цели броеви користејќи го методот toInt().
Демонстрација
Откако ќе ги вметнете вашите мрежни акредитиви, изберете ја десната плочка и COM порта и поставете ја шифрата на вашиот ESP32. Референтни чекори за испраќање код.
По поставувањето, отворете го серискиот монитор со брзина на бауд од 115200 и притиснете го копчето ESP Enable/Reset. Треба да ја добиете IP адресата на таблата.Отворете го вашиот прелистувач и вметнете ја ESP IP адресата. Сега, користете го избирачот на бои за да изберете боја за RGB LED.
Потоа, треба да го притиснете копчето „Промени боја“ за бојата да стапи на сила.За да го исклучите RGB LED, изберете ја црната боја.
Најсилните бои (на врвот на избирачот на бои) се оние кои ќе дадат подобри резултати.
Проект 7 ESP32 реле Web Сервер
Користењето реле со ESP32 е одличен начин за далечинско контролирање на апаратите за домаќинство со наизменична струја. Ова упатство објаснува како да контролирате реле модул со ESP32.
Ќе погледнеме како работи модулот за реле, како да го поврзете релето со ESP32 и да изградите web сервер за далечинско управување со реле.
Воведување на релеи
Релето е прекинувач со електрична енергија и како и секој друг прекинувач, може да се вклучи или исклучи, оставајќи ја струјата да помине или не. Може да се контролира со низок волуменtages, како 3.3V обезбедени од ESP32 GPIO и ни овозможува да контролираме висока јачинаtagе како 12V, 24V или мрежен волtage (230V во Европа и 120V во САД).На левата страна, има два комплети од три приклучоци за поврзување со висока јачинаtages, и игличките на десната страна (низок волуменtagд) поврзете се со ESP32 GPIO.
Mains Voltagд ВрскиМодулот за реле прикажан на претходната фотографија има два конектори, секој со три приклучоци: заеднички (COM), нормално затворени (NC) и нормално отворени (NO).
- COM: поврзете ја струјата што сакате да ја контролирате (главна томtagд)
- NC (нормално затворено): нормално затворената конфигурација се користи кога сакате релето да биде стандардно затворено. NC се поврзани иглички COM, што значи дека струјата тече освен ако не испратите сигнал од ESP32 до релејниот модул за да се отвори колото и да се запре протокот на струја.
- NO (Normally Open): нормално отворената конфигурација работи обратно: нема врска помеѓу пиновите NO и COM, така што колото е прекинато освен ако не испратите сигнал од ESP32 за затворање на колото.
Контролни пиновиНиско-волtage страна има сет од четири пина и сет од три пина. Првиот сет се состои од VCC и GND за напојување на модулот, и влез 1 (IN1) и влез 2 (IN2) за контрола на долниот и горниот реле, соодветно.
Ако вашиот реле модул има само еден канал, ќе имате само еден IN пин. Ако имате четири канали, ќе имате четири IN пинови и така натаму.
Сигналот што го испраќате до пиновите IN, одредува дали релето е активно или не. Релето се активира кога влезот оди под околу 2V. Ова значи дека ќе ги имате следниве сценарија:
- Нормално затворена конфигурација (NC):
- ВИСОК сигнал - тече струја
- LOW сигнал - струјата не тече
- Нормално отворена конфигурација (НЕ):
- ВИСОК сигнал - струјата не тече
- НИСКИ сигнал - тече струја
Треба да користите нормално затворена конфигурација кога струјата треба да тече најчесто, а сакате само повремено да ја прекинувате.
Користете нормално отворена конфигурација кога сакате струјата да тече повремено (на прampле, вклучи алamp повремено).
Избор на напојувањеВториот сет на пинови се состои од иглички GND, VCC и JD-VCC.
Пинот JD-VCC го напојува електромагнетот на релето. Забележете дека модулот има капаче за скокач што ги поврзува пиновите VCC и JD-VCC; онаа прикажана овде е жолта, но вашата може да биде со различна боја.
Со вклучено капачето на скокачот, пиновите VCC и JD-VCC се поврзани. Тоа значи дека релејниот електромагнет директно се напојува од напојувањето на ESP32, така што релејниот модул и колата ESP32 не се физички изолирани едни од други.
Без капачето на скокачот, треба да обезбедите независен извор на енергија за да го напојувате електромагнетот на релето преку иглата JD-VCC. Таа конфигурација физички ги изолира релеите од ESP32 со вградениот оптоспојувач на модулот, кој спречува оштетување на ESP32 во случај на електрични шила.
ШематскиПредупредување: Употреба на висок волуменtage напојувањето може да предизвика сериозни повреди.
Затоа, се користат LED диоди од 5 мм наместо високо напојувањеtagсветилки во експериментот. Ако не сте запознаени со електричната мрежа волtagпрашајте некој кој ќе ви помогне. Додека го програмирате ESP или го поврзувате вашето коло, проверете дали сè е исклучено од електричната јачинаtage.Инсталирање на библиотеката за ESP32
За да се изгради ова web сервер, ние користиме ESPAsyncWebСерверска библиотека и библиотека AsyncTCP.
Инсталирање на ESPAsyncWebСерверска библиотека
Следете ги следните чекори за да го инсталирате ESPAsyncWebСервер библиотека:
- Кликнете овде за да ја преземете ESPAsyncWebСерверска библиотека. Треба да имате
папка .zip во папката Преземања - Отпакувајте ја папката .zip и треба да добиете ESPAsyncWebСервер-главна папка
- Преименувајте ја вашата папка од ESPAsyncWebСервер-мајстор до ESPAsyncWebСервер
- Преместете ја ESPAsyncWebСерверска папка во папката библиотеки за инсталација на Arduino IDE
Алтернативно, во вашиот Arduino IDE, можете да отидете во Sketch > Include
Библиотека > Додајте .ZIP библиотека… и изберете ја библиотеката што штотуку сте ја преземале.
Инсталирање на библиотеката AsyncTCP за ESP32
На ESPAsyncWebСервер библиотеката бара AsyncTCP библиотека да работи. Следете
следните чекори за инсталирање на таа библиотека:
- Кликнете овде за да ја преземете библиотеката AsyncTCP. Треба да имате папка .zip во папката Преземања
- Отпакувајте ја папката .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 да се поврзе со вашата локална мрежа.Демонстрација
Откако ќе ги направите потребните промени, поставете го кодот на вашиот ESP32. Референтни чекори за испраќање код.
Отворете го серискиот монитор со брзина на бауд од 115200 и притиснете го копчето ESP32 EN за да ја добиете неговата IP адреса. Потоа, отворете прелистувач во вашата локална мрежа и напишете ја IP адресата ESP32 за да добиете пристап до web сервер.
Отворете го серискиот монитор со брзина на бауд од 115200 и притиснете го копчето ESP32 EN за да ја добиете неговата IP адреса. Потоа, отворете прелистувач во вашата локална мрежа и напишете ја IP адресата ESP32 за да добиете пристап до web сервер.Забелешка: Вашиот прелистувач и ESP32 треба да бидат поврзани на истата LAN.
Треба да добиете нешто како што следува со две копчиња како бројот на релеи што сте ги дефинирале во вашиот код.Сега, можете да ги користите копчињата за да ги контролирате вашите релеи користејќи го вашиот паметен телефон.
Project_8_Output_State_Synchronization_ Web_Сервер
Овој проект покажува како да ги контролирате излезите ESP32 или ESP8266 користејќи a web сервер и физичко копче истовремено. Излезната состојба се ажурира на web страница без разлика дали се менува преку физичко копче или web сервер.
Проектот завршиview
Ајде брзо да погледнеме како функционира проектот.ESP32 или ESP8266 е домаќин на a web сервер кој ви овозможува да ја контролирате состојбата на излезот;
- Тековната излезна состојба се прикажува на web сервер;
- ESP е поврзан и со физичко копче кое го контролира истиот излез;
- Ако ја промените излезната состојба користејќи го физичкото копче, нејзината моментална состојба исто така се ажурира на web сервер.
Накратко, овој проект ви овозможува да го контролирате истиот излез користејќи a web сервер и копче истовремено. Секогаш кога се менува излезната состојба, на web серверот е ажуриран.
Потребни делови
Еве список на делови што ви се потребни за да го изградите колото:
- Табла ESP32 DEVKIT V1
- LED 5 mm
- Отпорник од 220 оми
- Притискање на копчето
- Отпорник од 10 k Ohm
- Даска за леб
- Скокачки жици
ШематскиИнсталирање на библиотеката за ESP32
За да се изгради ова web сервер, ние користиме ESPAsyncWebСерверска библиотека и библиотека AsyncTCP. (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на ESPAsyncWebСерверска библиотека
Следете ги следните чекори за да го инсталирате ESPAsyncWebСерверска библиотека:
- Кликнете овде за да ја преземете ESPAsyncWebСерверска библиотека. Треба да имате
папка .zip во папката Преземања - Отпакувајте ја папката .zip и треба да добиете ESPAsyncWebСервер-главна папка
- Преименувајте ја вашата папка од ESPAsyncWebСервер-мајстор до ESPAsyncWebСервер
- Преместете ја ESPAsyncWebСерверска папка во папката библиотеки за инсталација на Arduino IDE
Алтернативно, во вашиот Arduino IDE, можете да отидете во Sketch > Include
Библиотека > Додајте .ZIP библиотека… и изберете ја библиотеката што штотуку сте ја преземале.
Инсталирање на библиотеката AsyncTCP за ESP32
ESPAsyncWebСерверската библиотека бара библиотеката AsyncTCP да работи. Следете ги следните чекори за да ја инсталирате таа библиотека:
- Кликнете овде за да ја преземете библиотеката AsyncTCP. Треба да имате папка .zip во папката Преземања
- Отпакувајте ја папката .zip и треба да ја добиете папката AsyncTCP-master
- Преименувајте ја вашата папка од AsyncTCP-master во AsyncTCP
- Преместете ја папката AsyncTCP во папката библиотеки за инсталација на Arduino IDE
- Конечно, повторно отворете го вашиот 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 да се поврзе со вашата локална мрежа.
Како работи кодот
Состојба на копче и излезна состојба
Променливата ledState ја задржува излезната состојба на LED. За стандардно, кога на web серверот стартува, НИСК е.
КопчињатаState и lastButtonState се користат за да се открие дали копчето е притиснато или не.Копче (web сервер)
Не го вклучивме HTML за да го креираме копчето на променливата index_html.
Тоа е затоа што сакаме да можеме да го смениме во зависност од моменталната состојба на ЛЕД која исто така може да се смени со копче.
Значи, создадовме место за копчето %BUTTONPLACEHOLDER% што ќе биде заменето со HTML текст за да го креираме копчето подоцна на кодот (ова се прави во функцијата процесор()).процесор ()
Функцијата processor() ги заменува сите локали на HTML текстот со вистинските вредности. Прво, проверува дали текстовите на HTML содржат некој
местенка %BUTTONPLACEHOLDER%.Потоа, повикајте ја функцијата theoutputState() која ја враќа моменталната излезна состојба. Го зачувуваме во променливата outputStateValue.
После тоа, користете ја таа вредност за да креирате HTML текст за да го прикажете копчето со вистинската состојба:
Барање HTTP GET за промена на излезната состојба (JavaScript)
Кога ќе го притиснете копчето, се повикува функцијата toggleCheckbox(). Оваа функција ќе поднесе барање за различни URLs за вклучување или исклучување на ЛЕР.За да се вклучи ЛЕР, таа испраќа барање на /update?state=1 URL:
Во спротивно, прави барање на /update?state=0 URL.
HTTP GET барање за ажурирање на државата (JavaScript)
За да ја одржувате состојбата на излезот ажурирана на web сервер, ја повикуваме следната функција која прави ново барање на /state URL секоја секунда.Ракувајте со барања
Потоа, треба да се справиме со она што се случува кога ESP32 или ESP8266 добиваат барања за тие URLs.
Кога ќе се прими барање на root /URL, ја испраќаме страницата HTML како и процесорот.Следните редови проверуваат дали сте примиле барање за /update?state=1 или /update?state=0 URL и соодветно ја менува ledState.
Кога ќе се прими барање на /state URL, ја испраќаме моменталната излезна состојба:
јамка ()
Во јамката(), го отфрламе копчето и ја вклучуваме или исклучуваме ЛЕР во зависност од вредноста на ledState променлива.Демонстрација
Поставете го кодот на вашата плочка ESP32. Поставете референтни чекори за кодот.
Потоа, отворете го серискиот монитор со брзина на бауд од 115200. Притиснете го копчето EN/RST за да добиете IP адреса.Отворете прелистувач на вашата локална мрежа и напишете ја ESP IP адресата. Треба да имате пристап до web сервер како што е прикажано подолу.
Забелешка: Вашиот прелистувач и ESP32 треба да бидат поврзани на истата LAN.Можете да го вклучите копчето на web сервер за вклучување на ЛЕР.
Можете исто така да ја контролирате истата LED со физичкото копче. Неговата состојба секогаш ќе се ажурира автоматски на web сервер.
Проект 9 ESP32 DHT11 Web Сервер
Во овој проект, ќе научите како да изградите асинхрон ESP32 web сервер со DHT11 кој прикажува температура и влажност со помош на Arduino IDE.
Предуслови
На web серверот ние ќе изградиме ажурирања на читањата автоматски без потреба да се освежува web страница.
Со овој проект ќе научите:
- Како да читате температура и влажност од сензорите за DHT;
- Изградете асинхрон web сервер со користење на ESPAsyncWebСерверска библиотека;
- Ажурирајте ги отчитувањата на сензорот автоматски без потреба од освежување web страница.
Асинхрони Web Сервер
Да се изгради на web серверот што ќе го користиме ESPAsyncWebСерверска библиотека што обезбедува лесен начин да се изгради асинхрон web сервер. Градење на асинхрони web серверот има неколку авансиtagе како што е споменато на страницата на библиотеката GitHub, како што се:
- „Справувајте со повеќе од една врска во исто време“;
- „Кога ќе го испратите одговорот, веднаш сте подготвени да се справите со други врски додека серверот се грижи за испраќање на одговорот во позадина“;
- „Едноставен мотор за обработка на шаблони за ракување со шаблони“;
Потребни делови
За да го завршите ова упатство, потребни ви се следниве делови:
- Развојна табла ESP32
- Модул DHT11
- Даска за леб
- Скокачки жици
ШематскиИнсталирање библиотеки
Треба да инсталирате неколку библиотеки за овој проект:
- На DHT и на Унифициран сензор Adafruit Библиотеки на драјвери за читање од сензорот DHT.
- ESPAsyncWebСервер и Асинхронизиран TCP библиотеки за изградба на асинхрони web сервер.
Следете ги следните инструкции за да ги инсталирате тие библиотеки:
Инсталирање на библиотеката со сензори за DHT
За да читате од сензорот DHT користејќи Arduino IDE, треба да го инсталирате Библиотека со сензори за DHT. Следете ги следните чекори за да ја инсталирате библиотеката.
- Кликнете овде за да ја преземете библиотеката со сензори за DHT. Треба да имате папка .zip во папката Преземања
- Отпакувајте ја папката .zip и треба да ја добиете папката DHT-sensor-library-master
- Преименувајте ја вашата папка од DHT-sensor-library-master во DHT_sensor
- Преместете ја папката DHT_sensor во папката библиотеки за инсталација на Arduino IDE
- Конечно, повторно отворете го вашиот Arduino IDE
Инсталирање на двигателот на унифициран сензор Adafruit
Исто така, треба да го инсталирате Библиотека за двигател на унифициран сензор Adafruit за работа со сензорот DHT. Следете ги следните чекори за да ја инсталирате библиотеката.
- Кликнете овде за да ја преземете библиотеката Adafruit Unified Sensor. Треба да имате папка .zip во папката Преземања
- Отпакувајте ја папката .zip и треба да ја добиете папката Adafruit_sensor-master
- Преименувајте ја вашата папка од Adafruit_sensor-master во Adafruit_sensor
- Преместете ја папката Adafruit_sensor во папката библиотеки за инсталација на Arduino IDE
- Конечно, повторно отворете го вашиот Arduino IDE
Инсталирање на ESPAsyncWebСерверска библиотека
Следете ги следните чекори за да го инсталирате ESPAsyncWebСервер библиотека:
- Кликнете овде за да ја преземете ESPAsyncWebСерверска библиотека. Треба да имате
папка .zip во папката Преземања - Отпакувајте ја папката .zip и треба
добие ESPAsyncWebСервер-главна папка - Преименувајте ја вашата папка од ESPAsyncWebСервер-мајстор до ESPAsyncWebСервер
- Преместете ја ESPAsyncWebСерверска папка во папката библиотеки за инсталација на Arduino IDE
Инсталирање на Async TCP библиотека за ESP32
На ESPAsyncWebСервер библиотеката бара AsyncTCP библиотека да работи. Следете ги следните чекори за да ја инсталирате таа библиотека:
- Кликнете овде за да ја преземете библиотеката AsyncTCP. Треба да имате папка .zip во папката Преземања
- Отпакувајте ја папката .zip и треба да ја добиете папката AsyncTCP-master
- Преименувајте ја вашата папка од AsyncTCP-master во AsyncTCP
- Преместете ја папката AsyncTCP во папката библиотеки за инсталација на Arduino IDE
- Конечно, повторно отворете го вашиот Arduino IDE
Код
Ќе го програмираме ESP32 користејќи Arduino IDE, затоа проверете дали сте го инсталирале додатокот ESP32 пред да продолжите: (Ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на додаток ESP32 во Arduino IDE
Откако ќе ги инсталирате потребните библиотеки, отворете го кодот
Project_9_ESP32_DHT11_Web_Server.ino во arduino IDE.
Пред да го поставите кодот, не заборавајте да ги вметнете вашите мрежни ингеренции за да може ESP да се поврзе со вашата локална мрежа.Како работи кодот
Во следните параграфи ќе објасниме како функционира кодот. Продолжете да читате ако сакате да дознаете повеќе или скокнете во делот „Демонстрации“ за да го видите конечниот резултат.
Увоз на библиотеки
Прво, увезете ги потребните библиотеки. WiFi, ESPAsyncWebСерверот и ESPAsyncTCP се потребни за да се изгради web сервер. Библиотеките Adafruit_Sensor и DHT се потребни за читање од сензорите DHT11 или DHT22.Дефиниција на променливи
Дефинирајте го GPIO на кој е поврзан иглата за податоци DHT. Во овој случај, тој е поврзан со GPIO 4.Потоа, изберете го типот на сензор DHT што го користите. Во нашиот поранешенampЛе, ние го користиме DHT22. Ако користите друг тип, само треба да го откоментирате вашиот сензор и да ги коментирате сите останати.
Инстанцирајте објект DHT со типот и пинот што ги дефиниравме претходно.Направете асинхронизацијаWebОбјект на серверот на портата 80.
Прочитајте ги функциите за температура и влажност
Создадовме две функции: едната за читање на температурата Создадовме две функции: едната за читање на температурата (readDHTTemperature()) и другата за читање на влажноста (readDHTHumidity()).Добивањето читања на сензорот е исто толку едноставно како и користењето Добивањето отчитувања на сензорот е исто толку едноставно како и користењето на методите readTemperature() и readHumidity() на објектот dht.
Имаме и услов кој враќа две цртички (–) во случај сензорот да не ги добие отчитувањата.
Читањата се враќаат како тип на стринг. За да конвертирате float во стринг, користете ја функцијата String().
Стандардно, ја читаме температурата во Целзиусови степени. За да ја добиете температурата во Фаренхајтови степени, коментирајте ја температурата во Целзиусови и откажете ја температурата во Фаренхајт, за да го имате следново:
Поставете го кодот
Сега, поставете го кодот на вашиот ESP32. Проверете дали сте ја одбрале вистинската плочка и COM порта. Поставете референтни чекори за кодот.
По поставувањето, отворете го серискиот монитор со брзина на бауд од 115200. Притиснете го копчето за ресетирање ESP32. IP-адресата ESP32 треба да се испечати во серијата монитор.Демонстрација
Отворете прелистувач и напишете ја IP адресата ESP32. Вашиот web серверот треба да ги прикаже најновите отчитувања на сензорот.
Забелешка: Вашиот прелистувач и ESP32 треба да бидат поврзани на истата LAN.
Забележете дека отчитувањата за температурата и влажноста се ажурираат автоматски без потреба од освежување web страница.
Project_10_ESP32_OLED_Display
Овој проект покажува како да се користи 0.96 инчниот SSD1306 OLED дисплеј со ESP32 користејќи Arduino IDE.
Ви претставуваме 0.96 инчен OLED дисплеј
На OLED дисплеј што ќе го користиме во ова упатство е моделот SSD1306: еднобоен дисплеј од 0.96 инчи со 128×64 пиксели како што е прикажано на следната слика.OLED дисплејот не бара позадинско осветлување, што резултира со многу убав контраст во темни средини. Дополнително, неговите пиксели трошат енергија само кога се вклучени, така што OLED дисплејот троши помалку енергија во споредба со другите екрани.
Бидејќи OLED дисплејот користи I2C комуникациски протокол, поврзувањето со жици е многу едноставно. Можете да ја користите следната табела како референца.
OLED пин | ESP32 |
Вин | 3.3V |
ГНД | ГНД |
SCL | ГПИО 22 |
СДА | ГПИО 21 |
ШематскиИнсталирање на SSD1306 OLED библиотека – ESP32
Достапни се неколку библиотеки за контрола на OLED дисплејот со ESP32.
Во ова упатство ќе користиме две библиотеки Adafruit: Библиотека Adafruit_SSD1306 и Библиотека Adafruit_GFX.
Следете ги следните чекори за да ги инсталирате тие библиотеки.
- Отворете го вашиот Arduino IDE и одете во Sketch > Include Library > Manage Library. Управникот на библиотеката треба да се отвори.
- Внесете „SSD1306“ во полето за пребарување и инсталирајте ја библиотеката SSD1306 од Adafruit.
- Откако ќе ја инсталирате библиотеката SSD1306 од Adafruit, напишете „GFX“ во полето за пребарување и инсталирајте ја библиотеката.
- Откако ќе ги инсталирате библиотеките, рестартирајте го вашиот Arduino IDE.
Код
Откако ќе ги инсталирате потребните библиотеки, отворете го Project_10_ESP32_OLED_Display.ino во arduino IDE. код
Ќе го програмираме ESP32 користејќи Arduino IDE, затоа проверете дали сте го инсталирале додатокот ESP32 пред да продолжите: (ако веќе сте го направиле овој чекор, можете да прескокнете на следниот чекор.)
Инсталирање на додаток ESP32 во Arduino IDEКако работи кодот
Увоз на библиотеки
Прво, треба да ги увезете потребните библиотеки. Библиотеката Wire за користење на I2C и библиотеките Adafruit за пишување на екранот: Adafruit_GFX и Adafruit_SSD1306.Иницијализирајте го OLED дисплејот
Потоа, ја дефинирате вашата OLED ширина и висина. Во овој ексampние користиме 128×64 OLED дисплеј. Ако користите други големини, можете да го промените тоа во променливите SCREEN_WIDTH и SCREEN_HEIGHT.Потоа, иницијализирајте објект за прикажување со ширина и висина дефинирани претходно со протоколот за комуникација I2C (&Wire).
Параметарот (-1) значи дека вашиот OLED дисплеј нема пин за RESET. Ако вашиот OLED дисплеј навистина има игла за RESET, тој треба да биде поврзан со GPIO. Во тој случај, треба да го пренесете бројот на GPIO како параметар.
Во поставувањето(), иницијализирајте го серискиот монитор со брзина од 115200 за дебагирање.Иницијализирајте го OLED дисплејот со методот start() на следниов начин:
Овој фрагмент печати и порака на серискиот монитор, во случај да не можеме да се поврземе на екранот.
Во случај да користите различен OLED дисплеј, можеби ќе треба да ја промените OLED адресата. Во нашиот случај, адресата е 0x3C.
По иницијализирањето на екранот, додајте задоцнување од две секунди, така што OLED има доволно време да се иницијализира пред да напише текст:
Исчистете го екранот, поставете ја големината на фонтот, бојата и пишувајте текст
По иницијализирањето на екранот, исчистете го баферот на екранот со методот clearDisplay():
Пред да пишувате текст, треба да ја поставите големината на текстот, бојата и каде текстот ќе се прикажува во OLED.
Поставете ја големината на фонтот користејќи го методот setTextSize():Поставете ја бојата на фонтот со методот setTextColor():
WHITE поставува бел фонт и црна позадина.
Дефинирајте ја позицијата каде што започнува текстот користејќи го методот setCursor(x,y). Во овој случај, го поставуваме текстот да започнува од (0,0) координатите - во горниот лев агол.Конечно, можете да го испратите текстот на екранот користејќи го методот println(), на следниов начин
Потоа, треба да го повикате методот display() за да се прикаже текстот на екранот.
OLED библиотеката Adafruit обезбедува корисни методи за лесно лизгање текст.
- startscrollright (0x00, 0x0F): скролувајте текст од лево кон десно
- startscrollleft(0x00, 0x0F): скролувајте текст од десно кон лево
- startscrolldiagright(0x00, 0x07): лизгај текст од левиот долен агол до горниот десен агол startscrolldiagleft(0x00, 0x07): скролувај текст од долниот десен агол до левиот горен агол
Поставете го кодот
Сега, поставете ја шифрата на вашиот ESP32. Поставете референтни чекори за кодот.
По поставувањето на кодот, OLED-от ќе прикаже текст за скролување.
Документи / ресурси
![]() |
Основен стартер комплет LAFVIN ESP32 [pdf] Упатство за употреба ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |