สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
MCP9805 เป็นเซ็นเซอร์อุณหภูมิแบบดิจิตอลของโมดูลหน่วยความจำ มันถูกรวมเข้ากับรีจิสเตอร์ที่ตั้งโปรแกรมได้ของผู้ใช้ซึ่งให้ความยืดหยุ่นสำหรับการใช้งานการตรวจจับอุณหภูมิ เซ็นเซอร์นี้ได้รับการออกแบบให้รวมอยู่ในเซ็นเซอร์อุณหภูมิโมดูลหน่วยความจำแพลตฟอร์มมือถือ นี่คือการสาธิตด้วยรหัส java โดยใช้ Raspberry Pi
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ..!
1. ราสเบอร์รี่ปี่
2. MCP9805
3. สายเคเบิล I²C
4. I²C Shield สำหรับ Raspberry Pi
5. สายเคเบิลอีเธอร์เน็ต
ขั้นตอนที่ 2: การเชื่อมต่อ
ใช้เกราะป้องกัน I2C สำหรับ raspberry pi แล้วค่อยๆ ดันไปบนหมุด gpio ของ raspberry pi
จากนั้นเชื่อมต่อปลายสาย I2C ด้านหนึ่งกับเซ็นเซอร์ MCP9805 และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C
เชื่อมต่อสายอีเทอร์เน็ตกับ pi หรือคุณสามารถใช้โมดูล WiFi ได้ การเชื่อมต่อแสดงในภาพด้านบน
ขั้นตอนที่ 3: รหัส
โค้ดจาวาสำหรับ MCP9805 สามารถดาวน์โหลดได้จากที่เก็บ GitHub-Dcube Store
นี่คือลิงค์สำหรับสิ่งเดียวกัน:
github.com/DcubeTechVentures/MCP9805
แผ่นข้อมูลของ MCP9805 สามารถพบได้ที่นี่:
ww1.microchip.com/downloads/en/DeviceDoc/21…
เราใช้ไลบรารี pi4j สำหรับโค้ด java ขั้นตอนในการติดตั้ง pi4j บน raspberry pi ได้อธิบายไว้ที่นี่:
pi4j.com/install.html
คุณสามารถคัดลอกรหัสจากที่นี่ได้ดังนี้:
// แจกจ่ายด้วยใบอนุญาตอิสระ
// ใช้มันตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือฟรี หากเข้ากับใบอนุญาตของงานที่เกี่ยวข้อง
// MCP9805
// รหัสนี้ออกแบบมาเพื่อทำงานกับ MCP9808_I2CS I2C Mini Module ที่มีอยู่ใน Dcube Store
นำเข้า com.pi4j.io.i2c. I2CBus;
นำเข้า com.pi4j.io.i2c. I2CDevice;
นำเข้า com.pi4j.io.i2c. I2CFactory;
นำเข้า java.io. IOException;
คลาสสาธารณะ MCP9805
{
โมฆะคงที่สาธารณะหลัก (สตริง args ) พ่นข้อยกเว้น
{
// สร้างบัส I2C
I2CBus บัส = I2CFactory.getInstance(I2CBus. BUS_1);
// รับอุปกรณ์ I2C ที่อยู่ MCP9805 I2C คือ 0x18(24)
อุปกรณ์ I2CDevice = Bus.getDevice(0x18);
เธรดการนอนหลับ (300);
// เลือกการตั้งค่าการลงทะเบียน
// โหมดการแปลงต่อเนื่อง, เพิ่มพลัง
byte config = ไบต์ใหม่[2];
config[0] = 0x00;
config[1] = 0x00;
อุปกรณ์.write(0x01, config, 0, 2);
// เลือกความละเอียด rgister
// ความละเอียด = +0.0625 / C
อุปกรณ์.write(0x08, (ไบต์)0x03);
เธรดการนอนหลับ (300);
// อ่านข้อมูลขนาด 2 ไบต์จากที่อยู่ 0x05(05)
// ชั่วคราว msb, ชั่วคราว lsb
ไบต์ data = ไบต์ใหม่[2];
อุปกรณ์อ่าน (0x05, ข้อมูล, 0, 2);
// แปลงข้อมูลเป็น 13 บิต
int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF));
ถ้า (อุณหภูมิ > 4095)
{
อุณหภูมิ -= 8192;
}
cTemp สองเท่า = อุณหภูมิ * 0.0625;
fTemp สองเท่า = cTemp * 1.8 + 32;
// ส่งออกข้อมูลไปที่หน้าจอ
System.out.printf("อุณหภูมิในเซลเซียสคือ: %.2f C %n", cTemp);
System.out.printf("อุณหภูมิในหน่วยฟาเรนไฮต์คือ: %.2f F %n", fTemp);
}
}
ขั้นตอนที่ 4: การสมัคร..:
MCP9805 สามารถรวมเข้ากับระบบต่างๆ ซึ่งรวมถึงระบบตรวจสอบอุณหภูมิโมดูลหน่วยความจำอินไลน์คู่ (DIMM) คอมพิวเตอร์ส่วนบุคคลและเซิร์ฟเวอร์ โดยทั่วไปสามารถใช้เป็นเซ็นเซอร์อุณหภูมิเอนกประสงค์ได้