Theo dõi điện năng và nhiệt độ máy Raspberry Pĩ

Nội dung

    Khi chúng tôi đang sử dụng bảng Raspberry Pi, đôi khi bạn có thể thấy điện áp thấp qua lời nhắc bên phải của màn hình hệ thống, hoặc tự nhiện khởi động máy lại. Như thế hệ thống hoạt động không ổn định, mất dữ liệu và thậm chí làm hỏng thẻ SD.
    Ngay cả khi bộ đổi nguồn chất lượng cao được sử dụng để đáp ứng điện áp và dòng điện làm việc của Raspberry Pi, việc cắm và rút phích cắm lặp đi lặp lại sau khi sử dụng lâu dài sẽ dẫn đến tiếp xúc kém và điện trở cao, điều này sẽ làm cho điện áp đầu vào của Raspberry Pi không đủ.
    Có thể ta nhập lệnh sau: get_throttled VCGenCMD
    Chúng ta sẽ nhận được một số thập lục phân phản ánh thông tin trạng thái liên quan đến tần số hệ thống hiện tại, điện áp đầu vào, v.v. Sau khi số này được chuyển đổi thành nhị phân, 8 bit trong đó đại diện cho trạng thái của 8 lá cờ.
    Để biết chi tiết, vui lòng tham khảo liên kết này trên trang web Raspberry Pi: https://www.raspberrypi.com/documentation/computers/os.html

    Trả về trạng thái điều tiết của hệ thống. Đây là một mẫu bit – một bit được đặt chỉ ra các ý nghĩa sau:

    BitHex valueMeaning

    0

    0x1

    Phát hiện dưới điện áp

    1

    0x2

    Giới hạn tần số cánh tay

    2

    0x4

    Hiện đang bị điều tiết

    3

    0x8

    Giới hạn nhiệt độ mềm hoạt động

    16

    0x10000

    Đã xảy ra tình trạng dưới điện áp

    17

    0x20000

    Giới hạn tần số cánh tay đã xảy ra

    18

    0x40000

    Điều tiết đã xảy ra

    19

    0x80000

    Giới hạn nhiệt độ mềm đã xảy ra

    Hãy tập trung vào hai trong số chúng:
    Nếu bit thứ 0 của số này là 1, nó chỉ ra rằng điện áp đầu vào hiện tại là không đủ;
    Nếu bit thứ 16 của số này là 1, nó chỉ ra rằng đã có điện áp đầu vào không đủ sau khi khởi động;
    Trên thực tế, miễn là chúng tôi phát hiện hai lá cờ này trong thời gian thực, chúng tôi có thể theo dõi điện áp đầu vào của Raspberry Pi.

    Hiển thị điện áp hiện tại được sử dụng bởi khối cụ thể: vcgencmd measure_volts core

    khốiSự miêu tả

    core

    Điện áp lõi VC4

    sdram_c

    Điện áp lõi SDRAM

    sdram_i

    Điện áp I / O SDRAM

    sdram_p

    Điện áp SDRAM Phy

    Sử dụng câu lệnh python, đầu tiên cài thư viện

    sudo pip3 install vcgencmd -i https://mirrors.aliyun.com/pypi/simple/

     

    Tạo file pw.py

    #!/usr/bin/env python3

    # -*- coding: utf-8 -*-

    # cython: language_level=3

    #Flag Bits

    UNDERVOLTED         = ‘0’

    CAPPED              = ‘1’

    THROTTLED           = ‘2’

    SOFT_TEMPLIMIT      = ‘3’

    HAS_UNDERVOLTED     = ’16’

    HAS_CAPPED          = ’17’

    HAS_THROTTLED       = ’18’

    HAS_SOFT_TEMPLIMIT  = ’19’

     

    from vcgencmd import Vcgencmd

    from colorama import init

    from colorama import Fore, Back, Style

    import time

    init(autoreset=True)

    vcgm = Vcgencmd()

    def print_log(flag, info):

    if flag:

    print(Fore.RED + Style.BRIGHT + info, end = ‘  ‘)

    else:

    print(Fore.GREEN + Style.DIM + info, end = ‘  ‘)

     

    while True:

    print(‘[{}] ‘.format(time.strftime(‘%M:%S’)), end = ”)

    output = vcgm.get_throttled()

    flag = output[‘breakdown’][UNDERVOLTED]

    print_log(flag, ‘UNDERVOLTED’)

    flag = output[‘breakdown’][CAPPED]

    print_log(flag, ‘CAPPED’)

    flag = output[‘breakdown’][THROTTLED]

    print_log(flag, ‘THROTTLED’)

    flag = output[‘breakdown’][SOFT_TEMPLIMIT]

    print_log(flag, ‘SOFT_TEMPLIMIT’)

    flag = output[‘breakdown’][HAS_UNDERVOLTED]

    print_log(flag, ‘HAS_UNDERVOLTED’)

    flag = output[‘breakdown’][HAS_CAPPED]

    print_log(flag, ‘HAS_CAPPED’)

    flag = output[‘breakdown’][HAS_THROTTLED]

    print_log(flag, ‘HAS_THROTTLED’)

    flag = output[‘breakdown’][HAS_SOFT_TEMPLIMIT]

    print_log(flag, ‘HAS_SOFT_TEMPLIMIT’)

    print()

    time.sleep(1)

    #EOF

    Nếu bạn đang sử dụng nguồn điện bình thường trên Raspberry Pi 4B và bạn sẽ nhận được kết quả sau.

    Nếu hệ thống hiển thị thông báo màu đỏ, nó chỉ ra rằng bit cờ có liên quan là 1.
    Chúng ta có thể thấy rằng UNDERVOLTED màu đỏ chỉ ra rằng điện áp đầu vào quá thấp,Điều chỉnh màu đỏ cho biết tần số hoạt động của hệ thống đã bị ép xuống,HAS_UNDERVOLTED màu đỏ cho biết rằng tình trạng điện áp thấp đã được phát hiện,Một HAS_THROTTLED màu đỏ cho biết rằng nó đã được ép xung.

    Theo dõi nhiệt độ.

    Trả về nhiệt độ của SoC được đo bằng cảm biến nhiệt độ bên trong của nó; trên Raspberry Pi 4, trả về nhiệt độ của PMIC.
    vcgencmd measure_temp
    vcgencmd measure_temp pmic
    Nhiệt độ của Raspberry Pi đạt tới nhưng không vượt quá mức 80°C, mức nhiệt mà CPU sẽ bị giảm tốc trong quá trình
    vcgencmd measure_clock arm

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *