Tản mạn về ESP32 CAM

ESP32 CAM pin out
Sơ đồ chân cẳng

Sơ đồ chân của ESP32-CAM

ESP32-CAM là một board mạch phát triển với chip điều khiển ESP32-S, camera OV2640, khe cắm thẻ nhớ microSD và các GPIO để kết nối với thiết bị ngoại vi.

Cấp nguồn

ESP32-CAM có 3 chân GND (màu đen trong sơ đồ chân), 1 chân 3.3V và 1 chân 5V (màu đỏ trong sơ đồ chân).

ESP32-CAM có thể hoạt động ở cả 3.3V và 5V, tuy nhiên với nguồn 3.3V, ESP32-CAM có thể sẽ hoạt động không ổn định, chúng ta nên dùng nguồn 5V để đảm bảo ESP32-CAM hoạt động ổn định.

Trên sơ đồ chân bạn có thể thấy 1 chân màu vàng 3.3/5V, trên ESP32-CAM chân này được kí hiệu là VCC. Chúng ta không nên sử dụng chân này để cấp nguồn cho ESP32-CAM. Đây là chân nguồn output, không sử dụng để cấp nguồn. Điện áp ở chân này có thể là 3.3V hoặc 5V.

Để ý trên board ESP32-CAM, bạn sẽ thấy bên cạnh chân VCC có kí hiệu 2 mức điện áp của chân VCC. Ứng với mỗi mức có 2 pad hàn điện trở 0Ω (đóng vai trò như jumper). Jumper nối ở mức điện áp nào thì điện áp ngõ ra của chân VCC bằng mức đó.

Chân serial

GPIO 1 và GPIO 3 là 2 chân serial của ESP32-CAM (GPIO 1 đóng vai trò là TX, GPIO 3 là RX). ESP32-CAM không được tích hợp sẵn mạch giao tiếp serial với máy tính, cần dùng 2 chân serial giao tiếp với một mạch giao tiếp serial trung gian mới có thể nạp chương trình từ máy tính.

Bạn vẫn có thể sử dụng GPIO 1 và GPIO 3 để kết nối với các module ngoại vi sau khi nạp chương trình xong. Trong trường hợp đó, bạn sẽ không thể mở Serial Monitor để xem các thông tin mà chương trình in ra hoặc debug qua serial monitor.

GPIO 0

GPIO 0 được nối với một điện trở kéo lên, có chức năng chọn chế độ hoạt động cho ESP32-CAM.

Khi điện áp GPIO 0 ở mức 0, ESP32-CAM sẽ hoạt động ở chế độ flash, chúng ta nạp chương trình cho ESP32-CAM ở chế độ này. Khi điện áp chân này ở mức 1, ESP32-CAM sẽ thoát khỏi chế độ flash.

Khi cần nạp chương trình cho ESP32, ta kết nối GPIO 0 với chân GND, và ngắt kết nối giữa GPIO 0 với GND khi cần ESP32-CAM hoạt động bình thường. Mỗi lần kết nối hoặc ngắt kết nối giữa GPIO 0 và GND cần nhấn nút RST trên board để ESP32-CAM cập nhật lại chế độ hoạt động.

GPIO 16

GPIO 16 mặc định là chân có chức năng UART. Tuy nhiên bạn cũng có thể sử dụng GPIO 16 với chức năng là digital input, GPIO 16 được kết nối với điện trở nội kéo lên nên trạng thái mặc định của chân này là mức 1.

GPIO 16 không được tích hợp bộ chuyển đổi ADC, nên không thể sử dụng cho chức năng analog input, chân này cũng không phải chan RTC, nên không thể sử dụng cho chức năng timer waker up.

Kết nối thẻ nhớ MicroSD

ESP32-S kết nối với thẻ nhớ microSD qua khe cắm thẻ nhớ theo bảng kết nối dưới đây:

MicroSD cardESP32
CLKGPIO 14
CMDGPIO 15
DATA0GPIO 2
DATA1 / flashlightGPIO 4
DATA2GPIO 12
DATA3GPIO 13

Nếu không sử dụng thẻ nhớ, bạn có thể sử các GPIO 2, 4, 12, 13, 14, 15 với chức năng input/output, các chân này đều được tích hợp bộ chuyển đổi ADC và là chân RTC.

Flashlight (GPIO 4)

ESP32-CAM có 1 đèn LED kết nối với GPIO 4, có thể hoạt động như đèn flash khi chụp hình. Tuy nhiên GPIO 4 cũng là chân kết nối với thẻ nhớ nên đèn LED có thể sẽ sáng trong lúc chúng ta sử dụng thẻ nhớ.

GPIO 33

Ở gần nút RST, có 1 đèn LED đỏ được tích hợp sẵn trên board. LED này được kết nối với GPIO 33. Đèn LED này hoạt động theo logic đảo, khi điều khiển GPIO 33 ở mức LOW, đèn LED này sẽ sáng và ngược lại.

Kết nối Camera

ESP32-S kết nối với camera theo bảng kết nối dưới đây:

OV2640 CAMERAESP32Variable name in code
D0GPIO 5Y2_GPIO_NUM
D1GPIO 18Y3_GPIO_NUM
D2GPIO 19Y4_GPIO_NUM
D3GPIO 21Y5_GPIO_NUM
D4GPIO 36Y6_GPIO_NUM
D5GPIO 39Y7_GPIO_NUM
D6GPIO 34Y8_GPIO_NUM
D7GPIO 35Y9_GPIO_NUM
XCLKGPIO 0XCLK_GPIO_NUM
PCLKGPIO 22PCLK_GPIO_NUM
VSYNCGPIO 25VSYNC_GPIO_NUM
HREFGPIO 23HREF_GPIO_NUM
SDAGPIO 26SIOD_GPIO_NUM
SCLGPIO 27SIOC_GPIO_NUM
POWER PINGPIO 32PWDN_GPIO_NUM

Chương trình CameraWebServer

Trong Arduino IDE, vào File –Examples –ESP32 –Camera và chọn CameraWebServer để mở chương trình.

Tìm tới đoạn chương trình khai báo tên và mật khẩu WiFi để cập nhật tên và mật khẩu WiFi bạn đang sử dụng:

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Module chúng ta sử dụng trong bài viết này là AI-THINKER:

Do vậy, trong phần khai báo model camera ta dùng #define CAMERA_MODEL_AI_THINKER// Select camera model//#define CAMERA_MODEL_WROVER_KIT//#define CAMERA_MODEL_ESP_EYE//#define CAMERA_MODEL_M5STACK_PSRAM//#define CAMERA_MODEL_M5STACK_WIDE#define CAMERA_MODEL_AI_THINKER

Nếu không có model nào tương ứng với camera bạn đang sử dụng, bạn cần thêm phần gán pin cho board của mình trong file camera_pin.h.

Biên dịch và nạp chương trình

Kết nối ESP32-CAM với mạch nạp và máy tính rồi nạp chương trình

Lấy địa chỉ IP

Sau khi nạp chương trình xong, ngắt kết nối GPIO 0 với GND để ESP32 hoạt động bình thường. Mở Serial Monitor và chọn tốc độ baud 115200 sau đó nhấn nút reset trên ESP32-CAM và quan sát thông báo được in ra trên Serial Monitor. Địa chỉ IP sẽ được in ra.

Truy cập trang web

Truy cập trang web hiển thị video stream từ ESP32-CAM bằng địa chỉ IP vừa tìm được ở trên, nhấn nút Start Streaming để bắt đầu stream.

Chapichuse

Đam mê công nghệ

You may also like...

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *