ESP8266 Cảm biến ánh sáng

Hướng dẫn này chỉ cho bạn cách sử dụng cảm biến ánh sáng với ESP8266. Cụ thể:

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×cảm biến ánh sáng
1×10 kΩ Resistor
1×breadboard
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)

Cảm biến ánh sáng LDR (LDR light sensor) có giá thành rất phải chăng, nhưng nó yêu cầu một điện trở để kết nối dây, điều này có thể làm cho việc lắp đặt trở nên phức tạp. Để đơn giản hóa việc kết nối dây, bạn có thể sử dụng một mô-đun cảm biến ánh sáng LDR (LDR light sensor module) như một lựa chọn thay thế.

Về cảm biến ánh sáng

Cảm biến được sử dụng trong bài hướng dẫn này là một điện trở quang, còn được biết đến như điện trở phụ thuộc ánh sáng (LDR) hoặc tế bào quang điện.

Nó không chỉ được sử dụng để phát hiện ánh sáng mà còn để đo cường độ ánh sáng xung quanh.

Bố trí chân cảm biến ánh sáng

Một điện trở quang có hai chân mà không cần phân biệt, vì nó là một loại điện trở và do đó hai chân của nó đối xứng.

bố trí chân cảm biến ánh sáng

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

Lượng ánh sáng mà mặt của điện trở quang tiếp xúc ảnh hưởng đến điện trở của nó. Bằng cách đo điện trở này, ta có thể xác định độ sáng của ánh sáng môi trường.

cách cảm biến ánh sáng hoạt động

WARNING

Giá trị từ cảm biến ánh sáng chỉ cho biết ước tính xấp xỉ về cường độ ánh sáng, không phải là một phép đo lưu lượng sáng chính xác. Do đó, nó không nên được sử dụng cho các ứng dụng đòi hỏi độ chính xác cao.

ESP8266 - Cảm biến ánh sáng

Các chân analog của ESP8266 có thể được sử dụng làm đầu vào analog. Các chân đầu vào analog này chuyển đổi điện áp (từ 0 vôn đến VCC) thành các giá trị số nguyên (từ 0 đến 1023), được gọi là giá trị ADC hoặc giá trị analog.

Kết nối một chân của cảm biến quang (photoresistor) với một chân đầu vào analog. Sử dụng hàm analogRead() để đọc giá trị analog từ chân đó. Điều này sẽ cho phép chúng ta xác định mức độ sáng một cách tương đối.

Sơ đồ đấu dây

sơ đồ nối dây cảm biến ánh sáng 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.

Mã nguồn ESP8266

Mã dưới đây đọc giá trị từ cảm biến quang và xác định mức độ sáng một cách định tính.

/* * 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-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP8266 pin ADC0 void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } void loop() { // reads the input on analog pin (value between 0 and 1023) int analog_value = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analog_value); // The raw analog reading // We'll have a few threshholds, qualitatively determined if (analog_value < 40) { Serial.println(" => Dark"); } else if (analog_value < 800) { Serial.println(" => Dim"); } else if (analog_value < 2000) { Serial.println(" => Light"); } else if (analog_value < 3200) { Serial.println(" => Bright"); } else { Serial.println(" => Very bright"); } delay(500); }

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 ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Đấu dây các linh kiện như trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính 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, ví dụ (NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
  • Sao chép mã và mở nó bằng Arduino IDE.
  • Nhấp vào nút Upload trên Arduino IDE để biên dịch và tải mã lên ESP8266.
  • Mở Serial Monitor.
  • Chiếu sáng lên cảm biến.
  • Xem kết quả trên Serial Monitor.
COM6
Send
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Cảm biến ánh sáng và đèn LED

  • Khi môi trường tối, mã sẽ kích hoạt đèn LED, ngược lại nó sẽ tắt.
/* * 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-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The ESP8266 pin connected to light sensor #define LED_PIN D8 // The ESP8266 pin connected to LED #define ANALOG_THRESHOLD 500 void setup() { pinMode(LED_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { int analog_value = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analog_value < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }
  • Sơ đồ mạch điện cho mã ở trên.
sơ đồ đấu dây ESP8266 NodeMCU cho cảm biến ánh sáng và LED

This image is created using Fritzing. Click to enlarge image

※ Lưu ý:

Hướng dẫn này sử dụng hàm analogRead() để lấy dữ liệu từ một ADC (Bộ chuyển đổi tín hiệu từ analog sang số) được kết nối với một cảm biến hoặc một phần khác. Bộ ADC của ESP8266 hoạt động tốt cho các dự án mà bạn không cần độ chính xác cao. Nhưng hãy nhớ, bộ ADC của ESP8266 không quá chính xác cho 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 biệt như ADS1115 với ESP8266, hoặc sử dụng một board Arduino như Arduino Uno R4 WiFi, có 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.

Thách thức bản thân

  • Khi ánh sáng trong phòng bạn tối, hãy tự động bật nó.
  • Tham khảo ESP8266 - rơ-le để biết cách thực hiện điều này.

Tài liệu tham khảo về ngôn ngữ