สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ..!
- ขั้นตอนที่ 2: การเชื่อมต่อ:
- ขั้นตอนที่ 3: รหัส:
- ขั้นตอนที่ 4: การใช้งาน:
วีดีโอ: Raspberry Pi HTS221 เซ็นเซอร์ความชื้นสัมพัทธ์และอุณหภูมิ Java Tutorial: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
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 สามารถใช้ได้กับสินค้าอุปโภคบริโภคต่างๆ เช่น เครื่องทำความชื้นในอากาศและตู้เย็น เป็นต้น เซ็นเซอร์นี้ยังพบการใช้งานในขอบเขตที่กว้างขึ้น รวมถึงระบบอัตโนมัติในบ้านอัจฉริยะ ระบบอัตโนมัติในอุตสาหกรรม อุปกรณ์ระบบทางเดินหายใจ การติดตามทรัพย์สินและสินค้า
แนะนำ:
Raspberry Pi - TMD26721 Infrared Digital Proximity Detector Java Tutorial: 4 ขั้นตอน
Raspberry Pi - TMD26721 Infrared Digital Proximity Detector Java Tutorial: TMD26721 เป็นเครื่องตรวจจับความใกล้ชิดแบบดิจิตอลอินฟราเรดซึ่งมีระบบตรวจจับความใกล้ชิดที่สมบูรณ์แบบและตรรกะอินเทอร์เฟซแบบดิจิทัลในโมดูลยึดพื้นผิว 8 พินเดียว การตรวจจับความใกล้ชิดรวมถึงสัญญาณต่อสัญญาณรบกวนที่ดีขึ้นและ ความแม่นยำ. โปร
Raspberry Pi - ADXL345 3-Axis Accelerometer Java Tutorial: 4 ขั้นตอน
Raspberry Pi - ADXL345 3-Axis Accelerometer Java Tutorial: ADXL345 เป็นเครื่องวัดความเร่งแบบ 3 แกนขนาดเล็กบางและใช้พลังงานต่ำเป็นพิเศษพร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัด
Raspberry Pi MCP9803 Temperature Sensor Java Tutorial: 4 ขั้นตอน
Raspberry Pi MCP9803 Temperature Sensor Java Tutorial: MCP9803 เป็นเซ็นเซอร์อุณหภูมิความแม่นยำสูง 2 สาย สิ่งเหล่านี้รวมเข้ากับการลงทะเบียนที่ผู้ใช้ตั้งโปรแกรมได้ซึ่งอำนวยความสะดวกในการใช้งานการตรวจวัดอุณหภูมิ เซ็นเซอร์นี้เหมาะสำหรับระบบตรวจสอบอุณหภูมิแบบหลายโซนที่มีความซับซ้อนสูง ที่นี่
Raspberry Pi MCP9805 Temperature Sensor Java Tutorial: 4 ขั้นตอน
Raspberry Pi MCP9805 Temperature Sensor Java Tutorial: MCP9805 เป็นโมดูลหน่วยความจำเซ็นเซอร์อุณหภูมิแบบดิจิตอล มันถูกรวมเข้ากับรีจิสเตอร์ที่ตั้งโปรแกรมได้ของผู้ใช้ซึ่งให้ความยืดหยุ่นสำหรับการใช้งานการตรวจจับอุณหภูมิ เซ็นเซอร์นี้ได้รับการออกแบบเพื่อรวมเข้ากับโมดูลหน่วยความจำแพลตฟอร์มโมบายเ
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: 4 ขั้นตอน
Raspberry Pi - MPL3115A2 Precision Altimeter Sensor Java Tutorial: MPL3115A2 ใช้เซ็นเซอร์ความดัน MEMS พร้อมอินเทอร์เฟซ I2C เพื่อให้ข้อมูลความดัน/ระดับความสูงและอุณหภูมิที่แม่นยำ เอาต์พุตเซ็นเซอร์ถูกแปลงเป็นดิจิทัลด้วย ADC 24 บิตความละเอียดสูง การประมวลผลภายในลบงานค่าตอบแทนออกจาก