Mục lục:

Cảm biến nhiệt độ và độ ẩm tương đối Raspberry Pi HTS221 Hướng dẫn sử dụng Java: 4 bước
Cảm biến nhiệt độ và độ ẩm tương đối Raspberry Pi HTS221 Hướng dẫn sử dụng Java: 4 bước

Video: Cảm biến nhiệt độ và độ ẩm tương đối Raspberry Pi HTS221 Hướng dẫn sử dụng Java: 4 bước

Video: Cảm biến nhiệt độ và độ ẩm tương đối Raspberry Pi HTS221 Hướng dẫn sử dụng Java: 4 bước
Video: Arduino Nano HYT939 I2C Humidity and Temperature Sensor Tutorial 2024, Tháng bảy
Anonim
Image
Image

HTS221 là một cảm biến kỹ thuật số điện dung siêu nhỏ gọn cho độ ẩm và nhiệt độ tương đối. Nó bao gồm một phần tử cảm biến và một mạch tích hợp dành riêng cho ứng dụng tín hiệu hỗn hợp (ASIC) để cung cấp thông tin đo lường thông qua các giao diện nối tiếp kỹ thuật số. Được tích hợp rất nhiều tính năng, đây là một trong những cảm biến thích hợp nhất cho các phép đo nhiệt độ và độ ẩm quan trọng. Đây là phần trình diễn với mã java sử dụng Raspberry Pi.

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

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

1. Raspberry Pi

2. HTS221

3. Cáp I²C

4. I²C Shield cho Raspberry Pi

5. Cáp Ethernet

Bước 2: Kết nối:

Kết nối
Kết nối
Kết nối
Kết nối
Kết nối
Kết nối
Kết nối
Kết nối

Lấy một tấm chắn I2C cho raspberry pi và nhẹ nhàng đẩy nó qua các chân gpio của raspberry pi.

Sau đó kết nối một đầu của cáp I2C với cảm biến HTS221 và đầu kia với tấm chắn I2C.

Đồng thời kết nối cáp Ethernet với pi hoặc bạn có thể sử dụng mô-đun WiFi.

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

Bước 3: Mã:

Mã số
Mã số

Có thể tải xuống mã python cho HTS221 từ kho lưu trữ github-Dcube Store của chúng tôi

Đây là liên kết cho cùng một:

github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java

Chúng tôi đã sử dụng thư viện pi4j cho mã java, các bước để cài đặt pi4j trên raspberry pi được mô tả ở đây:

pi4j.com/install.html

Bạn cũng có thể sao chép mã từ đây, nó được đưa ra như sau:

// Đượ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.

// HTS221

// Mã này được thiết kế để hoạt động với Mô-đun nhỏ HTS221_I2CS I2C.

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;

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

{

// Tạo I2CBus

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

// Lấy thiết bị I2C, địa chỉ I2C HTS221 là 0x5F (95)

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

// Chọn thanh ghi cấu hình trung bình

// Mẫu trung bình nhiệt độ = 16, mẫu trung bình độ ẩm = 32

device.write (0x10, (byte) 0x1B);

// Chọn thanh ghi điều khiển1

// Bật nguồn, cập nhật dữ liệu chặn, tốc độ dữ liệu o / p = 1 Hz

device.write (0x20, (byte) 0x85);

Thread.sleep (500);

// Đọc các giá trị Hiệu chuẩn từ bộ nhớ không bay hơi của thiết bị

// Giá trị hiệu chỉnh độ ẩm

byte val = byte mới [2];

// Đọc 1 byte dữ liệu từ địa chỉ 0x30 (48)

val [0] = (byte) device.read (0x30);

// Đọc 1 byte dữ liệu từ địa chỉ 0x31 (49)

val [1] = (byte) device.read (0x31);

int H0 = (val [0] & 0xFF) / 2;

int H1 = (val [1] & 0xFF) / 2;

// Đọc 1 byte dữ liệu từ địa chỉ 0x36 (54)

val [0] = (byte) device.read (0x36);

// Đọc 1 byte dữ liệu từ địa chỉ 0x37 (55)

val [1] = (byte) device.read (0x37);

int H2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Đọc 1 byte dữ liệu từ địa chỉ 0x3A (58)

val [0] = (byte) device.read (0x3A);

// Đọc 1 byte dữ liệu từ địa chỉ 0x3B (59)

val [1] = (byte) device.read (0x3B);

int H3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Giá trị hiệu chỉnh nhiệt độ

// Đọc 1 byte dữ liệu từ địa chỉ 0x32 (50)

int T0 = ((byte) device.read (0x32) & 0xFF);

// Đọc 1 byte dữ liệu từ địa chỉ 0x33 (51)

int T1 = ((byte) device.read (0x33) & 0xFF);

// Đọc 1 byte dữ liệu từ địa chỉ 0x35 (53)

int raw = ((byte) device.read (0x35) & 0x0F);

// Chuyển đổi các giá trị Hiệu chỉnh nhiệt độ thành 10-bit

T0 = ((thô & 0x03) * 256) + T0;

T1 = ((nguyên & 0x0C) * 64) + T1;

// Đọc 1 byte dữ liệu từ địa chỉ 0x3C (60)

val [0] = (byte) device.read (0x3C);

// Đọc 1 byte dữ liệu từ địa chỉ 0x3D (61)

val [1] = (byte) device.read (0x3D);

int T2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Đọc 1 byte dữ liệu từ địa chỉ 0x3E (62)

val [0] = (byte) device.read (0x3E);

// Đọc 1 byte dữ liệu từ địa chỉ 0x3F (63)

val [1] = (byte) device.read (0x3F);

int T3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

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

// hum msb, hum lsb, temp msb, temp lsb

byte data = new byte [4]; device.read (0x28 | 0x80, data, 0, 4);

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

int hum = ((dữ liệu [1] & 0xFF) * 256) + (dữ liệu [0] & 0xFF);

int temp = ((dữ liệu [3] & 0xFF) * 256) + (dữ liệu [2] & 0xFF);

if (temp> 32767)

{

nhiệt độ - = 65536;

}

độ ẩm kép = ((1.0 * H1) - (1.0 * H0)) * (1.0 * hum - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

double cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);

double fTemp = (cTemp * 1.8) + 32;

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

System.out.printf ("Độ ẩm Tương đối:%.2f %% RH% n", độ ẩm);

System.out.printf ("Nhiệt độ tính bằng C:%.2f C% n", cTemp);

System.out.printf ("Nhiệt độ tính bằng F:%.2f F% n", fTemp);

}

}

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

HTS221 có thể được sử dụng trong các sản phẩm tiêu dùng khác nhau như máy làm ẩm không khí và tủ lạnh, v.v. Cảm biến này cũng được ứng dụng trong một lĩnh vực rộng lớn hơn bao gồm tự động hóa nhà thông minh, tự động hóa công nghiệp, thiết bị hô hấp, theo dõi tài sản và hàng hóa.

Đề xuất: