ESP8266 Mô-đun LDR

Mô-đun cảm biến ánh sáng LDR có thể nhận biết và đo lượng ánh sáng xung quanh nó. Nó có hai đầu ra: một đầu cho tín hiệu số (LOW hoặc HIGH) và một đầu ra cho tín hiệu tương tự.

Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 và một mô-đun cảm biến ánh sáng LDR để phát hiện và đo cường độ ánh sáng. Chúng ta sẽ đề cập đến những nội dung sau:

mô-đun cảm biến ánh sáng ldr
image source: diyables.io

Sau này, bạn có thể chỉnh sửa mã để khi cảm biến ánh sáng LDR phát hiện ánh sáng, nó có thể bật một đèn LED hoặc một bóng đèn bằng cách sử dụng rơ-le.

Nếu bạn thích cảm biến ánh sáng ở dạng thô của nó, tôi gợi ý khám phá hướng dẫn về ESP8266 - Cảm biến ánh sáng.

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×LDR Light Sensor Module
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về mô-đun cảm biến ánh sáng LDR

Bạn có thể sử dụng module cảm biến ánh sáng LDR để phát hiện xem có ánh sáng hay không hoặc đo độ sáng ở khu vực. Nó có một chân đầu ra kỹ thuật số và một chân đầu ra analog để bạn chọn.

Sơ đồ chân

Mô-đun cảm biến ánh sáng LDR có bốn chân:

  • Chân VCC: Kết nối nó với nguồn có điện áp từ 3,3V đến 5V.
  • Chân GND: Nối với đất, có 0V.
  • Chân DO: Đây là chân đầu ra số. Nó cho tín hiệu HIGH khi tối và tín hiệu LOW khi sáng. Bạn có thể điều chỉnh ngưỡng giữa tối và sáng bằng một biến trở được tích hợp trong mô-đun.
  • Chân AO: Đây là chân đầu ra tương tự. Giá trị đầu ra giảm khi ánh sáng càng sáng và tăng khi ánh sáng càng tối.
sơ đồ chân của module cảm biến ánh sáng ldr
image source: diyables.io

Ngoài ra, mô-đun cảm biến ánh sáng LDR bao gồm hai đèn LED chỉ thị:

  • Một đèn LED nguồn cho biết trạng thái nguồn.
  • Một đèn LED DO cho biết trạng thái ánh sáng trên chân DO: nó sáng lên khi có ánh sáng và tắt khi tối.

Cách thức hoạt động

Về chân DO:

  • Mô-đun cảm biến ánh sáng LDR có một biến trở tích hợp cho phép bạn điều chỉnh độ nhạy hoặc ngưỡng phát hiện ánh sáng.
  • Khi cường độ ánh sáng trong môi trường xung quanh lớn hơn ngưỡng đã đặt (nghĩa là sáng), chân đầu ra của cảm biến ở mức LOW, và đèn LED DO sáng.
  • Khi cường độ ánh sáng trong môi trường xung quanh nhỏ hơn ngưỡng đã đặt (nghĩa là tối), chân đầu ra của cảm biến ở mức HIGH, và đèn LED DO tắt.

Về chân AO:

  • Giá trị đọc từ chân AO giảm khi cường độ ánh sáng của môi trường xung quanh tăng lên (nghĩa là sáng hơn).
  • Giá trị đọc từ chân AO tăng lên khi cường độ ánh sáng của môi trường xung quanh giảm xuống (nghĩa là tối hơn).

Lưu ý rằng biến trở không ảnh hưởng đến giá trị trên chân AO.

Sơ đồ đấu dây

Vì module cảm biến ánh sáng có hai đầu ra, bạn có thể chọn sử dụng một trong số chúng hoặc cả hai, tùy thuộc vào nhu cầu của bạn.

  • Sơ đồ nối dây giữa ESP8266 và mô-đun cảm biến ánh sáng LDR khi chỉ sử dụng DO.
sơ đồ kết nối của mô-đun cảm biến ánh sáng ldr ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

  • Sơ đồ kết nối giữa ESP8266 và mô-đun cảm biến ánh sáng LDR khi chỉ sử dụng AO.
sơ đồ đấu dây của module ESP8266 NodeMCU ldr

This image is created using Fritzing. Click to enlarge image

  • Sơ đồ nối dây giữa ESP8266 và module cảm biến ánh sáng LDR khi sử dụng cả AO và DO.
sơ đồ nối dây của module cảm biến ánh sáng ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Mã nguồn ESP8266 - Đọc giá trị từ chân DO

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-ldr-module */ #define DO_PIN D7 // ESP8266's pin connected to DO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int light_state = digitalRead(DO_PIN); if (light_state == HIGH) Serial.println("The light is NOT present"); else Serial.println("The light is present"); }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Xem hướng dẫn cách thiết lập môi trường cho ESP8266 trên Arduino IDE (BASE_URL/tutorials/esp8266/esp8266-software-installation) nếu đây là lần đầu bạn dùng ESP8266.
  • Nối các linh kiện như được hiển thị trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, như (ví dụ NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
  • Sao chép mã ở trên và mở bằng Arduino IDE.
  • Nhấp nút Upload trên Arduino IDE để tải mã lên ESP8266.
  • Che và mở cảm biến ánh sáng LDR bằng tay bạn hoặc bằng vật gì đó.
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
The light is present The light is present The light is NOT present The light is NOT present The light is NOT present The light is present The light is present The light is present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Nếu bạn nhận thấy đèn LED luôn bật hoặc luôn tắt, bất kể điều kiện ánh sáng, bạn có thể điều chỉnh biến trở. Việc điều chỉnh này sẽ cho phép bạn tinh chỉnh độ nhạy sáng của cảm biến.

Ngoài ra, bạn có thể sửa mã để kích hoạt một đèn LED hoặc một nguồn sáng khi phát hiện ánh sáng. Bạn thậm chí có thể điều khiển động cơ servo để cho phép quay. Để xem hướng dẫn chi tiết và thêm thông tin, vui lòng tham khảo các bài hướng dẫn được cung cấp ở phần cuối của hướng dẫn này.

Mã ESP8266 - Đọc giá trị từ chân AO

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-ldr-module */ #define AO_PIN A0 // ESP8266's pin connected to AO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } void loop() { int light_value = analogRead(AO_PIN); Serial.print("The analog value: "); Serial.println(light_value); }

Hướng dẫn từng bước

  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấn nút Tải lên trên Arduino IDE để tải mã lên ESP8266
  • Che và bỏ che mô-đun cảm biến ánh sáng LDR bằng tay bạn hoặc bằng một vật gì đó
  • Kiểm tra kết quả trên Serial Monitor
COM6
Send
The analog value: 145 The analog value: 146 The analog value: 146 The analog value: 572 The analog value: 678 The analog value: 945 The analog value: 956 The analog value: 1001 The analog value: 1002 The analog value: 1012 The analog value: 1013 The analog value: 645 The analog value: 546 The analog value: 346 The analog value: 172
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Lưu ý:

Hướng dẫn này sử dụng hàm analogRead() để lấy dữ liệu từ một ADC (Bộ biến đổi tương tự sang số) được kết nối với một cảm biến hoặc một bộ phận khác. ADC của ESP8266 hoạt động tốt cho các dự án mà bạn không cần những giá trị đo rất chính xác. Nhưng hãy nhớ, ADC của ESP8266 không chính xác cao đối với các phép đo chi tiết. Nếu dự án của bạn cần độ chính xác rất cao, bạn có thể muốn sử dụng một ADC riêng như ADS1115 với ESP8266, hoặc sử dụng Arduino như Arduino Uno R4 WiFi, vốn có một ADC đáng tin cậy hơn.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.