Biểu tượng LAFVINBộ khởi động cơ bản ESP32
Bộ dụng cụ

Danh sách đóng gói

Bộ khởi động cơ bản LAFVIN ESP32 - PackingList

Giới thiệu ESP32

Bạn mới biết đến ESP32? Hãy bắt đầu tại đây! ESP32 là một loạt các vi điều khiển Hệ thống trên một Chip (SoC) giá rẻ và công suất thấp do Espressif phát triển, bao gồm khả năng không dây Wi-Fi và Bluetooth và bộ xử lý lõi kép. Nếu bạn đã quen thuộc với ESP8266, ESP32 là sản phẩm kế nhiệm của nó, được tích hợp nhiều tính năng mới.Bộ khởi động cơ bản LAFVIN ESP32 - Giới thiệu ESP32Thông số kỹ thuật ESP32
Nếu bạn muốn biết thêm thông tin kỹ thuật và cụ thể hơn, bạn có thể xem thông số kỹ thuật chi tiết sau đây của ESP32 (nguồn: http://esp32.net/)—để biết thêm chi tiết, kiểm tra bảng dữ liệu):

  • Kết nối không dây WiFi: Tốc độ dữ liệu 150.0 Mbps với HT40
  • Bluetooth: BLE (Bluetooth năng lượng thấp) và Bluetooth Classic
  • Bộ xử lý: Bộ vi xử lý Tensilica Xtensa Dual-Core 32-bit LX6, chạy ở tốc độ 160 hoặc 240 MHz
  • Ký ức:
  • ROM: 448 KB (dành cho chức năng khởi động và lõi)
  • SRAM: 520 KB (dành cho dữ liệu và hướng dẫn)
  • RTC fas SRAM: 8 KB (để lưu trữ dữ liệu và CPU chính trong quá trình khởi động RTC từ chế độ ngủ sâu)
  • RTC chậm SRAM: 8KB (để truy cập bộ đồng xử lý trong chế độ ngủ sâu) eFuse: 1 Kbit (trong đó 256 bit được sử dụng cho hệ thống (địa chỉ MAC và cấu hình chip) và 768 bit còn lại được dành riêng cho các ứng dụng của khách hàng, bao gồm Flash-Encryption và Chip-ID)

Đèn flash nhúng: đèn flash được kết nối nội bộ thông qua IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 và SD_DATA_1 trên ESP32-D2WD và ESP32-PICO-D4.

  • 0 MiB (chip ESP32-D0WDQ6, ESP32-D0WD và ESP32-S0WD)
  • 2 MiB (chip ESP32-D2WD)
  • 4 MiB (mô-đun ESP32-PICO-D4 SiP)

Công suất thấp: đảm bảo rằng bạn vẫn có thể sử dụng chuyển đổi ADC, ví dụamptrong khi ngủ sâu.
Đầu vào/Đầu ra ngoại vi:

  • giao diện ngoại vi với DMA bao gồm cảm ứng điện dung
  • ADC (Bộ chuyển đổi tín hiệu tương tự sang số)
  • DAC (Bộ chuyển đổi tín hiệu số sang tín hiệu tương tự)
  • I²C (Mạch tích hợp liên kết)
  • UART (Bộ thu/phát không đồng bộ toàn cầu)
  • SPI (Giao diện ngoại vi nối tiếp)
  • I²S (Âm thanh Interchip tích hợp)
  • RMII (Giao diện độc lập với phương tiện truyền thông giảm thiểu)
  • PWM (Điều chế độ rộng xung)

Bảo vệ: bộ tăng tốc phần cứng cho AES và SSL/TLS

Bo mạch phát triển ESP32

ESP32 dùng để chỉ chip ESP32 trần. Tuy nhiên, thuật ngữ “ESP32” cũng được dùng để chỉ bo mạch phát triển ESP32. Sử dụng chip ESP32 trần không dễ dàng hoặc thực tế, đặc biệt là khi học, thử nghiệm và tạo mẫu. Hầu hết thời gian, bạn sẽ muốn sử dụng bo mạch phát triển ESP32.
Chúng tôi sẽ sử dụng bo mạch ESP32 DEVKIT V1 làm tài liệu tham khảo. Hình ảnh bên dưới hiển thị bo mạch ESP32 DEVKIT V1, phiên bản có 30 chân GPIO.Bộ khởi động cơ bản LAFVIN ESP32 - Bo mạch phát triển ESP32Thông số kỹ thuật – ESP32 DEVKIT V1
Bảng sau đây tóm tắt các tính năng và thông số kỹ thuật của bo mạch ESP32 DEVKIT V1 DOIT:

Số lượng lõi 2 (lõi kép)
Wi-Fi 2.4 GHz lên đến 150 Mbit/giây
Bluetooth BLE (Bluetooth năng lượng thấp) và Bluetooth cũ
Ngành kiến ​​​​trúc 32 bit
Tần số đồng hồ Lên đến 240 MHz
ĐẬP 512KB
Ghim 30(tùy theo mẫu)
Thiết bị ngoại vi Cảm ứng điện dung, ADC (bộ chuyển đổi tín hiệu tương tự sang tín hiệu số), DAC (bộ chuyển đổi tín hiệu số sang tín hiệu tương tự), 12C (Mạch tích hợp liên hợp), UART (bộ thu/phát không đồng bộ toàn cầu), CAN 2.0 (Mạng khu vực điều khiển), SPI (Giao diện ngoại vi nối tiếp), 12S (Mạng liên hợp tích hợp)
Âm thanh), RMII (Giao diện độc lập với phương tiện truyền thông giảm thiểu), PWM (điều chế độ rộng xung) và nhiều hơn nữa.
Các nút tích hợp Nút RESET và BOOT
Đèn LED tích hợp đèn LED màu xanh tích hợp được kết nối với GPIO2; đèn LED màu đỏ tích hợp cho biết bo mạch đang được cấp nguồn
USB sang UART
cầu
CP2102

Bộ khởi động cơ bản LAFVIN ESP32 - ESP32 DEVKITSản phẩm có giao diện microUSB mà bạn có thể sử dụng để kết nối bo mạch với máy tính để tải mã hoặc cấp nguồn.
Nó sử dụng chip CP2102 (USB sang UART) để giao tiếp với máy tính của bạn qua cổng COM bằng giao diện nối tiếp. Một chip phổ biến khác là CH340. Kiểm tra bộ chuyển đổi chip USB sang UART trên bo mạch của bạn vì bạn sẽ cần cài đặt trình điều khiển cần thiết để máy tính của bạn có thể giao tiếp với bo mạch (thông tin chi tiết hơn về điều này sau trong hướng dẫn này).
Bo mạch này cũng đi kèm với nút RESET (có thể được dán nhãn EN) để khởi động lại bo mạch và nút BOOT để đưa bo mạch vào chế độ nhấp nháy (có thể nhận mã). Lưu ý rằng một số bo mạch có thể không có nút BOOT.
Nó cũng đi kèm với một đèn LED màu xanh tích hợp được kết nối bên trong với GPIO 2. Đèn LED này hữu ích cho việc gỡ lỗi để cung cấp một số loại đầu ra vật lý trực quan. Ngoài ra còn có một đèn LED màu đỏ sáng lên khi bạn cấp nguồn cho bo mạch.Bộ khởi động cơ bản LAFVIN ESP32 - bo mạchSơ đồ chân cắm ESP32
Các thiết bị ngoại vi ESP32 bao gồm:

  • 18 kênh Bộ chuyển đổi Analog sang Kỹ thuật số (ADC)
  • 3 giao diện SPI
  • 3 giao diện UART
  • 2 giao diện I2C
  • 16 kênh đầu raPWM
  • 2 Bộ chuyển đổi tín hiệu số sang tín hiệu tương tự (DAC)
  • 2 giao diện I2S
  • 10 GPIO cảm biến điện dung

Các tính năng ADC (bộ chuyển đổi analog sang kỹ thuật số) và DAC (bộ chuyển đổi kỹ thuật số sang tương tự) được gán cho các chân tĩnh cụ thể. Tuy nhiên, bạn có thể quyết định chân nào là UART, I2C, SPI, PWM, v.v. – bạn chỉ cần gán chúng trong mã. Điều này có thể thực hiện được nhờ tính năng ghép kênh của chip ESP32.
Mặc dù bạn có thể xác định các thuộc tính chân trên phần mềm, nhưng có những chân được gán theo mặc định như thể hiện trong hình sauBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồ chân ESP32Ngoài ra, còn có các chân cắm có các tính năng cụ thể khiến chúng phù hợp hoặc không phù hợp với một dự án cụ thể. Bảng sau đây cho biết chân cắm nào là tốt nhất để sử dụng làm đầu vào, đầu ra và chân cắm nào bạn cần thận trọng.
Các chân được đánh dấu màu xanh lá cây có thể sử dụng được. Các chân được đánh dấu màu vàng có thể sử dụng được, nhưng bạn cần chú ý vì chúng có thể có hành vi không mong muốn chủ yếu khi khởi động. Các chân được đánh dấu màu đỏ không được khuyến khích sử dụng làm đầu vào hoặc đầu ra.

GP IO Đầu vào Đầu ra Ghi chú
0 kéo lên OK tín hiệu PWM đầu ra khi khởi động, phải ở mức THẤP để vào chế độ nhấp nháy
1 chốt TX OK đầu ra gỡ lỗi khi khởi động
2 OK OK được kết nối với đèn LED trên bo mạch, phải để nổi hoặc THẤP để vào chế độ nhấp nháy
3 OK chân RX CAO khi khởi động
4 OK OK
5 OK OK tín hiệu PWM đầu ra khi khởi động, chốt khóa
12 OK OK khởi động không thành công nếu kéo cao, chốt buộc
13 OK OK
14 OK OK tín hiệu PWM đầu ra khi khởi động
15 OK OK tín hiệu PWM đầu ra khi khởi động, chốt khóa
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 chỉ đầu vào
35 OK chỉ đầu vào
36 OK chỉ đầu vào
39 OK chỉ đầu vào

Tiếp tục đọc để biết thêm chi tiết và phân tích sâu hơn về GPIO ESP32 và chức năng của nó.
Chỉ có chân đầu vào
GPIO 34 đến 39 là GPI – chân chỉ đầu vào. Các chân này không có điện trở kéo lên hoặc kéo xuống bên trong. Chúng không thể được sử dụng làm đầu ra, vì vậy chỉ sử dụng các chân này làm đầu vào:

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

SPI flash tích hợp trên ESP-WROOM-32
GPIO 6 đến GPIO 11 được hiển thị trong một số bo mạch phát triển ESP32. Tuy nhiên, các chân này được kết nối với SPI flash tích hợp trên chip ESP-WROOM-32 và không được khuyến nghị cho các mục đích sử dụng khác. Vì vậy, đừng sử dụng các chân này trong các dự án của bạn:

  • 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 cảm ứng điện dung
ESP32 có 10 cảm biến cảm ứng điện dung bên trong. Chúng có thể cảm nhận các biến thể trong bất kỳ thứ gì có điện tích, như da người. Vì vậy, chúng có thể phát hiện các biến thể được tạo ra khi chạm vào GPIO bằng ngón tay. Các chân này có thể dễ dàng tích hợp vào các miếng đệm điện dung và thay thế các nút cơ học. Các chân cảm ứng điện dung cũng có thể được sử dụng để đánh thức ESP32 khỏi chế độ ngủ sâu. Các cảm biến cảm ứng bên trong đó được kết nối với các GPIO này:

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

Bộ chuyển đổi tương tự sang kỹ thuật số (ADC)
ESP32 có 18 x 12 bit kênh đầu vào ADC (trong khi ESP8266 chỉ có 1x 10 bit ADC). Đây là các GPIO có thể được sử dụng làm ADC và các kênh tương ứng:

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

Ghi chú: Không thể sử dụng chân ADC2 khi sử dụng Wi-Fi. Vì vậy, nếu bạn đang sử dụng Wi-Fi và gặp sự cố khi lấy giá trị từ GPIO ADC2, bạn có thể cân nhắc sử dụng GPIO ADC1 thay thế. Điều đó sẽ giải quyết được vấn đề của bạn.
Các kênh đầu vào ADC có độ phân giải 12 bit. Điều này có nghĩa là bạn có thể nhận được các giá trị đọc tương tự trong phạm vi từ 0 đến 4095, trong đó 0 tương ứng với 0V và 4095 tương ứng với 3.3V. Bạn cũng có thể thiết lập độ phân giải của các kênh trên mã và phạm vi ADC.
Các chân ADC ESP32 không có hành vi tuyến tính. Bạn có thể sẽ không phân biệt được giữa 0 và 0.1V hoặc giữa 3.2 và 3.3V. Bạn cần lưu ý điều đó khi sử dụng các chân ADC. Bạn sẽ có hành vi tương tự như hành vi được hiển thị trong hình sau.Bộ khởi động cơ bản LAFVIN ESP32 - hành viBộ chuyển đổi số sang tương tự (DAC)
Có 2 kênh DAC 8 bit trên ESP32 để chuyển đổi tín hiệu số thành tín hiệu tương tự.tagđầu ra tín hiệu e. Đây là các kênh DAC:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

GPIO RTC
Có hỗ trợ RTC GPIO trên ESP32. Các GPIO được định tuyến đến hệ thống con công suất thấp RTC có thể được sử dụng khi ESP32 đang ở chế độ ngủ sâu. Các GPIO RTC này có thể được sử dụng để đánh thức ESP32 khỏi chế độ ngủ sâu khi Ultra Low
Bộ đồng xử lý nguồn (ULP) đang chạy. Các GPIO sau có thể được sử dụng làm nguồn đánh thức bên ngoài.

  • 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
Bộ điều khiển PWM LED ESP32 có 16 kênh độc lập có thể được cấu hình để tạo tín hiệu PWM với các thuộc tính khác nhau. Tất cả các chân có thể hoạt động như đầu ra đều có thể được sử dụng làm chân PWM (GPIO 34 đến 39 không thể tạo PWM).
Để thiết lập tín hiệu PWM, bạn cần xác định các tham số sau trong mã:

  • Tần số tín hiệu;
  • Chu kỳ hoạt động;
  • Kênh PWM;
  • GPIO nơi bạn muốn xuất tín hiệu.

I2C
ESP32 có hai kênh I2C và bất kỳ chân nào cũng có thể được đặt thành SDA hoặc SCL. Khi sử dụng ESP32 với Arduino IDE, các chân I2C mặc định là:

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

Nếu bạn muốn sử dụng các chân khác khi sử dụng thư viện wire, bạn chỉ cần gọi:
Wire.begin(SDA, SCL);
SPI
Theo mặc định, ánh xạ chân cho SPI là:

SPI DAWDLE MISO CLK CS
VSPI GPIO23 GPIO19 GPIO18 GPIO5
HSPI GPIO13 GPIO12 GPIO14 GPIO15

Ngắt
Tất cả GPIO đều có thể được cấu hình thành ngắt.
Dây đai ghim
Chip ESP32 có các chân buộc sau:

  • GPIO 0 (phải ở mức THẤP để vào chế độ khởi động)
  • GPIO 2 (phải nổi hoặc THẤP trong khi khởi động)
  • GPIO4
  • GPIO 5 (phải ở mức CAO trong khi khởi động)
  • GPIO 12 (phải ở mức THẤP trong khi khởi động)
  • GPIO 15 (phải ở mức CAO trong khi khởi động)

Chúng được sử dụng để đưa ESP32 vào chế độ bootloader hoặc chế độ flash. Trên hầu hết các bo mạch phát triển có USB/Serial tích hợp, bạn không cần phải lo lắng về trạng thái của các chân này. Bo mạch đặt các chân ở đúng trạng thái để flash hoặc chế độ khởi động. Bạn có thể tìm thêm thông tin về ESP32 Boot Mode Selection tại đây.
Tuy nhiên, nếu bạn có các thiết bị ngoại vi được kết nối với các chân đó, bạn có thể gặp sự cố khi cố gắng tải lên mã mới, flash ESP32 bằng chương trình cơ sở mới hoặc đặt lại bo mạch. Nếu bạn có một số thiết bị ngoại vi được kết nối với các chân buộc và bạn gặp sự cố khi tải lên mã hoặc flash ESP32, có thể là do các thiết bị ngoại vi đó đang ngăn ESP32 vào chế độ phù hợp. Đọc tài liệu Boot Mode Selection để hướng dẫn bạn đi đúng hướng. Sau khi reset, flash hoặc khởi động, các chân đó hoạt động như mong đợi.
Chốt CAO ở Khởi động
Một số GPIO thay đổi trạng thái thành CAO hoặc phát tín hiệu PWM khi khởi động hoặc đặt lại.
Điều này có nghĩa là nếu bạn kết nối đầu ra với các GPIO này, bạn có thể nhận được kết quả không mong muốn khi ESP32 khởi động hoặc đặt lại.

  • GPIO1
  • GPIO3
  • GPIO5
  • GPIO 6 tới GPIO 11 (kết nối với bộ nhớ flash SPI tích hợp ESP32 – không khuyến khích sử dụng).
  • GPIO14
  • GPIO15

Kích hoạt (EN)
Enable (EN) là chân enable của bộ điều chỉnh 3.3V. Nó được kéo lên, vì vậy hãy kết nối với đất để vô hiệu hóa bộ điều chỉnh 3.3V. Điều này có nghĩa là bạn có thể sử dụng chân này được kết nối với nút nhấn để khởi động lại ESP32 của mình, ví dụamplà.
Dòng điện GPIO được rút ra
Dòng điện tối đa tuyệt đối được rút ra trên mỗi GPIO là 40mA theo phần “Điều kiện hoạt động được khuyến nghị” trong bảng dữ liệu ESP32.
Cảm biến hiệu ứng Hall tích hợp ESP32
ESP32 cũng có cảm biến hiệu ứng Hall tích hợp giúp phát hiện những thay đổi trong từ trường xung quanh nó
ESP32 Arduino IDE
Có một tiện ích bổ sung cho Arduino IDE cho phép bạn lập trình ESP32 bằng Arduino IDE và ngôn ngữ lập trình của nó. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt bo mạch ESP32 trong Arduino IDE cho dù bạn đang sử dụng Windows, Mac OS X hay Linux.
Điều kiện tiên quyết: Đã cài đặt Arduino IDE
Trước khi bắt đầu quy trình cài đặt này, bạn cần cài đặt Arduino IDE trên máy tính của mình. Có hai phiên bản Arduino IDE mà bạn có thể cài đặt: phiên bản 1 và phiên bản 2.
Bạn có thể tải xuống và cài đặt Arduino IDE bằng cách nhấp vào liên kết sau: arduino.cc/en/Main/Phần mềm
Chúng tôi khuyên dùng phiên bản Arduino IDE nào? Hiện tại, có một số plugins cho ESP32 (giống như SPIFFS FileTrình cắm tải lên hệ thống) hiện chưa được hỗ trợ trên Arduino 2. Vì vậy, nếu bạn có ý định sử dụng trình cắm SPIFFS trong tương lai, chúng tôi khuyên bạn nên cài đặt phiên bản cũ 1.8.X. Bạn chỉ cần cuộn xuống trang phần mềm Arduino để tìm nó.
Cài đặt ESP32 Add-on trong Arduino IDE
Để cài đặt bo mạch ESP32 vào Arduino IDE của bạn, hãy làm theo các hướng dẫn sau:

  1. Trong Arduino IDE của bạn, hãy đi tới File> Tùy chọnBộ khởi động cơ bản LAFVIN ESP32 - Tùy chọn
  2. Nhập thông tin sau vào “Trình quản lý bảng bổ sung URLtrường s:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Sau đó, nhấp vào nút “OK”:Bộ khởi động cơ bản LAFVIN ESP32 - Nút “OK”Ghi chú: nếu bạn đã có bo mạch ESP8266 URL, bạn có thể tách URLs với dấu phẩy như sau:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Mở Trình quản lý bảng. Vào Tools > Board > Boards Manager…Bộ khởi động cơ bản LAFVIN ESP32 - EspressifTìm kiếm ESP32 and press install button for the “ESP32 by Espressif Systems“:Bộ khởi động cơ bản LAFVIN ESP32 - EspressifVậy là xong. Nó sẽ được cài đặt sau vài giây.Bộ khởi động cơ bản LAFVIN ESP32 - đã cài đặt

Tải lên mã kiểm tra

Cắm bo mạch ESP32 vào máy tính của bạn. Khi Arduino IDE mở, hãy làm theo các bước sau:

  1. Chọn Board của bạn trong menu Tools > Board (trong trường hợp của tôi là ESP32 DEV Module)Bộ khởi động cơ bản LAFVIN ESP32 - Bảng công cụ
  2. Chọn Cổng (nếu bạn không thấy Cổng COM trong Arduino IDE, bạn cần cài đặt Trình điều khiển VCP CP210x USB to UART Bridge):Bộ khởi động cơ bản LAFVIN ESP32 - Cầu nối UART
  3. Mở ví dụ sauampdưới File > Ví dụamptập tin > WiFi
    (ESP32) > Quét WiFiBộ khởi động cơ bản LAFVIN ESP32 - WiFiScanBộ khởi động cơ bản LAFVIN ESP32 - WiFiScan 1
  4. Một bản phác thảo mới sẽ mở ra trong Arduino IDE của bạn:Bộ khởi động cơ bản LAFVIN ESP32 - Arduino IDE
  5. Nhấn nút Tải lên trong Arduino IDE. Đợi vài giây trong khi mã biên dịch và tải lên bo mạch của bạn.Bộ khởi động cơ bản LAFVIN ESP32 - bo mạch
  6. Nếu mọi việc diễn ra như mong đợi, bạn sẽ thấy thông báo “Đã tải lên xong”.Bộ khởi động cơ bản LAFVIN ESP32 - Đã tải lên xong
  7. Mở Arduino IDE Serial Monitor ở tốc độ truyền dữ liệu 115200:Bộ khởi động cơ bản LAFVIN ESP32 - Màn hình
  8. Nhấn nút Kích hoạt ESP32 trên bo mạch và bạn sẽ thấy các mạng khả dụng gần ESP32 của mình:Bộ khởi động cơ bản LAFVIN ESP32 - Nút kích hoạt

Xử lý sự cố

Nếu bạn thử tải một bản phác thảo mới lên ESP32 và bạn nhận được thông báo lỗi này “Đã xảy ra lỗi nghiêm trọng: Không kết nối được với ESP32: Đã hết thời gian… Đang kết nối…“. Điều đó có nghĩa là ESP32 của bạn không ở chế độ nhấp nháy/tải lên.
Sau khi chọn đúng tên bo mạch và cổng COM, hãy làm theo các bước sau:
Nhấn giữ nút “BOOT” trên bo mạch ESP32 của bạnBộ khởi động cơ bản LAFVIN ESP32 - “BOOT”

  • Nhấn nút “Tải lên” trong Arduino IDE để tải bản phác thảo của bạn lên:Bộ khởi động cơ bản LAFVIN ESP32 - ICON 6
  • Sau khi bạn thấy thông báo “Đang kết nối….” trong Arduino IDE, hãy nhả ngón tay khỏi nút “BOOT”:Bộ khởi động cơ bản LAFVIN ESP32 - “Đã tải lên xong
  • Sau đó, bạn sẽ thấy thông báo “Đã tải lên xong”
    Vậy là xong. ESP32 của bạn sẽ chạy bản phác thảo mới. Nhấn nút “ENABLE” để khởi động lại ESP32 và chạy bản phác thảo mới đã tải lên.
    Bạn cũng phải lặp lại chuỗi nút đó mỗi khi muốn tải lên bản phác thảo mới.

Dự án 1 ESP32 Đầu vào Đầu ra

Trong hướng dẫn bắt đầu này, bạn sẽ học cách đọc các đầu vào kỹ thuật số như công tắc nút nhấn và điều khiển các đầu ra kỹ thuật số như đèn LED bằng cách sử dụng ESP32 với Arduino IDE.
Điều kiện tiên quyết
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE. Vì vậy, hãy đảm bảo bạn đã cài đặt phần bổ sung cho bo mạch ESP32 trước khi tiến hành:

  • Cài đặt ESP32 Add-on trong Arduino IDE

ESP32 Kiểm soát đầu ra kỹ thuật số
Đầu tiên, bạn cần thiết lập GPIO bạn muốn điều khiển thành OUTPUT. Sử dụng hàm pinMode() như sau:
pinMode(GPIO, ĐẦU RA);
Để kiểm soát đầu ra kỹ thuật số, bạn chỉ cần sử dụng hàm digitalWrite(), chấp nhận các đối số là GPIO (số nguyên) mà bạn đang tham chiếu và trạng thái là CAO hoặc THẤP.
digitalWrite(GPIO, TRẠNG THÁI);
Tất cả GPIO đều có thể được sử dụng làm đầu ra ngoại trừ GPIO 6 đến 11 (được kết nối với flash SPI tích hợp) và GPIO 34, 35, 36 và 39 (chỉ là GPIO đầu vào);
Tìm hiểu thêm về GPIO ESP32: Hướng dẫn tham khảo GPIO ESP32
ESP32 Đọc Đầu Vào Kỹ Thuật Số
Đầu tiên, hãy đặt GPIO bạn muốn đọc là INPUT bằng cách sử dụng hàm pinMode() như sau:
pinMode(GPIO, ĐẦU VÀO);
Để đọc đầu vào kỹ thuật số, như một nút bấm, bạn sử dụng hàm digitalRead(), chấp nhận GPIO (số nguyên) mà bạn đang tham chiếu làm đối số.
đọc kỹ thuật số(GPIO);
Tất cả GPIO ESP32 đều có thể được sử dụng làm đầu vào, ngoại trừ GPIO 6 đến 11 (được kết nối với flash SPI tích hợp).
Tìm hiểu thêm về GPIO ESP32: Hướng dẫn tham khảo GPIO ESP32
Dự án Example
Để chỉ cho bạn cách sử dụng đầu vào kỹ thuật số và đầu ra kỹ thuật số, chúng tôi sẽ xây dựng một dự án đơn giảnample với một nút nhấn và một đèn LED. Chúng ta sẽ đọc trạng thái của nút nhấn và bật đèn LED tương ứng như minh họa trong hình sau.Bộ khởi động cơ bản LAFVIN ESP32 - Dự án Example

Các bộ phận cần thiết
Sau đây là danh sách các bộ phận bạn cần để xây dựng mạch điện:

  • Bộ công cụ phát triển ESP32 V1
  • ĐÈN LED 5mm
  • Điện trở 220 Ohm
  • Nút nhấn
  • Điện trở 10k Ohm
  • Bảng mạch cắm
  • Dây nối

Sơ đồ
Trước khi tiến hành, bạn cần lắp ráp một mạch điện có đèn LED và một nút nhấn.
Chúng ta sẽ kết nối đèn LED với GPIO 5 và nút nhấn với GPIO 4.Bộ khởi động cơ bản LAFVIN ESP32 - Sơ đồ mạchMã số
Mở mã Project_1_ESP32_Inputs_Outputs.ino trong arduino IDEBộ khởi động cơ bản LAFVIN ESP32 - MãBộ khởi động cơ bản LAFVIN ESP32 - Mã 1Mã hoạt động như thế nào
Trong hai dòng sau, bạn tạo các biến để gán chân:

Bộ khởi động cơ bản LAFVIN ESP32 - Code WorksNút bấm được kết nối với GPIO 4 và đèn LED được kết nối với GPIO 5. Khi sử dụng Arduino IDE với ESP32, 4 tương ứng với GPIO 4 và 5 tương ứng với GPIO 5.
Tiếp theo, bạn tạo một biến để giữ trạng thái nút. Theo mặc định, nó là 0 (không được nhấn).
int buttonState = 0;
Trong setup(), bạn khởi tạo nút là INPUT và đèn LED là OUTPUT.
Để thực hiện điều đó, bạn sử dụng hàm pinMode() chấp nhận chân bạn đang tham chiếu và chế độ: INPUT hoặc OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, ĐẦU RA);
Trong vòng lặp(), bạn sẽ đọc trạng thái nút và thiết lập đèn LED cho phù hợp.
Ở dòng tiếp theo, bạn đọc trạng thái nút và lưu nó vào biến buttonState.
Như chúng ta đã thấy trước đây, bạn sử dụng hàm digitalRead().
buttonState = digitalRead(buttonPin);
Câu lệnh if sau đây kiểm tra xem trạng thái nút có phải là HIGH không. Nếu có, nó sẽ bật đèn LED bằng hàm digitalWrite() chấp nhận ledPin làm đối số và trạng thái HIGH.
nếu (buttonState == HIGH)Bộ khởi động cơ bản LAFVIN ESP32 - Code Works 1Nếu trạng thái nút không phải là HIGH, bạn tắt đèn LED. Chỉ cần đặt LOW làm đối số thứ hai trong hàm digitalWrite().Bộ khởi động cơ bản LAFVIN ESP32 - digitalWriteTải lên mã
Trước khi nhấp vào nút tải lên, hãy vào Công cụ > Bảng và chọn bảng: bảng DOIT ESP32 DEVKIT V1.
Vào Tools > Port và chọn cổng COM mà ESP32 được kết nối. Sau đó, nhấn nút upload và đợi thông báo “Done uploading”.Bộ khởi động cơ bản LAFVIN ESP32 - ICON 7Lưu ý: Nếu bạn thấy nhiều dấu chấm (đang kết nối…__…__) trên cửa sổ gỡ lỗi và thông báo “Không kết nối được với ESP32: Đã hết thời gian chờ tiêu đề gói tin”, điều đó có nghĩa là bạn cần nhấn nút BOOT trên bo mạch ESP32 sau các dấu chấm
bắt đầu xuất hiện. Xử lý sự cố

Biểu tình

Sau khi tải mã lên, hãy kiểm tra mạch của bạn. Đèn LED của bạn sẽ sáng lên khi bạn nhấn nút nhấn:Bộ khởi động cơ bản LAFVIN ESP32 - Trình diễnVà tắt khi bạn nhả nó ra:Bộ khởi động cơ bản LAFVIN ESP32 - turn of

Dự án 2 Đầu vào tương tự ESP32

Dự án này sẽ hướng dẫn cách đọc tín hiệu đầu vào tương tự bằng ESP32 sử dụng Arduino IDE.
Đọc tín hiệu tương tự hữu ích khi đọc giá trị từ các biến trở như biến trở hoặc cảm biến tương tự.
Đầu vào tương tự (ADC)
Đọc giá trị tương tự bằng ESP32 có nghĩa là bạn có thể đo các mức âm lượng khác nhautagmức điện áp giữa 0 V và 3.3 V.
Voltage được đo sau đó được gán cho một giá trị từ 0 đến 4095, trong đó 0 V tương ứng với 0 và 3.3 V tương ứng với 4095. Bất kỳ vol nàotage nằm giữa 0 V và 3.3 V sẽ được đưa ra giá trị tương ứng ở giữa.Bộ khởi động cơ bản LAFVIN ESP32 - Đầu vào tương tựADC là phi tuyến tính
Trong điều kiện lý tưởng, bạn sẽ mong đợi hành vi tuyến tính khi sử dụng chân ADC ESP32.
Tuy nhiên, điều đó không xảy ra. Những gì bạn sẽ nhận được là một hành vi như thể hiện trong biểu đồ sau:Bộ khởi động cơ bản LAFVIN ESP32 - Không tuyến tínhHiện tượng này có nghĩa là ESP32 của bạn không thể phân biệt được 3.3 V với 3.2 V.
Bạn sẽ nhận được cùng một giá trị cho cả hai voltagnày: 4095.
Điều tương tự cũng xảy ra với vol rất thấptagGiá trị e: đối với 0 V và 0.1 V, bạn sẽ nhận được cùng một giá trị: 0. Bạn cần ghi nhớ điều này khi sử dụng chân ADC ESP32.
Hàm analogRead()
Đọc đầu vào tương tự bằng ESP32 sử dụng Arduino IDE cũng đơn giản như sử dụng hàm analogRead(). Nó chấp nhận GPIO bạn muốn đọc làm đối số:
đọc tương tự(GPIO);
Chỉ có 15 loại có sẵn trong bo mạch DEVKIT V1 (phiên bản có 30 GPIO).
Lấy chân cắm bảng ESP32 của bạn và xác định vị trí các chân ADC. Chúng được đánh dấu bằng đường viền màu đỏ trong hình bên dưới.Bộ khởi động cơ bản LAFVIN ESP32 - viềnCác chân đầu vào tương tự này có độ phân giải 12 bit. Điều này có nghĩa là khi bạn đọc đầu vào tương tự, phạm vi của nó có thể thay đổi từ 0 đến 4095.
Lưu ý: Không thể sử dụng chân ADC2 khi sử dụng Wi-Fi. Vì vậy, nếu bạn đang sử dụng Wi-Fi và gặp sự cố khi lấy giá trị từ GPIO ADC2, bạn có thể cân nhắc sử dụng GPIO ADC1 thay thế, điều đó sẽ giải quyết được vấn đề của bạn.
Để xem mọi thứ liên kết với nhau như thế nào, chúng ta sẽ tạo một ví dụ đơn giảnampđể đọc giá trị tương tự từ một biến trở.
Các bộ phận cần thiết
Đối với ex nàyample, bạn cần những bộ phận sau:

  • Bo mạch ESP32 DEVKIT V1
  • Điện thế kế
  • Bảng mạch cắm
  • Dây nối

Sơ đồ
Nối một biến trở vào ESP32 của bạn. Chân giữa của biến trở phải được kết nối với GPIO 4. Bạn có thể sử dụng sơ đồ sau làm tài liệu tham khảo.Bộ khởi động cơ bản LAFVIN ESP32 - Sơ đồMã số
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Mở mã Project_2_ESP32_Inputs_Outputs.ino trong arduino IDEBộ khởi động cơ bản LAFVIN ESP32 - Mã 2Mã này chỉ đọc các giá trị từ biến trở và in các giá trị đó lên Serial Monitor.
Trong mã, bạn bắt đầu bằng cách xác định GPIO mà biến trở được kết nối tới. Trong ví dụ nàyamplà GPIO 4.Bộ khởi động cơ bản LAFVIN ESP32 - exampleTrong setup(), khởi tạo giao tiếp nối tiếp ở tốc độ truyền là 115200.Bộ khởi động cơ bản LAFVIN ESP32 - examplần thứ 1Trong vòng lặp(), sử dụng hàm analogRead() để đọc đầu vào tương tự từ potPin.Bộ khởi động cơ bản LAFVIN ESP32 - examplần thứ 2Cuối cùng, in các giá trị đọc được từ biến trở vào màn hình nối tiếp.Bộ khởi động cơ bản LAFVIN ESP32 - examplần thứ 3Tải mã được cung cấp lên ESP32 của bạn. Đảm bảo bạn đã chọn đúng bo mạch và cổng COM trong menu Công cụ.
Kiểm tra Example
Sau khi tải mã lên và nhấn nút reset ESP32, hãy mở Serial Monitor ở tốc độ truyền 115200. Xoay biến trở và xem các giá trị thay đổi.Giá trị lớn nhất bạn nhận được là 4095 và giá trị nhỏ nhất là 0.Bộ khởi động cơ bản LAFVIN ESP32 - giá trị tối đa

Kết thúc

Trong bài viết này, bạn đã học cách đọc đầu vào tương tự bằng ESP32 với Arduino IDE. Tóm lại:

  • Bo mạch ESP32 DEVKIT V1 DOIT (phiên bản có 30 chân) có 15 chân ADC mà bạn có thể sử dụng để đọc các đầu vào tương tự.
  • Các chân này có độ phân giải 12 bit, nghĩa là bạn có thể lấy giá trị từ 0 đến 4095.
  • Để đọc giá trị trong Arduino IDE, bạn chỉ cần sử dụng hàm analogRead().
  • Các chân ADC của ESP32 không có hành vi tuyến tính. Bạn có thể sẽ không phân biệt được giữa 0 và 0.1V hoặc giữa 3.2 và 3.3V. Bạn cần lưu ý điều đó khi sử dụng các chân ADC.

Dự án 3 ESP32 PWM (Đầu ra tương tự)

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo tín hiệu PWM bằng ESP32 sử dụng Arduino IDE. Là một ví dụampChúng ta sẽ xây dựng một mạch đơn giản để làm mờ đèn LED bằng bộ điều khiển LED PWM của ESP32.Bộ khởi động cơ bản LAFVIN ESP32 - AnalogOutputBộ điều khiển PWM LED ESP32
ESP32 có bộ điều khiển LED PWM với 16 kênh độc lập có thể được cấu hình để tạo ra tín hiệu PWM có các đặc tính khác nhau.
Sau đây là các bước bạn phải làm theo để làm mờ đèn LED bằng PWM khi sử dụng Arduino IDE:

  1. Đầu tiên, bạn cần chọn một kênh PWM. Có 16 kênh từ 0 đến 15.
  2. Sau đó, bạn cần đặt tần số tín hiệu PWM. Đối với đèn LED, tần số 5000 Hz là phù hợp.
  3. Bạn cũng cần thiết lập độ phân giải chu kỳ nhiệm vụ của tín hiệu: bạn có độ phân giải từ 1 đến 16 bit. Chúng tôi sẽ sử dụng độ phân giải 8 bit, nghĩa là bạn có thể điều khiển độ sáng của đèn LED bằng giá trị từ 0 đến 255.
  4.  Tiếp theo, bạn cần chỉ định tín hiệu sẽ xuất hiện trên GPIO hoặc GPIO nào. Để làm được điều đó, bạn sẽ sử dụng hàm sau:
    ledcAttachPin(GPIO, kênh)
    Hàm này chấp nhận hai đối số. Đối số đầu tiên là GPIO sẽ xuất tín hiệu và đối số thứ hai là kênh sẽ tạo ra tín hiệu.
  5. Cuối cùng, để điều khiển độ sáng đèn LED bằng PWM, bạn sử dụng hàm sau:

ledcWrite(kênh, chu kỳ nhiệm vụ)
Hàm này chấp nhận các đối số là kênh tạo ra tín hiệu PWM và chu kỳ hoạt động.
Các bộ phận cần thiết
Để làm theo hướng dẫn này, bạn cần những phần sau:

  • Bo mạch ESP32 DEVKIT V1
  • Đèn LED 5mm
  • Điện trở 220 Ohm
  •  Bảng mạch cắm
  • Dây nối

