Điện trở phụ thuộc ánh sáng – Cảm biến LDR với ESP32 Sử dụng Arduino IDE

Dien Tro Phu Thuoc Anh Sang Cam Bien Ldr Voi Esp32 Su Dung Arduino Ide



ESP32 là một bộ vi điều khiển mạnh mẽ được trang bị các tính năng dành cho IoT. ESP32 với LDR có thể đo cường độ ánh sáng và kích hoạt phản ứng theo nó. Sử dụng ESP32 và LDR, chúng tôi có thể tạo dự án dựa trên cảm biến ánh sáng từ xa và thiết kế nhiều giải pháp IoT sáng tạo cho các ngành và ứng dụng khác nhau.

Trong hướng dẫn này, những kiến ​​thức cơ bản về LDR và ​​các ứng dụng của nó với ESP32 sẽ được đề cập.







1: Giới thiệu về cảm biến LDR



2: Các ứng dụng của LDR với ESP32



3: Giao tiếp LDR với ESP32 bằng Arduino IDE





Phần kết luận

1: Giới thiệu về cảm biến LDR

MỘT l tốt D độc lập r esistor (LDR) là một loại điện trở thay đổi điện trở dựa trên cường độ ánh sáng mà nó tiếp xúc. Trong bóng tối, điện trở của nó rất cao, trong khi trong ánh sáng mạnh, điện trở của nó rất thấp. Sự thay đổi điện trở này làm cho nó tốt nhất cho các dự án cảm biến ánh sáng.




Các chân tương tự của ESP32 chuyển đổi điện áp đầu vào thành một số nguyên trong khoảng từ 0 đến 4095. Giá trị số nguyên này được ánh xạ theo điện áp đầu vào tương tự từ 0V đến 3,3V, theo mặc định là điện áp tham chiếu ADC trong ESP32. Giá trị này được đọc bằng Arduino analogRead() chức năng từ LDR.

Để biết thêm hướng dẫn chi tiết và sơ đồ chân ADC của ESP32, hãy đọc bài viết ESP32 ADC – Đọc các giá trị tương tự với Arduino IDE .


ESP32 có bộ chuyển đổi tương tự sang số (ADC) tích hợp có thể đo điện áp trên LDR và ​​chuyển đổi nó thành tín hiệu số mà bộ vi điều khiển có thể xử lý. Sử dụng tín hiệu này, ESP32 xác định điện trở của LDR, tỷ lệ thuận với cường độ ánh sáng.

Ở đây chúng ta sẽ sử dụng các chân kênh 1 của ESP32 ADC.


Photon hoặc các hạt ánh sáng đóng một vai trò quan trọng trong hoạt động của LDR. Khi ánh sáng chiếu vào bề mặt của LDR, các photon được vật liệu hấp thụ, sau đó giải phóng các electron trong vật liệu. Số lượng electron tự do tỷ lệ thuận với cường độ ánh sáng và càng nhiều electron được giải phóng thì điện trở của LDR càng thấp.

2: Các ứng dụng của LDR với ESP32

Sau đây là danh sách một số ứng dụng dựa trên IoT của LDR với ESP32:

    • Công tắc kích hoạt ánh sáng
    • Chỉ báo mức ánh sáng
    • Chế độ ban đêm trong thiết bị
    • Hệ thống an ninh dựa trên ánh sáng
    • Hệ thống chiếu sáng thông minh
    • Hệ thống an ninh nhạy cảm với ánh sáng
    • Giám sát nhà máy
    • Chiếu sáng tiết kiệm năng lượng
    • Rèm cửa sổ tự động

3: Giao tiếp LDR với ESP32 bằng Arduino IDE

Để sử dụng LDR với ESP32, chúng ta cần kết nối LDR với chân kênh ADC của ESP32. Sau đó, mã Arduino sẽ đọc các giá trị tương tự từ chân đầu ra LDR. Để thiết kế mạch này, chúng ta cần LDR, điện trở và bảng ESP32.

LDR và ​​điện trở được kết nối nối tiếp, với LDR được kết nối với kênh tương tự 1 chân đầu vào của ESP32. Một đèn LED sẽ được thêm vào mạch có thể kiểm tra hoạt động của LDR.

3.1: Sơ đồ

Sơ đồ mạch để giao tiếp LDR với ESP32 khá đơn giản. Chúng ta cần kết nối LDR và ​​một điện trở trong cấu hình bộ chia điện áp và kết nối đầu ra của bộ chia điện áp với chân ADC (Bộ chuyển đổi tương tự sang số) của ESP32. Kênh ADC 1 chân D34 được sử dụng làm đầu vào tương tự cho ESP32.

Hình ảnh sau đây là sơ đồ của ESP32 với cảm biến LDR.

3.2: Mã

Khi mạch đã được thiết lập, bước tiếp theo là viết mã cho ESP32. Mã này sẽ đọc đầu vào tương tự từ LDR và ​​sử dụng nó để điều khiển đèn LED hoặc thiết bị khác dựa trên các mức ánh sáng khác nhau.

int LDR_Val = 0 ; /* Biến để lưu trữ giá trị điện trở quang */
cảm biến int = 3. 4 ; /* Đầu vào tương tự điện trở quang */
int dẫn đến = 25 ; /* Đầu ra đèn LED */
thiết lập vô hiệu ( ) {
Nối tiếp.bắt đầu ( 9600 ) ; /* Tốc độ truyền truyền thông nối tiếp */
    chế độ ghim ( dẫn, ĐẦU RA ) ; /* Pin LED bộ BẰNG đầu ra */
}
vòng lặp trống ( ) {
LDR_Val = analogĐọc ( cảm biến ) ; /* tương tự đọc giá trị LDR */
Nối tiếp.print ( 'Giá trị đầu ra LDR:' ) ;
Nối tiếp.println ( LDR_Val ) ; /* Hiển thị giá trị đầu ra LDR trên màn hình nối tiếp */
nếu như ( LDR_Val > 100 ) { /* Nếu cường độ ánh sáng CAO */
Nối tiếp.println ( ' Cường độ cao ' ) ;
        digitalWrite ( dẫn đầu, THẤP ) ; /* ĐÈN LED TẮT */
}
khác {
/* Khác nếu như Cường độ ánh sáng THẤP Đèn LED sẽ Vẫn BẬT */
Nối tiếp.println ( 'Cường độ thấp ' ) ;
        digitalWrite ( dẫn đầu, CAO ) ; /* LED BẬT giá trị LDR là ít hơn hơn 100 */
}
trì hoãn ( 1000 ) ; /* Đọc giá trị sau mỗi 1 giây */
}


Trong đoạn mã trên, chúng tôi sử dụng LDR với ESP32 sẽ điều khiển đèn LED bằng đầu vào tương tự đến từ LDR.

Ba dòng mã đầu tiên khai báo các biến để lưu trữ giá trị điện trở quang , các chân tương tự cho điện trở quang và DẪN ĐẾN chốt đầu ra.

bên trong cài đặt() chức năng, giao tiếp nối tiếp được bắt đầu với tốc độ baud là 9600 và chân LED D25 được đặt làm đầu ra.

bên trong vòng() chức năng, giá trị điện trở quang được đọc bằng hàm analogRead(), được lưu trữ trong LDR_Val Biến đổi. Sau đó, giá trị điện trở quang được hiển thị trên màn hình nối tiếp bằng cách sử dụng hàm Serial.println().

MỘT nếu khác câu lệnh được sử dụng để điều khiển đèn LED dựa trên cường độ ánh sáng được phát hiện bởi điện trở quang. Nếu giá trị điện trở quang lớn hơn 100, điều đó có nghĩa là cường độ ánh sáng CAO và đèn LED vẫn TẮT. Tuy nhiên, nếu giá trị điện trở quang nhỏ hơn hoặc bằng 100, điều đó có nghĩa là cường độ ánh sáng THẤP và đèn LED BẬT.

Cuối cùng, chương trình đợi 1 giây bằng hàm delay() trước khi đọc lại giá trị điện trở quang. Chu kỳ này lặp lại vô thời hạn, làm cho đèn LED BẬT và TẮT dựa trên cường độ ánh sáng được phát hiện bởi điện trở quang.

3.3: Đầu ra dưới ánh sáng mờ

Cường độ ánh sáng nhỏ hơn 100 nên đèn LED sẽ vẫn BẬT.

3.4: Đầu ra dưới ánh sáng mạnh

Khi cường độ ánh sáng tăng, giá trị LDR sẽ tăng và điện trở LDR sẽ giảm nên đèn LED sẽ TẮT.

Phần kết luận

LDR có thể được giao tiếp với ESP32 bằng chân 1 kênh ADC. Đầu ra LDR có thể điều khiển cảm biến ánh sáng trong các ứng dụng khác nhau. Với chi phí thấp và kích thước nhỏ gọn, ESP32 và LDR là lựa chọn hấp dẫn cho các dự án IoT yêu cầu khả năng cảm biến ánh sáng. Sử dụng Arduino analogRead() chức năng chúng ta có thể đọc các giá trị từ LDR.