Mục lục:

Chỉ báo nhiệt độ CPU Raspberry Pi: 11 bước (có hình ảnh)
Chỉ báo nhiệt độ CPU Raspberry Pi: 11 bước (có hình ảnh)

Video: Chỉ báo nhiệt độ CPU Raspberry Pi: 11 bước (có hình ảnh)

Video: Chỉ báo nhiệt độ CPU Raspberry Pi: 11 bước (có hình ảnh)
Video: Raspberry Pi 5 - Tổng quan về Thông số kỹ thuật và Tính năng 2024, Tháng mười một
Anonim
Chỉ báo nhiệt độ CPU Raspberry Pi
Chỉ báo nhiệt độ CPU Raspberry Pi

Trước đây tôi đã giới thiệu mạch chỉ báo trạng thái hoạt động raspberry pi (Sau đây gọi là RPI) đơn giản.

Lần này, tôi sẽ giải thích một số mạch chỉ báo hữu ích hơn cho RPI chạy theo cách không đầu (không có màn hình).

Mạch trên hiển thị nhiệt độ CPU thành 4 mức khác nhau như:

- Đèn LED xanh lục bật khi nhiệt độ CPU trong khoảng 30 ~ 39 độ

- Đèn LED màu vàng cho biết nhiệt độ được tăng lên trong khoảng 40 đến 45 độ

- Đèn LED màu đỏ thứ 3 cho thấy CPU trở nên nóng hơn một chút khi đạt 46 ~ 49 độ

- Một đèn LED đỏ khác sẽ nhấp nháy khi nhiệt độ vượt quá 50 độ

Các phạm vi nhiệt độ CPU ở trên là khái niệm thiết kế cá nhân của tôi (Các phạm vi nhiệt độ khác có thể được định cấu hình bằng cách thay đổi các điều kiện thử nghiệm của chương trình python điều khiển mạch này).

Bằng cách sử dụng mạch này, bạn không nhất thiết phải thực hiện lệnh “vcgencmd Measure_temp” thường xuyên trên thiết bị đầu cuối bảng điều khiển.

Mạch này sẽ thông báo nhiệt độ CPU hiện tại một cách liên tục và thuận tiện.

Bước 1: Chuẩn bị sơ đồ

Chuẩn bị sơ đồ
Chuẩn bị sơ đồ

Mặc dù bạn có thể điều khiển 4 đèn LED trực tiếp bằng cách chỉ sử dụng mã python, logic điều khiển của chương trình sẽ tải RPI và kết quả là nhiệt độ CPU sẽ tăng lên nhiều hơn vì bạn phải chạy mã python phức tạp một chút liên tục.

Do đó, tôi đang giảm thiểu độ phức tạp của mã python càng đơn giản càng tốt và tắt logic điều khiển đèn LED cho mạch phần cứng bên ngoài.

Mạch chỉ báo nhiệt độ CPU (Sau đây gọi là INICATOR) bao gồm các bộ phận chính sau đây.

- Hai bộ ghép quang được kết nối với các chân RPI GPIO để lấy dữ liệu mức nhiệt độ như 00-> LOW, 01-> Medium, 10-> High, 11-> Cần làm mát.

- Đầu ra điều khiển 74LS139 (hoặc 74HC139, bộ giải mã 2 đến 4 và bộ khử ghép kênh) (Y0, Y1, Y2, Y3) theo các đầu vào (A, B)

- Khi nhiệt độ trong khoảng 30 ~ 39 độ, mã python xuất 00 đến các chân GPIO. Do đó, 74LS139 nhận dữ liệu đầu vào 00 (A-> 0, B-> 0)

- Khi nhập 00, đầu ra Y0 trở nên THẤP. (Vui lòng tham khảo bảng sự thật của 74LS139)

- Khi đầu ra Y0 trở nên THẤP, nó sẽ kích hoạt bóng bán dẫn 2N3906 PNP và kết quả là đèn LED Xanh lục được bật

- Tương tự như vậy, Y1 (01 -> môi trường nhiệt độ CPU) sẽ bật đèn LED màu vàng, v.v.

- Khi Y3 trở nên THẤP, DB140 kích hoạt mạch nhấp nháy LED NE555 (đây là mạch nhấp nháy LED thông thường dựa trên IC 555) là tải của bóng bán dẫn BD140 PNP

Thành phần quan trọng nhất của mạch này là 74LS139 giải mã 2 chữ số đầu vào thành 4 đầu ra đơn khác nhau như trong bảng chân trị bên dưới.

Đầu vào | Đầu ra

G (Bật) | B | A | Y0 | Y1 | Y2 | Y3 |

H | X | X | H | H | H | H |

L | L | L | L | H | H | H |

L | L | H | H | L | H | H |

L | H | L | H | H | L | H |

L | H | H | H | H | H | L |

Khi đầu ra 74LS139 trở nên THẤP, bóng bán dẫn loại PNP có thể làm cho mạch tổng thể trở nên đơn giản vì bóng bán dẫn PNP được bật khi đầu cuối cơ sở trở nên THẤP. (Tôi sẽ hiển thị phiên bản NPN ở cuối câu chuyện này)

Vì chiết áp 100K được bao gồm trong mạch nhấp nháy LED NE555, thời gian BẬT / TẮT LED đỏ có thể được điều chỉnh tùy ý theo nhu cầu.

Bước 2: Vẽ PCB

Tạo bản vẽ PCB
Tạo bản vẽ PCB

Khi sơ đồ hoạt động của INDICATOR được giải thích, chúng ta hãy bắt đầu tạo mạch.

Trước khi hàn một thứ gì đó trên bo mạch đa năng, việc chuẩn bị bản vẽ PCB hiển thị ở trên là hữu ích để giảm thiểu bất kỳ sai lầm nào.

Bản vẽ được thực hiện bằng cách sử dụng power-point để xác định vị trí của từng bộ phận trên bảng phổ thông và tạo các mẫu đi dây giữa các bộ phận có dây.

Vì hình ảnh chân ra của IC và bóng bán dẫn được đặt cùng vị trí với mẫu dây PCB, nên có thể thực hiện quá trình hàn bằng cách sử dụng hình vẽ này.

Bước 3: Hàn

Hàn
Hàn

Mặc dù bản vẽ PCB ban đầu được thực hiện không sử dụng dây đơn để kết nối các thành phần trên PCB, tôi hàn hơi khác.

Bằng cách sử dụng dây dẫn đơn (không phải dây thiếc), tôi đang cố gắng giảm kích thước PCB phổ biến chứa mạch INDICATOR.

Nhưng như bạn có thể thấy ở mặt hàn của PCB, tôi cũng đang sử dụng dây thiếc theo các mẫu được mô tả trong bản vẽ PCB.

Khi mỗi thành phần được kết nối theo thiết kế ban đầu của bản vẽ PCB, bảng mạch PCB đã hoàn thành việc hàn bao gồm mạch INDICATOR sẽ hoạt động chính xác.

Bước 4: Chuẩn bị kiểm tra

Chuẩn bị kiểm tra
Chuẩn bị kiểm tra

Trước khi kết nối RPI, mạch hoàn thiện yêu cầu thử nghiệm.

Vì có thể xảy ra bất kỳ lỗi hàn nào, nhà cung cấp nguồn DC được sử dụng để ngăn ngừa thiệt hại khi xảy ra chập hoặc đấu dây sai.

Để kiểm tra INDICATOR, hai cáp cấp nguồn bổ sung được kết nối với đầu nối nguồn điện 5V của mạch.

Bước 5: Kiểm tra (Nhiệt độ CPU là mức trung bình)

Kiểm tra (Nhiệt độ CPU là mức trung bình)
Kiểm tra (Nhiệt độ CPU là mức trung bình)

Khi không có đầu vào 5V thì đầu vào giải mã 74LS139 và kích hoạt đầu ra Y0 ở dạng THẤP (Đèn LED xanh lục được bật).

Nhưng 5V được áp dụng cho đầu vào A, đầu ra Y1 của 74LS139 kích hoạt (THẤP).

Do đó, đèn LED màu vàng được bật như trong hình trên.

Bước 6: Kiểm tra (CPU cần mức làm mát)

Kiểm tra (CPU cần mức làm mát)
Kiểm tra (CPU cần mức làm mát)

Khi cấp nguồn 5V cho cả hai đầu vào (A và B) của 74LS139, đèn LED màu đỏ thứ 4 sẽ nhấp nháy.

Tốc độ nhấp nháy có thể được thay đổi bằng cách điều chỉnh 100K VR như trong hình trên.

Khi quá trình thử nghiệm hoàn tất, có thể tháo hai cáp Molex 3 pin cái.

Bước 7: Cấp nguồn cho mạch INDICATOR

Cấp nguồn cho mạch INDICATOR
Cấp nguồn cho mạch INDICATOR

Để cấp nguồn cho mạch INDICATOR, tôi đang sử dụng bộ sạc điện thoại cầm tay thông thường có đầu ra 5V và bộ chuyển đổi USB loại B như trong hình trên.

Để tránh sự cố với RPI bằng cách kết nối GPIO 3.3V và mạch INDICATOR được cấp nguồn 5V, giao diện tín hiệu và nguồn điện được cách ly hoàn toàn với nhau.

Bước 8: Nối dây RPI

Dây RPI
Dây RPI

Đối với mạch INDICATOR giao tiếp với RPI, hai chân GPIO nên được dành riêng cùng với hai chân nối đất.

Không có yêu cầu cụ thể cho việc chọn chân GPIO.

Bạn có thể sử dụng bất kỳ chân GPIO nào để kết nối INDICATOR.

Nhưng các chân có dây phải được chỉ định làm đầu vào cho 74LS139 (ví dụ: A, B) trong chương trình python.

Bước 9: Chương trình Python

Chương trình Python
Chương trình Python

Khi hoàn thành mạch, việc tạo chương trình python bắt buộc phải sử dụng hàm INDICATOR.

Vui lòng tham khảo lưu đồ ở trên để biết thêm chi tiết về logic chương trình.

# - * - mã hóa: utf-8 - * -

nhập quy trình con, tín hiệu, hệ thống

thời gian nhập khẩu, tái

nhập RPi. GPIO dưới dạng g

A = 12

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

print ('Bạn đã nhấn Ctrl + C!')

g.output (A, Sai)

g.output (B, Sai)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

trong khi Đúng:

f = open ('/ home / pi / My_project / CPU_tempeosystem_log.txt', 'a +')

temp_str = subprocess.check_output ('/ opt / vc / bin / vcgencmd Measure_temp', shell = True)

temp_str = temp_str.decode (mã hóa = 'UTF-8', sai sót = 'nghiêm ngặt')

CPU_temp = re.findall ("\ d + \. / D +", temp_str)

# trích xuất nhiệt độ CPU hiện tại

current_temp = float (CPU_temp [0])

nếu current_temp> 30 và current_temp <40:

# nhiệt độ thấp A = 0, B = 0

g.output (A, Sai)

g.output (B, Sai)

time.sleep (5)

elif current_temp> = 40 và current_temp <45:

# môi trường nhiệt độ A = 0, B = 1

g.output (A, Sai)

g.output (B, True)

time.sleep (5)

elif current_temp> = 45 và current_temp <50:

# nhiệt độ cao A = 1, B = 0

g.output (A, True)

g.output (B, Sai)

time.sleep (5)

elif current_temp> = 50:

# Yêu cầu làm mát CPU cao A = 1, B = 1

g.output (A, True)

g.output (B, True)

time.sleep (5)

current_time = time.time ()

formated_time = time.strftime ("% H:% M:% S", time.gmtime (current_time))

f.write (str (formated_time) + '\ t' + str (current_temp) + '\ n')

f.close ()

Chức năng chính của chương trình python như bên dưới.

- Đầu tiên thiết lập GPIO 12, 16 làm cổng đầu ra

- Định nghĩa trình xử lý ngắt Ctrl + C để đóng tệp nhật ký và tắt GPIO 12, 16

- Khi truy cập vào vòng lặp vô hạn, hãy mở tệp nhật ký ở chế độ nối thêm

- Đọc nhiệt độ CPU bằng cách thực hiện lệnh “/ opt / vc / bin / vcgencmd Measure_temp”

- Khi nhiệt độ nằm trong khoảng 30 ~ 39 thì xuất 00 để bật đèn LED xanh

- Khi nhiệt độ nằm trong khoảng 40 ~ 44 thì xuất 01 để bật đèn LED Vàng

- Khi nhiệt độ nằm trong khoảng 45 ~ 49 thì xuất 10 để bật đèn LED Đỏ

- Khi nhiệt độ hơn 50 thì xuất ra 11 để làm cho đèn LED đỏ nhấp nháy

- Ghi dấu thời gian và dữ liệu nhiệt độ vào tệp nhật ký

Bước 10: Hoạt động INDICATOR

Hoạt động INDICATOR
Hoạt động INDICATOR

Khi mọi thứ đều ổn, bạn có thể thấy từng đèn LED được bật hoặc nhấp nháy theo nhiệt độ CPU.

Bạn không cần phải nhập lệnh shell để kiểm tra nhiệt độ hiện tại.

Sau khi thu thập dữ liệu trong tệp nhật ký và kết xuất dữ liệu văn bản thành biểu đồ bằng cách sử dụng Excel, kết quả được hiển thị như hình trên.

Khi áp dụng tải cao (Chạy hai Trình duyệt Midori và phát video Youtube), nhiệt độ CPU tăng đột biến lên đến 57,9C.

Bước 11: Chế tạo thay thế (Sử dụng Transistor NPN) và Phát triển thêm

Chế tạo thay thế (Sử dụng Transistor NPN) và Phát triển thêm
Chế tạo thay thế (Sử dụng Transistor NPN) và Phát triển thêm

Đây là ví dụ dự án INDICATOR trước đây sử dụng bóng bán dẫn NPN (2N3904 và BD139).

Như bạn có thể thấy thêm một IC (74HC04, bộ đảo ngược Quad) là cần thiết để điều khiển bóng bán dẫn NPN vì điện áp mức CAO nên được áp dụng cho cơ sở của NPN để bật bóng bán dẫn.

Tóm lại, sử dụng transistor NPN thêm phức tạp không cần thiết để làm mạch INDICATOR.

Để phát triển thêm dự án này, tôi sẽ thêm quạt làm mát như trong hình trên để làm cho mạch INDICATOR hữu ích hơn.

Đề xuất: