สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
MCP9808 เป็นเซ็นเซอร์อุณหภูมิแบบดิจิตอลที่มีความแม่นยำสูง ±0.5°C I2C mini module สิ่งเหล่านี้รวมเข้ากับการลงทะเบียนที่ผู้ใช้ตั้งโปรแกรมได้ซึ่งอำนวยความสะดวกในการใช้งานการตรวจวัดอุณหภูมิ เซ็นเซอร์อุณหภูมิความแม่นยำสูง MCP9808 ได้กลายเป็นมาตรฐานอุตสาหกรรมในแง่ของฟอร์มแฟคเตอร์และความชาญฉลาด โดยให้สัญญาณเซ็นเซอร์เชิงเส้นที่ปรับเทียบแล้วในรูปแบบ I2C ดิจิทัล นี่คือการสาธิตด้วยรหัสหลามโดยใช้ Raspberry Pi
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ..!
1. ราสเบอร์รี่ปี่
2. MCP9808
3. สายเคเบิล I²C
4. I²C Shield สำหรับ Raspberry Pi
5. สายเคเบิลอีเธอร์เน็ต
ขั้นตอนที่ 2: การเชื่อมต่อ
ใช้เกราะป้องกัน I2C สำหรับ raspberry pi แล้วค่อยๆ ดันไปบนหมุด gpio ของ raspberry pi
จากนั้นเชื่อมต่อปลายสาย I2C ด้านหนึ่งกับเซ็นเซอร์ MCP9808 และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C
เชื่อมต่อสายอีเทอร์เน็ตกับ pi หรือคุณสามารถใช้โมดูล WiFi ได้
การเชื่อมต่อแสดงในภาพด้านบน
ขั้นตอนที่ 3: รหัส
รหัสหลามสำหรับ MCP9808 สามารถดาวน์โหลดได้จากที่เก็บ GitHub ของเรา - Dcube Store
นี่คือลิงค์สำหรับสิ่งเดียวกัน:
github.com/DcubeTechVentures/MCP9808
แผ่นข้อมูลของ MCP9808 สามารถพบได้ที่นี่:
ww1.microchip.com/downloads/en/DeviceDoc/25…
เราใช้ไลบรารี SMBus สำหรับโค้ด python ขั้นตอนในการติดตั้ง SMBus บน raspberry pi ได้อธิบายไว้ที่นี่:
pypi.python.org/pypi/smbus-cffi/0.5.1
คุณสามารถคัดลอกรหัสจากที่นี่ได้ดังนี้:
# จัดจำหน่ายด้วยใบอนุญาตอิสระ
# ใช้งานตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือฟรี หากเข้ากับใบอนุญาตของงานที่เกี่ยวข้อง
#MCP9808
# รหัสนี้ออกแบบมาเพื่อทำงานกับ MCP9808_I2CS I2C Mini Module ที่มีอยู่ใน Dcube Store
นำเข้า smbus
เวลานำเข้า
# รับรถบัส I2C
รถบัส = smbus. SMBus(1)
# MCP9808 ที่อยู่ 0x18(24)
# เลือกการลงทะเบียนการกำหนดค่า 0x01(1)
# 0x0000(00) โหมดการแปลงต่อเนื่อง, ค่าเริ่มต้นของการเปิดเครื่อง
config = [0x00, 0x00]
bus.write_i2c_block_data(0x18, 0x01, กำหนดค่า)
# MCP9808 ที่อยู่ 0x18(24)
# เลือกความละเอียด rgister, 0x08 (8)
# 0x03(03) ความละเอียด = +0.0625 / C
bus.write_byte_data(0x18, 0x08, 0x03)
time.sleep(0.5) # ที่อยู่ MCP9808, 0x18(24)
# อ่านข้อมูลย้อนหลังตั้งแต่ 0x05 (5), 2 ไบต์
# ชั่วคราว MSB, TEMP LSB
ข้อมูล = bus.read_i2c_block_data(0x18, 0x05, 2)
# แปลงข้อมูลเป็น 13 บิต
ctemp = ((ข้อมูล[0] & 0x1F) * 256) + ข้อมูล[1]
ถ้า ctemp > 4095:
ctemp -= 8192
ctemp = ctemp * 0.0625
ftemp = ctemp * 1.8 + 32
# ส่งออกข้อมูลไปยังหน้าจอ
พิมพ์ "อุณหภูมิในเซลเซียสคือ: %.2f C" %ctemp
พิมพ์ "อุณหภูมิในฟาเรนไฮต์คือ: %.2f F" %ftemp
ขั้นตอนที่ 4: การสมัคร..:
MCP9808 Digital Temperature Sensor มีการใช้งานระดับอุตสาหกรรมหลายแบบ ซึ่งรวมตู้แช่แข็งและตู้เย็นสำหรับอุตสาหกรรมพร้อมกับเครื่องเตรียมอาหารต่างๆ เซ็นเซอร์นี้สามารถใช้ได้กับคอมพิวเตอร์ส่วนบุคคล เซิร์ฟเวอร์ และอุปกรณ์ต่อพ่วงพีซีอื่นๆ