สารบัญ:

Raspberry Pi HTS221 เซ็นเซอร์ความชื้นสัมพัทธ์และอุณหภูมิ Java Tutorial: 4 ขั้นตอน
Raspberry Pi HTS221 เซ็นเซอร์ความชื้นสัมพัทธ์และอุณหภูมิ Java Tutorial: 4 ขั้นตอน

วีดีโอ: Raspberry Pi HTS221 เซ็นเซอร์ความชื้นสัมพัทธ์และอุณหภูมิ Java Tutorial: 4 ขั้นตอน

วีดีโอ: Raspberry Pi HTS221 เซ็นเซอร์ความชื้นสัมพัทธ์และอุณหภูมิ Java Tutorial: 4 ขั้นตอน
วีดีโอ: Arduino Nano - HTS221 Relative Humidity and Temperature Sensor Tutorial 2024, พฤศจิกายน
Anonim
Image
Image

HTS221 เป็นเซ็นเซอร์ดิจิทัลแบบคาปาซิทีฟขนาดกะทัดรัดเป็นพิเศษสำหรับความชื้นสัมพัทธ์และอุณหภูมิ ประกอบด้วยองค์ประกอบการตรวจจับและวงจรรวมเฉพาะแอปพลิเคชันสัญญาณผสม (ASIC) เพื่อให้ข้อมูลการวัดผ่านอินเทอร์เฟซอนุกรมดิจิทัล เมื่อรวมเข้ากับคุณสมบัติมากมาย นี่เป็นหนึ่งในเซ็นเซอร์ที่เหมาะสมที่สุดสำหรับการตรวจวัดความชื้นและอุณหภูมิที่สำคัญ นี่คือการสาธิตด้วยรหัส java โดยใช้ Raspberry Pi

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ..!

สิ่งที่คุณต้องการ..!!
สิ่งที่คุณต้องการ..!!

1. ราสเบอร์รี่ปี่

2. HTS221

3. สายเคเบิล I²C

4. I²C Shield สำหรับ Raspberry Pi

5. สายเคเบิลอีเธอร์เน็ต

ขั้นตอนที่ 2: การเชื่อมต่อ:

การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ

ใช้เกราะป้องกัน I2C สำหรับ raspberry pi แล้วค่อยๆ ดันไปบนหมุด gpio ของ raspberry pi

จากนั้นต่อสาย I2C ด้านหนึ่งเข้ากับเซ็นเซอร์ HTS221 และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C

เชื่อมต่อสายอีเทอร์เน็ตกับ pi หรือคุณสามารถใช้โมดูล WiFi ได้

การเชื่อมต่อแสดงในภาพด้านบน

ขั้นตอนที่ 3: รหัส:

รหัส
รหัส

รหัสหลามสำหรับ HTS221 สามารถดาวน์โหลดได้จากที่เก็บ github-Dcube Store

นี่คือลิงค์สำหรับสิ่งเดียวกัน:

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

เราใช้ไลบรารี pi4j สำหรับโค้ด java ขั้นตอนในการติดตั้ง pi4j บน raspberry pi ได้อธิบายไว้ที่นี่:

pi4j.com/install.html

คุณสามารถคัดลอกรหัสจากที่นี่ได้ดังนี้:

// แจกจ่ายด้วยใบอนุญาตอิสระ

// ใช้มันตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือฟรี หากเข้ากับใบอนุญาตของงานที่เกี่ยวข้อง

// HTS221

// รหัสนี้ออกแบบมาเพื่อทำงานกับ HTS221_I2CS I2C Mini Module

นำเข้า com.pi4j.io.i2c. I2CBus;

นำเข้า com.pi4j.io.i2c. I2CDevice;

นำเข้า com.pi4j.io.i2c. I2CFactory;

นำเข้า java.io. IOException;