Sơ đồ
Nối dây đèn LED vào ESP32 của bạn như trong sơ đồ sau. Đèn LED phải được kết nối với GPIO 4.Bộ khởi động cơ bản LAFVIN ESP32 - Sơ đồGhi chú: bạn có thể sử dụng bất kỳ chân nào bạn muốn, miễn là nó có thể hoạt động như một đầu ra. Tất cả các chân có thể hoạt động như đầu ra đều có thể được sử dụng như các chân PWM. Để biết thêm thông tin về ESP32 GPIO, hãy đọc: ESP32 Pinout Reference: Which GPIO pins should you use?
Mã số
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Mở mã Project_3_ESP32_PWM.ino trong arduino IDEBộ khởi động cơ bản LAFVIN ESP32 - Mã 3Bộ khởi động cơ bản LAFVIN ESP32 - Mã 4Bạn bắt đầu bằng cách xác định chân mà đèn LED được gắn vào. Trong trường hợp này, đèn LED được gắn vào GPIO 4.Bộ khởi động cơ bản LAFVIN ESP32 - Mã 5Sau đó, bạn thiết lập các thuộc tính tín hiệu PWM. Bạn xác định tần số 5000 Hz, chọn kênh 0 để tạo tín hiệu và thiết lập độ phân giải 8 bit. Bạn có thể chọn các thuộc tính khác, khác với các thuộc tính này, để tạo các tín hiệu PWM khác nhau.Bộ khởi động cơ bản LAFVIN ESP32 - Mã 6Trong setup(), bạn cần cấu hình LED PWM với các thuộc tính bạn đã xác định trước đó bằng cách sử dụng hàm ledcSetup() chấp nhận ledChannel, tần số và độ phân giải làm đối số như sau:Bộ khởi động cơ bản LAFVIN ESP32 - Mã 8Tiếp theo, bạn cần chọn GPIO mà bạn sẽ lấy tín hiệu từ đó. Để làm được điều đó, hãy sử dụng hàm ledcAttachPin() chấp nhận các đối số là GPIO nơi bạn muốn lấy tín hiệu và kênh tạo ra tín hiệu. Trong ví dụ nàyample, chúng ta sẽ lấy tín hiệu trong ledPin GPIO, tương ứng với GPIO 4. Kênh tạo ra tín hiệu là ledChannel, tương ứng với kênh 0.Bộ khởi động cơ bản LAFVIN ESP32 - Mã 9Trong vòng lặp, bạn sẽ thay đổi chu kỳ hoạt động giữa 0 và 255 để tăng độ sáng của đèn LED.Bộ khởi động cơ bản LAFVIN ESP32 - độ sángVà sau đó, giữa 255 và 0 để giảm độ sáng.Bộ khởi động cơ bản LAFVIN ESP32 - độ sáng 1Để thiết lập độ sáng của đèn LED, bạn chỉ cần sử dụng hàm ledcWrite() chấp nhận kênh tạo tín hiệu và chu kỳ hoạt động làm đối số.Bộ khởi động cơ bản LAFVIN ESP32 - độ sáng 2Vì chúng ta sử dụng độ phân giải 8 bit, chu kỳ hoạt động sẽ được điều khiển bằng giá trị từ 0 đến 255. Lưu ý rằng trong hàm ledcWrite(), chúng ta sử dụng kênh tạo tín hiệu chứ không phải GPIO.

Kiểm tra Example

Tải mã lên ESP32 của bạn. Đảm bảo bạn đã chọn đúng bo mạch và cổng COM. Xem mạch của bạn. Bạn sẽ có một đèn LED mờ có thể tăng và giảm độ sáng.Bộ khởi động cơ bản LAFVIN ESP32 - Kiểm tra Example

Dự án 4 Cảm biến chuyển động ESP32 PIR

Dự án này cho thấy cách phát hiện chuyển động bằng ESP32 sử dụng cảm biến chuyển động PIR. Chuông báo sẽ kêu khi phát hiện chuyển động và dừng báo khi không phát hiện chuyển động trong thời gian cài đặt trước (chẳng hạn như 4 giây)
Cảm biến chuyển động HC-SR501 hoạt động như thế nào
.Bộ khởi động cơ bản LAFVIN ESP32 - Motion Sensor WorksNguyên lý hoạt động của cảm biến HC-SR501 dựa trên sự thay đổi của bức xạ hồng ngoại trên vật thể chuyển động. Để được cảm biến HC-SR501 phát hiện, vật thể phải đáp ứng hai yêu cầu:

  • Vật thể này phát ra tia hồng ngoại.
  • Vật thể đang di chuyển hoặc rung chuyển

Vì thế:
Nếu một vật thể phát ra tia hồng ngoại nhưng không di chuyển (ví dụ, một người đứng yên mà không di chuyển), thì cảm biến sẽ không phát hiện ra vật thể đó.
Nếu một vật thể đang chuyển động nhưng không phát ra tia hồng ngoại (ví dụ như rô-bốt hoặc xe cộ), thì cảm biến KHÔNG phát hiện được vật thể đó.
Giới thiệu về Bộ đếm thời gian
Trong ví dụ nàyample chúng tôi cũng sẽ giới thiệu bộ hẹn giờ. Chúng tôi muốn đèn LED sáng trong một số giây được xác định trước sau khi phát hiện chuyển động. Thay vì sử dụng hàm delay() chặn mã của bạn và không cho phép bạn làm bất cứ điều gì khác trong một số giây được xác định, chúng ta nên sử dụng bộ hẹn giờ.Bộ khởi động cơ bản LAFVIN ESP32 - Giới thiệu bộ hẹn giờHàm delay()
Bạn nên quen thuộc với hàm delay() vì nó được sử dụng rộng rãi. Hàm này khá dễ sử dụng. Nó chấp nhận một số int làm đối số.
Con số này biểu thị thời gian tính bằng mili giây mà chương trình phải chờ cho đến khi chuyển sang dòng mã tiếp theo.Bộ khởi động cơ bản LAFVIN ESP32 - mãKhi bạn thực hiện lệnh delay(1000), chương trình của bạn sẽ dừng ở dòng đó trong 1 giây.
delay() là một hàm chặn. Các hàm chặn ngăn chương trình thực hiện bất kỳ việc gì khác cho đến khi tác vụ cụ thể đó hoàn thành. Nếu bạn cần nhiều tác vụ xảy ra cùng lúc, bạn không thể sử dụng delay().
Đối với hầu hết các dự án, bạn nên tránh sử dụng lệnh trì hoãn và thay vào đó hãy sử dụng bộ hẹn giờ.
Hàm millis()
Sử dụng hàm millis() bạn có thể trả về số mili giây đã trôi qua kể từ khi chương trình bắt đầu.Bộ khởi động cơ bản LAFVIN ESP32 - chương trình đầu tiên được bắt đầuTại sao hàm đó lại hữu ích? Bởi vì bằng cách sử dụng một số phép toán, bạn có thể dễ dàng xác minh được thời gian đã trôi qua mà không chặn mã của mình.
Các bộ phận cần thiết
Để làm theo hướng dẫn này, bạn cần những phần sau

  • Bo mạch ESP32 DEVKIT V1
  • Cảm biến chuyển động PIR (HC-SR501)
  • Bộ rung hoạt động
  • Dây nối
  • Bảng mạch cắm

Sơ đồBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồ 1Ghi chú: Tập làm việctage của HC-SR501 là 5V. Sử dụng chân Vin để cấp nguồn cho nó.
Mã số
Trước khi tiến hành hướng dẫn này, bạn nên cài đặt tiện ích bổ sung ESP32 trong Arduino IDE của mình. Thực hiện theo một trong các hướng dẫn sau để cài đặt ESP32 trên Arduino IDE, nếu bạn chưa thực hiện. (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Mở mã Project_4_ESP32_PIR_Motion_Sensor.ino trong Arduino IDE.
Biểu tình
Tải mã lên bo mạch ESP32 của bạn. Đảm bảo bạn đã chọn đúng bo mạch và cổng COM. Tải các bước tham chiếu mã.
Mở Serial Monitor ở tốc độ truyền 115200.Bộ khởi động cơ bản LAFVIN ESP32 - Bản trình diễn 1Di chuyển tay của bạn trước cảm biến PIR. Chuông báo sẽ bật và thông báo được in trên Serial Monitor với nội dung “Phát hiện chuyển động! Chuông báo động”.
Sau 4 giây, còi báo động sẽ tắt.Bộ khởi động cơ bản LAFVIN ESP32 - còi báo động

Dự án 5 ESP32 Switch Web Máy chủ

Trong dự án này bạn sẽ tạo một ứng dụng độc lập web máy chủ với ESP32 điều khiển đầu ra (hai đèn LED) bằng môi trường lập trình Arduino IDE. web máy chủ phản hồi trên thiết bị di động và có thể truy cập bằng bất kỳ thiết bị nào như trình duyệt trên mạng cục bộ. Chúng tôi sẽ chỉ cho bạn cách tạo web máy chủ và cách mã hoạt động từng bước.
Dự án kết thúcview
Trước khi đi thẳng vào dự án, điều quan trọng là phải phác thảo mục tiêu của chúng tôi web máy chủ sẽ thực hiện, do đó, bạn có thể dễ dàng thực hiện các bước sau.

  • Các web máy chủ bạn sẽ xây dựng sẽ điều khiển hai đèn LED được kết nối với ESP32 GPIO 26 và GPIO 27;
  • Bạn có thể truy cập ESP32 web máy chủ bằng cách nhập địa chỉ IP ESP32 trên trình duyệt trong mạng cục bộ;
  • Bằng cách nhấp vào các nút trên web Máy chủ cho phép bạn thay đổi trạng thái của từng đèn LED ngay lập tức.

Các bộ phận cần thiết
Đối với hướng dẫn này, bạn sẽ cần những phần sau:

  • Bo mạch ESP32 DEVKIT V1
  • 2x đèn LED 5mm
  • 2x điện trở 200 Ohm
  • Bảng mạch cắm
  • Dây nối

Sơ đồ
Bắt đầu bằng cách xây dựng mạch. Kết nối hai đèn LED với ESP32 như trong sơ đồ sau – một đèn LED được kết nối với GPIO 26 và đèn còn lại được kết nối với GPIO 27.
Ghi chú: Chúng tôi đang sử dụng bo mạch ESP32 DEVKIT DOIT có 36 chân. Trước khi lắp ráp mạch, hãy đảm bảo bạn kiểm tra chân cắm của bo mạch bạn đang sử dụng.Bộ khởi động cơ bản LAFVIN ESP32 - Sơ đồMã số
Ở đây chúng tôi cung cấp mã tạo ra ESP32 web máy chủ. Mở mã Project_5_ESP32_Switch _Web_Server.ino trong Arduino IDE, nhưng đừng tải nó lên ngay. Bạn cần thực hiện một số thay đổi để nó hoạt động cho bạn.
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Thiết lập thông tin xác thực mạng của bạn
Bạn cần sửa đổi các dòng sau bằng thông tin đăng nhập mạng của bạn: SSID và mật khẩu. Mã được chú thích rõ ràng về nơi bạn nên thực hiện thay đổi.Bộ khởi động cơ bản LAFVIN ESP32 - Thông tin xác thực mạngTải lên mã
Bây giờ, bạn có thể tải mã và web máy chủ sẽ hoạt động ngay lập tức.
Thực hiện theo các bước sau để tải mã lên ESP32:

  1. Cắm bo mạch ESP32 vào máy tính;
  2. Trong Arduino IDE, hãy chọn bo mạch của bạn trong Công cụ > Bo mạch (trong trường hợp này, chúng tôi sử dụng bo mạch ESP32 DEVKIT DOIT);Bộ khởi động cơ bản LAFVIN ESP32 - Tải mã lên
  3. Chọn cổng COM trong Công cụ > Cổng.Bộ khởi động cơ bản LAFVIN ESP32 - Cổng công cụ
  4. Nhấn nút Tải lên trong Arduino IDE và đợi vài giây trong khi mã biên dịch và tải lên bo mạch của bạn.Bộ khởi động cơ bản LAFVIN ESP32 - ICON 7
  5. Chờ thông báo “Đã tải lên xong”.Bộ khởi động cơ bản LAFVIN ESP32 - Đã tải lên xong 1

Tìm địa chỉ IP ESP
Sau khi tải mã lên, hãy mở Serial Monitor ở tốc độ truyền 115200.Bộ khởi động cơ bản LAFVIN ESP32 - Địa chỉ IP ESPNhấn nút ESP32 EN (đặt lại). ESP32 kết nối với Wi-Fi và xuất địa chỉ IP ESP trên Serial Monitor. Sao chép địa chỉ IP đó, vì bạn cần nó để truy cập ESP32 web máy chủ.Bộ khởi động cơ bản LAFVIN ESP32 - web máy chủTruy cập vào Web Máy chủ
Để truy cập web máy chủ, mở trình duyệt của bạn, dán địa chỉ IP ESP32 và bạn sẽ thấy trang sau.
Ghi chú: Trình duyệt và ESP32 của bạn phải được kết nối với cùng một mạng LAN.Bộ khởi động cơ bản LAFVIN ESP32 - Truy cập Web Máy chủNếu bạn xem Serial Monitor, bạn có thể thấy những gì đang diễn ra ở chế độ nền. ESP nhận được yêu cầu HTTP từ một máy khách mới (trong trường hợp này là trình duyệt của bạn).Bộ khởi động cơ bản LAFVIN ESP32 - Yêu cầu HTTPBạn cũng có thể xem thông tin khác về yêu cầu HTTP.
Biểu tình
Bây giờ bạn có thể kiểm tra xem web Máy chủ đang hoạt động bình thường. Nhấp vào các nút để điều khiển đèn LED.Bộ khởi động cơ bản LAFVIN ESP32 - nền tảngĐồng thời, bạn có thể xem Serial Monitor để xem những gì đang diễn ra ở chế độ nền. Ví dụ:ample, khi bạn nhấp vào nút để bật GPIO 26, ESP32 nhận được yêu cầu trên /26/on URL.Bộ khởi động cơ bản LAFVIN ESP32 - URLKhi ESP32 nhận được yêu cầu đó, nó sẽ bật đèn LED được gắn vào GPIO 26 và cập nhật trạng thái của nó trên web trang.Bộ khởi động cơ bản LAFVIN ESP32 - web trangNút GPIO 27 hoạt động theo cách tương tự. Kiểm tra xem nó có hoạt động bình thường không.Bộ khởi động cơ bản LAFVIN ESP32 - hoạt động bình thường

Mã hoạt động như thế nào

Phần này sẽ xem xét kỹ hơn mã để biết nó hoạt động như thế nào.
Điều đầu tiên bạn cần làm là đưa thư viện WiFi vào.Bộ khởi động cơ bản LAFVIN ESP32 - Thư viện WiFiNhư đã đề cập trước đó, bạn cần nhập ssid và mật khẩu vào các dòng sau bên trong dấu ngoặc kép.Bộ khởi động cơ bản LAFVIN ESP32 - dấu ngoặc képSau đó, bạn thiết lập web máy chủ tới cổng 80.Bộ khởi động cơ bản LAFVIN ESP32 - web máy chủDòng sau đây tạo một biến để lưu trữ tiêu đề của yêu cầu HTTP:Bộ khởi động cơ bản LAFVIN ESP32 - HTTPrequestTiếp theo, bạn tạo các biến phụ trợ để lưu trữ trạng thái hiện tại của đầu ra. Nếu bạn muốn thêm nhiều đầu ra hơn và lưu trạng thái của chúng, bạn cần tạo thêm nhiều biến hơn.Bộ khởi động cơ bản LAFVIN ESP32 - biếnBạn cũng cần phải gán GPIO cho mỗi đầu ra của mình. Ở đây chúng tôi sử dụng GPIO 26 và GPIO 27. Bạn có thể sử dụng bất kỳ GPIO phù hợp nào khác.Bộ khởi động cơ bản LAFVIN ESP32 - phù hợp kháccài đặt()
Bây giờ, chúng ta hãy vào setup(). Đầu tiên, chúng ta bắt đầu giao tiếp nối tiếp ở tốc độ truyền 115200 cho mục đích gỡ lỗi.Bộ khởi động cơ bản LAFVIN ESP32 - mục đíchBạn cũng định nghĩa GPIO của mình là OUTPUT và đặt chúng ở mức THẤP.Bộ khởi động cơ bản LAFVIN ESP32 - GPIO làm ĐẦU RACác dòng sau bắt đầu kết nối Wi-Fi bằng WiFi.begin(ssid, password), đợi kết nối thành công và in địa chỉ IP ESP trong Serial Monitor.Bộ khởi động cơ bản LAFVIN ESP32 - SerialBộ khởi động cơ bản LAFVIN ESP32 - Serial 1vòng lặp()
Trong vòng lặp(), chúng tôi lập trình những gì xảy ra khi một máy khách mới thiết lập kết nối với web máy chủ.
ESP32 luôn lắng nghe các máy khách đang đến bằng dòng lệnh sau:Bộ khởi động cơ bản LAFVIN ESP32 - vòng lặpKhi nhận được yêu cầu từ máy khách, chúng tôi sẽ lưu dữ liệu đến. Vòng lặp while sau đó sẽ chạy miễn là máy khách vẫn kết nối. Chúng tôi không khuyên bạn nên thay đổi phần mã sau trừ khi bạn biết chính xác mình đang làm gì.Bộ khởi động cơ bản LAFVIN ESP32 - chính xácBộ khởi động cơ bản LAFVIN ESP32 - chính xác là 1Bộ khởi động cơ bản LAFVIN ESP32 - chính xác là 2Phần tiếp theo của các câu lệnh if và else sẽ kiểm tra nút nào đã được nhấn trong web trang và kiểm soát các đầu ra theo đó. Như chúng ta đã thấy trước đây, chúng tôi đưa ra yêu cầu về các URLs tùy thuộc vào nút được nhấn.Bộ khởi động cơ bản LAFVIN ESP32 - nhấn nútBộ khởi động cơ bản LAFVIN ESP32 - nhấn nút 1Ví dụample, nếu bạn nhấn nút GPIO 26 ON, ESP32 sẽ nhận được yêu cầu trên /26/ON URL (chúng ta có thể thấy thông tin đó trên tiêu đề HTTP trên Serial Monitor). Vì vậy, chúng ta có thể kiểm tra xem tiêu đề có chứa biểu thức GET /26/on không. Nếu có, chúng ta thay đổi biến output26state thành ON và ESP32 bật đèn LED.
Thao tác này cũng tương tự với các nút khác. Vì vậy, nếu bạn muốn thêm nhiều đầu ra hơn, bạn nên sửa đổi phần mã này để bao gồm chúng.
Hiển thị HTML web trang
Điều tiếp theo bạn cần làm là tạo ra web trang. ESP32 sẽ gửi phản hồi đến trình duyệt của bạn với một số mã HTML để xây dựng web trang.
Các web trang được gửi đến máy khách bằng cách sử dụng biểu thức client.println() này. Bạn nên nhập nội dung bạn muốn gửi đến máy khách làm đối số.
Dòng đầu tiên chúng ta nên gửi luôn là dòng sau, cho biết chúng ta đang gửi HTML.Bộ khởi động cơ bản LAFVIN ESP32 - gửi HTMLSau đó, dòng sau đây làm cho web trang đáp ứng trong bất kỳ web trình duyệt.Bộ khởi động cơ bản LAFVIN ESP32 - web trình duyệtVà dòng sau được sử dụng để ngăn chặn các yêu cầu trên favicon. – Bạn không cần phải lo lắng về dòng này.Bộ khởi động cơ bản LAFVIN ESP32 - client.println

Tạo kiểu Web Trang

Tiếp theo, chúng ta có một số văn bản CSS để tạo kiểu cho các nút và web giao diện trang.
Chúng tôi chọn phông chữ Helvetica, xác định nội dung sẽ hiển thị dưới dạng khối và căn chỉnh ở giữa.Bộ khởi động cơ bản LAFVIN ESP32 - Tạo kiểu Web TrangChúng tôi định dạng các nút của mình bằng màu #4CAF50, không có đường viền, văn bản màu trắng và có phần đệm này: 16px 40px. Chúng tôi cũng đặt text-decoration thành none, xác định kích thước phông chữ, lề và con trỏ thành con trỏ.Bộ khởi động cơ bản LAFVIN ESP32 - con trỏChúng tôi cũng định nghĩa kiểu cho nút thứ hai, với tất cả các thuộc tính của nút mà chúng tôi đã định nghĩa trước đó, nhưng với màu khác. Đây sẽ là kiểu cho nút tắt.Bộ khởi động cơ bản LAFVIN ESP32 - client.println 1

Thiết lập Web Tiêu đề đầu tiên của trang
Ở dòng tiếp theo, bạn có thể đặt tiêu đề đầu tiên của web trang. Ở đây chúng ta có “ESP32 Web Máy chủ”, nhưng bạn có thể thay đổi văn bản này thành bất kỳ nội dung nào bạn thích.Bộ khởi động cơ bản LAFVIN ESP32 - Web Tiêu đề trangHiển thị các nút và trạng thái tương ứng
Sau đó, bạn viết một đoạn văn để hiển thị trạng thái hiện tại của GPIO 26. Như bạn thấy, chúng ta sử dụng biến output26State để trạng thái được cập nhật ngay lập tức khi biến này thay đổi.Bộ khởi động cơ bản LAFVIN ESP32 - thay đổi đa dạngSau đó, chúng tôi hiển thị nút bật hoặc tắt, tùy thuộc vào trạng thái hiện tại của GPIO. Nếu trạng thái hiện tại của GPIO là tắt, chúng tôi hiển thị nút BẬT, nếu không, chúng tôi hiển thị nút TẮT.Bộ khởi động cơ bản LAFVIN ESP32 - hiển thị nút TẮTChúng tôi sử dụng quy trình tương tự cho GPIO 27.
Đóng kết nối
Cuối cùng, khi phản hồi kết thúc, chúng ta xóa biến tiêu đề và dừng kết nối với máy khách bằng client.stop().Bộ khởi động cơ bản LAFVIN ESP32 - Đóng kết nối

Kết thúc

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách xây dựng một web máy chủ với ESP32. Chúng tôi đã chỉ cho bạn một ví dụ đơn giảnample điều khiển hai đèn LED, nhưng ý tưởng là thay thế các đèn LED đó bằng rơ le hoặc bất kỳ đầu ra nào khác mà bạn muốn điều khiển.

Dự án 6 Đèn LED RGB Web Máy chủ

Trong dự án này, chúng tôi sẽ chỉ cho bạn cách điều khiển từ xa đèn LED RGB bằng bo mạch ESP32 bằng cách sử dụng web máy chủ có công cụ chọn màu.
Dự án kết thúcview
Trước khi bắt đầu, chúng ta hãy xem dự án này hoạt động như thế nào:Bộ khởi động cơ bản LAFVIN ESP32 - Dự án kết thúcview

  • ESP32 là gì? web máy chủ hiển thị công cụ chọn màu.
  • Khi bạn chọn một màu, trình duyệt của bạn sẽ đưa ra yêu cầu trên URL chứa các tham số R, G và B của màu đã chọn.
  • ESP32 của bạn nhận được yêu cầu và chia giá trị cho từng tham số màu.
  • Sau đó, nó gửi tín hiệu PWM có giá trị tương ứng đến các GPIO đang điều khiển đèn LED RGB.

Đèn LED RGB hoạt động như thế nào?
Trong đèn LED RGB catốt chung, cả ba đèn LED đều chia sẻ một kết nối âm (cực âm). Tất cả những gì có trong bộ sản phẩm đều là RGB catốt chung.Bộ khởi động cơ bản LAFVIN ESP32 - Đèn LED RGB hoạt độngLàm thế nào để tạo ra nhiều màu sắc khác nhau?
Tất nhiên, với đèn LED RGB, bạn có thể tạo ra ánh sáng đỏ, xanh lá cây và xanh lam, và bằng cách cấu hình cường độ của từng đèn LED, bạn cũng có thể tạo ra các màu khác.
Ví dụample, để tạo ra ánh sáng xanh thuần túy, bạn sẽ đặt đèn LED xanh ở cường độ cao nhất và đèn LED xanh lá cây và đỏ ở cường độ thấp nhất. Đối với ánh sáng trắng, bạn sẽ đặt cả ba đèn LED ở cường độ cao nhất.
Trộn màu
Để tạo ra các màu khác, bạn có thể kết hợp ba màu ở các cường độ khác nhau. Để điều chỉnh cường độ của mỗi đèn LED, bạn có thể sử dụng tín hiệu PWM.
Vì các đèn LED nằm rất gần nhau nên mắt chúng ta nhìn thấy kết quả của sự kết hợp màu sắc, thay vì ba màu riêng lẻ.
Để biết cách kết hợp màu sắc, hãy xem biểu đồ sau.
Đây là bảng pha màu đơn giản nhất nhưng giúp bạn hiểu cách thức hoạt động và cách tạo ra các màu sắc khác nhau.Bộ khởi động cơ bản LAFVIN ESP32 - nhiều màu sắc khác nhauCác bộ phận cần thiết
Đối với dự án này, bạn cần những bộ phận sau:

  • Bo mạch ESP32 DEVKIT V1
  • Đèn LED RGB
  • 3 điện trở 220 ohm
  • Dây nối
  • Bảng mạch cắm

Sơ đồBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồMã số
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)

  • Cài đặt ESP32 Add-on trong Arduino IDE

Sau khi lắp ráp mạch, mở mã
Dự án_6_RGB_LED_Web_Server.ino trong Arduino IDE.
Trước khi tải mã lên, đừng quên nhập thông tin đăng nhập mạng để ESP có thể kết nối với mạng cục bộ của bạn.Bộ khởi động cơ bản LAFVIN ESP32 - mạng cục bộMã hoạt động như thế nào
Bản phác thảo ESP32 sử dụng thư viện WiFi.h.Bộ khởi động cơ bản LAFVIN ESP32 - Thư viện WiFi.hCác dòng sau định nghĩa các biến chuỗi để chứa các tham số R, G và B từ yêu cầu.Bộ khởi động cơ bản LAFVIN ESP32 - Chuỗi redStringBốn biến tiếp theo được sử dụng để giải mã yêu cầu HTTP sau này.Bộ khởi động cơ bản LAFVIN ESP32 - Yêu cầu HTTPTạo ba biến cho GPIO sẽ điều khiển các tham số R, G và B của dải. Trong trường hợp này, chúng tôi sử dụng GPIO 13, GPIO 12 và GPIO 14.Bộ khởi động cơ bản LAFVIN ESP32 - GPIO cầnCác GPIO này cần xuất tín hiệu PWM, vì vậy trước tiên chúng ta cần cấu hình các thuộc tính PWM. Đặt tần số tín hiệu PWM thành 5000 Hz. Sau đó, liên kết một kênh PWM cho mỗi màuBộ khởi động cơ bản LAFVIN ESP32 - mỗi màuVà cuối cùng, thiết lập độ phân giải của các kênh PWM thành 8-bitBộ khởi động cơ bản LAFVIN ESP32 - Kênh PWMTrong setup(), gán các thuộc tính PWM cho các kênh PWMBộ khởi động cơ bản LAFVIN ESP32 - Kênh PWMĐính kèm các kênh PWM vào GPIO tương ứngBộ khởi động cơ bản LAFVIN ESP32 - GPIO tương ứngĐoạn mã sau đây hiển thị bộ chọn màu trong web và đưa ra yêu cầu dựa trên màu bạn đã chọn.Bộ khởi động cơ bản LAFVIN ESP32 - đã chọnBộ khởi động cơ bản LAFVIN ESP32 - client.printlnBộ khởi động cơ bản LAFVIN ESP32 - client.println 1Khi bạn chọn một màu, bạn sẽ nhận được yêu cầu theo định dạng sau.Bộ khởi động cơ bản LAFVIN ESP32 - định dạng sau

Vì vậy, chúng ta cần chia chuỗi này để có được các tham số R, G và B. Các tham số được lưu trong các biến redString, greenString và blueString và có thể có giá trị từ 0 đến 255.Bộ khởi động cơ bản LAFVIN ESP32 - đầu trangBộ khởi động cơ bản LAFVIN ESP32 - đầu 1Để điều khiển dải đèn bằng ESP32, hãy sử dụng hàm ledcWrite() để tạo tín hiệu PWM với các giá trị được giải mã từ HTTP lời yêu cầu.Bộ khởi động cơ bản LAFVIN ESP32 - Yêu cầu HTTP 1Ghi chú: tìm hiểu thêm về PWM với ESP32: Dự án 3 ESP32 PWM (Đầu ra tương tự)
Để điều khiển dải bằng ESP8266, chúng ta chỉ cần sử dụng
hàm analogWrite() để tạo tín hiệu PWM với các giá trị được giải mã từ yêu cầu HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Vì chúng ta lấy các giá trị trong một biến chuỗi nên chúng ta cần chuyển đổi chúng thành số nguyên bằng phương thức toInt().
Biểu tình
Sau khi nhập thông tin xác thực mạng, hãy chọn đúng bo mạch và cổng COM rồi tải mã lên ESP32. Tải mã tham chiếu lên các bước.
Sau khi tải lên, hãy mở Serial Monitor ở tốc độ truyền 115200 và nhấn nút ESP Enable/Reset. Bạn sẽ nhận được địa chỉ IP của bo mạch.Bộ khởi động cơ bản LAFVIN ESP32 - cùng LANMở trình duyệt và nhập địa chỉ IP ESP. Bây giờ, sử dụng công cụ chọn màu để chọn màu cho đèn LED RGB.
Sau đó, bạn cần nhấn nút “Đổi màu” để màu có hiệu lực.Bộ khởi động cơ bản LAFVIN ESP32 - Đèn LED RGBĐể tắt đèn LED RGB, hãy chọn màu đen.
Những màu mạnh nhất (ở đầu bảng chọn màu) là những màu sẽ tạo ra kết quả tốt hơn.Bộ khởi động cơ bản LAFVIN ESP32 - kết quả tốt hơn

Dự án 7 ESP32 Relay Web Máy chủ

Sử dụng rơle với ESP32 là một cách tuyệt vời để điều khiển các thiết bị gia dụng AC từ xa. Hướng dẫn này giải thích cách điều khiển mô-đun rơle bằng ESP32.
Chúng ta sẽ xem xét cách hoạt động của mô-đun rơle, cách kết nối rơle với ESP32 và xây dựng một web máy chủ để điều khiển rơle từ xa.
Giới thiệu về Relay
Rơ le là một công tắc hoạt động bằng điện và giống như bất kỳ công tắc nào khác, nó có thể được bật hoặc tắt, cho dòng điện đi qua hoặc không. Nó có thể được điều khiển bằng điện áp thấptages, giống như 3.3V được cung cấp bởi ESP32 GPIO và cho phép chúng ta kiểm soát âm lượng caotagnhư 12V, 24V hoặc điện áp chínhtage (230V ở Châu Âu và 120V ở Hoa Kỳ).Bộ khởi động cơ bản LAFVIN ESP32 - Giới thiệu về Rơ leỞ phía bên trái, có hai bộ ba ổ cắm để kết nối âm lượng caotages, và các chân ở phía bên phải (vol thấptage) kết nối với GPIO ESP32.
điện lướitage Kết nốiBộ khởi động cơ bản LAFVIN ESP32 - Mains Voltage Kết nốiMô-đun rơ le được hiển thị trong ảnh trước có hai đầu nối, mỗi đầu nối có ba ổ cắm: chung (COM), thường đóng (NC) và thường mở (NO).

  • COM: kết nối dòng điện bạn muốn kiểm soát (điện áp chínhtagvà).
  • NC (Bình thường đóng): cấu hình bình thường đóng được sử dụng khi bạn muốn rơle đóng theo mặc định. NC là chân COM được kết nối, nghĩa là dòng điện đang chạy trừ khi bạn gửi tín hiệu từ ESP32 đến mô-đun rơle để mở mạch và dừng dòng điện chạy qua.
  • KHÔNG (Thường mở): cấu hình thường mở hoạt động ngược lại: không có kết nối nào giữa chân NO và COM, do đó mạch sẽ bị hỏng trừ khi bạn gửi tín hiệu từ ESP32 để đóng mạch.

Chân điều khiểnBộ khởi động cơ bản LAFVIN ESP32 - Chốt điều khiểnVol thấptage bên có một bộ bốn chân và một bộ ba chân. Bộ đầu tiên bao gồm VCC và GND để cấp nguồn cho mô-đun, và đầu vào 1 (IN1) và đầu vào 2 (IN2) để điều khiển rơle dưới và trên tương ứng.
Nếu mô-đun rơle của bạn chỉ có một kênh, bạn sẽ chỉ có một chân IN. Nếu bạn có bốn kênh, bạn sẽ có bốn chân IN, v.v.
Tín hiệu bạn gửi đến chân IN sẽ xác định rơ le có hoạt động hay không. Rơ le được kích hoạt khi đầu vào xuống dưới khoảng 2V. Điều này có nghĩa là bạn sẽ có các tình huống sau:

  • Cấu hình thường đóng (NC):
  • Tín hiệu CAO – dòng điện đang chạy
  • Tín hiệu THẤP – dòng điện không chạy qua
  • Cấu hình thường mở (NO):
  • Tín hiệu CAO – dòng điện không chạy qua
  • Tín hiệu THẤP – dòng điện đang chạy

Bạn nên sử dụng cấu hình thường đóng khi dòng điện phải chạy qua hầu hết thời gian và bạn chỉ muốn dừng nó thỉnh thoảng.
Sử dụng cấu hình mở thông thường khi bạn muốn dòng điện chạy qua thỉnh thoảng (ví dụample, bật alamp thỉnh thoảng).
Lựa chọn nguồn điệnBộ khởi động cơ bản LAFVIN ESP32 - Lựa chọn nguồn điệnBộ chân thứ hai bao gồm các chân GND, VCC và JD-VCC.
Chân JD-VCC cấp nguồn cho nam châm điện của rơle. Lưu ý rằng mô-đun có nắp nhảy kết nối chân VCC và JD-VCC; nắp được hiển thị ở đây có màu vàng, nhưng của bạn có thể có màu khác.
Khi bật nắp jumper, chân VCC và JD-VCC được kết nối. Điều đó có nghĩa là nam châm điện rơle được cấp nguồn trực tiếp từ chân nguồn ESP32, do đó mô-đun rơle và mạch ESP32 không bị cô lập về mặt vật lý với nhau.
Nếu không có nắp jumper, bạn cần cung cấp nguồn điện độc lập để cấp nguồn cho nam châm điện của rơle thông qua chân JD-VCC. Cấu hình đó cô lập vật lý các rơle khỏi ESP32 bằng bộ ghép quang tích hợp của mô-đun, giúp ngăn ngừa hư hỏng cho ESP32 trong trường hợp có xung điện.
Sơ đồBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồCảnh báo: Sử dụng vol caotagNguồn điện có thể gây thương tích nghiêm trọng.
Do đó, đèn LED 5mm được sử dụng thay cho nguồn cung cấp có dung lượng lớntagbóng đèn e trong thí nghiệm. Nếu bạn không quen với điện áp chínhtage hãy hỏi ai đó để được giúp đỡ. Trong khi lập trình ESP hoặc đấu dây mạch điện của bạn, hãy đảm bảo mọi thứ được ngắt kết nối khỏi nguồn điệntage.Bộ khởi động cơ bản LAFVIN ESP32 - nguồn điện chínhtageCài đặt thư viện cho ESP32
Để xây dựng điều này web máy chủ, chúng tôi sử dụng ESPAsyncWebThư viện máy chủ và Thư viện AsyncTCP.
Cài đặt ESPAsyncWebThư viện máy chủ
Thực hiện theo các bước tiếp theo để cài đặt Đồng bộ ESPAWebMáy chủ thư viện:

  1. Nhấp vào đây để tải xuống ESPAsyncWebThư viện máy chủ. Bạn nên có
    một thư mục .zip trong thư mục Tải xuống của bạn
  2. Giải nén thư mục .zip và bạn sẽ nhận được ESPAsyncWebThư mục máy chủ-chủ
  3. Đổi tên thư mục của bạn từ ESPAsyncWebServer-master đến ESPAsyncWebMáy chủ
  4. Di chuyển ESPAsyncWebThư mục máy chủ vào thư mục thư viện cài đặt Arduino IDE của bạn

Ngoài ra, trong Arduino IDE của bạn, bạn có thể vào Sketch > Include
Thư viện > Thêm thư viện .ZIP… và chọn thư viện bạn vừa tải xuống.
Cài đặt thư viện AsyncTCP cho ESP32
Các Đồng bộ ESPAWebMáy chủ thư viện yêu cầu Không đồng bộ TCP thư viện để làm việc. Theo dõi
các bước tiếp theo để cài đặt thư viện đó:

  1. Nhấp vào đây để tải xuống thư viện AsyncTCP. Bạn sẽ có một thư mục .zip trong thư mục Tải xuống của mình
  2. Giải nén thư mục .zip và bạn sẽ nhận được thư mục AsyncTCP-master
    1. Đổi tên thư mục của bạn từ AsyncTCP-master thành AsyncTCP
    3. Di chuyển thư mục AsyncTCP vào thư mục thư viện cài đặt Arduino IDE của bạn
    4. Cuối cùng, hãy mở lại Arduino IDE của bạn

Ngoài ra, trong Arduino IDE của bạn, bạn có thể vào Sketch > Include
Thư viện > Thêm thư viện .ZIP… và chọn thư viện bạn vừa tải xuống.
Mã số
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Sau khi cài đặt các thư viện cần thiết, hãy mở mã Project_7_ESP32_Relay_Web_Server.ino trong Arduino IDE.
Trước khi tải mã lên, đừng quên nhập thông tin đăng nhập mạng để ESP có thể kết nối với mạng cục bộ của bạn.Bộ khởi động cơ bản LAFVIN ESP32 - mạng ocalBiểu tình
Sau khi thực hiện những thay đổi cần thiết, hãy tải mã lên ESP32. Tải mã tham chiếu lên các bước.
Mở Serial Monitor ở tốc độ truyền 115200 và nhấn nút ESP32 EN để lấy địa chỉ IP của nó. Sau đó, mở trình duyệt trong mạng cục bộ của bạn và nhập địa chỉ IP ESP32 để truy cập vào web máy chủ.
Mở Serial Monitor ở tốc độ truyền 115200 và nhấn nút ESP32 EN để lấy địa chỉ IP của nó. Sau đó, mở trình duyệt trong mạng cục bộ của bạn và nhập địa chỉ IP ESP32 để truy cập vào web máy chủ.Bộ khởi động cơ bản LAFVIN ESP32 - web máy chủGhi chú: Trình duyệt và ESP32 của bạn phải được kết nối với cùng một mạng LAN.
Bạn sẽ nhận được kết quả như sau với số lượng rơ le tương ứng với hai nút mà bạn đã xác định trong mã của mình.Bộ khởi động cơ bản LAFVIN ESP32 - điện thoại thông minhBây giờ, bạn có thể sử dụng các nút để điều khiển rơ le bằng điện thoại thông minh.Bộ khởi động cơ bản LAFVIN ESP32 - điện thoại thông minh 1

Dự án_8_Đồng bộ hóa trạng thái đầu ra_ Web_Máy chủ

Dự án này cho thấy cách kiểm soát đầu ra ESP32 hoặc ESP8266 bằng cách sử dụng web máy chủ và nút vật lý cùng lúc. Trạng thái đầu ra được cập nhật trên web trang cho dù nó được thay đổi thông qua nút vật lý hay web máy chủ.
Dự án kết thúcview
Chúng ta hãy cùng xem nhanh cách thức hoạt động của dự án.Bộ khởi động cơ bản LAFVIN ESP32 - Dự án kết thúcviewESP32 hoặc ESP8266 lưu trữ một web máy chủ cho phép bạn kiểm soát trạng thái của đầu ra;

  • Trạng thái đầu ra hiện tại được hiển thị trên web máy chủ;
  • ESP cũng được kết nối với một nút nhấn vật lý để điều khiển cùng một đầu ra;
  • Nếu bạn thay đổi trạng thái đầu ra bằng nút nhấn vật lý, trạng thái hiện tại của nó cũng được cập nhật trên web máy chủ.

