Search Code

Hướng dẫn ESP32 22/55 - Cảm nhận ánh sáng bằng LED Arduino | Bộ học IoT ESP32 của SunFounder

Hướng dẫn ESP32 22/55 - Cảm nhận ánh sáng bằng LED Arduino | Bộ học IoT ESP32 của SunFounder

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng Điện trở phụ thuộc ánh sáng (LDR) với vi điều khiển ESP32 để đo cường độ ánh sáng. Bằng cách đọc điện trở của LDR, chúng ta có thể kích hoạt các hành động, chẳng hạn như bật còi khi mức ánh sáng vượt quá một ngưỡng nhất định. Dự án này sẽ minh họa sự tương tác giữa mức ánh sáng và khả năng đọc tương tự của ESP32, cho phép chúng ta tạo ra các ứng dụng phản hồi dựa trên ánh sáng xung quanh. (trong video lúc 5:30)

Giải thích phần cứng

Các thành phần chính chúng ta sẽ sử dụng trong dự án này bao gồm vi điều khiển ESP32, một LDR và một điện trở 10 kΩ. LDR thay đổi điện trở của nó dựa trên cường độ ánh sáng chiếu vào bề mặt: ánh sáng nhiều hơn dẫn đến điện trở thấp hơn, trong khi ánh sáng ít hơn dẫn đến điện trở cao hơn. Đặc tính này cho phép chúng ta đo các mức ánh sáng khác nhau bằng cách kết nối LDR trong cấu hình cầu phân áp với điện trở.

Vi điều khiển ESP32 có Wi-Fi và Bluetooth tích hợp, khiến nó trở nên lý tưởng cho các dự án IoT. Nó có một số chân tương tự có thể đọc các mức điện áp thay đổi, mà chúng ta sẽ sử dụng để theo dõi điện áp trên LDR. Điện áp này sẽ được chuyển đổi thành giá trị tương tự mà ESP32 có thể xử lý và sử dụng để kích hoạt các hành động như kích hoạt còi.

Chi tiết từ bảng dữ liệu

Nhà sản xuấtEspressif Systems
Số bộ phậnESP32
Điện áp Logic/IO3,3 V
Điện áp cấp nguồn3,0 - 3,6 V
Dòng điện đầu ra (mỗi GPIO)Tối đa 40 mA
Hướng dẫn tần số PWM1 kHz - 40 kHz
Ngưỡng logic đầu vàoCao: tối thiểu 2,0 V, Thấp: tối đa 0,8 V
Sụt áp / RDS(on) / bão hòaTối đa 0,3 V
Giới hạn nhiệt-40 °C đến 125 °C
Đóng góiQFN48
Ghi chú / biến thểHỗ trợ nhiều giao thức Wi-Fi và Bluetooth

  • Sử dụng điện trở 10 kΩ nối tiếp với LDR để chia điện áp.
  • Đảm bảo ESP32 được cấp nguồn 3,3 V để tránh hư hỏng.
  • Kết nối LDR và điện trở đúng cách để đo cường độ ánh sáng.
  • Sử dụng tụ điện để tách rời nếu cần để ổn định nguồn điện.
  • Kiểm tra các giá trị đọc tương tự để đảm bảo chúng nằm trong phạm vi dự kiến.

Hướng dẫn nối dây

ESP32-22_light_sensor-wiring

Để nối LDR và điện trở với ESP32, hãy bắt đầu bằng cách kết nối một đầu của LDR với chân nguồn 3,3 V trên ESP32. Đầu còn lại của LDR nên được kết nối với một đầu của điện trở 10 kΩ. Kết nối đầu còn lại của điện trở với đất.

Tiếp theo, kết nối một dây jumper từ điểm nối giữa LDR và điện trở đến chân 35 trên ESP32. Thiết lập này tạo ra một cầu phân áp, cho phép ESP32 đọc điện áp thay đổi dựa trên cường độ ánh sáng chiếu vào LDR. Đảm bảo tất cả các kết nối chắc chắn và LDR được đặt ở vị trí có thể cảm nhận chính xác các thay đổi ánh sáng.

Ví dụ mã và hướng dẫn chi tiết

Trong mã, chúng ta bắt đầu bằng cách khởi tạo giao tiếp nối tiếp để theo dõi các giá trị đọc từ LDR. Định danh chính ở đây là analogValue, lưu trữ giá trị đọc từ chân 35.

void setup() {
  Serial.begin(115200);
}

void loop() {
  int analogValue = analogRead(35);
  Serial.printf("ADC analog value = %d\n",analogValue);
  delay(100);
}

Đoạn mã này khởi tạo màn hình nối tiếp ở tốc độ baud 115200 và liên tục đọc giá trị tương tự từ chân 35. Giá trị được in ra màn hình nối tiếp, cho phép chúng ta quan sát cách nó thay đổi theo các mức ánh sáng khác nhau.

Khi cường độ ánh sáng thay đổi, điện trở của LDR thay đổi, và do đó điện áp được ESP32 đọc cũng sẽ thay đổi, phản ánh điều kiện ánh sáng (trong video lúc 12:45).

Trình diễn / Điều gì sẽ xảy ra

Khi bạn chạy chương trình và quan sát màn hình nối tiếp, bạn sẽ thấy ADC analog value dao động dựa trên điều kiện ánh sáng xung quanh. Khi bạn che LDR, giá trị sẽ tăng lên, cho biết điện trở cao hơn, trong khi để nó tiếp xúc với ánh sáng mạnh sẽ làm giảm giá trị đáng kể. Hành vi này có thể được sử dụng để kích hoạt còi hoặc bất kỳ hành động nào khác dựa trên các ngưỡng được xác định trước.

Nếu các giá trị đọc không thay đổi như mong đợi, hãy kiểm tra các vấn đề về nối dây, đảm bảo LDR không bị treo, và xác nhận rằng ESP32 được cấp nguồn đúng cách. Điều này sẽ giúp tránh các lỗi phổ biến và đảm bảo hoạt động trơn tru (trong video lúc 15:30).

Mốc thời gian video

  • 00:00 Bắt đầu
  • 1:48 Giới thiệu về LDR
  • 8:33 Giải thích cách nối dây
  • 11:07 Giải thích mã Arduino
  • 13:07 Chọn bo mạch ESP32 và cổng COM trong Arduino IDE
  • 14:49 Trình diễn đọc giá trị
  • 17:24 Hiểu giá trị Ngày và Đêm
  • 18:47 Giá trị DAC và đọc Điện áp

Hình ảnh

ESP32-22_light_sensor
ESP32-22_light_sensor
ESP32-22_light_sensor-wiring
ESP32-22_light_sensor-wiring
821-ESP32 Tutorial 22/55- Arduino code for Light dependant resistor
Ngôn ngữ: C++

void setup() {
  // initialize serial communication at 115200 bits per second:
  Serial.begin(115200);

}

void loop() {
  // read the analog value
  int analogValue = analogRead(35);
  
  // print out the values you read:
  Serial.printf("ADC analog value = %d\n",analogValue);
  
  delay(100);  // delay in between reads for clear read from serial
}

Tài nguyên & tài liệu tham khảo

Tập tin📁

Không có tệp nào khả dụng.