คลาสสาธารณะ HTS221 { โมฆะคงที่สาธารณะหลัก (สตริง args ) พ่นข้อยกเว้น

{

// สร้าง I2CBus

บัส I2CBus = I2CFactory.getInstance(I2CBus. BUS_1);

// รับอุปกรณ์ I2C ที่อยู่ HTS221 I2C คือ 0x5F(95)

อุปกรณ์ I2CDevice = bus.getDevice(0x5F);

// เลือกรีจิสเตอร์การกำหนดค่าเฉลี่ย

// ตัวอย่างอุณหภูมิเฉลี่ย = 16 ตัวอย่างเฉลี่ยความชื้น = 32

อุปกรณ์.write(0x10, (ไบต์)0x1B);

// เลือกควบคุม register1

// เปิดเครื่อง บล็อกการอัปเดตข้อมูล อัตราข้อมูล o/p = 1 Hz

อุปกรณ์.write(0x20, (ไบต์)0x85);

เธรดการนอนหลับ (500);

// อ่านค่าการปรับเทียบจากหน่วยความจำแบบไม่ลบเลือนของอุปกรณ์

// ค่าสอบเทียบความชื้น

ไบต์ val = ไบต์ใหม่[2];

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x30(48)

val[0] = (ไบต์)device.read(0x30);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x31(49)

val[1] = (ไบต์)device.read(0x31);

int H0 = (ค่า[0] & 0xFF) / 2;

int H1 = (ค่า [1] & 0xFF) / 2;

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x36(54)

val[0] = (ไบต์)device.read(0x36);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x37(55)

val[1] = (ไบต์)device.read(0x37);

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

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x3A(58)

val[0] = (ไบต์)device.read(0x3A);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x3B(59)

val[1] = (ไบต์)device.read(0x3B);

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

// ค่าสอบเทียบอุณหภูมิ

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x32(50)

int T0 = ((ไบต์)device.read(0x32) & 0xFF);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x33(51)

int T1 = ((ไบต์)device.read(0x33) & 0xFF);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x35(53)

int raw = ((ไบต์)device.read(0x35) & 0x0F);

// แปลงค่าการปรับเทียบอุณหภูมิเป็น 10-bits

T0 = ((ดิบ & 0x03) * 256) + T0;

T1 = ((ดิบ & 0x0C) * 64) + T1;

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x3C(60)

val[0] = (ไบต์)device.read(0x3C);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x3D(61)

val[1] = (ไบต์)device.read(0x3D);

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

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x3E(62)

val[0] = (ไบต์)device.read(0x3E);

// อ่านข้อมูล 1 ไบต์จากที่อยู่ 0x3F(63)

val[1] = (ไบต์)device.read(0x3F);

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

// อ่านข้อมูล 4 ไบต์

// ฮัม msb, ฮัม lsb, msb ชั่วคราว, อุณหภูมิ lsb

ไบต์ data = ไบต์ใหม่[4]; อุปกรณ์อ่าน (0x28 | 0x80, ข้อมูล, 0, 4);

// แปลงข้อมูล

int hum = ((ข้อมูล[1] & 0xFF) * 256) + (ข้อมูล[0] & 0xFF);

int temp = ((ข้อมูล[3] & 0xFF) * 256) + (ข้อมูล[2] & 0xFF);

ถ้า (อุณหภูมิ > 32767)

{

อุณหภูมิ -= 65536;

}

ความชื้นสองเท่า = ((1.0 * H1) - (1.0 * H0)) * (1.0 * hum - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

cTemp สองเท่า = ((T1 - T0) / 8.0) * (ชั่วคราว - T2) / (T3 - T2) + (T0 / 8.0);

fTemp สองเท่า = (cTemp * 1.8) + 32;

// ส่งออกข้อมูลไปที่หน้าจอ

System.out.printf("ความชื้นสัมพัทธ์: %.2f %% RH %n", ความชื้น);

System.out.printf("อุณหภูมิในเซลเซียส: %.2f C %n", cTemp);

System.out.printf("อุณหภูมิเป็นฟาเรนไฮต์: %.2f F %n", fTemp);

}

}

ขั้นตอนที่ 4: การใช้งาน:

HTS221 สามารถใช้ได้กับสินค้าอุปโภคบริโภคต่างๆ เช่น เครื่องทำความชื้นในอากาศและตู้เย็น เป็นต้น เซ็นเซอร์นี้ยังพบการใช้งานในขอบเขตที่กว้างขึ้น รวมถึงระบบอัตโนมัติในบ้านอัจฉริยะ ระบบอัตโนมัติในอุตสาหกรรม อุปกรณ์ระบบทางเดินหายใจ การติดตามทรัพย์สินและสินค้า

แนะนำ: