2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
HDC1000 là cảm biến độ ẩm kỹ thuật số với cảm biến nhiệt độ tích hợp cung cấp độ chính xác đo tuyệt vời ở mức công suất rất thấp. Thiết bị đo độ ẩm dựa trên một cảm biến điện dung mới. Các cảm biến độ ẩm và nhiệt độ được hiệu chuẩn tại nhà máy. Nó hoạt động trong phạm vi nhiệt độ từ -40 ° C đến + 125 ° C đầy đủ. Đây là sự trình diễn của nó với hạt photon.
Bước 1: Những gì bạn cần.. !
1. Photon hạt
2. HDC1000
3. Cáp I²C
4. Tấm chắn I²C cho Photon hạt
Bước 2: Kết nối:
Lấy một tấm chắn I2C cho photon hạt và nhẹ nhàng đẩy nó qua các chốt của photon hạt.
Sau đó kết nối một đầu của cáp I2C với cảm biến HDC1000 và đầu kia với tấm chắn I2C.
Các kết nối được hiển thị trong hình trên.
Bước 3: Mã:
Mã hạt cho HDC1000 có thể được tải xuống 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/HDC1000…
Bảng dữ liệu của HDC1000 có thể được tìm thấy tại đây:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Chúng tôi đã sử dụng hai thư viện cho mã hạt, đó là application.h và spark_wiring_i2c.h. Thư viện Spark_wiring_i2c được yêu cầu để tạo điều kiện giao tiếp I2C với cảm biến.
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.
// HDC1000
// Mã này được thiết kế để hoạt động với HDC1000_I2CS I2C Mini Module có sẵn trong Dcube Store.
#bao gồm
#bao gồm
// Địa chỉ I2C HDC1000 là 0x40 (64)
#define Addr 0x40
float cTemp = 0.0, fTemp = 0.0, độ ẩm = 0.0;
int temp = 0, hum = 0;
void setup ()
{
// Đặt biến
Particle.variable ("i2cdevice", "HDC1000");
Particle.variable ("độ ẩm", độ ẩm);
Particle.variable ("cTemp", cTemp);
// Khởi tạo giao tiếp I2C
Wire.begin ();
// Giao tiếp nối tiếp khởi tạo, đặt tốc độ truyền = 9600
Serial.begin (9600);
// Bắt đầu truyền I2C
Wire.beginTransmission (Addr);
// Chọn thanh ghi cấu hình
Wire.write (0x02);
// Nhiệt độ, độ ẩm được bật, độ phân giải = 14-bit, bật lò sưởi
Wire.write (0x30);
// Dừng truyền I2C
Wire.endTransmission ();
chậm trễ (300);
}
void loop ()
{
dữ liệu int không dấu [2];
// Bắt đầu truyền I2C
Wire.beginTransmission (Addr);
// Gửi lệnh đo tạm thời
Wire.write (0x00);
// Dừng truyền I2C
Wire.endTransmission ();
chậm trễ (500);
// Yêu cầu 2 byte dữ liệu
Wire.requestFrom (Addr, 2);
// Đọc 2 byte dữ liệu
// tạm thời msb, tạm thời lsb
if (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Chuyển đổi dữ liệu
temp = ((dữ liệu [0] * 256) + dữ liệu [1]);
cTemp = (temp / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1.8 + 32;
// Bắt đầu truyền I2C
Wire.beginTransmission (Addr);
// Gửi lệnh đo độ ẩm
Wire.write (0x01);
// Dừng truyền I2C
Wire.endTransmission ();
chậm trễ (500);
// Yêu cầu 2 byte dữ liệu
Wire.requestFrom (Addr, 2);
// Đọc 2 byte dữ liệu
// tạm thời msb, tạm thời lsb
if (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// Chuyển đổi dữ liệu
hum = ((dữ liệu [0] * 256) + dữ liệu [1]);
độ ẩm = (hum / 65536.0) * 100.0;
// Xuất dữ liệu ra bảng điều khiển
Particle.publish ("Độ ẩm Tương đối:", String (độ ẩm));
Particle.publish ("Nhiệt độ tính bằng C:", String (cTemp));
Particle.publish ("Nhiệt độ tính bằng F:", String (fTemp));
chậm trễ (1000);
}
Bước 4: Ứng dụng:
HDC1000 có thể được sử dụng trong hệ thống sưởi, thông gió và điều hòa không khí (HVAC), Bộ điều nhiệt thông minh và Màn hình phòng. Cảm biến này cũng được ứng dụng trong Máy in, Máy đo cầm tay, Thiết bị y tế, Vận chuyển hàng hóa cũng như Kính chắn gió Ô tô.