Mục lục:

Đo cường độ ánh sáng bằng cách sử dụng BH1715 và Raspberry Pi: 5 bước
Đo cường độ ánh sáng bằng cách sử dụng BH1715 và Raspberry Pi: 5 bước

Video: Đo cường độ ánh sáng bằng cách sử dụng BH1715 và Raspberry Pi: 5 bước

Video: Đo cường độ ánh sáng bằng cách sử dụng BH1715 và Raspberry Pi: 5 bước
Video: Cách đo cường độ ánh sáng sử dụng app trên điện thoại xem đủ ánh sáng đọc sách, học tập 2024, Tháng mười một
Anonim
Image
Image

Hôm qua, chúng tôi đã làm việc trên màn hình LCD, và trong khi làm việc với chúng, chúng tôi nhận ra tầm quan trọng của việc tính toán cường độ ánh sáng. Cường độ ánh sáng không chỉ quan trọng trong lĩnh vực vật lý của thế giới này mà nó còn có vai trò được nói rõ trong lĩnh vực sinh học. Việc ước tính chính xác cường độ ánh sáng đóng một vai trò quan trọng trong hệ sinh thái của chúng ta, trong sự phát triển của thực vật, v.v. Vì vậy, để phục vụ mục đích này, chúng tôi đã nghiên cứu cảm biến BH1715 này, là cảm biến ánh sáng xung quanh loại đầu ra nối tiếp 16 bit.

Trong hướng dẫn này, chúng tôi sẽ chứng minh hoạt động của BH1715 với Raspberry pi, sử dụng Java làm ngôn ngữ lập trình.

Phần cứng bạn sẽ cần cho mục đích này như sau:

1. BH1715 - Cảm biến ánh sáng xung quanh

2. Raspberryy Pi

3. Cáp I2C

4. I2C Shield cho Raspberry Pi

5. Cáp Ethernet

Bước 1: Tổng quan về BH1715:

Những gì bạn cần.. !!
Những gì bạn cần.. !!

Trước hết, chúng tôi muốn bạn làm quen với các tính năng cơ bản của mô-đun cảm biến là BH1715 và giao thức truyền thông mà nó hoạt động.

BH1715 là Cảm biến ánh sáng xung quanh kỹ thuật số với giao diện bus I²C. BH1715 thường được sử dụng để lấy dữ liệu ánh sáng xung quanh để điều chỉnh công suất đèn nền của màn hình LCD và bàn phím cho các thiết bị di động. Thiết bị này cung cấp độ phân giải 16 bit và phạm vi đo có thể điều chỉnh, cho phép phát hiện từ 0,23 đến 100, 000 lux.

Giao thức truyền thông mà cảm biến hoạt động là I2C. I2C là viết tắt của mạch tích hợp liên. Nó là một giao thức truyền thông trong đó giao tiếp diễn ra thông qua các đường SDA (dữ liệu nối tiếp) và SCL (đồng hồ nối tiếp). Nó cho phép kết nối nhiều thiết bị cùng lúc. Nó là một trong những giao thức truyền thông đơn giản và hiệu quả nhất.

Bước 2: Những gì bạn cần.. !

Những gì bạn cần.. !!
Những gì bạn cần.. !!
Những gì bạn cần.. !!
Những gì bạn cần.. !!
Những gì bạn cần.. !!
Những gì bạn cần.. !!

Các tài liệu mà chúng tôi cần để hoàn thành mục tiêu của mình bao gồm các thành phần phần cứng sau:

1. BH1715 - Cảm biến ánh sáng xung quanh

2. Raspberry Pi

3. Cáp I2C

4. I2C Shield cho Raspberry Pi

5. Cáp Ethernet

Bước 3: Kết nối phần cứng:

Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng

Phần kết nối phần cứng về cơ bản giải thích các kết nối dây cần thiết giữa cảm biến và pi raspberry. Đảm bảo các kết nối chính xác là điều cần thiết cơ bản trong khi làm việc trên bất kỳ hệ thống nào để có kết quả đầu ra mong muốn. Vì vậy, các kết nối cần thiết như sau:

BH1715 sẽ hoạt động trên I2C. Đây là sơ đồ đấu dây ví dụ, minh họa cách đấu dây cho từng giao diện của cảm biến.

Ngoài ra, bo mạch được định cấu hình cho giao diện I2C, vì vậy, chúng tôi khuyên bạn nên sử dụng kết nối này nếu bạn không có kiến thức khác. Tất cả những gì bạn cần là bốn dây!

Chỉ cần bốn kết nối là chân Vcc, Gnd, SCL và SDA và chúng được kết nối với sự trợ giúp của cáp I2C.

Các kết nối này được thể hiện trong các hình trên.

Bước 4: Đo cường độ ánh sáng bằng mã Java:

Đo cường độ ánh sáng bằng mã Java
Đo cường độ ánh sáng bằng mã Java
Đo cường độ ánh sáng bằng mã Java
Đo cường độ ánh sáng bằng mã Java

Lợi thế của việc sử dụng raspberry pi là, cung cấp cho bạn sự linh hoạt của ngôn ngữ lập trình mà bạn muốn lập trình bảng để giao tiếp cảm biến với nó. Khai thác lợi thế này của bảng này, chúng tôi đang chứng minh ở đây nó là lập trình bằng Java. Mã Java cho BH1715 có thể được tải xuống từ cộng đồng GitHub của chúng tôi, đó là Dcube Store.

Cũng như để người dùng dễ dàng sử dụng, chúng tôi cũng giải thích mã ở đây:

Là bước đầu tiên của mã hóa, bạn cần tải xuống thư viện pi4j trong trường hợp của java, vì thư viện này hỗ trợ các chức năng được sử dụng trong mã. Vì vậy, để tải thư viện, bạn có thể truy cập liên kết sau:

pi4j.com/install.html

Bạn cũng có thể sao chép mã java đang hoạt động cho cảm biến này từ đây:

// Được phân phối với một giấy phép tự do.

// Sử dụng nó theo bất kỳ cách nào bạn muốn, lợi nhuận hoặc miễn phí, miễn là nó phù hợp với giấy phép của các tác phẩm liên quan.

// BH1715

// Mã này được thiết kế để hoạt động với Mô-đun mini BH1715_I2CS I2C có sẵn từ ControlEverything.com.

//

nhập com.pi4j.io.i2c. I2CBus;

nhập com.pi4j.io.i2c. I2CDevice;

nhập com.pi4j.io.i2c. I2CFactory;

nhập java.io. IOException;

lớp công BH1715

{

public static void main (String args ) ném Exception

{

// Tạo bus I2C

I2CBus bus = I2CFactory.getInstance (I2CBus. BUS_1);

// Lấy thiết bị I2C, địa chỉ BH1715 I2C là 0x23 (35)

Thiết bị I2CDevice = bus.getDevice (0x23);

// Gửi lệnh bật nguồn

device.write ((byte) 0x01);

// Gửi lệnh đo liên tục

device.write ((byte) 0x10);

Thread.sleep (500);

// Đọc 2 byte dữ liệu

// độ sáng msb, độ sáng lsb

byte data = byte mới [2];

device.read (dữ liệu, 0, 2);

// Chuyển đổi dữ liệu

độ sáng kép = ((dữ liệu [0] & 0xFF) * 256 + (dữ liệu [1] & 0xFF)) / 1,20;

// Xuất dữ liệu ra màn hình

System.out.printf ("Độ sáng xung quanh:%.2f lux% n", độ sáng);

}

}

Thư viện hỗ trợ giao tiếp i2c giữa cảm biến và bo mạch là pi4j, các gói khác nhau của nó I2CBus, I2CDevice và I2CFactory giúp thiết lập kết nối.

nhập com.pi4j.io.i2c. I2CBus; nhập com.pi4j.io.i2c. I2CDevice; nhập com.pi4j.io.i2c. I2CFactory; nhập java.io. IOException;

Phần mã này làm cho cảm biến hoạt động để đo cường độ ánh sáng bằng cách viết các lệnh tương ứng bằng cách sử dụng hàm write () và sau đó dữ liệu được đọc bằng cách sử dụng hàm read ().

device.write ((byte) 0x01); // bật lệnh

device.write ((byte) 0x10); // lệnh đo liên tục

byte data = byte mới [2]; // Đọc 2 byte dữ liệu

device.read (dữ liệu, 0, 2);

Dữ liệu nhận được từ cảm biến được chuyển đổi sang định dạng thích hợp bằng cách sử dụng như sau:

độ sáng kép = ((dữ liệu [0] & 0xFF) * 256 + (dữ liệu [1] & 0xFF)) / 1,20;

Đầu ra được in bằng hàm System.out.println (), ở định dạng sau.

System.out.printf ("Độ sáng xung quanh:%.2f lux% n", độ sáng);

Đầu ra của cảm biến được hiển thị trong hình trên.

Bước 5: Ứng dụng:

Các ứng dụng
Các ứng dụng

BH1715 là một cảm biến ánh sáng xung quanh đầu ra kỹ thuật số có thể được kết hợp trong Điện thoại di động, TV LCD, Máy tính LƯU Ý, v.v. Nó cũng có thể được sử dụng trong Máy chơi game cầm tay, Máy ảnh kỹ thuật số, Máy quay video kỹ thuật số, PDA, màn hình LCD và nhiều thiết bị khác yêu cầu ứng dụng cảm biến ánh sáng hiệu quả.

Đề xuất: