Raspberry Pi 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 Raspberry Pi. Cụ thể:

Nếu bạn đang tìm kiếm một cảm biến ánh sáng có đầu ra hai mức (LOW/HIGH) dựa trên ngưỡng có thể cài đặt, chúng tôi rất khuyên bạn nên xem hướng dẫn Raspberry Pi - Module Cảm Biến Ánh Sáng LDR. Nó dễ sử dụng và thuận tiện hơn rất nhiều.

Phần Cứng Cần Thiết

1×Raspberry Pi 5
1×Cảm Biến Ánh Sáng
1×Điện trở 10 kΩ
1×mô-đun ADC ADS1115
1×breadboard
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

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 có giá rất phải chăng, nhưng nó cần một điện trở để kết nối, điều này có thể làm cho việc lắp đặt phức tạp hơn. Để đơn giản hóa việc kết nối, bạn có thể sử dụng module cảm biến ánh sáng LDR như một giải pháp thay thế.

Về Cảm Biến Ánh Sáng

Hướng dẫn này sử dụng một cảm biến ánh sáng được gọi là photoresistor. Nó còn được gọi là điện trở phụ thuộc ánh sáng, LDR, hoặc photocell.

Nó không chỉ được sử dụng để phát hiện ánh sáng, mà còn để đo mức độ sáng/cường độ ánh sáng của môi trường.

Sơ Đồ Chân Cảm Biến Ánh Sáng

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

cảm biến ánh sáng sơ đồ chân

Cách Hoạt Động

Càng nhiều ánh sáng chiếu vào mặt của photoresistor, thì điện trở của nó càng thấp. Do đó, bằng cách đo điện trở của photoresistor, chúng ta có thể xác định độ sáng của ánh sáng xung quanh.

how cảm biến ánh sáng works

WARNING

Giá trị thu được từ cảm biến ánh sáng chỉ cho biết một cách gần đúng cường độ ánh sáng, không phải là phép đo chính xác về thông lượng ánh sáng. Do đó, nó không nên được sử dụng trong các tình huống đòi hỏi độ chính xác cao.

Raspberry Pi - Cảm Biến Ánh Sáng

Bo mạch Raspberry Pi không có ADC tích hợp, vì vậy chúng ta sẽ sử dụng một module ADC bên ngoài, chẳng hạn như ADS1115, để đọc điện áp analog từ cảm biến ánh sáng. Thực hiện theo các bước sau để thiết lập hệ thống:

  • Kết nối cảm biến ánh sáng với đầu vào analog của module ADS1115.
  • Module ADS1115 sẽ thực hiện chuyển đổi analog-to-digital điện áp từ cảm biến ánh sáng, cung cấp giá trị ADC.
  • Thiết lập kết nối giữa Raspberry Pi và module ADS1115 sử dụng giao diện I2C.
  • Đảm bảo I2C được kích hoạt trên Raspberry Pi và thiết lập các cấu hình cần thiết.
  • Sử dụng các thư viện hoặc code phù hợp để đọc giá trị ADC từ module ADS1115 qua giao diện I2C trên Raspberry Pi.

Bằng cách thực hiện theo các bước này, bạn có thể đọc thành công điện áp analog từ cảm biến ánh sáng bằng cách sử dụng module ADS1115 với Raspberry Pi của mình.

Sơ Đồ Kết Nối

Raspberry Pi cảm biến ánh sáng sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi

Code này đọc giá trị từ photocell và đánh giá mức độ ánh sáng một cách định tính.

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích Raspberry Pi nào khác trên Pi của mình.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với internet nếu bạn cần cài đặt một số thư viện.
  • Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH sử dụng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, cài đặt nó bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Cài đặt thư viện Adafruit_ADS1x15 bằng cách chạy các lệnh sau trên terminal Raspberry Pi của bạn:
sudo pip install Adafruit-ADS1x15
  • Tạo một file script Python light_sensor.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi 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/raspberry-pi/raspberry-pi-light-sensor import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() # Set the gain to ±4.096V (adjust if needed) GAIN = 1 # Define the threshold values for dim and bright levels DIM_THRESHOLD = 2000 # Adjust this based on your sensor's calibration BRIGHT_THRESHOLD = 3000 # Adjust this based on your sensor's calibration # Function to classify the light level def classify_light_level(raw_value): if raw_value < DIM_THRESHOLD: return "Dim" elif raw_value >= DIM_THRESHOLD and raw_value < BRIGHT_THRESHOLD: return "Moderate" else: return "Bright" # Main loop to read the analog value from the LDR and classify the light level try: while True: # Read the raw analog value from channel A3 raw_value = adc.read_adc(3, gain=GAIN) # Convert the raw value to voltage (not needed for classification) voltage = raw_value / 32767.0 * 4.096 # Assumes 4.096 V range for GAIN=1 # Classify the light level light_level = classify_light_level(raw_value) # Print the results print("Raw Value: {} \t Voltage: {:.2f} V \t Light Level: {}".format(raw_value, voltage, light_level)) # Add a delay between readings (adjust as needed) time.sleep(1) except KeyboardInterrupt: print("\nExiting the program.")
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 light_sensor.py
  • Che cảm biến ánh sáng bằng tay hoặc chiếu sáng lên cảm biến.
  • Kiểm tra Terminal để xem kết quả.
PuTTY - Raspberry Pi
Raw Value: 1000 Voltage: 0.61 V Light Level: Dim Raw Value: 1800 Voltage: 1.10 V Light Level: Dim Raw Value: 2100 Voltage: 1.29 V Light Level: Moderate Raw Value: 2500 Voltage: 1.53 V Light Level: Moderate Raw Value: 2800 Voltage: 1.71 V Light Level: Moderate Raw Value: 3200 Voltage: 1.96 V Light Level: Moderate Raw Value: 3600 Voltage: 2.20 V Light Level: Bright Raw Value: 4000 Voltage: 2.45 V Light Level: Bright

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

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.