Tóm lại, dự án này cho phép bạn kiểm soát cùng một đầu ra bằng cách sử dụng web máy chủ và một nút nhấn đồng thời. Bất cứ khi nào trạng thái đầu ra thay đổi, web máy chủ đã được cập nhật.
Các bộ phận cần thiết
Sau đây là danh sách các bộ phận bạn cần để xây dựng mạch điện:

  • Bo mạch ESP32 DEVKIT V1
  • ĐÈN LED 5mm
  • Điện trở 220Ohm
  • Nút nhấn
  • Điện trở 10k Ohm
  • Bảng mạch cắm
  • Dây nối

Sơ đồBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồ 1Cài đặt thư viện cho ESP32
Để xây dựng điều này web máy chủ, chúng tôi sử dụng ESPAsyncWebThư viện máy chủ và Thư viện AsyncTCP. (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESPAsyncWebThư viện máy chủ
Thực hiện theo các bước tiếp theo để cài đặt ESPAsyncWebThư viện máy chủ:

  1. Nhấp vào đây để tải xuống ESPAsyncWebThư viện máy chủ. Bạn nên có
    một thư mục .zip trong thư mục Tải xuống của bạn
  2. Giải nén thư mục .zip và bạn sẽ nhận được ESPAsyncWebThư mục máy chủ-chủ
  3. Đổi tên thư mục của bạn từ ESPAsyncWebServer-master đến ESPAsyncWebMáy chủ
  4. Di chuyển ESPAsyncWebThư mục máy chủ vào thư mục thư viện cài đặt Arduino IDE của bạn
    Ngoài ra, trong Arduino IDE của bạn, bạn có thể vào Sketch > Include
    Thư viện > Thêm thư viện .ZIP… và chọn thư viện bạn vừa tải xuống.

Cài đặt thư viện AsyncTCP cho ESP32
ESPAsyncWebThư viện máy chủ yêu cầu thư viện AsyncTCP để hoạt động. Thực hiện theo các bước tiếp theo để cài đặt thư viện đó:

  1. Nhấp vào đây để tải xuống thư viện AsyncTCP. Bạn sẽ có một thư mục .zip trong thư mục Tải xuống của mình
  2. Giải nén thư mục .zip và bạn sẽ nhận được thư mục AsyncTCP-master
  3. Đổi tên thư mục của bạn từ AsyncTCP-master thành AsyncTCP
  4. Di chuyển thư mục AsyncTCP vào thư mục thư viện cài đặt Arduino IDE của bạn
  5. Cuối cùng, hãy mở lại Arduino IDE của bạn
    Ngoài ra, trong Arduino IDE của bạn, bạn có thể vào Sketch > Include
    Thư viện > Thêm thư viện .ZIP… và chọn thư viện bạn vừa tải xuống.

Mã số
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Sau khi cài đặt các thư viện cần thiết, hãy mở mã
Dự án_8_Đồng bộ hóa trạng thái đầu ra_Web_Server.ino trong Arduino IDE.
Trước khi tải mã lên, đừng quên nhập thông tin đăng nhập mạng để ESP có thể kết nối với mạng cục bộ của bạn.Bộ khởi động cơ bản LAFVIN ESP32 - Mã

Mã hoạt động như thế nào

Trạng thái nút và trạng thái đầu ra
Biến ledState giữ trạng thái đầu ra LED. Theo mặc định, khi web máy chủ khởi động, mức THẤP.Bộ khởi động cơ bản LAFVIN ESP32 - Code Works

buttonState và lastButtonState được sử dụng để phát hiện xem nút nhấn có được nhấn hay không.Bộ khởi động cơ bản LAFVIN ESP32 - đã được ấn hànhCái nút (web người phục vụ)
Chúng tôi không bao gồm mã HTML để tạo nút trên biến index_html.
Bởi vì chúng ta muốn có thể thay đổi tùy thuộc vào trạng thái đèn LED hiện tại, điều này cũng có thể được thay đổi bằng nút nhấn.
Vì vậy, chúng ta đã tạo một trình giữ chỗ cho nút %BUTTONPLACEHOLDER% sẽ được thay thế bằng văn bản HTML để tạo nút sau trong mã (điều này được thực hiện trong hàm processor()).Bộ khởi động cơ bản LAFVIN ESP32 - đã được nhấn 1bộ xử lý()
Hàm processor() thay thế bất kỳ chỗ giữ chỗ nào trên văn bản HTML bằng các giá trị thực. Đầu tiên, nó kiểm tra xem văn bản HTML có chứa bất kỳ
chỗ giữ chỗ %BUTTONPLACEHOLDER%.Bộ khởi động cơ bản LAFVIN ESP32 - bộ xử lýSau đó, gọi hàm outputState() trả về trạng thái đầu ra hiện tại. Chúng ta lưu nó trong biến outputStateValue.Bộ khởi động cơ bản LAFVIN ESP32 - outputStateSau đó, sử dụng giá trị đó để tạo văn bản HTML nhằm hiển thị nút có trạng thái phù hợp:Bộ khởi động cơ bản LAFVIN ESP32 - mã 4Yêu cầu HTTP GET để thay đổi trạng thái đầu ra (JavaScript)
Khi bạn nhấn nút, hàm toggleCheckbox() được gọi. Hàm này sẽ thực hiện yêu cầu trên các URLs để bật hoặc tắt đèn LED.Bộ khởi động cơ bản LAFVIN ESP32 - JavaScriptĐể bật đèn LED, nó sẽ đưa ra yêu cầu trên /update?state=1 URL:Bộ khởi động cơ bản LAFVIN ESP32 - element.checkedNếu không, nó sẽ thực hiện yêu cầu trên /update?state=0 URL.
Yêu cầu HTTP GET để cập nhật trạng thái (JavaScript)
Để giữ trạng thái đầu ra được cập nhật trên web máy chủ, chúng ta gọi hàm sau để thực hiện yêu cầu mới trên /state URL mỗi giây.Bộ khởi động cơ bản LAFVIN ESP32 - Cập nhật trạng tháiBộ khởi động cơ bản LAFVIN ESP32 - Cập nhật trạng thái 1xử lý yêu cầu
Sau đó, chúng ta cần xử lý những gì xảy ra khi ESP32 hoặc ESP8266 nhận được yêu cầu trên những URLs.
Khi một yêu cầu được nhận trên root /URL, chúng tôi gửi cả trang HTML cũng như bộ xử lý.Bộ khởi động cơ bản LAFVIN ESP32 - Xử lý yêu cầuBộ khởi động cơ bản LAFVIN ESP32 - Yêu cầu xử lý 1Các dòng sau đây kiểm tra xem bạn có nhận được yêu cầu trên /update?state=1 hay /update?state=0 không URL và thay đổi ledState cho phù hợp.Bộ khởi động cơ bản LAFVIN ESP32 - ledStateBộ khởi động cơ bản LAFVIN ESP32 - inputParamKhi một yêu cầu được nhận trên /state URL, chúng tôi gửi trạng thái đầu ra hiện tại:Bộ khởi động cơ bản LAFVIN ESP32 - trạng thái đầu ravòng lặp()
Trong vòng lặp(), chúng ta hủy nút nhấn và bật hoặc tắt đèn LED tùy thuộc vào giá trị của ledState biến đổi.Bộ khởi động cơ bản LAFVIN ESP32 - vòng 1Biểu tình
Tải mã lên bo mạch ESP32 của bạn. Tải lên các bước tham chiếu mã.
Sau đó, mở Serial Monitor ở tốc độ truyền 115200. Nhấn nút EN/RST trên bo mạch để lấy địa chỉ IP.Bộ khởi động cơ bản LAFVIN ESP32 - Trình diễnMở trình duyệt trên mạng cục bộ của bạn và nhập địa chỉ IP ESP. Bạn sẽ có quyền truy cập vào web máy chủ như hiển thị bên dưới.
Ghi chú: Trình duyệt và ESP32 của bạn phải được kết nối với cùng một mạng LAN.Bộ khởi động cơ bản LAFVIN ESP32 - trình duyệtBạn có thể chuyển đổi nút trên web máy chủ để bật đèn LED.Bộ khởi động cơ bản LAFVIN ESP32 - web máy chủ 1Bạn cũng có thể điều khiển cùng một đèn LED bằng nút nhấn vật lý. Trạng thái của nó sẽ luôn được cập nhật tự động trên web máy chủ.

Dự án 9 ESP32 DHT11 Web Máy chủ

Trong dự án này, bạn sẽ học cách xây dựng một ESP32 không đồng bộ web máy chủ có DHT11 hiển thị nhiệt độ và độ ẩm bằng Arduino IDE.
Điều kiện tiên quyết
Các web máy chủ chúng tôi sẽ xây dựng cập nhật các bài đọc tự động mà không cần phải làm mới web trang.
Với dự án này bạn sẽ học được:

  • Cách đọc nhiệt độ và độ ẩm từ cảm biến DHT;
  • Xây dựng một bất đồng bộ web máy chủ sử dụng Đồng bộ ESPAWebThư viện máy chủ;
  • Cập nhật các chỉ số cảm biến tự động mà không cần phải làm mới web trang.

Không đồng bộ Web Máy chủ
Để xây dựng web máy chủ chúng ta sẽ sử dụng Đồng bộ ESPAWebThư viện máy chủ cung cấp một cách dễ dàng để xây dựng một cách không đồng bộ web máy chủ. Xây dựng một máy chủ không đồng bộ web máy chủ có một số ưu điểmtages như đã đề cập trong trang GitHub của thư viện, chẳng hạn như:

  • “Xử lý nhiều kết nối cùng một lúc”;
  • “Khi bạn gửi phản hồi, bạn sẽ sẵn sàng xử lý các kết nối khác ngay lập tức trong khi máy chủ đang xử lý việc gửi phản hồi ở chế độ nền”;
  • “Công cụ xử lý mẫu đơn giản để xử lý các mẫu”;

Các bộ phận cần thiết
Để hoàn thành hướng dẫn này, bạn cần những phần sau:

  • Bo mạch phát triển ESP32
  • Mô-đun DHT11
  • Bảng mạch cắm
  • Dây nối

Sơ đồBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồ 2Cài đặt thư viện
Bạn cần cài đặt một số thư viện cho dự án này:

Cài đặt thư viện cảm biến DHT
Để đọc từ cảm biến DHT bằng Arduino IDE, bạn cần cài đặt Thư viện cảm biến DHT. Thực hiện theo các bước tiếp theo để cài đặt thư viện.

  1. Nhấp vào đây để tải xuống thư viện DHT Sensor. Bạn sẽ có một thư mục .zip trong thư mục Downloads của mình
  2. Giải nén thư mục .zip và bạn sẽ nhận được thư mục DHT-sensor-library-master
  3. Đổi tên thư mục của bạn từ DHT-sensor-library-master thành DHT_sensor
  4. Di chuyển thư mục DHT_sensor vào thư mục thư viện cài đặt Arduino IDE của bạn
  5. Cuối cùng, hãy mở lại Arduino IDE của bạn

Cài đặt Trình điều khiển cảm biến hợp nhất Adafruit
Bạn cũng cần phải cài đặt Thư viện trình điều khiển cảm biến hợp nhất Adafruit để làm việc với cảm biến DHT. Thực hiện theo các bước tiếp theo để cài đặt thư viện.

  1. Nhấp vào đây để tải xuống thư viện Adafruit Unified Sensor. Bạn sẽ có một thư mục .zip trong thư mục Downloads của mình
  2. Giải nén thư mục .zip và bạn sẽ nhận được thư mục Adafruit_sensor-master
  3. Đổi tên thư mục của bạn từ Adafruit_sensor-master thành Adafruit_sensor
  4. Di chuyển thư mục Adafruit_sensor vào thư mục thư viện cài đặt Arduino IDE của bạn
  5. Cuối cùng, hãy mở lại Arduino IDE của bạn

Cài đặt ESPAsyncWebThư viện máy chủ

Thực hiện theo các bước tiếp theo để cài đặt Đồng bộ ESPAWebMáy chủ thư viện:

  1. Nhấp vào đây để tải xuống ESPAsyncWebThư viện máy chủ. Bạn nên có
    một thư mục .zip trong thư mục Tải xuống của bạn
  2. Giải nén thư mục .zip và bạn sẽ
    nhận ESPAsyncWebThư mục máy chủ-chủ
  3. Đổi tên thư mục của bạn từ ESPAsyncWebServer-master đến ESPAsyncWebMáy chủ
  4. Di chuyển ESPAsyncWebThư mục máy chủ vào thư mục thư viện cài đặt Arduino IDE của bạn

Cài đặt thư viện TCP Async cho ESP32
Các Đồng bộ ESPAWebMáy chủ thư viện yêu cầu Không đồng bộ TCP thư viện để hoạt động. Thực hiện theo các bước tiếp theo để cài đặt thư viện đó:

  1. Nhấp vào đây để tải xuống thư viện AsyncTCP. Bạn sẽ có một thư mục .zip trong thư mục Tải xuống của mình
  2. Giải nén thư mục .zip và bạn sẽ nhận được thư mục AsyncTCP-master
  3. Đổi tên thư mục của bạn từ AsyncTCP-master thành AsyncTCP
  4. Di chuyển thư mục AsyncTCP vào thư mục thư viện cài đặt Arduino IDE của bạn
  5. Cuối cùng, hãy mở lại Arduino IDE của bạn

Mã số
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDE
Sau khi cài đặt các thư viện cần thiết, hãy mở mã
Dự án_9_ESP32_DHT11_Web_Server.ino trong Arduino IDE.
Trước khi tải mã lên, đừng quên nhập thông tin đăng nhập mạng để ESP có thể kết nối với mạng cục bộ của bạn.Bộ khởi động cơ bản LAFVIN ESP32 - MãMã hoạt động như thế nào
Trong các đoạn sau, chúng tôi sẽ giải thích cách mã hoạt động. Hãy tiếp tục đọc nếu bạn muốn tìm hiểu thêm hoặc chuyển đến phần Trình diễn để xem kết quả cuối cùng.
Nhập thư viện
Đầu tiên, nhập các thư viện cần thiết. WiFi, ESPAsyncWebMáy chủ và ESPAsyncTCP là cần thiết để xây dựng web máy chủ. Cần có thư viện Adafruit_Sensor và DHT để đọc từ cảm biến DHT11 hoặc DHT22.Bộ khởi động cơ bản LAFVIN ESP32 - Nhập thư việnBộ khởi động cơ bản LAFVIN ESP32 - Mã hoạt động như thế nàoĐịnh nghĩa biến
Xác định GPIO mà chân dữ liệu DHT được kết nối tới. Trong trường hợp này, nó được kết nối tới GPIO 4.Bộ khởi động cơ bản LAFVIN ESP32 - Định nghĩa biếnSau đó, chọn loại cảm biến DHT bạn đang sử dụng. Trong ví dụ của chúng tôiample, chúng tôi đang sử dụng DHT22. Nếu bạn đang sử dụng loại khác, bạn chỉ cần bỏ chú thích trên cảm biến của mình và chú thích tất cả các cảm biến khác.Bộ khởi động cơ bản LAFVIN ESP32 - Định nghĩa biến 1

Khởi tạo một đối tượng DHT với kiểu và chân mà chúng ta đã xác định trước đó.Bộ khởi động cơ bản LAFVIN ESP32 - Định nghĩa biến 2Tạo một AsyncWebĐối tượng máy chủ trên cổng 80.Bộ khởi động cơ bản LAFVIN ESP32 - Định nghĩa biến 3Đọc chức năng nhiệt độ và độ ẩm
Chúng tôi đã tạo ra hai hàm: một hàm để đọc nhiệt độ (readDHTTemperature()) và hàm còn lại để đọc độ ẩm (readDHTHumidity()).Bộ khởi động cơ bản LAFVIN ESP32 - readDHTHumidityBộ khởi động cơ bản LAFVIN ESP32 - đọc cảm biếnViệc lấy số liệu cảm biến cũng đơn giản như việc sử dụng các phương thức readTemperature() và readHumidity() trên đối tượng dht.Bộ khởi động cơ bản LAFVIN ESP32 - đối tượngChúng tôi cũng có một điều kiện trả về hai dấu gạch ngang (–) trong trường hợp cảm biến không nhận được kết quả đọc.Bộ khởi động cơ bản LAFVIN ESP32 - các bài đọcCác phép đọc được trả về dưới dạng kiểu chuỗi. Để chuyển đổi một số thực thành một chuỗi, hãy sử dụng hàm String()Bộ khởi động cơ bản LAFVIN ESP32 - ChuỗiTheo mặc định, chúng ta đọc nhiệt độ theo độ C. Để có nhiệt độ theo độ F, hãy bình luận nhiệt độ theo độ C và bỏ bình luận nhiệt độ theo độ F, để bạn có kết quả sau:Bộ khởi động cơ bản LAFVIN ESP32 - FahrenheitBộ khởi động cơ bản LAFVIN ESP32 - Fahrenheit 1Tải lên mã
Bây giờ, hãy tải mã lên ESP32 của bạn. Đảm bảo bạn đã chọn đúng bo mạch và cổng COM. Tải các bước tham chiếu mã lên.
Sau khi tải lên, hãy mở Serial Monitor ở tốc độ truyền 115200. Nhấn nút đặt lại ESP32. Địa chỉ IP ESP32 sẽ được in trong serial màn hình.Bộ khởi động cơ bản LAFVIN ESP32 - Tải mã lênBiểu tình
Mở trình duyệt và nhập địa chỉ IP ESP32. Của bạn web Máy chủ sẽ hiển thị các thông số cảm biến mới nhất.
Ghi chú: Trình duyệt và ESP32 của bạn phải được kết nối với cùng một mạng LAN.
Lưu ý rằng nhiệt độ và độ ẩm được cập nhật tự động mà không cần phải làm mới web trang.Bộ khởi động cơ bản LAFVIN ESP32 - Bản trình diễn 1

Dự án_10_ESP32_Màn hình OLED

Dự án này hướng dẫn cách sử dụng màn hình OLED SSD0.96 1306 inch với ESP32 bằng Arduino IDE.
Giới thiệu màn hình OLED 0.96 inch
Các Màn hình OLED mà chúng tôi sẽ sử dụng trong hướng dẫn này là model SSD1306: màn hình đơn sắc, 0.96 inch với 128×64 pixel như thể hiện trong hình sau.Bộ khởi động cơ bản LAFVIN ESP32 - Màn hình OLEDMàn hình OLED không cần đèn nền, mang lại độ tương phản rất đẹp trong môi trường tối. Ngoài ra, các điểm ảnh của nó chỉ tiêu thụ năng lượng khi chúng bật, do đó màn hình OLED tiêu thụ ít điện năng hơn so với các màn hình khác.
Vì màn hình OLED sử dụng giao thức truyền thông I2C nên việc đấu dây rất đơn giản. Bạn có thể tham khảo bảng sau.

Chân cắm OLED Đặc biệt
Rượu 3.3V
GND GND
SCL GPIO22
SDA GPIO21

Sơ đồBộ khởi động cơ bản LAFVIN ESP32 - Sơ đồCài đặt thư viện SSD1306 OLED – ESP32
Có một số thư viện có sẵn để điều khiển màn hình OLED bằng ESP32.
Trong hướng dẫn này, chúng ta sẽ sử dụng hai thư viện Adafruit: Thư viện Adafruit_SSD1306Thư viện Adafruit_GFX.
Thực hiện theo các bước tiếp theo để cài đặt các thư viện đó.

  1. Mở Arduino IDE của bạn và vào Sketch > Include Library > Manage Libraries. Trình quản lý thư viện sẽ mở ra.
  2. Nhập “SSD1306” vào hộp tìm kiếm và cài đặt thư viện SSD1306 từ Adafruit.Bộ khởi động cơ bản LAFVIN ESP32 - OLEDLibrary–
  3. Sau khi cài đặt thư viện SSD1306 từ Adafruit, hãy nhập “GFX” vào hộp tìm kiếm và cài đặt thư viện.Bộ khởi động cơ bản LAFVIN ESP32 - thư viện
  4. Sau khi cài đặt thư viện, hãy khởi động lại Arduino IDE của bạn.

Mã số
Sau khi cài đặt các thư viện cần thiết, hãy mở Project_10_ESP32_OLED_Display.ino trong arduino IDE. mã
Chúng tôi sẽ lập trình ESP32 bằng Arduino IDE, vì vậy hãy đảm bảo bạn đã cài đặt tiện ích bổ sung ESP32 trước khi tiếp tục: (Nếu bạn đã thực hiện bước này, bạn có thể bỏ qua bước tiếp theo.)
Cài đặt ESP32 Add-on trong Arduino IDEBộ khởi động cơ bản LAFVIN ESP32 - Mã 1Bộ khởi động cơ bản LAFVIN ESP32 - Mã 2Bộ khởi động cơ bản LAFVIN ESP32 - Mã 3Mã hoạt động như thế nào
Nhập thư viện
Trước tiên, bạn cần nhập các thư viện cần thiết. Thư viện Wire để sử dụng I2C và thư viện Adafruit để ghi vào màn hình: Adafruit_GFX và Adafruit_SSD1306.Bộ khởi động cơ bản LAFVIN ESP32 - Code Works 1Bộ khởi động cơ bản LAFVIN ESP32 - Code Works 2Khởi tạo màn hình OLED
Sau đó, bạn xác định chiều rộng và chiều cao OLED của mình. Trong ví dụ nàyample, chúng tôi đang sử dụng màn hình OLED 128×64. Nếu bạn đang sử dụng các kích thước khác, bạn có thể thay đổi trong các biến SCREEN_WIDTH và SCREEN_HEIGHT.Bộ khởi động cơ bản LAFVIN ESP32 - Màn hình OLEDSau đó, khởi tạo đối tượng hiển thị với chiều rộng và chiều cao được xác định trước đó bằng giao thức truyền thông I2C (&Wire).Bộ khởi động cơ bản LAFVIN ESP32 - giao thức truyền thôngTham số (-1) có nghĩa là màn hình OLED của bạn không có chân RESET. Nếu màn hình OLED của bạn có chân RESET, nó phải được kết nối với GPIO. Trong trường hợp đó, bạn phải truyền số GPIO làm tham số.
Trong setup(), khởi tạo Serial Monitor ở tốc độ truyền dữ liệu là 115200 cho mục đích gỡ lỗi.Bộ khởi động cơ bản LAFVIN ESP32 - mục đíchKhởi tạo màn hình OLED bằng phương thức begin() như sau:Bộ khởi động cơ bản LAFVIN ESP32 - display.beginBộ khởi động cơ bản LAFVIN ESP32 - Serial.printlnĐoạn mã này cũng in ra một thông báo trên Serial Monitor, trong trường hợp chúng ta không thể kết nối với màn hình.

Bộ khởi động cơ bản LAFVIN ESP32 - Serial.println 1Trong trường hợp bạn đang sử dụng màn hình OLED khác, bạn có thể cần phải thay đổi địa chỉ OLED. Trong trường hợp của chúng tôi, địa chỉ là 0x3C.Bộ khởi động cơ bản LAFVIN ESP32 - địa chỉSau khi khởi tạo màn hình, hãy thêm độ trễ hai giây để màn hình OLED có đủ thời gian khởi tạo trước khi ghi văn bản:Bộ khởi động cơ bản LAFVIN ESP32 - chậm trễHiển thị rõ ràng, thiết lập kích thước phông chữ, màu sắc và viết văn bản
Sau khi khởi tạo màn hình, hãy xóa bộ đệm màn hình bằng phương thức clearDisplay():Bộ khởi động cơ bản LAFVIN ESP32 - màn hình

Trước khi viết văn bản, bạn cần thiết lập kích thước, màu sắc và vị trí hiển thị văn bản trên màn hình OLED.
Đặt kích thước phông chữ bằng phương thức setTextSize():Bộ khởi động cơ bản LAFVIN ESP32 - màn hình 1Đặt màu phông chữ bằng phương thức setTextColor():
WHITE thiết lập phông chữ màu trắng và nền màu đen.
Xác định vị trí bắt đầu của văn bản bằng phương thức setCursor(x,y). Trong trường hợp này, chúng ta thiết lập văn bản bắt đầu tại tọa độ (0,0) – ở góc trên cùng bên trái.Bộ khởi động cơ bản LAFVIN ESP32 - setTextColor 1Cuối cùng, bạn có thể gửi văn bản đến màn hình bằng phương thức println() như sauBộ khởi động cơ bản LAFVIN ESP32 - mã 5Sau đó, bạn cần gọi phương thức display() để hiển thị văn bản trên màn hình.Bộ khởi động cơ bản LAFVIN ESP32 - màn hình

Thư viện Adafruit OLED cung cấp các phương pháp hữu ích để cuộn văn bản dễ dàng.

  • startscrollright(0x00, 0x0F): cuộn văn bản từ trái sang phải
  • startscrollleft(0x00, 0x0F): cuộn văn bản từ phải sang trái
  • startscrolldiagright(0x00, 0x07): cuộn văn bản từ góc dưới bên trái đến góc trên bên phải startscrolldiagleft(0x00, 0x07): cuộn văn bản từ góc dưới bên phải đến góc trên bên trái

Tải lên mã
Bây giờ, hãy tải mã lên ESP32 của bạn. Tải lên các bước tham chiếu mã.
Sau khi tải mã lên, màn hình OLED sẽ hiển thị văn bản cuộn.Bộ khởi động cơ bản LAFVIN ESP32 - văn bản cuộnBiểu tượng LAFVIN

Tài liệu / Tài nguyên

Bộ khởi động cơ bản LAFVIN ESP32 [tập tin pdf] Hướng dẫn sử dụng
Bộ khởi động cơ bản ESP32, ESP32, Bộ khởi động cơ bản, Bộ khởi động

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *