ESP32 Basic Starter
ຊຸດ
ລາຍການບັນຈຸ
ບົດແນະນຳ ESP32
ໃໝ່ຫາ ESP32 ບໍ? ເລີ່ມທີ່ນີ້! ESP32 ແມ່ນຊຸດຂອງລະບົບຄ່າໃຊ້ຈ່າຍຕ່ໍາແລະພະລັງງານຕ່ໍາໃນ Chip (SoC) microcontrollers ພັດທະນາໂດຍ Espressif ທີ່ປະກອບມີຄວາມສາມາດ Wi-Fi ແລະ Bluetooth ໄຮ້ສາຍແລະໂປເຊດເຊີ dual-core. ຖ້າທ່ານຄຸ້ນເຄີຍກັບ ESP8266, 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 microprocessor, ແລ່ນຢູ່ທີ່ 160 ຫຼື 240 MHz
- ໜ່ວຍຄວາມຈຳ:
- ROM: 448 KB (ສໍາລັບການບູດແລະຟັງຊັນຫຼັກ)
- SRAM: 520 KB (ສໍາລັບຂໍ້ມູນແລະຄໍາແນະນໍາ)
- RTC fas SRAM: 8 KB (ສໍາລັບການເກັບຮັກສາຂໍ້ມູນແລະ CPU ຕົ້ນຕໍໃນລະຫວ່າງການ RTC Boot ຈາກໂຫມດນອນເລິກ)
- RTC SRAM ຊ້າ: 8KB (ສໍາລັບ co-processor ເຂົ້າເຖິງໃນລະຫວ່າງຮູບແບບການນອນເລິກ) eFuse: 1 Kbit (ຊຶ່ງໃນນັ້ນ 256 bits ຖືກນໍາໃຊ້ສໍາລັບລະບົບ (ທີ່ຢູ່ MAC ແລະການຕັ້ງຄ່າ chip) ແລະ 768 bits ທີ່ຍັງເຫຼືອແມ່ນສະຫງວນໄວ້ສໍາລັບຄໍາຮ້ອງສະຫມັກຂອງລູກຄ້າ, ລວມທັງ ການເຂົ້າລະຫັດ Flash ແລະ Chip-ID)
ແຟລດທີ່ຝັງໄວ້: flash ເຊື່ອມຕໍ່ພາຍໃນຜ່ານ 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, ຕົວຢ່າງເຊັ່ນample, ໃນລະຫວ່າງການນອນຫລັບເລິກ.
ຂາເຂົ້າ/ຂາອອກ:
- ການໂຕ້ຕອບອຸປະກອນຕໍ່ຂ້າງກັບ DMA ທີ່ປະກອບມີການສໍາພັດ capacitive
- ADCs (ຕົວແປງອະນາລັອກເປັນດິຈິຕອລ)
- DACs (ຕົວປ່ຽນດິຈິຕອນເປັນອະນາລັອກ)
- I²C (Inter-Integrated Circuit)
- UART (ຕົວຮັບ/ເຄື່ອງສົ່ງສັນຍານແບບອະຊິງໂຄຣນັສສາກົນ)
- SPI (Serial Peripheral Interface)
- I²S (Integrated Interchip Sound)
- RMII (ສ່ວນຕິດຕໍ່ສື່ແບບເອກະລາດທີ່ຫຼຸດລົງ)
- PWM (ໂມດູນຄວາມກວ້າງຂອງກຳມະຈອນ)
ຄວາມປອດໄພ: ເຄື່ອງເລັ່ງຮາດແວສໍາລັບ AES ແລະ SSL/TLS
ກະດານພັດທະນາ ESP32
ESP32 ຫມາຍເຖິງຊິບ ESP32 ເປົ່າ. ຢ່າງໃດກໍ່ຕາມ, ຄໍາສັບ "ESP32" ຍັງຖືກນໍາໃຊ້ເພື່ອອ້າງອີງເຖິງກະດານພັດທະນາ ESP32. ການໃຊ້ຊິບເປົ່າ ESP32 ບໍ່ແມ່ນເລື່ອງງ່າຍ ຫຼື ປະຕິບັດໄດ້, ໂດຍສະເພາະໃນເວລາຮຽນ, ການທົດສອບ, ແລະການສ້າງຕົວແບບ. ສ່ວນຫຼາຍແລ້ວ, ເຈົ້າຈະຕ້ອງໃຊ້ກະດານພັດທະນາ ESP32.
ພວກເຮົາຈະໃຊ້ກະດານ ESP32 DEVKIT V1 ເປັນການອ້າງອີງ. ຮູບຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນກະດານ ESP32 DEVKIT V1, ຮຸ່ນທີ່ມີ 30 pins GPIO.ຂໍ້ມູນຈໍາເພາະ - ESP32 DEVKIT V1
ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນການສະຫຼຸບສັງລວມຂອງ ESP32 DEVKIT V1 DOIT board ຄຸນນະສົມບັດແລະສະເພາະ:
ຈໍານວນແກນ | 2 ( dual core) |
Wi-Fi | 2.4 GHz ເຖິງ 150 Mbits/s |
Bluetooth | BLE (Bluetooth Low Energy) ແລະ Bluetooth ແບບເກົ່າ |
ສະຖາປັດຕະຍະກໍາ | 32 ບິດ |
ຄວາມຖີ່ຂອງໂມງ | ເຖິງ 240 MHz |
RAM | 512 KB |
ປັກໝຸດ | 30 (ຂຶ້ນກັບຮູບແບບ) |
ອຸປະກອນຕໍ່ພ່ວງ | Capacitive touch, ADC (ຕົວແປງສັນຍານອະນາລັອກເປັນດິຈິຕອນ), DAC (ດິຈິຕອນເປັນຕົວແປງອະນາລັອກ), 12C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integrated Inter-IC ສຽງ), RMII (ສ່ວນຕິດຕໍ່ສື່ແບບເອກະລາດທີ່ຫຼຸດລົງ), PWM (ໂມດູນຄວາມກວ້າງຂອງກໍາມະຈອນ), ແລະອື່ນໆອີກ. |
ປຸ່ມໃນຕົວ | RESET ແລະ BOOT ປຸ່ມ |
ໄຟ LED ໃນຕົວ | ການກໍ່ສ້າງໃນ LED ສີຟ້າເຊື່ອມຕໍ່ກັບ GPIO2; ໄຟ LED ສີແດງໃນຕົວທີ່ສະແດງໃຫ້ເຫັນວ່າກະດານກໍາລັງຖືກຂັບເຄື່ອນ |
USB ກັບ UART ຂົວ |
CP2102 |
ມັນມາພ້ອມກັບການໂຕ້ຕອບ microUSB ທີ່ທ່ານສາມາດນໍາໃຊ້ເພື່ອເຊື່ອມຕໍ່ກະດານກັບຄອມພິວເຕີຂອງທ່ານເພື່ອອັບໂຫລດລະຫັດຫຼືໃຊ້ພະລັງງານ.
ມັນໃຊ້ຊິບ CP2102 (USB ຫາ UART) ເພື່ອຕິດຕໍ່ສື່ສານກັບຄອມພິວເຕີຂອງທ່ານຜ່ານພອດ COM ໂດຍໃຊ້ອິນເຕີເຟດ serial. ຊິບທີ່ນິຍົມອີກອັນຫນຶ່ງແມ່ນ CH340. ກວດເບິ່ງວ່າຕົວແປງຊິບ USB ເປັນ UART ແມ່ນຫຍັງຢູ່ໃນກະດານຂອງເຈົ້າເພາະວ່າເຈົ້າຈະຕ້ອງຕິດຕັ້ງໄດເວີທີ່ຕ້ອງການເພື່ອໃຫ້ຄອມພິວເຕີຂອງທ່ານສາມາດສື່ສານກັບກະດານ (ຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບເລື່ອງນີ້ຕໍ່ມາໃນຄູ່ມືນີ້).
ກະດານນີ້ຍັງມາພ້ອມກັບປຸ່ມ RESET (ອາດມີປ້າຍຊື່ EN) ເພື່ອເປີດກະດານໃຫມ່ແລະປຸ່ມ BOOT ເພື່ອວາງກະດານຢູ່ໃນໂຫມດກະພິບ (ມີເພື່ອຮັບລະຫັດ). ໃຫ້ສັງເກດວ່າບາງກະດານອາດຈະບໍ່ມີປຸ່ມ BOOT.
ມັນຍັງມາພ້ອມກັບ LED ສີຟ້າໃນຕົວທີ່ເຊື່ອມຕໍ່ພາຍໃນກັບ GPIO 2. LED ນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການ debugging ເພື່ອໃຫ້ບາງປະເພດຂອງຜົນໄດ້ຮັບທາງກາຍະພາບຂອງສາຍຕາ. ນອກຈາກນີ້ຍັງມີໄຟ LED ສີແດງທີ່ສະຫວ່າງຂຶ້ນເມື່ອທ່ານສະຫນອງພະລັງງານໃຫ້ກັບກະດານ.ESP32 Pinout
ອຸປະກອນເສີມ ESP32 ປະກອບມີ:
- 18 ຊ່ອງທາງຕົວແປງສັນຍານອະນາລັອກເປັນດິຈິຕອລ (ADC).
- 3 ການໂຕ້ຕອບ SPI
- 3 ການໂຕ້ຕອບ UART
- 2 ການໂຕ້ຕອບ I2C
- 16 ຊ່ອງຜົນຜະລິດ PWM
- 2 ຕົວປ່ຽນດິຈິຕອນເປັນອະນາລັອກ (DAC)
- 2 ການໂຕ້ຕອບ I2S
- 10 GPIOs ການຮັບຮູ້ຄວາມອາດສາມາດ
ຄຸນສົມບັດຂອງ ADC (ຕົວປ່ຽນອະນາລັອກເປັນດິຈິຕອນ) ແລະ DAC (ຕົວປ່ຽນດິຈິຕອນເປັນອະນາລັອກ) ໄດ້ຖືກມອບໝາຍໃຫ້ກັບ pins ຄົງທີ່ສະເພາະ. ຢ່າງໃດກໍຕາມ, ທ່ານສາມາດຕັດສິນໃຈວ່າ pins ໃດແມ່ນ UART, I2C, SPI, PWM, ແລະອື່ນໆ - ທ່ານພຽງແຕ່ຕ້ອງການກໍານົດໃຫ້ເຂົາເຈົ້າໃນລະຫັດ. ອັນນີ້ເປັນໄປໄດ້ເນື່ອງຈາກຄຸນສົມບັດການຄູນຂອງຊິບ ESP32.
ເຖິງແມ່ນວ່າທ່ານສາມາດກໍານົດຄຸນສົມບັດ pins ໃນຊອບແວໄດ້, ມີ pins ທີ່ຖືກມອບຫມາຍໂດຍຄ່າເລີ່ມຕົ້ນທີ່ສະແດງຢູ່ໃນຮູບຕໍ່ໄປນີ້ນອກຈາກນັ້ນ, ມີ pins ທີ່ມີລັກສະນະສະເພາະທີ່ເຮັດໃຫ້ພວກເຂົາເຫມາະສົມສໍາລັບໂຄງການສະເພາະໃດຫນຶ່ງ. ຕາຕະລາງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວ່າ pins ໃດທີ່ດີທີ່ສຸດທີ່ຈະໃຊ້ເປັນວັດສະດຸປ້ອນ, ຜົນໄດ້ຮັບແລະອັນໃດທີ່ເຈົ້າຕ້ອງລະມັດລະວັງ.
ປັກໝຸດທີ່ເນັ້ນເປັນສີຂຽວແມ່ນດີທີ່ຈະໃຊ້. ອັນທີ່ເນັ້ນໃສ່ໃນສີເຫຼືອງແມ່ນດີທີ່ຈະໃຊ້, ແຕ່ທ່ານຈໍາເປັນຕ້ອງເອົາໃຈໃສ່ເພາະວ່າພວກມັນອາດມີພຶດຕິກໍາທີ່ບໍ່ຄາດຄິດໂດຍສ່ວນໃຫຍ່ແມ່ນຢູ່ໃນເກີບ. ປັກໝຸດທີ່ເນັ້ນເປັນສີແດງແມ່ນບໍ່ແນະນໍາໃຫ້ໃຊ້ເປັນວັດສະດຸປ້ອນ ຫຼືຜົນຜະລິດ.
GP IO | ປ້ອນຂໍ້ມູນ | ຜົນຜະລິດ | ບັນທຶກ |
0 | ດຶງຂຶ້ນ | OK | ສົ່ງສັນຍານ PWM ເມື່ອບູດ, ຈະຕ້ອງຕໍ່າເພື່ອເຂົ້າສູ່ໂໝດແຟລດ |
1 | TX PIN | OK | debug output ຢູ່ boot |
2 | OK | OK | ເຊື່ອມຕໍ່ກັບໄຟ LED ເທິງກະດານ, ຈະຕ້ອງປະໄວ້ແບບລອຍຫຼືຕ່ໍາເພື່ອເຂົ້າສູ່ໂຫມດກະພິບ |
3 | OK | ເຂັມ RX | ສູງຢູ່ທີ່ເກີບ |
4 | OK | OK | |
5 | OK | OK | ສົ່ງສັນຍານ PWM ຢູ່ທີ່ boot, strapping pin |
12 | OK | OK | boot ລົ້ມເຫລວຖ້າຫາກວ່າດຶງສູງ, strapping pin |
13 | OK | OK | |
14 | OK | OK | ສົ່ງສັນຍານ PWM ໃນເວລາ boot |
15 | OK | OK | ສົ່ງສັນຍານ PWM ຢູ່ທີ່ boot, strapping pin |
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 GPIOs ແລະຫນ້າທີ່ຂອງມັນ.
ປ້ອນພຽງແຕ່ pins
GPIOs 34 ຫາ 39 ແມ່ນ GPIs – input only pins. ເຂັມເຫຼົ່ານີ້ບໍ່ມີຕົວຕ້ານທານແບບດຶງຂຶ້ນ ຫຼືດຶງລົງພາຍໃນ. ພວກມັນບໍ່ສາມາດໃຊ້ເປັນຜົນຜະລິດໄດ້, ສະນັ້ນໃຫ້ໃຊ້ pins ເຫຼົ່ານີ້ເປັນຕົວປ້ອນຂໍ້ມູນເທົ່ານັ້ນ:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI flash ປະສົມປະສານຢູ່ໃນ ESP-WROOM-32
GPIO 6 ຫາ GPIO 11 ຖືກເປີດເຜີຍໃນບາງກະດານພັດທະນາ ESP32. ຢ່າງໃດກໍຕາມ, pins ເຫຼົ່ານີ້ແມ່ນເຊື່ອມຕໍ່ກັບ SPI flash ປະສົມປະສານຢູ່ໃນຊິບ ESP-WROOM-32 ແລະບໍ່ໄດ້ແນະນໍາໃຫ້ໃຊ້ອື່ນໆ. ດັ່ງນັ້ນ, ຢ່າໃຊ້ pins ເຫຼົ່ານີ້ໃນໂຄງການຂອງທ່ານ:
- 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 ເຊັນເຊີສໍາຜັດ capacitive ພາຍໃນ. ເຫຼົ່ານີ້ສາມາດຮັບຮູ້ເຖິງການປ່ຽນແປງຂອງສິ່ງໃດກໍ່ຕາມທີ່ມີຄ່າໄຟຟ້າ, ເຊັ່ນ: ຜິວຫນັງຂອງມະນຸດ. ດັ່ງນັ້ນພວກເຂົາສາມາດກວດພົບການປ່ຽນແປງທີ່ກະຕຸ້ນໃນເວລາທີ່ສໍາຜັດກັບ GPIOs ດ້ວຍນິ້ວມື. pins ເຫຼົ່ານີ້ສາມາດໄດ້ຮັບການປະສົມປະສານໄດ້ຢ່າງງ່າຍດາຍເຂົ້າໄປໃນ pads capacitive ແລະທົດແທນປຸ່ມກົນຈັກ. ເຂັມສໍາຜັດແບບ capacitive ຍັງສາມາດຖືກໃຊ້ເພື່ອປຸກ ESP32 ຈາກການນອນຫລັບເລິກ. ເຊັນເຊີສໍາຜັດພາຍໃນເຫຼົ່ານັ້ນແມ່ນເຊື່ອມຕໍ່ກັບ GPIOs ເຫຼົ່ານີ້:
- 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)
Analog ກັບ Digital Converter (ADC)
ESP32 ມີ 18 x 12 bits ADC input channels (ໃນຂະນະທີ່ ESP8266 ພຽງແຕ່ມີ 1x 10 bits ADC). ເຫຼົ່ານີ້ແມ່ນ GPIOs ທີ່ສາມາດຖືກນໍາໃຊ້ເປັນ 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)
ມີຊ່ອງ DAC 2 x 8 ບິດຢູ່ໃນ ESP32 ເພື່ອປ່ຽນສັນຍານດິຈິຕອນເປັນ analog voltage ສັນຍານອອກ. ນີ້ແມ່ນຊ່ອງ DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
ມີການສະຫນັບສະຫນູນ RTC GPIO ໃນ ESP32. GPIOs ທີ່ສົ່ງໄປຫາລະບົບຍ່ອຍພະລັງງານຕໍ່າ RTC ສາມາດຖືກນໍາໃຊ້ໃນເວລາທີ່ ESP32 ຢູ່ໃນການນອນຫລັບເລິກ. GPIOs RTC ເຫຼົ່ານີ້ສາມາດຖືກໃຊ້ເພື່ອປຸກ ESP32 ຈາກການນອນຫຼັບເລິກເມື່ອອຸນຫະພູມຕໍ່າສຸດ
ໂປເຊດເຊີຮ່ວມ Power (ULP) ກຳລັງເຮັດວຽກຢູ່. GPIOs ຕໍ່ໄປນີ້ສາມາດຖືກນໍາໃຊ້ເປັນແຫຼ່ງປຸກພາຍນອກ.
- 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 pins (GPIOs 34 ຫາ 39 ບໍ່ສາມາດສ້າງ PWM).
ເພື່ອກໍານົດສັນຍານ PWM, ທ່ານຈໍາເປັນຕ້ອງກໍານົດຕົວກໍານົດການເຫຼົ່ານີ້ຢູ່ໃນລະຫັດ:
- ຄວາມຖີ່ຂອງສັນຍານ;
- ວົງຈອນຫນ້າທີ່;
- ຊ່ອງທາງ PWM;
- GPIO ບ່ອນທີ່ທ່ານຕ້ອງການສົ່ງສັນຍານອອກ.
I2C
ESP32 ມີສອງຊ່ອງ I2C ແລະ pin ໃດສາມາດຕັ້ງເປັນ SDA ຫຼື SCL. ເມື່ອໃຊ້ ESP32 ກັບ Arduino IDE, pins I2C ເລີ່ມຕົ້ນແມ່ນ:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
ຖ້າທ່ານຕ້ອງການໃຊ້ pins ອື່ນໆໃນເວລາໃຊ້ຫ້ອງສະຫມຸດສາຍ, ທ່ານພຽງແຕ່ຕ້ອງການໂທຫາ:
Wire.begin(SDA, SCL);
SPI
ໂດຍຄ່າເລີ່ມຕົ້ນ, ແຜນທີ່ PIN ສໍາລັບ SPI ແມ່ນ:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
ການຂັດຂວາງ
GPIOs ທັງຫມົດສາມາດຖືກຕັ້ງຄ່າເປັນການຂັດຂວາງ.
ເຂັມຂັດ
ຊິບ ESP32 ມີເຂັມຂັດຕໍ່ໄປນີ້:
- GPIO 0 (ຕ້ອງຕ່ຳເພື່ອເຂົ້າສູ່ໂໝດບູດ)
- GPIO 2 (ຕ້ອງເລື່ອນ ຫຼືຕ່ຳໃນລະຫວ່າງການເປີດເຄື່ອງ)
- GPIO 4
- GPIO 5 (ຕ້ອງສູງໃນລະຫວ່າງການເປີດເຄື່ອງ)
- GPIO 12 (ຕ້ອງຕ່ຳໃນລະຫວ່າງການເປີດເຄື່ອງ)
- GPIO 15 (ຕ້ອງສູງໃນລະຫວ່າງການເປີດເຄື່ອງ)
ສິ່ງເຫຼົ່ານີ້ຖືກໃຊ້ເພື່ອວາງ ESP32 ເຂົ້າໃນໂໝດ bootloader ຫຼື flashing. ໃນກະດານພັດທະນາສ່ວນໃຫຍ່ທີ່ມີ USB/Serial ໃນຕົວ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງກັງວົນກ່ຽວກັບສະຖານະຂອງ pins ເຫຼົ່ານີ້. ກະດານວາງ pins ຢູ່ໃນສະພາບທີ່ເຫມາະສົມສໍາລັບການ flashing ຫຼື boot mode. ຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການເລືອກແບບບູດ ESP32 ສາມາດພົບໄດ້ທີ່ນີ້.
ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານມີອຸປະກອນຕໍ່ພ່ວງທີ່ເຊື່ອມຕໍ່ກັບ pins ເຫຼົ່ານັ້ນ, ທ່ານອາດຈະມີບັນຫາໃນການພະຍາຍາມອັບໂຫລດລະຫັດໃຫມ່, ກະພິບ ESP32 ດ້ວຍເຟີມແວໃຫມ່, ຫຼືຕັ້ງກະດານໃຫມ່. ຖ້າທ່ານມີອຸປະກອນຕໍ່ພ່ວງບາງອັນທີ່ເຊື່ອມຕໍ່ກັບ pins strapping ແລະທ່ານກໍາລັງມີບັນຫາໃນການອັບໂຫລດລະຫັດຫຼືກະພິບ ESP32, ມັນອາດຈະເປັນຍ້ອນວ່າອຸປະກອນຂ້າງຄຽງເຫຼົ່ານັ້ນປ້ອງກັນບໍ່ໃຫ້ ESP32 ເຂົ້າໄປໃນໂຫມດທີ່ຖືກຕ້ອງ. ອ່ານເອກະສານການເລືອກຮູບແບບ Boot ເພື່ອນໍາພາທ່ານໄປໃນທິດທາງທີ່ຖືກຕ້ອງ. ຫຼັງຈາກຣີເຊັດ, ກະພິບ, ຫຼືເປີດເຄື່ອງ, pins ເຫຼົ່ານັ້ນເຮັດວຽກຕາມທີ່ຄາດໄວ້.
Pins HIGH ຢູ່ Boot
ບາງ GPIOs ປ່ຽນສະຖານະຂອງເຂົາເຈົ້າເປັນ HIGH ຫຼືສົ່ງສັນຍານ PWM ໃນເວລາ boot ຫຼື reset.
ນີ້ຫມາຍຄວາມວ່າຖ້າທ່ານມີຜົນຜະລິດທີ່ເຊື່ອມຕໍ່ກັບ GPIOs ເຫຼົ່ານີ້, ທ່ານອາດຈະໄດ້ຮັບຜົນໄດ້ຮັບທີ່ບໍ່ຄາດຄິດເມື່ອ ESP32 ຣີເຊັດຫຼືໃສ່ເກີບ.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 ຫາ GPIO 11 (ເຊື່ອມຕໍ່ກັບຫນ່ວຍຄວາມຈໍາແຟລດ SPI ESP32 ປະສົມປະສານ - ບໍ່ແນະນໍາໃຫ້ໃຊ້).
- GPIO 14
- GPIO 15
ເປີດໃຊ້ (EN)
Enable (EN) ແມ່ນ pin ເປີດໃຊ້ງານຂອງ regulator 3.3V. ມັນຖືກດຶງຂຶ້ນ, ດັ່ງນັ້ນການເຊື່ອມຕໍ່ກັບພື້ນດິນເພື່ອປິດການໃຊ້ງານເຄື່ອງຄວບຄຸມ 3.3V. ນີ້ຫມາຍຄວາມວ່າທ່ານສາມາດນໍາໃຊ້ pin ນີ້ເຊື່ອມຕໍ່ກັບປຸ່ມກົດເພື່ອ restart ESP32 ຂອງທ່ານ, ສໍາລັບການຍົກຕົວຢ່າງampເລ.
GPIO ແຕ້ມໃນປັດຈຸບັນ
ແຮງດັນສູງສຸດຢ່າງແທ້ຈິງຕໍ່ GPIO ແມ່ນ 40mA ອີງຕາມພາກສ່ວນ “ເງື່ອນໄຂການໃຊ້ງານທີ່ແນະນຳ” ໃນເອກະສານຂໍ້ມູນ ESP32.
ESP32 Built-In Hall Effect Sensor
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. ດັ່ງນັ້ນ, ຖ້າເຈົ້າຕັ້ງໃຈຈະໃຊ້ plugin SPIFFS ໃນອະນາຄົດ, ພວກເຮົາແນະນຳໃຫ້ຕິດຕັ້ງເວີຊັ່ນ legacy 1.8.X. ທ່ານພຽງແຕ່ຕ້ອງການເລື່ອນລົງໃນຫນ້າຊອບແວ Arduino ເພື່ອຊອກຫາມັນ.
ການຕິດຕັ້ງ ESP32 Add-on ໃນ 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
ເປີດຜູ້ຈັດການກະດານ. ໄປທີ່ເຄື່ອງມື > Board > Boards Manager...ຊອກຫາ ESP32 and press install button for the “ESP32 by Espressif Systems“:
ນັ້ນຄືມັນ. ມັນຄວນຈະຖືກຕິດຕັ້ງຫຼັງຈາກສອງສາມວິນາທີ.
ອັບໂຫຼດລະຫັດທົດສອບ
ສຽບກະດານ ESP32 ກັບຄອມພິວເຕີຂອງທ່ານ. ດ້ວຍການເປີດ Arduino IDE ຂອງທ່ານ, ປະຕິບັດຕາມຂັ້ນຕອນເຫຼົ່ານີ້:
- ເລືອກກະດານຂອງທ່ານໃນເຄື່ອງມື> ເມນູກະດານ (ໃນກໍລະນີຂອງຂ້ອຍມັນແມ່ນ ESP32 DEV Module)
- ເລືອກພອດ (ຖ້າທ່ານບໍ່ເຫັນພອດ COM ໃນ Arduino IDE ຂອງທ່ານ, ທ່ານຈໍາເປັນຕ້ອງຕິດຕັ້ງໄດເວີ CP210x USB to UART Bridge VCP):
- ເປີດຕົວຢ່າງຕໍ່ໄປນີ້ample ພາຍໃຕ້ File > ຕົວຢ່າງamples > WiFi
(ESP32) > WiFi Scan - ຮູບແຕ້ມໃໝ່ເປີດຢູ່ໃນ Arduino IDE ຂອງທ່ານ:
- ກົດປຸ່ມອັບໂຫລດໃນ Arduino IDE. ລໍຖ້າສອງສາມວິນາທີໃນຂະນະທີ່ລະຫັດລວບລວມແລະອັບໂຫລດໄປຍັງກະດານຂອງທ່ານ.
- ຖ້າທຸກຢ່າງເປັນໄປຕາມທີ່ຄາດໄວ້, ທ່ານຄວນເຫັນ "ການອັບໂຫລດສຳເລັດແລ້ວ." ຂໍ້ຄວາມ.
- ເປີດ Arduino IDE Serial Monitor ໃນອັດຕາ baud ຂອງ 115200:
- ກົດປຸ່ມເປີດ ESP32 ເທິງກະດານ ແລະທ່ານຄວນເຫັນເຄືອຂ່າຍທີ່ມີຢູ່ໃກ້ກັບ ESP32 ຂອງທ່ານ:
ການແກ້ໄຂບັນຫາ
ຖ້າເຈົ້າພະຍາຍາມອັບໂຫລດຮູບແຕ້ມໃໝ່ໃສ່ ESP32 ຂອງເຈົ້າ ແລະເຈົ້າໄດ້ຮັບຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດນີ້ “ເກີດຄວາມຜິດພາດຮ້າຍແຮງ: ລົ້ມເຫລວໃນການເຊື່ອມຕໍ່ຫາ ESP32: ໝົດເວລາ… ກຳລັງເຊື່ອມຕໍ່…“. ມັນຫມາຍຄວາມວ່າ ESP32 ຂອງທ່ານບໍ່ຢູ່ໃນໂຫມດກະພິບ / ອັບໂຫຼດ.
ມີຊື່ກະດານທີ່ຖືກຕ້ອງແລະເລືອກ COM por, ປະຕິບັດຕາມຂັ້ນຕອນເຫຼົ່ານີ້:
ກົດປຸ່ມ “BOOT” ໃນກະດານ ESP32 ຂອງເຈົ້າຄ້າງໄວ້
- ກົດປຸ່ມ "ອັບໂຫຼດ" ໃນ Arduino IDE ເພື່ອອັບໂຫລດຮູບແຕ້ມຂອງທ່ານ:
- ຫຼັງຈາກທີ່ທ່ານເຫັນ "ການເຊື່ອມຕໍ່ ...". ຂໍ້ຄວາມໃນ Arduino IDE ຂອງທ່ານ, ປ່ອຍນິ້ວມືອອກຈາກປຸ່ມ "BOOT":
- ຫຼັງຈາກນັ້ນ, ທ່ານຄວນເຫັນຂໍ້ຄວາມ "Done uploading".
ນັ້ນຄືມັນ. ESP32 ຂອງທ່ານຄວນມີ sketch ໃຫມ່ແລ່ນ. ກົດປຸ່ມ “ENABLE” ເພື່ອປິດເປີດ ESP32 ຄືນໃໝ່ ແລະເປີດໃຊ້ຮູບແຕ້ມທີ່ອັບໂຫລດໃໝ່.
ນອກນັ້ນທ່ານຍັງຈະຕ້ອງເຮັດເລື້ມຄືນລໍາດັບປຸ່ມນັ້ນທຸກໆຄັ້ງທີ່ທ່ານຕ້ອງການທີ່ຈະອັບໂຫລດຮູບແຕ້ມໃຫມ່.
ໂຄງການ 1 ESP32 Inputs Outputs
ໃນຄູ່ມືການເລີ່ມຕົ້ນນີ້, ທ່ານຈະໄດ້ຮຽນຮູ້ວິທີການອ່ານວັດສະດຸປ້ອນດິຈິຕອນເຊັ່ນປຸ່ມປຸ່ມແລະຄວບຄຸມຜົນຜະລິດດິຈິຕອນເຊັ່ນ: LED ໂດຍໃຊ້ ESP32 ກັບ Arduino IDE.
ເງື່ອນໄຂເບື້ອງຕົ້ນ
ພວກເຮົາຈະຂຽນໂປຣແກຣມ ESP32 ໂດຍໃຊ້ Arduino IDE. ດັ່ງນັ້ນ, ໃຫ້ແນ່ໃຈວ່າທ່ານມີສ່ວນເສີມຂອງກະດານ ESP32 ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ:
- ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ESP32 ຄວບຄຸມຜົນຜະລິດດິຈິຕອນ
ທໍາອິດ, ທ່ານຈໍາເປັນຕ້ອງກໍານົດ GPIO ທີ່ທ່ານຕ້ອງການຄວບຄຸມເປັນ OUTPUT. ໃຊ້ຟັງຊັນ pinMode() ດັ່ງນີ້:
pinMode(GPIO, OUTPUT);
ເພື່ອຄວບຄຸມຜົນຜະລິດດິຈິຕອລທ່ານພຽງແຕ່ຕ້ອງການໃຊ້ຟັງຊັນ digitalWrite() ທີ່ຍອມຮັບເປັນການໂຕ້ຖຽງ, GPIO (int number) ທີ່ທ່ານກໍາລັງອ້າງເຖິງ, ແລະສະຖານະ, ບໍ່ວ່າຈະ HIGH ຫຼື LOW.
digitalWrite(GPIO, ລັດ);
GPIOs ທັງຫມົດສາມາດຖືກນໍາໃຊ້ເປັນຜົນຜະລິດຍົກເວັ້ນ GPIOs 6 ຫາ 11 (ເຊື່ອມຕໍ່ກັບ SPI flash ປະສົມປະສານ) ແລະ GPIOs 34, 35, 36 ແລະ 39 (ປ້ອນຂໍ້ມູນພຽງແຕ່ GPIOs);
ສຶກສາເພີ່ມເຕີມກ່ຽວກັບ ESP32 GPIOs: ESP32 GPIO Reference Guide
ESP32 ອ່ານ Digital Inputs
ກ່ອນອື່ນ ໝົດ, ຕັ້ງ GPIO ທີ່ທ່ານຕ້ອງການອ່ານເປັນ INPUT, ໂດຍໃຊ້ຟັງຊັນ pinMode() ດັ່ງຕໍ່ໄປນີ້:
pinMode(GPIO, INPUT);
ເພື່ອອ່ານການປ້ອນຂໍ້ມູນແບບດິຈິຕອລ, ຄືກັບປຸ່ມ, ທ່ານໃຊ້ຟັງຊັນ digitalRead() ທີ່ຍອມຮັບເປັນການໂຕ້ຖຽງ, GPIO (int number) ທີ່ທ່ານກໍາລັງອ້າງອີງ.
digitalRead(GPIO);
ESP32 GPIO ທັງໝົດສາມາດໃຊ້ເປັນວັດສະດຸປ້ອນໄດ້, ຍົກເວັ້ນ GPIOs 6 ຫາ 11 (ເຊື່ອມຕໍ່ກັບ SPI flash ປະສົມປະສານ).
ສຶກສາເພີ່ມເຕີມກ່ຽວກັບ ESP32 GPIOs: ESP32 GPIO Reference Guide
ໂຄງການ Example
ເພື່ອສະແດງໃຫ້ທ່ານເຫັນວິທີການນໍາໃຊ້ວັດສະດຸປ້ອນດິຈິຕອນແລະຜົນຜະລິດດິຈິຕອນ, ພວກເຮົາຈະສ້າງໂຄງການງ່າຍດາຍ example ມີປຸ່ມກົດແລະ LED. ພວກເຮົາຈະອ່ານສະຖານະຂອງປຸ່ມກົດແລະເຮັດໃຫ້ໄຟ LED ໄດ້ຕາມທີ່ສະແດງໃຫ້ເຫັນໃນຮູບດັ່ງຕໍ່ໄປນີ້.
ພາກສ່ວນທີ່ຕ້ອງການ
ນີ້ແມ່ນບັນຊີລາຍຊື່ຂອງພາກສ່ວນທີ່ທ່ານຕ້ອງການເພື່ອສ້າງວົງຈອນ:
- ESP32 DEVKIT V1
- LED 5 ມມ
- ຕົວຕ້ານທານ 220 Ohm
- ປະທຸມພອນ
- ຕົວຕ້ານທານ 10k Ohm
- ກະດານເຂົ້າຈີ່
- ສາຍ Jumper
ແຜນວາດແຜນພາບ
ກ່ອນທີ່ຈະດໍາເນີນການ, ທ່ານຈໍາເປັນຕ້ອງປະກອບວົງຈອນທີ່ມີ LED ແລະປຸ່ມກົດ.
ພວກເຮົາຈະເຊື່ອມຕໍ່ LED ກັບ GPIO 5 ແລະປຸ່ມກົດກັບ GPIO 4.ລະຫັດ
ເປີດລະຫັດ Project_1_ESP32_Inputs_Outputs.ino ໃນ arduino IDEລະຫັດເຮັດວຽກແນວໃດ
ໃນສອງແຖວຕໍ່ໄປນີ້, ທ່ານສ້າງຕົວແປເພື່ອກໍານົດ pins:
ປຸ່ມເຊື່ອມຕໍ່ກັບ GPIO 4 ແລະ LED ແມ່ນເຊື່ອມຕໍ່ກັບ GPIO 5. ເມື່ອໃຊ້ Arduino IDE ກັບ ESP32, 4 ກົງກັບ GPIO 4 ແລະ 5 ເທົ່າກັບ GPIO 5.
ຕໍ່ໄປ, ທ່ານສ້າງຕົວແປເພື່ອຖືສະຖານະປຸ່ມ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ມັນເປັນ 0 (ບໍ່ໄດ້ກົດ).
int buttonState = 0;
ໃນການຕັ້ງຄ່າ (), ທ່ານເລີ່ມຕົ້ນປຸ່ມເປັນການປ້ອນຂໍ້ມູນ, ແລະ LED ເປັນ OUTPUT.
ສໍາລັບການນັ້ນ, ທ່ານໃຊ້ຟັງຊັນ pinMode() ທີ່ຍອມຮັບ PIN ທີ່ທ່ານກໍາລັງອ້າງເຖິງ, ແລະໂຫມດ: INPUT ຫຼື OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
ໃນ loop() ແມ່ນບ່ອນທີ່ທ່ານອ່ານສະຖານະປຸ່ມແລະກໍານົດ LED ຕາມຄວາມເຫມາະສົມ.
ໃນແຖວຕໍ່ໄປ, ທ່ານອ່ານສະຖານະປຸ່ມແລະບັນທຶກມັນຢູ່ໃນຕົວແປ buttonState.
ດັ່ງທີ່ພວກເຮົາໄດ້ເຫັນກ່ອນຫນ້ານີ້, ທ່ານໃຊ້ຟັງຊັນ digitalRead().
buttonState = digitalRead(buttonPin);
ຕໍ່ໄປນີ້ຖ້າຄໍາສັ່ງ, ກວດເບິ່ງວ່າສະຖານະປຸ່ມແມ່ນສູງ. ຖ້າມັນເປັນ, ມັນຈະເປີດ LED ໂດຍໃຊ້ຟັງຊັນ digitalWrite() ທີ່ຍອມຮັບເປັນການໂຕ້ຖຽງ ledPin, ແລະສະຖານະສູງ.
ຖ້າ (buttonState == ສູງ)ຖ້າສະຖານະປຸ່ມບໍ່ສູງ, ທ່ານປິດໄຟ LED. ພຽງແຕ່ຕັ້ງ LOW ເປັນການໂຕ້ຖຽງທີສອງໃນຟັງຊັນ digitalWrite().
ກຳລັງອັບໂຫລດລະຫັດ
ກ່ອນທີ່ຈະຄລິກປຸ່ມອັບໂຫລດ, ໃຫ້ໄປທີ່ ເຄື່ອງມື > ກະດານ, ແລະເລືອກກະດານ: DOIT ESP32 DEVKIT V1 board.
ໄປທີ່ ເຄື່ອງມື > ພອດ ແລະເລືອກພອດ COM ທີ່ ESP32 ເຊື່ອມຕໍ່ກັບ. ຫຼັງຈາກນັ້ນ, ກົດປຸ່ມອັບໂຫລດແລະລໍຖ້າຂໍ້ຄວາມ "Done uploading".ໝາຍເຫດ: ຖ້າເຈົ້າເຫັນຈຸດຫຼາຍຈຸດ (ເຊື່ອມຕໍ່… __…__) ຢູ່ໃນໜ້າຕ່າງການດີບັກ ແລະ ຂໍ້ຄວາມ “ລົ້ມເຫລວໃນການເຊື່ອມຕໍ່ຫາ ESP32: ໝົດເວລາລໍຖ້າ packet header”, ນັ້ນໝາຍຄວາມວ່າເຈົ້າຕ້ອງກົດປຸ່ມ ESP32 on-board BOOT. ປຸ່ມຫຼັງຈາກຈຸດ
ເລີ່ມປາກົດ.ການແກ້ໄຂບັນຫາ
ການສາທິດ
ຫຼັງຈາກອັບໂຫຼດລະຫັດ, ທົດສອບວົງຈອນຂອງທ່ານ. ໄຟ LED ຂອງທ່ານຄວນສະຫວ່າງຂຶ້ນເມື່ອທ່ານກົດປຸ່ມກົດ:ແລະປິດເມື່ອທ່ານປ່ອຍມັນ:
ໂຄງການ 2 ESP32 ການປ້ອນຂໍ້ມູນແບບອະນາລັອກ
ໂຄງການນີ້ສະແດງໃຫ້ເຫັນວິທີການອ່ານການປ້ອນຂໍ້ມູນ analog ກັບ ESP32 ການນໍາໃຊ້ Arduino IDE.
ການອ່ານອະນາລັອກມີປະໂຫຍດໃນການອ່ານຄ່າຈາກຕົວຕ້ານທານທີ່ປ່ຽນແປງໄດ້ເຊັ່ນ: potentiometers, ຫຼື sensors analog.
ການປ້ອນຂໍ້ມູນແບບອະນາລັອກ (ADC)
ການອ່ານຄ່າການປຽບທຽບກັບ ESP32 ຫມາຍຄວາມວ່າທ່ານສາມາດວັດແທກປະລິມານທີ່ແຕກຕ່າງກັນtage ລະດັບລະຫວ່າງ 0 V ແລະ 3.3 V.
ປະລິມານtage ການວັດແທກຫຼັງຈາກນັ້ນຖືກມອບຫມາຍໃຫ້ຄ່າລະຫວ່າງ 0 ແລະ 4095, ເຊິ່ງ 0 V ເທົ່າກັບ 0, ແລະ 3.3 V ເທົ່າກັບ 4095. vol ໃດ.tage ລະຫວ່າງ 0 V ແລະ 3.3 V ຈະໄດ້ຮັບຄ່າທີ່ສອດຄ້ອງກັນໃນລະຫວ່າງ.ADC ແມ່ນບໍ່ມີເສັ້ນຊື່
ໂດຍຫລັກການແລ້ວ, ທ່ານຈະຄາດຫວັງວ່າມີພຶດຕິກໍາເສັ້ນຊື່ໃນເວລາທີ່ໃຊ້ pins ESP32 ADC.
ຢ່າງໃດກໍຕາມ, ມັນບໍ່ໄດ້ເກີດຂຶ້ນ. ສິ່ງທີ່ທ່ານຈະໄດ້ຮັບແມ່ນພຶດຕິກໍາທີ່ສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້:ພຶດຕິກໍານີ້ຫມາຍຄວາມວ່າ ESP32 ຂອງເຈົ້າບໍ່ສາມາດຈໍາແນກ 3.3 V ຈາກ 3.2 V.
ທ່ານຈະໄດ້ຮັບຄ່າດຽວກັນສໍາລັບທັງສອງ voltages: 4095.
ດຽວກັນເກີດຂຶ້ນສໍາລັບ vol ຕ່ໍາຫຼາຍtage values: ສໍາລັບ 0 V ແລະ 0.1 V ທ່ານຈະໄດ້ຮັບຄ່າດຽວກັນ: 0. ທ່ານຈໍາເປັນຕ້ອງຈື່ມັນໄວ້ໃນເວລາທີ່ໃຊ້ pins ESP32 ADC.
ຟັງຊັນ analogRead()
ການອ່ານການປ້ອນຂໍ້ມູນແບບອະນາລັອກກັບ ESP32 ໂດຍໃຊ້ Arduino IDE ແມ່ນງ່າຍດາຍຄືກັບການໃຊ້ຟັງຊັນ analogRead(). ມັນຍອມຮັບເປັນການໂຕ້ຖຽງ, GPIO ທີ່ທ່ານຕ້ອງການອ່ານ:
analogRead(GPIO);
ມີພຽງ 15 ອັນເທົ່ານັ້ນທີ່ມີຢູ່ໃນ DEVKIT V1board (ຮຸ່ນທີ່ມີ 30 GPIOs).
ຈັບ pinout ກະດານ ESP32 ຂອງທ່ານແລະຊອກຫາ pins ADC. ສິ່ງເຫຼົ່ານີ້ຖືກເນັ້ນໃສ່ດ້ວຍຂອບສີແດງໃນຮູບຂ້າງລຸ່ມນີ້.ປັກໝຸດອິນພຸດອະນາລັອກເຫຼົ່ານີ້ມີຄວາມລະອຽດ 12-ບິດ. ນີ້ຫມາຍຄວາມວ່າໃນເວລາທີ່ທ່ານອ່ານການປ້ອນຂໍ້ມູນອະນາລັອກ, ລະດັບຂອງມັນອາດຈະແຕກຕ່າງກັນຈາກ 0 ຫາ 4095.
ໝາຍເຫດ: ADC2 pins ບໍ່ສາມາດໃຊ້ເມື່ອ Wi-Fi ຖືກໃຊ້. ດັ່ງນັ້ນ, ຖ້າທ່ານກໍາລັງໃຊ້ Wi-Fi ແລະທ່ານກໍາລັງມີບັນຫາໃນການໄດ້ຮັບຄ່າຈາກ ADC2 GPIO, ທ່ານອາດຈະພິຈາລະນາໃຊ້ ADC1 GPIO ແທນ, ມັນຄວນຈະແກ້ໄຂບັນຫາຂອງທ່ານ.
ເພື່ອເບິ່ງວ່າທຸກສິ່ງທຸກຢ່າງມີຄວາມຜູກພັນກັນແນວໃດ, ພວກເຮົາຈະສ້າງຕົວຢ່າງງ່າຍໆampເພື່ອອ່ານຄ່າການປຽບທຽບຈາກ potentiometer.
ພາກສ່ວນທີ່ຕ້ອງການ
ສໍາລັບນີ້ exampດັ່ງນັ້ນ, ທ່ານຕ້ອງການພາກສ່ວນດັ່ງຕໍ່ໄປນີ້:
- ກະດານ ESP32 DEVKIT V1
- Potentiometer
- ກະດານເຂົ້າຈີ່
- ສາຍ Jumper
ແຜນວາດ
ເຊື່ອມ potentiometer ກັບ ESP32 ຂອງທ່ານ. pin ກາງ potentiometer ຄວນເຊື່ອມຕໍ່ກັບ GPIO 4. ທ່ານສາມາດນໍາໃຊ້ແຜນວາດ schematic ດັ່ງຕໍ່ໄປນີ້ເປັນເອກະສານອ້າງອີງ.ລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ເປີດລະຫັດ Project_2_ESP32_Inputs_Outputs.ino ໃນ arduino IDEລະຫັດນີ້ພຽງແຕ່ອ່ານຄ່າຈາກ potentiometer ແລະພິມຄ່າເຫຼົ່ານັ້ນຢູ່ໃນ Serial Monitor.
ໃນລະຫັດ, ທ່ານເລີ່ມຕົ້ນໂດຍການກໍານົດ GPIO ທີ່ potentiometer ເຊື່ອມຕໍ່ກັບ. ໃນນີ້ example, GPIO 4.ໃນການຕັ້ງຄ່າ (), ເລີ່ມຕົ້ນການສື່ສານ serial ໃນອັດຕາ baud ຂອງ 115200.
ໃນ loop(), ໃຊ້ຟັງຊັນ analogRead() ເພື່ອອ່ານການປ້ອນຂໍ້ມູນການປຽບທຽບຈາກ potPin.
ສຸດທ້າຍ, ພິມຄ່າທີ່ອ່ານຈາກ potentiometer ໃນ serial monitor.
ອັບໂຫລດລະຫັດທີ່ໃຫ້ໃສ່ ESP32 ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າທ່ານມີກະດານທີ່ຖືກຕ້ອງແລະພອດ COM ເລືອກຢູ່ໃນເມນູເຄື່ອງມື.
ການທົດສອບ Example
ຫຼັງຈາກອັບໂຫລດລະຫັດແລະກົດປຸ່ມປັບ ESP32, ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200. ໝຸນ potentiometer ແລະເບິ່ງຄ່າທີ່ປ່ຽນແປງ.ຄ່າສູງສຸດທີ່ເຈົ້າຈະໄດ້ຮັບແມ່ນ 4095 ແລະຄ່າຕໍ່າສຸດແມ່ນ 0.
ຫໍ່ຂຶ້ນ
ໃນບົດຄວາມນີ້ທ່ານໄດ້ຮຽນຮູ້ວິທີການອ່ານການປ້ອນຂໍ້ມູນແບບອະນາລັອກໂດຍໃຊ້ ESP32 ກັບ Arduino IDE. ສະຫຼຸບ:
- ກະດານ ESP32 DEVKIT V1 DOIT (ຮຸ່ນທີ່ມີ 30 pins) ມີ 15 pins ADC ທີ່ທ່ານສາມາດນໍາໃຊ້ເພື່ອອ່ານການປ້ອນຂໍ້ມູນແບບອະນາລັອກ.
- pins ເຫຼົ່ານີ້ມີຄວາມລະອຽດ 12 bits, ຊຶ່ງຫມາຍຄວາມວ່າທ່ານສາມາດໄດ້ຮັບຄ່າຈາກ 0 ຫາ 4095.
- ເພື່ອອ່ານຄ່າໃນ Arduino IDE, ທ່ານພຽງແຕ່ໃຊ້ຟັງຊັນ analogRead().
- ເຂັມ ESP32 ADC ບໍ່ມີພຶດຕິກໍາເສັ້ນຊື່. ທ່ານອາດຈະບໍ່ສາມາດຈໍາແນກລະຫວ່າງ 0 ແລະ 0.1V, ຫຼືລະຫວ່າງ 3.2 ຫາ 3.3V. ທ່ານ ຈຳ ເປັນຕ້ອງຈື່ມັນໄວ້ໃນເວລາໃຊ້ເຂັມ ADC.
ໂຄງການ 3 ESP32 PWM(Analog Output)
ໃນບົດສອນນີ້ພວກເຮົາຈະສະແດງໃຫ້ທ່ານເຫັນວິທີການສ້າງສັນຍານ PWM ກັບ ESP32 ໂດຍໃຊ້ Arduino IDE. ເປັນ exampເຮົາຈະສ້າງວົງຈອນແບບງ່າຍໆທີ່ຫລອດໄຟ LED ໂດຍໃຊ້ຕົວຄວບຄຸມ LED PWM ຂອງ ESP32.ESP32 LED PWM Controller
ESP32 ມີຕົວຄວບຄຸມ LED PWM ທີ່ມີ 16 ຊ່ອງທາງເອກະລາດທີ່ສາມາດຕັ້ງຄ່າເພື່ອສ້າງສັນຍານ PWM ທີ່ມີຄຸນສົມບັດທີ່ແຕກຕ່າງກັນ.
ນີ້ແມ່ນຂັ້ນຕອນທີ່ທ່ານຕ້ອງເຮັດເພື່ອຫຼຸດໄຟ LED ດ້ວຍ PWM ໂດຍໃຊ້ Arduino IDE:
- ທໍາອິດ, ທ່ານຈໍາເປັນຕ້ອງເລືອກຊ່ອງທາງ PWM. ມີ 16 ຊ່ອງຈາກ 0 ຫາ 15.
- ຫຼັງຈາກນັ້ນ, ທ່ານຈໍາເປັນຕ້ອງໄດ້ກໍານົດຄວາມຖີ່ຂອງສັນຍານ PWM. ສໍາລັບ LED, ຄວາມຖີ່ຂອງ 5000 Hz ແມ່ນດີທີ່ຈະໃຊ້.
- ນອກນັ້ນທ່ານຍັງຈໍາເປັນຕ້ອງໄດ້ກໍານົດການແກ້ໄຂວົງຈອນຫນ້າທີ່ຂອງສັນຍານ: ທ່ານມີຄວາມລະອຽດຈາກ 1 ຫາ 16 bits. ພວກເຮົາຈະໃຊ້ຄວາມລະອຽດ 8-bit, ຊຶ່ງຫມາຍຄວາມວ່າທ່ານສາມາດຄວບຄຸມຄວາມສະຫວ່າງ LED ໂດຍໃຊ້ຄ່າຈາກ 0 ຫາ 255.
- ຕໍ່ໄປ, ທ່ານຈໍາເປັນຕ້ອງລະບຸວ່າ GPIO ຫຼື GPIOs ທີ່ສັນຍານຈະປາກົດຂຶ້ນ. ເພື່ອເຮັດສິ່ງນີ້, ທ່ານຈະນໍາໃຊ້ຫນ້າທີ່ດັ່ງຕໍ່ໄປນີ້:
ledcAttachPin(GPIO, ຊ່ອງ)
ຟັງຊັນນີ້ຍອມຮັບສອງການໂຕ້ຖຽງ. ທໍາອິດແມ່ນ GPIO ທີ່ຈະສົ່ງສັນຍານອອກ, ແລະທີສອງແມ່ນຊ່ອງທາງທີ່ຈະສ້າງສັນຍານ. - ສຸດທ້າຍ, ເພື່ອຄວບຄຸມຄວາມສະຫວ່າງ LED ໂດຍໃຊ້ PWM, ທ່ານໃຊ້ຟັງຊັນຕໍ່ໄປນີ້:
ledcWrite(ຊ່ອງ, ວົງວຽນ)
ຟັງຊັນນີ້ຍອມຮັບເປັນການໂຕ້ຖຽງຊ່ອງທາງທີ່ກໍາລັງສ້າງສັນຍານ PWM, ແລະວົງຈອນຫນ້າທີ່.
ພາກສ່ວນທີ່ຕ້ອງການ
ເພື່ອປະຕິບັດຕາມ tutorial ນີ້ທ່ານຕ້ອງການພາກສ່ວນເຫຼົ່ານີ້:
- ກະດານ ESP32 DEVKIT V1
- LED 5 ມມ
- ຕົວຕ້ານທານ 220 Ohm
- ກະດານເຂົ້າຈີ່
- ສາຍ Jumper
ແຜນວາດ
ສາຍໄຟ LED ໃສ່ ESP32 ຂອງທ່ານຄືກັບແຜນວາດແຜນວາດຕໍ່ໄປນີ້. LED ຄວນເຊື່ອມຕໍ່ກັບ GPIO 4.ໝາຍເຫດ: ທ່ານສາມາດນໍາໃຊ້ pin ທີ່ທ່ານຕ້ອງການ, ຕາບໃດທີ່ມັນສາມາດປະຕິບັດເປັນຜົນຜະລິດ. ປັກໝຸດທັງໝົດທີ່ສາມາດເຮັດໜ້າທີ່ເປັນຜົນຜະລິດສາມາດນຳໃຊ້ເປັນເຂັມ PWM. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບ ESP32 GPIOs, ອ່ານ: ESP32 Pinout Reference: ທີ່ GPIO pins ທີ່ທ່ານຄວນໃຊ້?
ລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ເປີດລະຫັດ Project_3_ESP32_PWM.ino ໃນ arduino IDEທ່ານເລີ່ມຕົ້ນໂດຍການກໍານົດ pin ທີ່ LED ແມ່ນຕິດກັບ. ໃນກໍລະນີນີ້ LED ແມ່ນຕິດກັບ GPIO 4.
ຫຼັງຈາກນັ້ນ, ທ່ານກໍານົດຄຸນສົມບັດສັນຍານ PWM. ທ່ານກໍານົດຄວາມຖີ່ຂອງ 5000 Hz, ເລືອກຊ່ອງ 0 ເພື່ອສ້າງສັນຍານ, ແລະກໍານົດຄວາມລະອຽດຂອງ 8 bits. ທ່ານສາມາດເລືອກຄຸນສົມບັດອື່ນໆ, ທີ່ແຕກຕ່າງກັນກ່ວາເຫຼົ່ານີ້, ເພື່ອສ້າງສັນຍານ PWM ທີ່ແຕກຕ່າງກັນ.
ໃນ setup(), ທ່ານຈໍາເປັນຕ້ອງ configure LED PWM ກັບຄຸນສົມບັດທີ່ທ່ານໄດ້ກໍານົດໄວ້ກ່ອນຫນ້ານີ້ໂດຍການໃຊ້ຟັງຊັນ ledcSetup() ທີ່ຍອມຮັບເປັນການໂຕ້ຖຽງ, ledChannel, ຄວາມຖີ່, ແລະຄວາມລະອຽດ, ດັ່ງຕໍ່ໄປນີ້:
ຕໍ່ໄປ, ທ່ານຈໍາເປັນຕ້ອງເລືອກ GPIO ທີ່ທ່ານຈະໄດ້ຮັບສັນຍານຈາກ. ສໍາລັບການທີ່ນໍາໃຊ້ຟັງຊັນ ledcAttachPin () ທີ່ຍອມຮັບເປັນການໂຕ້ຖຽງ GPIO ບ່ອນທີ່ທ່ານຕ້ອງການທີ່ຈະໄດ້ຮັບສັນຍານ, ແລະຊ່ອງທາງທີ່ກໍາລັງສ້າງສັນຍານ. ໃນນີ້ example, ພວກເຮົາຈະໄດ້ຮັບສັນຍານໃນ ledPin GPIO, ທີ່ສອດຄ້ອງກັບ GPIO 4. ຊ່ອງທາງທີ່ສ້າງສັນຍານແມ່ນ ledChannel, ເຊິ່ງກົງກັບຊ່ອງທາງ 0.
ໃນວົງຮອບ, ທ່ານຈະປ່ຽນຮອບວຽນຫນ້າທີ່ລະຫວ່າງ 0 ຫາ 255 ເພື່ອເພີ່ມຄວາມສະຫວ່າງ LED.
ແລະຫຼັງຈາກນັ້ນ, ລະຫວ່າງ 255 ແລະ 0 ເພື່ອຫຼຸດລົງຄວາມສະຫວ່າງ.
ເພື່ອກໍານົດຄວາມສະຫວ່າງຂອງ LED, ທ່ານພຽງແຕ່ຕ້ອງການໃຊ້ຟັງຊັນ ledcWrite() ທີ່ຍອມຮັບເປັນການໂຕ້ຖຽງຊ່ອງທາງທີ່ກໍາລັງສ້າງສັນຍານ, ແລະວົງຈອນຫນ້າທີ່.
ໃນຂະນະທີ່ພວກເຮົາກໍາລັງໃຊ້ຄວາມລະອຽດ 8-bit, ວົງຈອນຫນ້າທີ່ຈະຖືກຄວບຄຸມໂດຍໃຊ້ຄ່າຈາກ 0 ຫາ 255. ໃຫ້ສັງເກດວ່າໃນຟັງຊັນ ledcWrite() ພວກເຮົາໃຊ້ຊ່ອງທາງທີ່ກໍາລັງສ້າງສັນຍານ, ບໍ່ແມ່ນ GPIO.
ການທົດສອບ Example
ອັບໂຫລດລະຫັດໃສ່ ESP32 ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າທ່ານມີກະດານທີ່ຖືກຕ້ອງແລະພອດ COM ເລືອກ. ເບິ່ງວົງຈອນຂອງເຈົ້າ. ທ່ານຄວນມີ LED dimmer ທີ່ເພີ່ມແລະຫຼຸດລົງຄວາມສະຫວ່າງ.
ໂຄງການ 4 ESP32 PIR Motion Sensor
ໂປຣເຈັກນີ້ສະແດງວິທີການກວດຈັບການເຄື່ອນໄຫວດ້ວຍ ESP32 ໂດຍໃຊ້ເຊັນເຊີການເຄື່ອນໄຫວ PIR. buzzer ຈະສົ່ງສຽງເຕືອນເມື່ອກວດພົບການເຄື່ອນໄຫວ, ແລະຢຸດໂມງປຸກເມື່ອບໍ່ມີການເຄື່ອນໄຫວຖືກກວດພົບເປັນເວລາທີ່ຕັ້ງໄວ້ (ເຊັ່ນ: 4 ວິນາທີ)
HC-SR501 ເຊັນເຊີການເຄື່ອນໄຫວເຮັດວຽກແນວໃດ
.ຫຼັກການເຮັດວຽກຂອງເຊັນເຊີ HC-SR501 ແມ່ນອີງໃສ່ການປ່ຽນແປງຂອງລັງສີອິນຟາເຣດເທິງວັດຖຸທີ່ເຄື່ອນຍ້າຍ. ເພື່ອຈະກວດພົບໂດຍເຊັນເຊີ HC-SR501, ວັດຖຸຕ້ອງຕອບສະໜອງໄດ້ສອງຄວາມຕ້ອງການ:
- ວັດຖຸແມ່ນປ່ອຍແສງທາງອິນຟາເລດ.
- ວັດຖຸກຳລັງເຄື່ອນທີ່ ຫຼືສັ່ນ
ດັ່ງນັ້ນ:
ຖ້າວັດຖຸໃດນຶ່ງກຳລັງປ່ອຍແສງອິນຟາເຣດ ແຕ່ບໍ່ມີການເຄື່ອນທີ່ (ຕົວຢ່າງ: ຄົນທີ່ຢືນຢູ່ໂດຍບໍ່ໄດ້ເຄື່ອນຍ້າຍ), ເຊັນເຊີຈະບໍ່ຖືກກວດພົບ.
ຖ້າວັດຖຸໃດໜຶ່ງກຳລັງເຄື່ອນທີ່ ແຕ່ບໍ່ປ່ອຍແສງອິນຟາເຣດ (ເຊັ່ນ: ຫຸ່ນຍົນ ຫຼືຍານພາຫະນະ), ມັນຈະບໍ່ຖືກກວດພົບໂດຍເຊັນເຊີ.
ແນະນຳຕົວຈັບເວລາ
ໃນນີ້ exampພວກເຮົາຍັງຈະແນະນໍາຕົວຈັບເວລາ. ພວກເຮົາຕ້ອງການໃຫ້ LED ຢູ່ຕໍ່ກັບຈໍານວນວິນາທີທີ່ກໍານົດໄວ້ລ່ວງຫນ້າຫຼັງຈາກການກວດພົບການເຄື່ອນໄຫວ. ແທນທີ່ຈະໃຊ້ຟັງຊັນ delay() ທີ່ບລັອກລະຫັດຂອງທ່ານ ແລະບໍ່ໃຫ້ທ່ານເຮັດອັນອື່ນເປັນເວລາວິນາທີທີ່ກຳນົດໄວ້, ພວກເຮົາຄວນໃຊ້ເຄື່ອງຈັບເວລາ.ຟັງຊັນການຊັກຊ້າ().
ທ່ານຄວນຄຸ້ນເຄີຍກັບຫນ້າທີ່ຊັກຊ້າ () ຍ້ອນວ່າມັນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງ. ຟັງຊັນນີ້ແມ່ນຂ້ອນຂ້າງກົງໄປກົງມາທີ່ຈະນໍາໃຊ້. ມັນຍອມຮັບຕົວເລກ int ດຽວເປັນການໂຕ້ຖຽງ.
ຕົວເລກນີ້ສະແດງເຖິງເວລາເປັນ milliseconds ທີ່ໂຄງການຕ້ອງລໍຖ້າຈົນກ່ວາຍ້າຍໄປແຖວຕໍ່ໄປຂອງລະຫັດ.ເມື່ອທ່ານຊັກຊ້າ (1000) ໂຄງການຂອງທ່ານຢຸດຢູ່ໃນແຖວນັ້ນເປັນເວລາ 1 ວິນາທີ.
ການຊັກຊ້າ() ແມ່ນຫນ້າທີ່ສະກັດກັ້ນ. ຟັງຊັນການບລັອກປ້ອງກັນບໍ່ໃຫ້ໂປຣແກຣມເຮັດອັນອື່ນຈົນກວ່າວຽກສະເພາະນັ້ນຈະສຳເລັດ. ຖ້າທ່ານຕ້ອງການຫຼາຍຫນ້າວຽກທີ່ເກີດຂື້ນໃນເວລາດຽວກັນ, ທ່ານບໍ່ສາມາດໃຊ້ການຊັກຊ້າ ().
ສໍາລັບໂຄງການສ່ວນໃຫຍ່ທ່ານຄວນຫຼີກເວັ້ນການຊັກຊ້າແລະໃຊ້ເຄື່ອງຈັບເວລາແທນ.
ຟັງຊັນ millis().
ການນໍາໃຊ້ຟັງຊັນທີ່ເອີ້ນວ່າ millis() ທ່ານສາມາດສົ່ງຄືນຈໍານວນ milliseconds ທີ່ຜ່ານໄປນັບຕັ້ງແຕ່ໂຄງການທໍາອິດເລີ່ມຕົ້ນ.ເປັນຫຍັງຟັງຊັນນັ້ນຈຶ່ງເປັນປະໂຫຍດ? ເນື່ອງຈາກວ່າໂດຍການໃຊ້ຄະນິດສາດບາງຢ່າງ, ທ່ານສາມາດກວດສອບໄດ້ຢ່າງງ່າຍດາຍວ່າເວລາຜ່ານໄປຫຼາຍປານໃດໂດຍບໍ່ມີການປິດກັ້ນລະຫັດຂອງທ່ານ.
ພາກສ່ວນທີ່ຕ້ອງການ
ເພື່ອປະຕິບັດຕາມ tutorial ນີ້, ທ່ານຈໍາເປັນຕ້ອງໄດ້ພາກສ່ວນດັ່ງຕໍ່ໄປນີ້
- ກະດານ ESP32 DEVKIT V1
- ເຊັນເຊີກວດຈັບການເຄື່ອນໄຫວ PIR (HC-SR501)
- Buzzer ທີ່ໃຊ້ຢູ່
- ສາຍ Jumper
- ກະດານເຂົ້າຈີ່
ແຜນວາດໝາຍເຫດ: ການເຮັດວຽກ voltage ຂອງ HC-SR501 ແມ່ນ 5V. ໃຊ້ pin Vin ເພື່ອພະລັງງານມັນ.
ລະຫັດ
ກ່ອນທີ່ຈະສືບຕໍ່ການສອນນີ້, ທ່ານຄວນຈະມີ ESP32 add-on ຕິດຕັ້ງຢູ່ໃນ Arduino IDE ຂອງທ່ານ. ປະຕິບັດຕາມຫນຶ່ງໃນຄໍາແນະນໍາຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງ ESP32 ໃນ Arduino IDE, ຖ້າທ່ານຍັງບໍ່ໄດ້ເຮັດແລ້ວ. (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ເປີດລະຫັດ Project_4_ESP32_PIR_Motion_Sensor.ino ໃນ arduino IDE.
ການສາທິດ
ອັບໂຫລດລະຫັດໃສ່ກະດານ ESP32 ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າທ່ານມີກະດານທີ່ຖືກຕ້ອງແລະພອດ COM ເລືອກ. ອັບໂຫຼດຂັ້ນຕອນການອ້າງອີງລະຫັດ.
ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200.ຍ້າຍມືຂອງທ່ານໄປທາງຫນ້າຂອງເຊັນເຊີ PIR. buzzer ຄວນເປີດ, ແລະຂໍ້ຄວາມຈະຖືກພິມຢູ່ໃນ Serial Monitor ໂດຍກ່າວວ່າ "ກວດພົບການເຄື່ອນໄຫວ! Buzzer alarm".
ຫຼັງຈາກ 4 ວິນາທີ, buzzer ຄວນປິດ.
ໂຄງການ 5 ESP32 Switch Web ເຊີບເວີ
ໃນໂຄງການນີ້ທ່ານຈະສ້າງ standalone web ເຊີບເວີທີ່ມີ ESP32 ທີ່ຄວບຄຸມຜົນຜະລິດ (ສອງ LEDs) ໂດຍໃຊ້ສະພາບແວດລ້ອມການຂຽນໂປລແກລມ Arduino IDE. ໄດ້ web ເຊີບເວີແມ່ນມືຖືທີ່ຕອບສະໜອງ ແລະສາມາດເຂົ້າເຖິງໄດ້ກັບອຸປະກອນໃດໆກໍຕາມທີ່ເປັນຕົວທ່ອງເວັບໃນເຄືອຂ່າຍທ້ອງຖິ່ນ. ພວກເຮົາຈະສະແດງໃຫ້ທ່ານວິທີການສ້າງ web ເຊີບເວີ ແລະລະຫັດເຮັດວຽກແບບເທື່ອລະຂັ້ນຕອນ.
ໂຄງການສິ້ນສຸດview
ກ່ອນທີ່ຈະໄປໂດຍກົງກັບໂຄງການ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະກໍານົດສິ່ງທີ່ພວກເຮົາ web ເຊີບເວີຈະເຮັດ, ເພື່ອໃຫ້ມັນງ່າຍຕໍ່ການປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ມາ.
- ໄດ້ web ເຊີບເວີທີ່ທ່ານຈະສ້າງການຄວບຄຸມສອງ LEDs ທີ່ເຊື່ອມຕໍ່ກັບ ESP32 GPIO 26 ແລະ GPIO 27;
- ທ່ານສາມາດເຂົ້າເຖິງ ESP32 web ເຊີບເວີໂດຍການພິມທີ່ຢູ່ IP ESP32 ໃນຕົວທ່ອງເວັບໃນເຄືອຂ່າຍທ້ອງຖິ່ນ;
- ໂດຍການຄລິກໃສ່ປຸ່ມຂອງທ່ານ web ເຊີບເວີທ່ານສາມາດປ່ຽນສະຖານະຂອງແຕ່ລະ LED ໄດ້ທັນທີ.
ພາກສ່ວນທີ່ຕ້ອງການ
ສໍາລັບການສອນນີ້, ທ່ານຈະຕ້ອງການພາກສ່ວນດັ່ງຕໍ່ໄປນີ້:
- ກະດານ ESP32 DEVKIT V1
- ໄຟ LED 2x5 ມມ
- ຕົວຕ້ານທານ 2x 200 Ohm
- ກະດານເຂົ້າຈີ່
- ສາຍ Jumper
ແຜນວາດ
ເລີ່ມຕົ້ນດ້ວຍການສ້າງວົງຈອນ. ເຊື່ອມຕໍ່ສອງ LEDs ກັບ ESP32 ດັ່ງທີ່ສະແດງຢູ່ໃນແຜນວາດຕາຕະລາງຕໍ່ໄປນີ້ - ຫນຶ່ງ LED ເຊື່ອມຕໍ່ກັບ GPIO 26, ແລະອີກອັນຫນຶ່ງກັບ GPIO 27.
ໝາຍເຫດ: ພວກເຮົາກໍາລັງໃຊ້ກະດານ ESP32 DEVKIT DOIT ທີ່ມີ 36 pins. ກ່ອນທີ່ຈະປະກອບວົງຈອນ, ໃຫ້ແນ່ໃຈວ່າທ່ານກວດເບິ່ງ pinout ສໍາລັບກະດານທີ່ທ່ານກໍາລັງໃຊ້.ລະຫັດ
ໃນທີ່ນີ້ພວກເຮົາສະຫນອງລະຫັດທີ່ສ້າງ ESP32 web ເຊີບເວີ. ເປີດລະຫັດ Project_5_ESP32_Switch _Web_Server.ino ໃນ arduino IDE, ແຕ່ບໍ່ອັບໂຫລດມັນເທື່ອ. ທ່ານຈໍາເປັນຕ້ອງເຮັດການປ່ຽນແປງບາງຢ່າງເພື່ອເຮັດໃຫ້ມັນເຮັດວຽກສໍາລັບທ່ານ.
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ການຕັ້ງຄ່າຂໍ້ມູນປະຈໍາເຄືອຂ່າຍຂອງທ່ານ
ທ່ານຈໍາເປັນຕ້ອງໄດ້ປັບປຸງແກ້ໄຂບັນດາສາຍດັ່ງຕໍ່ໄປນີ້ມີການຢັ້ງຢືນເຄືອຂ່າຍຂອງທ່ານ: SSID ແລະລະຫັດຜ່ານ. ລະຫັດໄດ້ຖືກສະແດງຄວາມຄິດເຫັນດີກ່ຽວກັບບ່ອນທີ່ທ່ານຄວນເຮັດການປ່ຽນແປງ.ກຳລັງອັບໂຫລດລະຫັດ
ໃນປັດຈຸບັນ, ທ່ານສາມາດອັບໂຫລດລະຫັດແລະ web ເຊີບເວີຈະເຮັດວຽກທັນທີ.
ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອອັບໂຫລດລະຫັດໃສ່ ESP32:
- ສຽບກະດານ ESP32 ຂອງທ່ານໃນຄອມພິວເຕີຂອງທ່ານ;
- ໃນ Arduino IDE ເລືອກກະດານຂອງທ່ານໃນເຄື່ອງມື > ກະດານ (ໃນກໍລະນີຂອງພວກເຮົາພວກເຮົາກໍາລັງໃຊ້ກະດານ ESP32 DEVKIT DOIT);
- ເລືອກພອດ COM ໃນເຄື່ອງມື > ພອດ.
- ກົດປຸ່ມອັບໂຫລດໃນ Arduino IDE ແລະລໍຖ້າສອງສາມວິນາທີໃນຂະນະທີ່ລະຫັດລວບລວມແລະອັບໂຫລດໄປຍັງກະດານຂອງທ່ານ.
- ລໍຖ້າຂໍ້ຄວາມ "ສໍາເລັດການອັບໂຫລດ".
ຊອກຫາທີ່ຢູ່ IP ຂອງ ESP
ຫຼັງຈາກອັບໂຫລດລະຫັດ, ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200.ກົດປຸ່ມ ESP32 EN (ຣີເຊັດ). ESP32 ເຊື່ອມຕໍ່ກັບ Wi-Fi, ແລະສົ່ງອອກທີ່ຢູ່ ESP IP ໃນ Serial Monitor. ສຳເນົາທີ່ຢູ່ IP ນັ້ນ, ເພາະວ່າທ່ານຕ້ອງການມັນເພື່ອເຂົ້າເຖິງ ESP32 web ເຊີບເວີ.
ການເຂົ້າເຖິງ Web ເຊີບເວີ
ເພື່ອເຂົ້າເຖິງ web server, ເປີດ browser ຂອງທ່ານ, ວາງທີ່ຢູ່ IP ESP32, ແລະທ່ານຈະເຫັນຫນ້າຕໍ່ໄປນີ້.
ໝາຍເຫດ: ຕົວທ່ອງເວັບແລະ ESP32 ຂອງທ່ານຄວນຈະເຊື່ອມຕໍ່ກັບ LAN ດຽວກັນ.ຖ້າທ່ານເບິ່ງ Serial Monitor, ທ່ານສາມາດເບິ່ງສິ່ງທີ່ເກີດຂື້ນໃນພື້ນຫລັງ. ESP ໄດ້ຮັບການຮ້ອງຂໍ HTTP ຈາກລູກຄ້າໃຫມ່ (ໃນກໍລະນີນີ້, ຕົວທ່ອງເວັບຂອງທ່ານ).
ທ່ານຍັງສາມາດເບິ່ງຂໍ້ມູນອື່ນໆກ່ຽວກັບການຮ້ອງຂໍ HTTP.
ການສາທິດ
ໃນປັດຈຸບັນທ່ານສາມາດທົດສອບວ່າຂອງທ່ານ web ເຊີບເວີເຮັດວຽກຢ່າງຖືກຕ້ອງ. ຄລິກປຸ່ມຕ່າງໆເພື່ອຄວບຄຸມໄຟ LEDs.ໃນເວລາດຽວກັນ, ທ່ານສາມາດໃຊ້ເວລາເບິ່ງ Serial Monitor ເພື່ອເບິ່ງສິ່ງທີ່ເກີດຂຶ້ນໃນພື້ນຫລັງ. ຕົວຢ່າງampດັ່ງນັ້ນ, ເມື່ອທ່ານກົດປຸ່ມເພື່ອເປີດ GPIO 26, ESP32 ໄດ້ຮັບການຮ້ອງຂໍຢູ່ໃນ /26/on URL.
ເມື່ອ ESP32 ໄດ້ຮັບຄໍາຮ້ອງຂໍນັ້ນ, ມັນຈະເປີດ LED ທີ່ຕິດກັບ GPIO 26 ON ແລະປັບປຸງສະຖານະຂອງມັນຢູ່ໃນ web ໜ້າ.
ປຸ່ມສໍາລັບ GPIO 27 ເຮັດວຽກໃນລັກສະນະທີ່ຄ້າຍຄືກັນ. ທົດສອບວ່າມັນເຮັດວຽກຢ່າງຖືກຕ້ອງ.
ລະຫັດເຮັດວຽກແນວໃດ
ໃນພາກນີ້ຈະພິຈາລະນາຢ່າງລະອຽດກ່ຽວກັບລະຫັດເພື່ອເບິ່ງວ່າມັນເຮັດວຽກແນວໃດ.
ສິ່ງທໍາອິດທີ່ທ່ານຈໍາເປັນຕ້ອງເຮັດແມ່ນເພື່ອປະກອບມີຫ້ອງສະຫມຸດ WiFi.ດັ່ງທີ່ໄດ້ກ່າວມາກ່ອນຫນ້ານີ້, ທ່ານຈໍາເປັນຕ້ອງໃສ່ ssid ແລະລະຫັດຜ່ານຂອງທ່ານໃນແຖວຕໍ່ໄປນີ້ພາຍໃນວົງຢືມຄູ່.
ຫຼັງຈາກນັ້ນ, ທ່ານກໍານົດຂອງທ່ານ web ເຊີບເວີໄປຫາພອດ 80.
ແຖວຕໍ່ໄປນີ້ສ້າງຕົວແປເພື່ອເກັບສ່ວນຫົວຂອງຄໍາຮ້ອງຂໍ HTTP:
ຕໍ່ໄປ, ທ່ານສ້າງຕົວແປເສີມເພື່ອເກັບຮັກສາສະຖານະປະຈຸບັນຂອງຜົນໄດ້ຮັບຂອງທ່ານ. ຖ້າທ່ານຕ້ອງການເພີ່ມຜົນໄດ້ຮັບແລະປະຫຍັດສະຖານະຂອງມັນ, ທ່ານຈໍາເປັນຕ້ອງສ້າງຕົວແປເພີ່ມເຕີມ.
ນອກນັ້ນທ່ານຍັງຈໍາເປັນຕ້ອງໄດ້ມອບຫມາຍ GPIO ໃຫ້ກັບແຕ່ລະຜົນໄດ້ຮັບຂອງທ່ານ. ໃນທີ່ນີ້ພວກເຮົາກໍາລັງໃຊ້ GPIO 26 ແລະ GPIO 27. ທ່ານສາມາດນໍາໃຊ້ GPIOs ທີ່ເຫມາະສົມອື່ນໆ.
ຕັ້ງຄ່າ()
ດຽວນີ້, ໃຫ້ເຂົ້າໄປໃນການຕັ້ງຄ່າ (). ຫນ້າທໍາອິດ, ພວກເຮົາເລີ່ມຕົ້ນການສື່ສານ serial ໃນອັດຕາ baud ຂອງ 115200 ສໍາລັບຈຸດປະສົງ debugging.ນອກນັ້ນທ່ານຍັງກໍານົດ GPIOs ຂອງທ່ານເປັນ OUTPUTs ແລະກໍານົດໃຫ້ເຂົາເຈົ້າຕ່ໍາ.
ສາຍຕໍ່ໄປນີ້ເລີ່ມຕົ້ນການເຊື່ອມຕໍ່ Wi-Fi ດ້ວຍ WiFi.begin(ssid, ລະຫັດຜ່ານ), ລໍຖ້າການເຊື່ອມຕໍ່ທີ່ສໍາເລັດຜົນແລະພິມທີ່ຢູ່ ESP IP ໃນ Serial Monitor.
loop()
ໃນ loop() ພວກເຮົາດໍາເນີນໂຄງການສິ່ງທີ່ເກີດຂຶ້ນເມື່ອລູກຄ້າໃຫມ່ສ້າງການເຊື່ອມຕໍ່ກັບ web ເຊີບເວີ.
ESP32 ແມ່ນສະເຫມີຟັງສໍາລັບລູກຄ້າທີ່ເຂົ້າມາທີ່ມີແຖວຕໍ່ໄປນີ້:ເມື່ອໄດ້ຮັບການຮ້ອງຂໍຈາກລູກຄ້າ, ພວກເຮົາຈະບັນທຶກຂໍ້ມູນຂາເຂົ້າ. ຂະບວນການຂະນະທີ່ຕໍ່ໄປນີ້ຈະດໍາເນີນການຕາບໃດທີ່ລູກຄ້າຍັງຄົງເຊື່ອມຕໍ່. ພວກເຮົາບໍ່ແນະນໍາໃຫ້ປ່ຽນສ່ວນຕໍ່ໄປນີ້ຂອງລະຫັດເວັ້ນເສຍແຕ່ວ່າທ່ານຮູ້ວ່າທ່ານກໍາລັງເຮັດຫຍັງ.
ພາກສ່ວນຕໍ່ໄປຂອງຂໍ້ຄວາມ if ແລະ else ກວດເບິ່ງວ່າປຸ່ມໃດຖືກກົດຢູ່ໃນຂອງເຈົ້າ web ຫນ້າ, ແລະຄວບຄຸມຜົນໄດ້ຮັບຕາມຄວາມເຫມາະສົມ. ດັ່ງທີ່ພວກເຮົາໄດ້ເຫັນກ່ອນຫນ້ານີ້, ພວກເຮົາເຮັດຄໍາຮ້ອງຂໍທີ່ແຕກຕ່າງກັນ URLs ຂຶ້ນກັບປຸ່ມກົດ.
ຕົວຢ່າງample, ຖ້າທ່ານກົດປຸ່ມ GPIO 26 ON, ESP32 ໄດ້ຮັບການຮ້ອງຂໍຢູ່ໃນ /26/ON. URL (ພວກເຮົາສາມາດເຫັນໄດ້ວ່າຂໍ້ມູນນັ້ນຢູ່ໃນສ່ວນຫົວ HTTP ໃນ Serial Monitor). ດັ່ງນັ້ນ, ພວກເຮົາສາມາດກວດເບິ່ງວ່າ header ມີ expression GET /26/on. ຖ້າມັນມີ, ພວກເຮົາປ່ຽນຕົວແປ output26state ເປັນ ON, ແລະ ESP32 ເປີດໄຟ LED.
ນີ້ເຮັດວຽກຄ້າຍຄືກັນກັບປຸ່ມອື່ນໆ. ດັ່ງນັ້ນ, ຖ້າທ່ານຕ້ອງການເພີ່ມຜົນຜະລິດຫຼາຍ, ທ່ານຄວນດັດແປງສ່ວນຂອງລະຫັດນີ້ເພື່ອປະກອບມີພວກມັນ.
ການສະແດງ HTML web ໜ້າ
ສິ່ງຕໍ່ໄປທີ່ທ່ານຈໍາເປັນຕ້ອງເຮັດ, ແມ່ນການສ້າງ web ໜ້າ. ESP32 ຈະສົ່ງຄໍາຕອບໃຫ້ກັບຕົວທ່ອງເວັບຂອງທ່ານດ້ວຍລະຫັດ HTML ບາງຢ່າງເພື່ອສ້າງ web ໜ້າ.
ໄດ້ web ຫນ້າຖືກສົ່ງໄປຫາລູກຄ້າໂດຍໃຊ້ນີ້ expressing client.println(). ທ່ານຄວນໃສ່ສິ່ງທີ່ທ່ານຕ້ອງການສົ່ງໃຫ້ລູກຄ້າເປັນການໂຕ້ຖຽງ.
ສິ່ງທໍາອິດທີ່ພວກເຮົາຄວນສົ່ງແມ່ນສະເຫມີແຖວຕໍ່ໄປນີ້, ເຊິ່ງຊີ້ໃຫ້ເຫັນວ່າພວກເຮົາກໍາລັງສົ່ງ HTML.ຫຼັງຈາກນັ້ນ, ເສັ້ນຕໍ່ໄປນີ້ເຮັດໃຫ້ web ຫນ້າຕອບສະຫນອງໃນທຸກ web ຕົວທ່ອງເວັບ.
ແລະຕໍ່ໄປນີ້ແມ່ນໃຊ້ເພື່ອປ້ອງກັນການຮ້ອງຂໍຢູ່ໃນ favicon. – ທ່ານບໍ່ຈໍາເປັນຕ້ອງກັງວົນກ່ຽວກັບເສັ້ນນີ້.
Styling ໄດ້ Web ໜ້າ
ຕໍ່ໄປ, ພວກເຮົາມີບາງຂໍ້ຄວາມ CSS ເພື່ອສະໄຕຂອງປຸ່ມແລະ web ຮູບລັກສະນະຂອງຫນ້າ.
ພວກເຮົາເລືອກຕົວອັກສອນ Helvetica, ກໍານົດເນື້ອໃນທີ່ຈະສະແດງເປັນຕັນແລະຈັດຮຽງຢູ່ກາງ.ພວກເຮົາຈັດຮູບແບບປຸ່ມຂອງພວກເຮົາດ້ວຍສີ #4CAF50, ບໍ່ມີຂອບ, ຂໍ້ຄວາມເປັນສີຂາວ, ແລະມີ padding ນີ້: 16px 40px. ພວກເຮົາຍັງກໍານົດການຕົກແຕ່ງຂໍ້ຄວາມເປັນ none, ກໍານົດຂະຫນາດຕົວອັກສອນ, ຂອບໃບ, ແລະຕົວກະພິບເປັນ pointer.
ພວກເຮົາຍັງກໍານົດຮູບແບບສໍາລັບປຸ່ມທີສອງ, ດ້ວຍຄຸນສົມບັດທັງຫມົດຂອງປຸ່ມທີ່ພວກເຮົາໄດ້ກໍານົດໄວ້ກ່ອນຫນ້ານີ້, ແຕ່ມີສີທີ່ແຕກຕ່າງກັນ. ນີ້ຈະເປັນຮູບແບບສໍາລັບປຸ່ມປິດ.
ການຕັ້ງຄ່າ Web ຫົວຂໍ້ຫນ້າທໍາອິດ
ໃນແຖວຕໍ່ໄປ, ທ່ານສາມາດກໍານົດຫົວຂໍ້ທໍາອິດຂອງທ່ານ web ໜ້າ. ນີ້ພວກເຮົາມີ “ESP32 Web ເຊີບເວີ”, ແຕ່ທ່ານສາມາດປ່ຽນຂໍ້ຄວາມນີ້ເປັນອັນໃດກໍໄດ້ທີ່ທ່ານຕ້ອງການ.ການສະແດງປຸ່ມແລະລັດທີ່ສອດຄ້ອງກັນ
ຫຼັງຈາກນັ້ນ, ທ່ານຂຽນວັກເພື່ອສະແດງສະຖານະ GPIO 26 ໃນປັດຈຸບັນ. ດັ່ງທີ່ເຈົ້າສາມາດເຫັນໄດ້ວ່າພວກເຮົາໃຊ້ຕົວແປ output26State, ເພື່ອໃຫ້ລັດປັບປຸງທັນທີເມື່ອຕົວແປນີ້ປ່ຽນແປງ.ຫຼັງຈາກນັ້ນ, ພວກເຮົາສະແດງປຸ່ມເປີດຫຼືປິດ, ຂຶ້ນກັບສະຖານະປະຈຸບັນຂອງ GPIO. ຖ້າສະຖານະປະຈຸບັນຂອງ GPIO ປິດ, ພວກເຮົາສະແດງປຸ່ມ ON, ຖ້າບໍ່, ພວກເຮົາສະແດງປຸ່ມ OFF.
ພວກເຮົາໃຊ້ຂັ້ນຕອນດຽວກັນສໍາລັບ GPIO 27.
ປິດການເຊື່ອມຕໍ່
ສຸດທ້າຍ, ເມື່ອການຕອບສະຫນອງສິ້ນສຸດລົງ, ພວກເຮົາລ້າງຕົວແປ header, ແລະຢຸດການເຊື່ອມຕໍ່ກັບລູກຄ້າກັບ client.stop().
ຫໍ່ຂຶ້ນ
ໃນບົດສອນນີ້ພວກເຮົາໄດ້ສະແດງໃຫ້ທ່ານເຫັນວິທີການສ້າງ web ເຊີບເວີກັບ ESP32. ພວກເຮົາໄດ້ສະແດງໃຫ້ທ່ານເຫັນ example ທີ່ຄວບຄຸມສອງ LEDs, ແຕ່ແນວຄວາມຄິດແມ່ນເພື່ອທົດແທນ LEDs ເຫຼົ່ານັ້ນດ້ວຍ relay, ຫຼືຜົນຜະລິດອື່ນໆທີ່ທ່ານຕ້ອງການທີ່ຈະຄວບຄຸມ.
ໂຄງການ 6 LED RGB Web ເຊີບເວີ
ໃນໂຄງການນີ້ພວກເຮົາຈະສະແດງໃຫ້ທ່ານວິທີການຫ່າງໄກສອກຫຼີກການຄວບຄຸມ LED RGB ກັບ ESP32 ຄະນະນໍາໃຊ້ a web ເຊີບເວີທີ່ມີຕົວເລືອກສີ.
ໂຄງການສິ້ນສຸດview
ກ່ອນທີ່ຈະເລີ່ມຕົ້ນ, ໃຫ້ເບິ່ງວ່າໂຄງການນີ້ເຮັດວຽກແນວໃດ:
- ESP32 web ເຊີບເວີສະແດງຕົວເລືອກສີ.
- ເມື່ອທ່ານເລືອກສີ, ຕົວທ່ອງເວັບຂອງທ່ານເຮັດຄໍາຮ້ອງຂໍກ່ຽວກັບ a URL ທີ່ປະກອບດ້ວຍພາລາມິເຕີ R, G, ແລະ B ຂອງສີທີ່ເລືອກ.
- ESP32 ຂອງທ່ານໄດ້ຮັບຄໍາຮ້ອງສະຫມັກແລະແບ່ງປັນຄ່າສໍາລັບຕົວກໍານົດການສີແຕ່ລະຄົນ.
- ຫຼັງຈາກນັ້ນ, ມັນຈະສົ່ງສັນຍານ PWM ທີ່ມີຄ່າທີ່ສອດຄ້ອງກັນກັບ GPIOs ທີ່ຄວບຄຸມ RGB LED.
LED RGB ເຮັດວຽກແນວໃດ?
ໃນ cathode RGB LED ທົ່ວໄປ, ທັງສາມ LEDs ແບ່ງປັນການເຊື່ອມຕໍ່ລົບ (cathode). ທັງຫມົດທີ່ລວມຢູ່ໃນຊຸດແມ່ນ common-cathode RGB.ວິທີການສ້າງສີທີ່ແຕກຕ່າງກັນ?
ດ້ວຍ RGB LED ທ່ານສາມາດຜະລິດແສງສີແດງ, ສີຂຽວ, ແລະສີຟ້າ, ແລະໂດຍການກໍານົດຄວາມເຂັ້ມຂົ້ນຂອງແຕ່ລະ LED, ທ່ານສາມາດຜະລິດສີອື່ນໆໄດ້ເຊັ່ນກັນ.
ຕົວຢ່າງampດັ່ງນັ້ນ, ເພື່ອຜະລິດແສງສີຟ້າທີ່ບໍລິສຸດ, ທ່ານກໍານົດ LED ສີຟ້າໃຫ້ມີຄວາມເຂັ້ມສູງສຸດແລະ LEDs ສີຂຽວແລະສີແດງໃຫ້ຄວາມເຂັ້ມຕ່ໍາສຸດ. ສໍາລັບແສງສີຂາວ, ເຈົ້າຄວນຕັ້ງໄຟ LED ທັງສາມອັນໃຫ້ມີຄວາມເຂັ້ມສູງສຸດ.
ການປະສົມສີ
ເພື່ອຜະລິດສີອື່ນໆ, ທ່ານສາມາດປະສົມສາມສີໃນຄວາມເຂັ້ມຂຸ້ນທີ່ແຕກຕ່າງກັນ. ເພື່ອປັບຄວາມເຂັ້ມຂອງແຕ່ລະ LED ທ່ານສາມາດນໍາໃຊ້ສັນຍານ PWM.
ເນື່ອງຈາກວ່າ LEDs ຢູ່ໃກ້ກັນຫຼາຍ, ຕາຂອງພວກເຮົາເຫັນຜົນຂອງການປະສົມປະສານຂອງສີ, ແທນທີ່ຈະເປັນສາມສີສ່ວນບຸກຄົນ.
ເພື່ອໃຫ້ມີຄວາມຄິດກ່ຽວກັບວິທີການປະສົມສີ, ໃຫ້ເບິ່ງຕາຕະລາງຕໍ່ໄປນີ້.
ນີ້ແມ່ນຕາຕະລາງການຜະສົມສີທີ່ງ່າຍດາຍທີ່ສຸດ, ແຕ່ໃຫ້ທ່ານຮູ້ວ່າມັນເຮັດວຽກແນວໃດແລະວິທີການຜະລິດສີທີ່ແຕກຕ່າງກັນ.ພາກສ່ວນທີ່ຕ້ອງການ
ສໍາລັບໂຄງການນີ້, ທ່ານຕ້ອງການພາກສ່ວນດັ່ງຕໍ່ໄປນີ້:
- ກະດານ ESP32 DEVKIT V1
- RGB LED
- 3x 220 ohm resistors
- ສາຍ Jumper
- ກະດານເຂົ້າຈີ່
ແຜນວາດລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
- ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ຫຼັງຈາກປະກອບວົງຈອນ, ເປີດລະຫັດ
Project_6_RGB_LED_Web_Server.ino ໃນ arduino IDE.
ກ່ອນທີ່ຈະອັບໂຫລດລະຫັດ, ຢ່າລືມໃສ່ຂໍ້ມູນປະຈໍາຕົວເຄືອຂ່າຍຂອງທ່ານເພື່ອ ESP ສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ.ລະຫັດເຮັດວຽກແນວໃດ
ຮູບແຕ້ມ ESP32 ໃຊ້ຫ້ອງສະໝຸດ WiFi.h.ເສັ້ນຕໍ່ໄປນີ້ກໍານົດຕົວແປສະຕຣິງເພື່ອຖືພາລາມິເຕີ R, G, ແລະ B ຈາກຄໍາຮ້ອງຂໍ.
ສີ່ຕົວແປຕໍ່ໄປຖືກນໍາໃຊ້ເພື່ອຖອດລະຫັດຄໍາຮ້ອງຂໍ HTTP ຕໍ່ມາ.
ສ້າງສາມຕົວແປສໍາລັບ GPIOs ທີ່ຈະຄວບຄຸມພາລາມິເຕີແຖບ R, G, ແລະ B. ໃນກໍລະນີນີ້ພວກເຮົາກໍາລັງໃຊ້ GPIO 13, GPIO 12, ແລະ GPIO 14.
GPIOs ເຫຼົ່ານີ້ຕ້ອງການສົ່ງສັນຍານ PWM, ດັ່ງນັ້ນພວກເຮົາຈໍາເປັນຕ້ອງໄດ້ກໍາຫນົດຄ່າຄຸນສົມບັດ PWM ທໍາອິດ. ຕັ້ງຄວາມຖີ່ສັນຍານ PWM ເປັນ 5000 Hz. ຈາກນັ້ນ, ເຊື່ອມໂຍງຊ່ອງ PWM ສໍາລັບແຕ່ລະສີ
ແລະສຸດທ້າຍ, ຕັ້ງຄວາມລະອຽດຂອງຊ່ອງ PWM ເປັນ 8-bit
ໃນການຕັ້ງຄ່າ (), ມອບຄຸນສົມບັດ PWM ໃຫ້ກັບຊ່ອງ PWM
ແນບຊ່ອງ PWM ກັບ GPIOs ທີ່ສອດຄ້ອງກັນ
ພາກສ່ວນລະຫັດຕໍ່ໄປນີ້ສະແດງຕົວເລືອກສີໃນຂອງທ່ານ web ໜ້າ ແລະເຮັດການຮ້ອງຂໍໂດຍອີງໃສ່ສີທີ່ທ່ານເລືອກ.
ເມື່ອທ່ານເລືອກສີ, ທ່ານໄດ້ຮັບຄໍາຮ້ອງຂໍທີ່ມີຮູບແບບຕໍ່ໄປນີ້.
ດັ່ງນັ້ນ, ພວກເຮົາຈໍາເປັນຕ້ອງໄດ້ແບ່ງສາຍນີ້ເພື່ອໃຫ້ໄດ້ພາລາມິເຕີ R, G, ແລະ B. ພາລາມິເຕີຖືກບັນທຶກໄວ້ໃນຕົວແປ redString, greenString, ແລະ blueString ແລະສາມາດມີຄ່າລະຫວ່າງ 0 ຫາ 255.ເພື່ອຄວບຄຸມແຖບດ້ວຍ ESP32, ໃຊ້ຟັງຊັນ ledcWrite() ເພື່ອສ້າງສັນຍານ PWM ດ້ວຍຄ່າທີ່ຖອດລະຫັດຈາກ HTTP. ຮ້ອງຂໍ.
ໝາຍເຫດ: ຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບ PWM ກັບ ESP32: ໂຄງການ 3 ESP32 PWM(Analog Output)
ເພື່ອຄວບຄຸມເສັ້ນດ່າງດ້ວຍ ESP8266, ພວກເຮົາພຽງແຕ່ຕ້ອງການໃຊ້
ຟັງຊັນ analogWrite() ເພື່ອສ້າງສັນຍານ PWM ດ້ວຍຄ່າທີ່ຖອດລະຫັດຈາກການຮ້ອງຂໍ HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
ເນື່ອງຈາກວ່າພວກເຮົາໄດ້ຮັບຄ່າໃນຕົວແປສະຕຣິງ, ພວກເຮົາຈໍາເປັນຕ້ອງປ່ຽນພວກມັນເປັນຈໍານວນເຕັມໂດຍໃຊ້ວິທີການ toInt().
ການສາທິດ
ຫຼັງຈາກໃສ່ຂໍ້ມູນປະຈໍາຕົວເຄືອຂ່າຍຂອງທ່ານ, ເລືອກກະດານທີ່ຖືກຕ້ອງແລະພອດ COM ແລະອັບໂຫລດລະຫັດໃສ່ ESP32.Upload ຂັ້ນຕອນການອ້າງອີງລະຫັດຂອງທ່ານ.
ຫຼັງຈາກການອັບໂຫລດ, ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200 ແລະກົດປຸ່ມ ESP Enable/Reset. ທ່ານຄວນໄດ້ຮັບທີ່ຢູ່ IP ຂອງກະດານ.ເປີດຕົວທ່ອງເວັບຂອງທ່ານແລະໃສ່ທີ່ຢູ່ ESP IP. ໃນປັດຈຸບັນ, ໃຊ້ຕົວເລືອກສີເພື່ອເລືອກສີສໍາລັບ RGB LED.
ຫຼັງຈາກນັ້ນ, ທ່ານຈໍາເປັນຕ້ອງກົດປຸ່ມ "ປ່ຽນສີ" ເພື່ອໃຫ້ສີມີຜົນ.ເພື່ອປິດໄຟ LED RGB, ເລືອກສີດຳ.
ສີທີ່ເຂັ້ມແຂງທີ່ສຸດ (ຢູ່ເທິງສຸດຂອງຕົວເລືອກສີ), ແມ່ນສີທີ່ຈະໃຫ້ຜົນໄດ້ຮັບທີ່ດີກວ່າ.
ໂຄງການ 7 ESP32 Relay Web ເຊີບເວີ
ການນໍາໃຊ້ relay ກັບ ESP32 ເປັນວິທີທີ່ດີທີ່ຈະຄວບຄຸມເຄື່ອງໃຊ້ໃນຄົວເຮືອນ AC ຫ່າງໄກສອກຫຼີກ. tutorial ນີ້ອະທິບາຍວິທີການຄວບຄຸມໂມດູນ relay ກັບ ESP32.
ພວກເຮົາຈະພິຈາລະນາວິທີການເຮັດວຽກຂອງໂມດູນ relay, ວິທີການເຊື່ອມຕໍ່ relay ກັບ ESP32 ແລະການກໍ່ສ້າງ. web ເຊີບເວີເພື່ອຄວບຄຸມ relay ຈາກໄລຍະໄກ.
ແນະນຳ Relay
Relay ແມ່ນສະວິດທີ່ໃຊ້ໄຟຟ້າ ແລະຄືກັບສະວິດອື່ນ, ມັນສາມາດເປີດ ຫຼື ປິດ, ໃຫ້ກະແສໄຟຟ້າຜ່ານ ຫຼື ບໍ່. ມັນສາມາດຄວບຄຸມດ້ວຍ vol ຕ່ໍາtages, ຄືກັບ 3.3V ສະຫນອງໃຫ້ໂດຍ ESP32 GPIOs ແລະອະນຸຍາດໃຫ້ພວກເຮົາຄວບຄຸມ vol ສູງ.tages ຄື 12V, 24V ຫຼື mains voltage (230V ໃນເອີຣົບແລະ 120V ໃນສະຫະລັດ).ຢູ່ເບື້ອງຊ້າຍ, ມີສອງຊຸດຂອງສາມເຕົ້າສຽບເພື່ອເຊື່ອມຕໍ່ vol ສູງtages, ແລະ pins ຢູ່ເບື້ອງຂວາ (low-voltage) ເຊື່ອມຕໍ່ກັບ ESP32 GPIOs.
Mains Voltage ການເຊື່ອມຕໍ່ໂມດູນ relay ທີ່ສະແດງຢູ່ໃນຮູບທີ່ຜ່ານມາມີສອງຕົວເຊື່ອມຕໍ່, ແຕ່ລະຄົນມີສາມເຕົ້າສຽບ: common (COM), ປົກກະຕິປິດ (NC), ແລະປົກກະຕິເປີດ (NO).
- COM: ເຊື່ອມຕໍ່ປັດຈຸບັນທີ່ທ່ານຕ້ອງການຄວບຄຸມ (ຕົ້ນຕໍ voltagແລະ).
- NC (ປິດປົກກະຕິ): ການຕັ້ງຄ່າປິດປົກກະຕິແມ່ນໃຊ້ໃນເວລາທີ່ທ່ານຕ້ອງການປິດ relay ໂດຍຄ່າເລີ່ມຕົ້ນ. NC ແມ່ນ COM pins ແມ່ນເຊື່ອມຕໍ່, ຊຶ່ງຫມາຍຄວາມວ່າປະຈຸບັນກໍາລັງໄຫຼເວັ້ນເສຍແຕ່ວ່າທ່ານສົ່ງສັນຍານຈາກ ESP32 ກັບໂມດູນ relay ເພື່ອເປີດວົງຈອນແລະຢຸດການໄຫຼຂອງປະຈຸບັນ.
- NO (ເປີດປົກກະຕິ): ການຕັ້ງຄ່າເປີດປົກກະຕິເຮັດວຽກໃນທາງອື່ນ: ບໍ່ມີການເຊື່ອມຕໍ່ລະຫວ່າງ pins NO ແລະ COM, ດັ່ງນັ້ນວົງຈອນຈະແຕກເວັ້ນເສຍແຕ່ວ່າທ່ານສົ່ງສັນຍານຈາກ ESP32 ເພື່ອປິດວົງຈອນ.
ຄວບຄຸມ PinsThe low-voltage ຂ້າງມີຊຸດຂອງສີ່ pins ແລະຊຸດຂອງສາມ pins. ຊຸດທໍາອິດປະກອບດ້ວຍ VCC ແລະ GND ເພື່ອພະລັງງານເຖິງໂມດູນ, ແລະ input 1 (IN1) ແລະ input 2 (IN2) ເພື່ອຄວບຄຸມ relays ລຸ່ມແລະເທິງ, ຕາມລໍາດັບ.
ຖ້າໂມດູນ relay ຂອງທ່ານມີພຽງຊ່ອງດຽວ, ທ່ານຈະມີພຽງຫນຶ່ງ IN PIN. ຖ້າທ່ານມີສີ່ຊ່ອງ, ທ່ານຈະມີສີ່ IN pins, ແລະອື່ນໆ.
ສັນຍານທີ່ທ່ານສົ່ງກັບ IN pins, ການກໍານົດວ່າ relay ແມ່ນມີການເຄື່ອນໄຫວຫຼືບໍ່. Relay ຈະຖືກກະຕຸ້ນເມື່ອ input ໄປຂ້າງລຸ່ມປະມານ 2V. ນີ້ຫມາຍຄວາມວ່າທ່ານຈະມີສະຖານະການດັ່ງຕໍ່ໄປນີ້:
- ການຕັ້ງຄ່າປິດປົກກະຕິ (NC):
- ສັນຍານສູງ – ກະແສກະແສໄຫຼ
- ສັນຍານຕໍ່າ – ປະຈຸບັນບໍ່ໄຫຼ
- ເປີດການຕັ້ງຄ່າປົກກະຕິ (ບໍ່):
- ສັນຍານສູງ – ປະຈຸບັນບໍ່ໄຫຼ
- ສັນຍານຕໍ່າ - ກະແສກະແສລົມ
ທ່ານຄວນໃຊ້ການຕັ້ງຄ່າປິດປົກກະຕິໃນເວລາທີ່ກະແສໄຟຟ້າຄວນຈະໄຫຼເປັນສ່ວນໃຫຍ່, ແລະທ່ານພຽງແຕ່ຕ້ອງການຢຸດມັນບາງຄັ້ງຄາວ.
ໃຊ້ການຕັ້ງຄ່າເປີດຕາມປົກກະຕິເມື່ອທ່ານຕ້ອງການໃຫ້ກະແສໄຟຟ້າໄຫຼເປັນບາງໂອກາດ (ຕົວຢ່າງເຊັ່ນample, ເປີດ alamp ບາງຄັ້ງ).
ການຄັດເລືອກການສະຫນອງພະລັງງານຊຸດທີ່ສອງຂອງ pins ປະກອບດ້ວຍ GND, VCC, ແລະ pins JD-VCC.
ເຂັມ JD-VCC ພະລັງງານໄຟຟ້າຂອງ relay. ສັງເກດເຫັນວ່າໂມດູນມີ jumper cap ເຊື່ອມຕໍ່ VCC ແລະ JD-VCC pins; ອັນທີ່ສະແດງຢູ່ນີ້ແມ່ນສີເຫຼືອງ, ແຕ່ຂອງເຈົ້າອາດຈະເປັນສີອື່ນ.
ເມື່ອເປີດຝາ jumper, ປັກໝຸດ VCC ແລະ JD-VCC ແມ່ນເຊື່ອມຕໍ່ກັນ. ນັ້ນ ໝາຍ ຄວາມວ່າແມ່ເຫຼັກໄຟຟ້າ Relay ຖືກສົ່ງໂດຍກົງຈາກສາຍໄຟ ESP32, ສະນັ້ນໂມດູນ Relay ແລະວົງຈອນ ESP32 ບໍ່ໄດ້ຖືກແຍກອອກຈາກກັນ.
ໂດຍບໍ່ມີຝາ jumper, ທ່ານຈໍາເປັນຕ້ອງໄດ້ສະຫນອງແຫຼ່ງພະລັງງານເອກະລາດເພື່ອພະລັງງານໄຟຟ້າຂອງ relay ຜ່ານ pin JD-VCC. ການຕັ້ງຄ່ານັ້ນແຍກຣີເລສອອກຈາກ ESP32 ໃນທາງກາຍກັບ optocoupler ໃນຕົວຂອງໂມດູນ, ເຊິ່ງປ້ອງກັນຄວາມເສຍຫາຍຕໍ່ ESP32 ໃນກໍລະນີທີ່ມີສາຍໄຟຟ້າ.
ແຜນວາດຄຳເຕືອນ: ການນໍາໃຊ້ voltage ການສະຫນອງພະລັງງານອາດຈະເຮັດໃຫ້ເກີດການບາດເຈັບທີ່ຮ້າຍແຮງ.
ດັ່ງນັ້ນ, 5mm LEDs ຖືກນໍາໃຊ້ແທນການສະຫນອງສູງ voltage bulbs ໃນການທົດລອງ. ຖ້າທ່ານບໍ່ຄຸ້ນເຄີຍກັບ mains voltage ຂໍໃຫ້ຜູ້ທີ່ຈະຊ່ວຍທ່ານອອກ. ໃນຂະນະທີ່ການຂຽນໂປລແກລມ ESP ຫຼືສາຍວົງຈອນຂອງເຈົ້າໃຫ້ແນ່ໃຈວ່າທຸກຢ່າງຖືກຕັດອອກຈາກສາຍໄຟສາຍtage.ການຕິດຕັ້ງຫ້ອງສະຫມຸດສໍາລັບ ESP32
ເພື່ອສ້າງນີ້ web ເຊີບເວີ, ພວກເຮົາໃຊ້ ESPAsyncWebຫ້ອງສະຫມຸດເຊີບເວີແລະ AsyncTCP Library.
ການຕິດຕັ້ງ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ
ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງ ESPAsyncWebເຊີບເວີ ຫ້ອງສະໝຸດ:
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ. ທ່ານຄວນມີ
ໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ - Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບ ESPAsyncWebໂຟນເດີ server-master
- ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ ESPAsyncWebServer-master ກັບ ESPAsyncWebເຊີບເວີ
- ຍ້າຍ ESPAsyncWebໂຟນເດີເຊີບເວີໄປຫາໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
ອີກທາງເລືອກ, ໃນ Arduino IDE ຂອງທ່ານ, ທ່ານສາມາດໄປທີ່ Sketch > Include
ຫໍສະໝຸດ > ເພີ່ມຫ້ອງສະໝຸດ .ZIP… ແລະເລືອກຫ້ອງສະໝຸດທີ່ເຈົ້າຫາກໍດາວໂຫຼດມາ.
ການຕິດຕັ້ງຫໍສະຫມຸດ AsyncTCP ສໍາລັບ ESP32
ໄດ້ ESPAsyncWebເຊີບເວີ ຫ້ອງສະຫມຸດຮຽກຮ້ອງໃຫ້ມີ AsyncTCP ຫ້ອງສະຫມຸດເພື່ອເຮັດວຽກ. ປະຕິບັດຕາມ
ຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະໝຸດນັ້ນ:
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດຫ້ອງສະໝຸດ AsyncTCP. ທ່ານຄວນມີໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ
- Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບໂຟນເດີ AsyncTCP-master
1. ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ AsyncTCP-master ເປັນ AsyncTCP
3. ຍ້າຍໂຟນເດີ AsyncTCP ໄປທີ່ໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
4. ສຸດທ້າຍ, ເປີດ Arduino IDE ຂອງທ່ານຄືນໃໝ່
ອີກທາງເລືອກ, ໃນ Arduino IDE ຂອງທ່ານ, ທ່ານສາມາດໄປທີ່ Sketch > Include
ຫໍສະໝຸດ > ເພີ່ມຫ້ອງສະໝຸດ .ZIP… ແລະເລືອກຫ້ອງສະໝຸດທີ່ເຈົ້າຫາກໍດາວໂຫຼດມາ.
ລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ຫຼັງຈາກການຕິດຕັ້ງຫ້ອງສະຫມຸດທີ່ຕ້ອງການ, ເປີດລະຫັດ Project_7_ESP32_Relay_Web_Server.ino ໃນ arduino IDE.
ກ່ອນທີ່ຈະອັບໂຫລດລະຫັດ, ຢ່າລືມໃສ່ຂໍ້ມູນປະຈໍາຕົວເຄືອຂ່າຍຂອງທ່ານເພື່ອ ESP ສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ.ການສາທິດ
ຫຼັງຈາກເຮັດການປ່ຽນແປງທີ່ຈໍາເປັນ, ອັບໂຫລດລະຫັດໃສ່ ESP32.Upload ຂັ້ນຕອນການອ້າງອີງລະຫັດຂອງທ່ານ.
ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200 ແລະກົດປຸ່ມ ESP32 EN ເພື່ອໃຫ້ໄດ້ຮັບທີ່ຢູ່ IP ຂອງມັນ. ຫຼັງຈາກນັ້ນ, ເປີດຕົວທ່ອງເວັບໃນເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານແລະພິມທີ່ຢູ່ IP ຂອງ ESP32 ເພື່ອເຂົ້າເຖິງ web ເຊີບເວີ.
ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200 ແລະກົດປຸ່ມ ESP32 EN ເພື່ອໃຫ້ໄດ້ຮັບທີ່ຢູ່ IP ຂອງມັນ. ຫຼັງຈາກນັ້ນ, ເປີດຕົວທ່ອງເວັບໃນເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານແລະພິມທີ່ຢູ່ IP ຂອງ ESP32 ເພື່ອເຂົ້າເຖິງ web ເຊີບເວີ.ໝາຍເຫດ: ຕົວທ່ອງເວັບແລະ ESP32 ຂອງທ່ານຄວນຈະເຊື່ອມຕໍ່ກັບ LAN ດຽວກັນ.
ທ່ານຄວນໄດ້ຮັບບາງສິ່ງບາງຢ່າງດັ່ງຕໍ່ໄປນີ້ດ້ວຍສອງປຸ່ມເທົ່າກັບຈໍານວນຂອງ relay ທີ່ທ່ານໄດ້ກໍານົດໄວ້ໃນລະຫັດຂອງທ່ານ.ໃນປັດຈຸບັນ, ທ່ານສາມາດນໍາໃຊ້ປຸ່ມຕ່າງໆເພື່ອຄວບຄຸມ relays ຂອງທ່ານໂດຍໃຊ້ໂທລະສັບສະຫຼາດຂອງທ່ານ.
Project_8_Output_State_Synchronization_ Web_ເຊີບເວີ
ໂຄງການນີ້ສະແດງໃຫ້ເຫັນວິທີການຄວບຄຸມຜົນໄດ້ຮັບ ESP32 ຫຼື ESP8266 ໂດຍໃຊ້ a web server ແລະປຸ່ມທາງດ້ານຮ່າງກາຍພ້ອມໆກັນ. ສະຖານະຜົນຜະລິດໄດ້ຖືກປັບປຸງໃນ web ຫນ້າບໍ່ວ່າຈະມີການປ່ຽນແປງໂດຍຜ່ານປຸ່ມທາງດ້ານຮ່າງກາຍຫຼື web ເຊີບເວີ.
ໂຄງການສິ້ນສຸດview
ລອງພິຈາລະນາເບິ່ງວ່າໂຄງການເຮັດວຽກແນວໃດ.ESP32 ຫຼື ESP8266 ເປັນເຈົ້າພາບ a web ເຊີບເວີທີ່ອະນຸຍາດໃຫ້ທ່ານສາມາດຄວບຄຸມສະຖານະຂອງຜົນຜະລິດໄດ້;
- ສະຖານະຜົນຜະລິດໃນປັດຈຸບັນແມ່ນສະແດງຢູ່ໃນ web ເຊີບເວີ;
- ESP ຍັງເຊື່ອມຕໍ່ກັບປຸ່ມກົດທາງດ້ານຮ່າງກາຍທີ່ຄວບຄຸມຜົນຜະລິດດຽວກັນ;
- ຖ້າຫາກວ່າທ່ານປ່ຽນສະຖານະຜົນຜະລິດໂດຍໃຊ້ປຸ່ມ puhs ທາງດ້ານຮ່າງກາຍ, ສະຖານະການໃນປັດຈຸບັນຂອງມັນຍັງໄດ້ຮັບການປັບປຸງໃນ web ເຊີບເວີ.
ສະຫຼຸບແລ້ວ, ໂຄງການນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດຄວບຄຸມຜົນຜະລິດດຽວກັນໂດຍໃຊ້ a web ເຊີບເວີ ແລະປຸ່ມກົດພ້ອມໆກັນ. ເມື່ອໃດກໍ່ຕາມສະຖານະຜົນຜະລິດມີການປ່ຽນແປງ, ໄດ້ web ເຊີບເວີຖືກປັບປຸງ.
ພາກສ່ວນທີ່ຕ້ອງການ
ນີ້ແມ່ນບັນຊີລາຍຊື່ຂອງພາກສ່ວນທີ່ທ່ານຕ້ອງການເພື່ອສ້າງວົງຈອນ:
- ກະດານ ESP32 DEVKIT V1
- LED 5 ມມ
- ຕົວຕ້ານທານ 220 Ohm
- ປະທຸມພອນ
- ຕົວຕ້ານທານ 10k Ohm
- ກະດານເຂົ້າຈີ່
- ສາຍ Jumper
ແຜນວາດການຕິດຕັ້ງຫ້ອງສະຫມຸດສໍາລັບ ESP32
ເພື່ອສ້າງນີ້ web ເຊີບເວີ, ພວກເຮົາໃຊ້ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ ແລະຫໍສະໝຸດ AsyncTCP.(ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປໄດ້.)
ການຕິດຕັ້ງ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ
ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ:
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ. ທ່ານຄວນມີ
ໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ - Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບ ESPAsyncWebໂຟນເດີ server-master
- ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ ESPAsyncWebServer-master ກັບ ESPAsyncWebເຊີບເວີ
- ຍ້າຍ ESPAsyncWebໂຟນເດີເຊີບເວີໄປຫາໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
ອີກທາງເລືອກ, ໃນ Arduino IDE ຂອງທ່ານ, ທ່ານສາມາດໄປທີ່ Sketch > Include
ຫໍສະໝຸດ > ເພີ່ມຫ້ອງສະໝຸດ .ZIP… ແລະເລືອກຫ້ອງສະໝຸດທີ່ເຈົ້າຫາກໍດາວໂຫຼດມາ.
ການຕິດຕັ້ງຫໍສະຫມຸດ AsyncTCP ສໍາລັບ ESP32
ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີຕ້ອງການຫ້ອງສະໝຸດ AsyncTCP ເພື່ອເຮັດວຽກ. ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະໝຸດນັ້ນ:
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດຫ້ອງສະໝຸດ AsyncTCP. ທ່ານຄວນມີໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ
- Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບໂຟນເດີ AsyncTCP-master
- ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ AsyncTCP-master ເປັນ AsyncTCP
- ຍ້າຍໂຟນເດີ AsyncTCP ໄປໃສ່ໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
- ສຸດທ້າຍ, ເປີດ Arduino IDE ຂອງທ່ານຄືນໃໝ່
ອີກທາງເລືອກ, ໃນ Arduino IDE ຂອງທ່ານ, ທ່ານສາມາດໄປທີ່ Sketch > Include
ຫໍສະໝຸດ > ເພີ່ມຫ້ອງສະໝຸດ .ZIP… ແລະເລືອກຫ້ອງສະໝຸດທີ່ເຈົ້າຫາກໍດາວໂຫຼດມາ.
ລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ຫຼັງຈາກການຕິດຕັ້ງຫ້ອງສະຫມຸດທີ່ຕ້ອງການ, ເປີດລະຫັດ
Project_8_Output_State_Synchronization_Web_Server.ino ໃນ arduino IDE.
ກ່ອນທີ່ຈະອັບໂຫລດລະຫັດ, ຢ່າລືມໃສ່ຂໍ້ມູນປະຈໍາຕົວເຄືອຂ່າຍຂອງທ່ານເພື່ອ ESP ສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ.
ລະຫັດເຮັດວຽກແນວໃດ
ສະຖານະປຸ່ມ ແລະລັດຜົນຜະລິດ
ຕົວແປ ledState ຖືສະຖານະຜົນຜະລິດ LED. ສໍາລັບຄ່າເລີ່ມຕົ້ນ, ໃນເວລາທີ່ web ເຄື່ອງແມ່ຂ່າຍເລີ່ມຕົ້ນ, ມັນແມ່ນຕ່ໍາ.
buttonState ແລະ lastButtonState ຖືກໃຊ້ເພື່ອກວດຫາວ່າປຸ່ມກົດຖືກກົດຫຼືບໍ່.ປຸ່ມ (web ເຊີບເວີ)
ພວກເຮົາບໍ່ໄດ້ລວມເອົາ HTML ເພື່ອສ້າງປຸ່ມຢູ່ໃນຕົວແປ index_html.
ນັ້ນແມ່ນຍ້ອນວ່າພວກເຮົາຕ້ອງການທີ່ຈະສາມາດປ່ຽນມັນຂຶ້ນຢູ່ກັບສະຖານະ LED ໃນປັດຈຸບັນທີ່ສາມາດປ່ຽນແປງໄດ້ດ້ວຍປຸ່ມກົດ.
ດັ່ງນັ້ນ, ພວກເຮົາໄດ້ສ້າງຕົວຍຶດສໍາລັບປຸ່ມ %BUTTONPLACEHOLDER% ທີ່ຈະຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມ HTML ເພື່ອສ້າງປຸ່ມໃນພາຍຫຼັງໃນລະຫັດ (ອັນນີ້ແມ່ນເຮັດໃນການເຮັດວຽກຂອງ processor()).ໂປເຊດເຊີ()
ຟັງຊັນໂປເຊດເຊີ() ແທນຕົວຍຶດບ່ອນໃດນຶ່ງໃນຂໍ້ຄວາມ HTML ດ້ວຍຄ່າຕົວຈິງ. ກ່ອນອື່ນ ໝົດ, ມັນກວດເບິ່ງວ່າບົດເລື່ອງ HTML ມີອັນໃດ
ຕົວຍຶດ %BUTTONPLACEHOLDER%.ຈາກນັ້ນ, ໃຫ້ໂທຫາຟັງຊັນ theoutputState() ທີ່ສົ່ງຄືນສະຖານະຜົນຜະລິດໃນປະຈຸບັນ. ພວກເຮົາບັນທຶກມັນຢູ່ໃນຕົວແປ outputStateValue.
ຫຼັງຈາກນັ້ນ, ໃຊ້ຄ່ານັ້ນເພື່ອສ້າງຂໍ້ຄວາມ HTML ເພື່ອສະແດງປຸ່ມທີ່ມີສະຖານະທີ່ຖືກຕ້ອງ:
HTTP ໄດ້ຮັບຄໍາຮ້ອງສະຫມັກເພື່ອປ່ຽນສະຖານະຜົນໄດ້ຮັບ (JavaScript)
ເມື່ອທ່ານກົດປຸ່ມ, thetoggleCheckbox() ເອີ້ນວ່າຟັງຊັນ. ຟັງຊັນນີ້ຈະເຮັດໃຫ້ຄໍາຮ້ອງຂໍທີ່ແຕກຕ່າງກັນ URLs ເພື່ອເປີດຫຼືປິດ LED.ເພື່ອເປີດໄຟ LED, ມັນເຮັດການຮ້ອງຂໍຢູ່ໃນ /update?state=1 URL:
ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນເຮັດການຮ້ອງຂໍຢູ່ໃນ /update?state=0 URL.
HTTP ໄດ້ຮັບຄໍາຮ້ອງສະຫມັກເພື່ອປັບປຸງລັດ (JavaScript)
ເພື່ອຮັກສາສະຖານະຜົນຜະລິດໄດ້ປັບປຸງກ່ຽວກັບ web ເຊີບເວີ, ພວກເຮົາໂທຫາຫນ້າທີ່ຕໍ່ໄປນີ້ທີ່ເຮັດໃຫ້ການຮ້ອງຂໍໃຫມ່ໃນ /state URL ທຸກໆວິນາທີ.ຈັດການການຮ້ອງຂໍ
ຫຼັງຈາກນັ້ນ, ພວກເຮົາຈໍາເປັນຕ້ອງຈັດການກັບສິ່ງທີ່ເກີດຂື້ນເມື່ອ ESP32 ຫຼື ESP8266 ໄດ້ຮັບການຮ້ອງຂໍກ່ຽວກັບສິ່ງເຫຼົ່ານັ້ນ. URLs.
ເມື່ອການຮ້ອງຂໍໄດ້ຮັບໃນຮາກ /URL, ພວກເຮົາສົ່ງຫນ້າ HTML ເຊັ່ນດຽວກັນກັບໂປເຊດເຊີ.ແຖວຕໍ່ໄປນີ້ກວດເບິ່ງວ່າທ່ານໄດ້ຮັບຄໍາຮ້ອງຂໍຢູ່ໃນ /update?state=1 ຫຼື /update?state=0. URL ແລະການປ່ຽນແປງ ledState ຕາມຄວາມເຫມາະສົມ.
ເມື່ອໄດ້ຮັບຄໍາຮ້ອງຂໍຢູ່ໃນ / ລັດ URL, ພວກເຮົາສົ່ງສະຖານະການຜົນຜະລິດໃນປະຈຸບັນ:
loop()
ໃນ loop(), ພວກເຮົາ debounce ປຸ່ມກົດແລະເປີດຫຼືປິດ LED ຂຶ້ນກັບມູນຄ່າຂອງ ledState ໄດ້. ຕົວແປ.ການສາທິດ
ອັບໂຫຼດລະຫັດໃສ່ກະດານ ESP32 ຂອງທ່ານ. ອັບໂຫຼດຂັ້ນຕອນການອ້າງອີງລະຫັດ.
ຫຼັງຈາກນັ້ນ, ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200. ກົດປຸ່ມ on-board EN/RST ເພື່ອໃຫ້ໄດ້ຮັບເປັນທີ່ຢູ່ IP.ເປີດຕົວທ່ອງເວັບໃນເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ, ແລະພິມທີ່ຢູ່ ESP IP. ທ່ານຄວນມີການເຂົ້າເຖິງ web server ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້.
ໝາຍເຫດ: ຕົວທ່ອງເວັບແລະ ESP32 ຂອງທ່ານຄວນຈະເຊື່ອມຕໍ່ກັບ LAN ດຽວກັນ.ທ່ານສາມາດສະຫຼັບປຸ່ມກ່ຽວກັບການ web ເຊີບເວີເພື່ອເປີດໄຟ LED.
ນອກນັ້ນທ່ານຍັງສາມາດຄວບຄຸມ LED ດຽວກັນກັບປຸ່ມກົດທາງດ້ານຮ່າງກາຍ. ສະຖານະຂອງມັນຈະຖືກອັບເດດໂດຍອັດຕະໂນມັດຢູ່ສະເໝີ web ເຊີບເວີ.
ໂຄງການ 9 ESP32 DHT11 Web ເຊີບເວີ
ໃນໂຄງການນີ້, ທ່ານຈະໄດ້ຮຽນຮູ້ວິທີການສ້າງ asynchronous ESP32 web ເຊີບເວີທີ່ມີ DHT11 ທີ່ສະແດງອຸນຫະພູມແລະຄວາມຊຸ່ມຊື່ນໂດຍໃຊ້ Arduino IDE.
ເງື່ອນໄຂເບື້ອງຕົ້ນ
ໄດ້ web ເຊີບເວີທີ່ພວກເຮົາຈະສ້າງການປັບປຸງການອ່ານອັດຕະໂນມັດໂດຍບໍ່ຈໍາເປັນຕ້ອງໂຫຼດຫນ້າຈໍຄືນ web ໜ້າ.
ດ້ວຍໂຄງການນີ້, ທ່ານຈະໄດ້ຮຽນຮູ້:
- ວິທີການອ່ານອຸນຫະພູມແລະຄວາມຊຸ່ມຊື່ນຈາກເຊັນເຊີ DHT;
- ສ້າງ asynchronous web ເຊີບເວີໂດຍໃຊ້ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ;
- ອັບເດດການອ່ານເຊັນເຊີອັດຕະໂນມັດໂດຍບໍ່ຈໍາເປັນຕ້ອງໂຫຼດຫນ້າຈໍຄືນ web ໜ້າ.
Asynchronous Web ເຊີບເວີ
ເພື່ອສ້າງ web ເຊີບເວີທີ່ພວກເຮົາຈະໃຊ້ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ ທີ່ໃຫ້ວິທີທີ່ງ່າຍໃນການສ້າງ asynchronous web ເຊີບເວີ. ການກໍ່ສ້າງ asynchronous web server ມີ advan ຫຼາຍtages ດັ່ງທີ່ໄດ້ກ່າວໄວ້ໃນຫ້ອງສະຫມຸດຫນ້າ GitHub, ເຊັ່ນ:
- "ຈັດການກັບການເຊື່ອມຕໍ່ຫຼາຍກວ່າຫນຶ່ງໃນເວລາດຽວກັນ";
- "ເມື່ອທ່ານສົ່ງຄໍາຕອບ, ທ່ານພ້ອມທີ່ຈະຈັດການກັບການເຊື່ອມຕໍ່ອື່ນໆໃນຂະນະທີ່ເຄື່ອງແມ່ຂ່າຍກໍາລັງເບິ່ງແຍງການສົ່ງຄໍາຕອບໃນພື້ນຫລັງ";
- “ເຄື່ອງຈັກປະມວນຜົນແມ່ແບບງ່າຍໆເພື່ອຈັດການແມ່ແບບ”;
ພາກສ່ວນທີ່ຕ້ອງການ
ເພື່ອໃຫ້ສໍາເລັດ tutorial ນີ້ທ່ານຈໍາເປັນຕ້ອງໄດ້ພາກສ່ວນດັ່ງຕໍ່ໄປນີ້:
- ກະດານພັດທະນາ ESP32
- ໂມດູນ DHT11
- ກະດານເຂົ້າຈີ່
- ສາຍ Jumper
ແຜນວາດການຕິດຕັ້ງຫ້ອງສະຫມຸດ
ທ່ານຈໍາເປັນຕ້ອງຕິດຕັ້ງຫ້ອງສະຫມຸດສອງສາມຫ້ອງສໍາລັບໂຄງການນີ້:
- ໄດ້ DHT ແລະ ເຊັນເຊີລວມ Adafruit ຫ້ອງສະຫມຸດໄດເວີເພື່ອອ່ານຈາກເຊັນເຊີ DHT.
- ESPAsyncWebເຊີບເວີ ແລະ Async TCP ຫ້ອງສະຫມຸດເພື່ອສ້າງ asynchronous ໄດ້ web ເຊີບເວີ.
ປະຕິບັດຕາມຄໍາແນະນໍາຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະຫມຸດເຫຼົ່ານັ້ນ:
ການຕິດຕັ້ງຫ້ອງສະໝຸດ DHT Sensor
ເພື່ອອ່ານຈາກເຊັນເຊີ DHT ໂດຍໃຊ້ Arduino IDE, ທ່ານຈໍາເປັນຕ້ອງຕິດຕັ້ງ ຫ້ອງສະໝຸດ DHT sensor. ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະຫມຸດ.
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດຫ້ອງສະໝຸດ DHT Sensor. ທ່ານຄວນມີໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ
- Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບໂຟນເດີ DHT-sensor-library-master
- ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ DHT-sensor-library-master ເປັນ DHT_sensor
- ຍ້າຍໂຟນເດີ DHT_sensor ໄປໃສ່ໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
- ສຸດທ້າຍ, ເປີດ Arduino IDE ຂອງທ່ານຄືນໃໝ່
ການຕິດຕັ້ງໄດເວີເຊັນເຊີ Adafruit Unified
ນອກນັ້ນທ່ານຍັງຈໍາເປັນຕ້ອງໄດ້ຕິດຕັ້ງ ຫ້ອງສະໝຸດ Adafruit Unified Sensor Driver ເພື່ອເຮັດວຽກກັບເຊັນເຊີ DHT. ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະຫມຸດ.
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດຫ້ອງສະໝຸດ Adafruit Unified Sensor. ທ່ານຄວນມີໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ
- Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບໂຟນເດີ Adafruit_sensor-master
- ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ Adafruit_sensor-master ເປັນ Adafruit_sensor
- ຍ້າຍໂຟນເດີ Adafruit_sensor ໄປໃສ່ໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
- ສຸດທ້າຍ, ເປີດ Arduino IDE ຂອງທ່ານຄືນໃໝ່
ການຕິດຕັ້ງ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ
ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງ ESPAsyncWebເຊີບເວີ ຫ້ອງສະໝຸດ:
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດ ESPAsyncWebຫ້ອງສະໝຸດເຊີບເວີ. ທ່ານຄວນມີ
ໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ - Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນ
ໄດ້ຮັບ ESPAsyncWebໂຟນເດີ server-master - ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ ESPAsyncWebServer-master ກັບ ESPAsyncWebເຊີບເວີ
- ຍ້າຍ ESPAsyncWebໂຟນເດີເຊີບເວີໄປຫາໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
ການຕິດຕັ້ງ Async TCP Library ສໍາລັບ ESP32
ໄດ້ ESPAsyncWebເຊີບເວີ ຫ້ອງສະຫມຸດຮຽກຮ້ອງໃຫ້ມີ AsyncTCP ຫ້ອງສະຫມຸດເພື່ອເຮັດວຽກ. ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະໝຸດນັ້ນ:
- ຄລິກທີ່ນີ້ເພື່ອດາວໂຫລດຫ້ອງສະໝຸດ AsyncTCP. ທ່ານຄວນມີໂຟນເດີ .zip ໃນໂຟນເດີດາວໂຫຼດຂອງທ່ານ
- Unzip ໂຟນເດີ .zip ແລະທ່ານຄວນໄດ້ຮັບໂຟນເດີ AsyncTCP-master
- ປ່ຽນຊື່ໂຟນເດີຂອງທ່ານຈາກ AsyncTCP-master ເປັນ AsyncTCP
- ຍ້າຍໂຟນເດີ AsyncTCP ໄປໃສ່ໂຟນເດີຫ້ອງສະໝຸດການຕິດຕັ້ງ Arduino IDE ຂອງທ່ານ
- ສຸດທ້າຍ, ເປີດ Arduino IDE ຂອງທ່ານຄືນໃໝ່
ລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDE
ຫຼັງຈາກການຕິດຕັ້ງຫ້ອງສະຫມຸດທີ່ຕ້ອງການ, ເປີດລະຫັດ
ໂຄງການ_9_ESP32_DHT11_Web_Server.ino ໃນ arduino IDE.
ກ່ອນທີ່ຈະອັບໂຫລດລະຫັດ, ຢ່າລືມໃສ່ຂໍ້ມູນປະຈໍາຕົວເຄືອຂ່າຍຂອງທ່ານເພື່ອ ESP ສາມາດເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ.ລະຫັດເຮັດວຽກແນວໃດ
ໃນວັກຕໍ່ໄປນີ້ພວກເຮົາຈະອະທິບາຍວິທີການເຮັດວຽກຂອງລະຫັດ. ສືບຕໍ່ອ່ານຖ້າທ່ານຕ້ອງການຮຽນຮູ້ເພີ່ມເຕີມຫຼືໄປຫາພາກສາທິດເພື່ອເບິ່ງຜົນໄດ້ຮັບສຸດທ້າຍ.
ການນໍາເຂົ້າຫ້ອງສະຫມຸດ
ທໍາອິດ, ນໍາເຂົ້າຫ້ອງສະຫມຸດທີ່ຕ້ອງການ. WiFi, ESPAsyncWebເຊີບເວີ ແລະ ESPAsyncTCP ແມ່ນຈໍາເປັນເພື່ອສ້າງ web ເຊີບເວີ. Adafruit_Sensor ແລະຫ້ອງສະຫມຸດ DHT ແມ່ນຈໍາເປັນເພື່ອອ່ານຈາກເຊັນເຊີ DHT11 ຫຼື DHT22.ຄໍານິຍາມຕົວແປ
ກໍານົດ GPIO ທີ່ PIN ຂໍ້ມູນ DHT ເຊື່ອມຕໍ່ກັບ. ໃນກໍລະນີນີ້, ມັນເຊື່ອມຕໍ່ກັບ GPIO 4.ຈາກນັ້ນ, ເລືອກປະເພດເຊັນເຊີ DHT ທີ່ທ່ານກໍາລັງໃຊ້. ໃນ ex ຂອງພວກເຮົາampດັ່ງນັ້ນ, ພວກເຮົາກໍາລັງໃຊ້ DHT22. ຖ້າທ່ານກໍາລັງໃຊ້ປະເພດອື່ນ, ທ່ານພຽງແຕ່ຕ້ອງການ uncomment ເຊັນເຊີຂອງທ່ານແລະສະແດງຄວາມຄິດເຫັນອື່ນໆທັງຫມົດ.
Instantiate ວັດຖຸ DHT ກັບປະເພດແລະ pin ທີ່ພວກເຮົາໄດ້ກໍານົດໄວ້ກ່ອນຫນ້ານີ້.ສ້າງ AsyncWebວັດຖຸເຊີບເວີຢູ່ໃນພອດ 80.
ອ່ານຟັງຊັນອຸນຫະພູມແລະຄວາມຊຸ່ມຊື່ນ
ພວກເຮົາໄດ້ສ້າງສອງຫນ້າທີ່: ຫນຶ່ງເພື່ອອ່ານອຸນຫະພູມ ພວກເຮົາໄດ້ສ້າງສອງຫນ້າທີ່: ຫນຶ່ງເພື່ອອ່ານອຸນຫະພູມ (readDHTTemperature()) ແລະອື່ນເພື່ອອ່ານຄວາມຊຸ່ມຊື່ນ (readDHTHumidity()).ການຮັບການອ່ານເຊັນເຊີແມ່ນງ່າຍດາຍເຊັ່ນດຽວກັນກັບການນໍາໃຊ້ການຮັບການອ່ານ sensor ແມ່ນງ່າຍດາຍເຊັ່ນດຽວກັນກັບການນໍາໃຊ້ວິທີການ readTemperature() ແລະ readHumidity() ໃນວັດຖຸ dht.
ພວກເຮົາຍັງມີເງື່ອນໄຂທີ່ຈະສົ່ງຄືນສອງ dashes (–) ໃນກໍລະນີທີ່ເຊັນເຊີບໍ່ສາມາດອ່ານໄດ້.
ການອ່ານຖືກສົ່ງຄືນເປັນປະເພດສະຕຣິງ. ເພື່ອປ່ຽນ float ເປັນ string, ໃຊ້ຟັງຊັນ String()
ໂດຍຄ່າເລີ່ມຕົ້ນ, ພວກເຮົາກໍາລັງອ່ານອຸນຫະພູມໃນອົງສາເຊນຊຽດ. ເພື່ອໃຫ້ໄດ້ອຸນຫະພູມໃນອົງສາຟາເຣນຮາຍ, ໃຫ້ຄໍາຄິດຄໍາເຫັນກ່ຽວກັບອຸນຫະພູມໃນເຊນຊຽດ ແລະບໍ່ສະແດງອຸນຫະພູມໃນຟາເຣນຮາຍ, ເພື່ອໃຫ້ທ່ານມີດັ່ງຕໍ່ໄປນີ້:
ອັບໂຫຼດລະຫັດ
ດຽວນີ້, ອັບໂຫລດລະຫັດໃສ່ ESP32 ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າທ່ານມີກະດານທີ່ຖືກຕ້ອງແລະພອດ COM ເລືອກ. ອັບໂຫຼດຂັ້ນຕອນການອ້າງອີງລະຫັດ.
ຫຼັງຈາກການອັບໂຫລດ, ເປີດ Serial Monitor ໃນອັດຕາ baud ຂອງ 115200. ກົດປຸ່ມປັບ ESP32. ທີ່ຢູ່ IP ESP32 ຄວນຖືກພິມຢູ່ໃນ serial ຕິດຕາມກວດກາ.ການສາທິດ
ເປີດຕົວທ່ອງເວັບແລະພິມທີ່ຢູ່ IP ESP32. ຂອງເຈົ້າ web ເຊີບເວີຄວນສະແດງການອ່ານເຊັນເຊີຫຼ້າສຸດ.
ໝາຍເຫດ: ຕົວທ່ອງເວັບແລະ ESP32 ຂອງທ່ານຄວນຈະເຊື່ອມຕໍ່ກັບ LAN ດຽວກັນ.
ສັງເກດເຫັນວ່າການອ່ານອຸນຫະພູມແລະຄວາມຊຸ່ມຊື່ນໄດ້ຖືກປັບປຸງໂດຍອັດຕະໂນມັດໂດຍບໍ່ຈໍາເປັນຕ້ອງໂຫຼດຫນ້າຈໍຄືນ web ໜ້າ.
Project_10_ESP32_OLED_ຈໍສະແດງຜົນ
ໂຄງການນີ້ສະແດງໃຫ້ເຫັນວິທີການນໍາໃຊ້ຈໍສະແດງຜົນ 0.96 ນິ້ວ SSD1306 OLED ກັບ ESP32 ໂດຍໃຊ້ Arduino IDE.
ແນະນຳໜ້າຈໍ OLED ຂະໜາດ 0.96 ນິ້ວ
ໄດ້ ຈໍສະແດງຜົນ OLED ທີ່ພວກເຮົາຈະນໍາໃຊ້ໃນ tutorial ນີ້ແມ່ນແບບ SSD1306: ເປັນ monocolor, ການສະແດງຜົນ 0.96 ນິ້ວທີ່ມີ 128 × 64 pixels ດັ່ງທີ່ສະແດງໃຫ້ເຫັນໃນຮູບດັ່ງຕໍ່ໄປນີ້.ຈໍສະແດງຜົນ OLED ບໍ່ຕ້ອງການ backlight, ເຊິ່ງສົ່ງຜົນໃຫ້ມີຄວາມຄົມຊັດໃນສະພາບແວດລ້ອມທີ່ມືດ. ນອກຈາກນັ້ນ, pixels ຂອງມັນໃຊ້ພະລັງງານພຽງແຕ່ເມື່ອພວກເຂົາເປີດ, ດັ່ງນັ້ນຈໍສະແດງຜົນ OLED ໃຊ້ພະລັງງານຫນ້ອຍລົງເມື່ອປຽບທຽບກັບຈໍສະແດງຜົນອື່ນໆ.
ເນື່ອງຈາກວ່າຈໍສະແດງຜົນ OLED ໃຊ້ໂປໂຕຄອນການສື່ສານ I2C, ສາຍໄຟແມ່ນງ່າຍດາຍຫຼາຍ. ທ່ານສາມາດນໍາໃຊ້ຕາຕະລາງຕໍ່ໄປນີ້ເປັນເອກະສານອ້າງອີງ.
OLED Pin | ESP32 |
ວິນ | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
ແຜນວາດການຕິດຕັ້ງ SSD1306 OLED Library – ESP32
ມີຫ້ອງສະຫມຸດຫຼາຍບ່ອນເພື່ອຄວບຄຸມຈໍສະແດງຜົນ OLED ກັບ ESP32.
ໃນບົດສອນນີ້ພວກເຮົາຈະໃຊ້ສອງຫ້ອງສະຫມຸດ Adafruit: ຫ້ອງສະໝຸດ Adafruit_SSD1306 ແລະ ຫ້ອງສະໝຸດ Adafruit_GFX.
ປະຕິບັດຕາມຂັ້ນຕອນຕໍ່ໄປເພື່ອຕິດຕັ້ງຫ້ອງສະຫມຸດເຫຼົ່ານັ້ນ.
- ເປີດ Arduino IDE ຂອງເຈົ້າ ແລະໄປທີ່ Sketch > Include Library > Manage Libraries. ຜູ້ຈັດການຫ້ອງສະຫມຸດຄວນຈະເປີດ.
- ພິມ “SSD1306” ໃນປ່ອງຊອກຫາ ແລະຕິດຕັ້ງຫ້ອງສະໝຸດ SSD1306 ຈາກ Adafruit.
- ຫຼັງຈາກການຕິດຕັ້ງຫ້ອງສະຫມຸດ SSD1306 ຈາກ Adafruit, ພິມ "GFX" ໃນປ່ອງຊອກຫາແລະຕິດຕັ້ງຫ້ອງສະຫມຸດ.
- ຫຼັງຈາກການຕິດຕັ້ງຫ້ອງສະຫມຸດ, restart Arduino IDE ຂອງທ່ານ.
ລະຫັດ
ຫຼັງຈາກການຕິດຕັ້ງຫ້ອງສະຫມຸດທີ່ຕ້ອງການ, ເປີດ Project_10_ESP32_OLED_Display.ino ໃນ arduino IDE. ລະຫັດ
ພວກເຮົາຈະຂຽນໂປລແກລມ ESP32 ໂດຍໃຊ້ Arduino IDE, ດັ່ງນັ້ນໃຫ້ແນ່ໃຈວ່າທ່ານມີ ESP32 add-on ຕິດຕັ້ງກ່ອນທີ່ຈະດໍາເນີນການ: (ຖ້າທ່ານໄດ້ເຮັດຂັ້ນຕອນນີ້ແລ້ວ, ທ່ານສາມາດຂ້າມໄປຂັ້ນຕອນຕໍ່ໄປ).
ການຕິດຕັ້ງ ESP32 Add-on ໃນ Arduino IDEລະຫັດເຮັດວຽກແນວໃດ
ການນໍາເຂົ້າຫ້ອງສະຫມຸດ
ທໍາອິດ, ທ່ານຈໍາເປັນຕ້ອງໄດ້ນໍາເຂົ້າຫ້ອງສະຫມຸດທີ່ຈໍາເປັນ. ຫໍສະໝຸດ Wire ເພື່ອໃຊ້ I2C ແລະຫ້ອງສະໝຸດ Adafruit ເພື່ອຂຽນໃສ່ຈໍສະແດງຜົນ: Adafruit_GFX ແລະ Adafruit_SSD1306.ເລີ່ມຕົ້ນຈໍສະແດງຜົນ OLED
ຫຼັງຈາກນັ້ນ, ທ່ານກໍານົດຄວາມກວ້າງແລະຄວາມສູງ OLED ຂອງທ່ານ. ໃນນີ້ exampດັ່ງນັ້ນ, ພວກເຮົາກໍາລັງໃຊ້ຈໍສະແດງຜົນ OLED 128 × 64. ຖ້າຫາກວ່າທ່ານກໍາລັງໃຊ້ຂະຫນາດອື່ນໆ, ທ່ານສາມາດປ່ຽນແປງທີ່ຢູ່ໃນ SCREEN_WIDTH, ແລະ SCREEN_HEIGHT ຕົວແປ.ຫຼັງຈາກນັ້ນ, ເລີ່ມຕົ້ນການສະແດງວັດຖຸທີ່ມີຄວາມກວ້າງແລະຄວາມສູງທີ່ກໍານົດໄວ້ກ່ອນຫນ້ານີ້ດ້ວຍ I2C communication protocol (&Wire).
ພາລາມິເຕີ (-1) ຫມາຍຄວາມວ່າຈໍສະແດງຜົນ OLED ຂອງທ່ານບໍ່ມີ pin RESET. ຖ້າຈໍສະແດງຜົນ OLED ຂອງທ່ານມີ pin RESET, ມັນຄວນຈະເຊື່ອມຕໍ່ກັບ GPIO. ໃນກໍລະນີດັ່ງກ່າວ, ທ່ານຄວນຜ່ານຕົວເລກ GPIO ເປັນພາລາມິເຕີ.
ໃນການຕັ້ງຄ່າ (), ເລີ່ມຕົ້ນ Serial Monitor ຢູ່ທີ່ baud raute ຂອງ 115200 ສໍາລັບຈຸດປະສົງ debugging.ເລີ່ມຕົ້ນຈໍສະແດງຜົນ OLED ດ້ວຍວິທີການເລີ່ມຕົ້ນ () ດັ່ງຕໍ່ໄປນີ້:
snippet ນີ້ຍັງພິມຂໍ້ຄວາມຢູ່ໃນ Serial Monitor, ໃນກໍລະນີທີ່ພວກເຮົາບໍ່ສາມາດເຊື່ອມຕໍ່ກັບຈໍສະແດງຜົນ.
ໃນກໍລະນີທີ່ທ່ານກໍາລັງໃຊ້ຈໍສະແດງຜົນ OLED ທີ່ແຕກຕ່າງກັນ, ທ່ານອາດຈະຕ້ອງປ່ຽນທີ່ຢູ່ OLED. ໃນກໍລະນີຂອງພວກເຮົາ, ທີ່ຢູ່ແມ່ນ 0x3C.
ຫຼັງຈາກເລີ່ມຕົ້ນການສະແດງຜົນ, ຕື່ມການຊັກຊ້າສອງວິນາທີ, ເພື່ອໃຫ້ OLED ມີເວລາພຽງພໍທີ່ຈະເລີ່ມຕົ້ນກ່ອນທີ່ຈະຂຽນຂໍ້ຄວາມ:
ຈໍສະແດງຜົນຊັດເຈນ, ກໍານົດຂະຫນາດຕົວອັກສອນ, ສີແລະຂຽນຂໍ້ຄວາມ
ຫຼັງຈາກການເລີ່ມຕົ້ນການສະແດງໃຫ້ເຫັນ, ລ້າງການປ້ອງກັນການສະແດງອອກດ້ວຍວິທີການ clearDisplay():
ກ່ອນທີ່ຈະຂຽນຂໍ້ຄວາມ, ທ່ານຈໍາເປັນຕ້ອງກໍານົດຂະຫນາດຂໍ້ຄວາມ, ສີແລະບ່ອນທີ່ຂໍ້ຄວາມຈະຖືກສະແດງຢູ່ໃນ OLED.
ກໍານົດຂະຫນາດຕົວອັກສອນໂດຍໃຊ້ວິທີການ setTextSize():ກໍານົດສີຕົວອັກສອນດ້ວຍວິທີການ setTextColor():
WHITE ຕັ້ງຟອນສີຂາວ ແລະພື້ນຫຼັງສີດຳ.
ກໍານົດຕໍາແຫນ່ງທີ່ຂໍ້ຄວາມເລີ່ມຕົ້ນໂດຍໃຊ້ວິທີການ setCursor(x,y). ໃນກໍລະນີນີ້, ພວກເຮົາກໍາລັງຕັ້ງຂໍ້ຄວາມທີ່ຈະເລີ່ມຕົ້ນທີ່ (0,0) ພິກັດ – ຢູ່ແຈເທິງຊ້າຍ.ສຸດທ້າຍ, ທ່ານສາມາດສົ່ງຂໍ້ຄວາມໄປຫາຈໍສະແດງຜົນໂດຍໃຊ້ວິທີການ println() ດັ່ງຕໍ່ໄປນີ້
ຫຼັງຈາກນັ້ນ, ທ່ານຈໍາເປັນຕ້ອງໂທຫາວິທີການສະແດງ () ເພື່ອສະແດງຂໍ້ຄວາມໃນຫນ້າຈໍ.
ຫ້ອງສະຫມຸດ Adafruit OLED ສະຫນອງວິທີການທີ່ເປັນປະໂຫຍດເພື່ອເລື່ອນຂໍ້ຄວາມໄດ້ງ່າຍ.
- startscrollright(0x00, 0x0F): ເລື່ອນຂໍ້ຄວາມຈາກຊ້າຍໄປຂວາ
- startscrollleft(0x00, 0x0F): ເລື່ອນຂໍ້ຄວາມຈາກຂວາຫາຊ້າຍ
- startscrolldiagright(0x00, 0x07): ເລື່ອນຂໍ້ຄວາມຈາກມຸມຊ້າຍລຸ່ມຫາມຸມຂວາເທິງ startscrolldiagleft(0x00, 0x07): ເລື່ອນຂໍ້ຄວາມຈາກມຸມຂວາລຸ່ມຫາມຸມຊ້າຍເທິງ
ອັບໂຫຼດລະຫັດ
ດຽວນີ້, ອັບໂຫລດລະຫັດໃສ່ ESP32.Upload ຂັ້ນຕອນການອ້າງອີງລະຫັດຂອງທ່ານ.
ຫຼັງຈາກອັບໂຫຼດລະຫັດ, OLED ຈະສະແດງຂໍ້ຄວາມເລື່ອນ.
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
ຊຸດເຄື່ອງເລີ່ມຕົ້ນພື້ນຖານຂອງ LAFVIN ESP32 [pdf] ຄູ່ມືການສອນ ESP32 Basic Starter Kit, ESP32, ຊຸດເລີ່ມຕົ້ນພື້ນຖານ, ຊຸດເລີ່ມຕົ້ນ |