2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
MCP9808 là một bộ cảm biến nhiệt độ kỹ thuật số có độ chính xác cao ± 0,5 ° C I2C mini module. Chúng được bao gồm với các thanh ghi người dùng có thể lập trình để tạo điều kiện thuận lợi cho các ứng dụng cảm biến nhiệt độ. Cảm biến nhiệt độ có độ chính xác cao MCP9808 đã trở thành tiêu chuẩn công nghiệp về yếu tố hình thức và độ thông minh, cung cấp tín hiệu cảm biến được hiệu chỉnh, phân tuyến ở định dạng kỹ thuật số, I2C. Đây là phần trình diễn với mã python bằng Raspberry Pi.
Bước 1: Những gì bạn cần.. !
1. Raspberry Pi
2. MCP9808
3. Cáp I²C
4. I²C Shield cho Raspberry Pi
5. Cáp Ethernet
Bước 2: Kết nối
Lấy một tấm chắn I2C cho raspberry pi và nhẹ nhàng đẩy nó qua các chân gpio của raspberry pi.
Sau đó kết nối một đầu của cáp I2C với cảm biến MCP9808 và đầu kia với tấm chắn I2C.
Đồng thời kết nối cáp Ethernet với pi hoặc bạn có thể sử dụng mô-đun WiFi.
Các kết nối được hiển thị trong hình trên.
Bước 3: Mã
Mã python cho MCP9808 có thể được tải xuống từ kho lưu trữ GitHub của chúng tôi- Dcube Store
Đây là liên kết cho cùng một:
github.com/DcubeTechVentures/MCP9808
Bảng dữ liệu của MCP9808 có thể được tìm thấy ở đây:
ww1.microchip.com/downloads/en/DeviceDoc/25…
Chúng tôi đã sử dụng thư viện SMBus cho mã python, các bước để cài đặt SMBus trên raspberry pi được mô tả ở đây:
pypi.python.org/pypi/smbus-cffi/0.5.1
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.
# MCP9808
# Mã này được thiết kế để hoạt động với Mô-đun mini MCP9808_I2CS I2C có sẵn trong Dcube Store.
nhập khẩu smbus
thời gian nhập khẩu
# Nhận xe buýt I2C
bus = smbus. SMBus (1)
Địa chỉ # MCP9808, 0x18 (24)
# Chọn thanh ghi cấu hình, 0x01 (1)
# 0x0000 (00) Chế độ chuyển đổi liên tục, mặc định bật nguồn
cấu hình = [0x00, 0x00]
bus.write_i2c_block_data (0x18, 0x01, config)
Địa chỉ # MCP9808, 0x18 (24)
# Chọn rgister độ phân giải, 0x08 (8)
# 0x03 (03) Độ phân giải = +0.0625 / C
bus.write_byte_data (0x18, 0x08, 0x03)
time.sleep (0.5) địa chỉ # MCP9808, 0x18 (24)
# Đọc lại dữ liệu từ 0x05 (5), 2 byte
# Temp MSB, TEMP LSB
data = bus.read_i2c_block_data (0x18, 0x05, 2)
# Chuyển đổi dữ liệu thành 13 bit
ctemp = ((dữ liệu [0] & 0x1F) * 256) + dữ liệu [1]
nếu ctemp> 4095:
ctemp - = 8192
ctemp = ctemp * 0,0625
ftemp = ctemp * 1.8 + 32
# Xuất dữ liệu ra màn hình
in "Nhiệt độ tính bằng độ C là:%.2f C"% ctemp
in "Nhiệt độ tính bằng F là:%.2f F"% ftemp
Bước 4: Ứng dụng..:
Cảm biến nhiệt độ kỹ thuật số MCP9808 có một số ứng dụng cấp công nghiệp kết hợp tủ đông và tủ lạnh công nghiệp cùng với các bộ xử lý thực phẩm khác nhau. Cảm biến này có thể được sử dụng cho nhiều máy tính cá nhân, máy chủ cũng như các thiết bị ngoại vi PC khác.