Съдържание:

Индикатор за температурата на процесора Raspberry Pi: 11 стъпки (със снимки)
Индикатор за температурата на процесора Raspberry Pi: 11 стъпки (със снимки)

Видео: Индикатор за температурата на процесора Raspberry Pi: 11 стъпки (със снимки)

Видео: Индикатор за температурата на процесора Raspberry Pi: 11 стъпки (със снимки)
Видео: Микрокомпьютер Raspberry Pi 3 b+ / Не запускается 2024, Юли
Anonim
Индикатор за температурата на процесора Raspberry Pi
Индикатор за температурата на процесора Raspberry Pi

Преди това бях въвел проста схема на индикатор за работно състояние на малиново пи (по -долу като RPI).

Този път ще обясня някои по -полезни индикаторни схеми за RPI, работещи по безглавен (без монитор) начин.

Схемата по -горе показва температурата на процесора на 4 различни нива, като например:

- Зеленият светодиод се включва, когато температурата на процесора е в рамките на 30 ~ 39 градуса

- Жълтият светодиод показва, че температурата се повишава в диапазона от 40 до 45 градуса

- Третият червен светодиод показва, че процесорът става малко горещ, достигайки 46 ~ 49 градуса

- Друг червен светодиод ще мига, когато температурата надвиши 50 градуса

Горните температурни диапазони на процесора са моята лична концепция за дизайн (Други температурни диапазони могат да бъдат конфигурирани чрез промяна на тестовите условия на програмата на python, която контролира тази верига).

Използвайки тази схема, не е задължително често да изпълнявате командата „vcgencmd mere_temp“на конзолния терминал.

Тази схема непрекъснато и удобно информира текущата температура на процесора.

Стъпка 1: Подготовка на схеми

Подготовка на схеми
Подготовка на схеми

Въпреки че можете да контролирате директно 4 светодиода, като използвате само кодове на python, логиките за управление на програмата ще заредят RPI и в резултат на това температурата на процесора ще се увеличи повече, защото трябва да работите малко сложен код на python непрекъснато.

Следователно минимизирам сложността на кода на Python възможно най-лесно и разтоварвам логиката за управление на LED към външна хардуерна верига.

Схемата за индикатор на температурата на процесора (наричана по -долу INICATOR) се състои от следните основни части.

-Два опто-съединителя са свързани към RPI GPIO щифтове, за да получат данни за нивото на температурата като 00-> LOW, 01-> Medium, 10-> High, 11-> Необходимо е охлаждане.

-74LS139 (или 74HC139, 2 до 4 декодер и демултиплексор) управляващи изходи (Y0, Y1, Y2, Y3) според входовете (A, B)

- Когато температурата е в рамките на 30 ~ 39 градуса, кодът на Python извежда 00 към GPIO щифтове. Следователно 74LS139 получава входни данни 00 (A-> 0, B-> 0)

- Когато се въведе 00, Y0 изходът става НИСКИ. (Моля, вижте таблицата на истината на 74LS139)

- Когато Y0 изходът стане нисък, той активира 2N3906 PNP транзистор и в резултат на това зеленият светодиод се включва

- По същия начин Y1 (01 -> температура на процесора) ще включи жълт светодиод и така нататък

- Когато Y3 стане НИСКИ, DB140 активира NE555 LED мигаща верига (това е обичайна 555 IC базирана LED мигачка), която е натоварване на BD140 PNP транзистор

Най -важният компонент на тази схема е 74LS139, който декодира 2 цифри, въведени в 4 различни единични изхода, както е показано в таблицата за истината по -долу.

Въвеждане | Изход

G (Активиране) | В | А | 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 |

Тъй като изходът 74LS139 става НИСКИ, транзисторът от тип PNP може да улесни цялостната схема, тъй като транзисторът PNP е включен, когато базовият терминал стане НИСКИ. (Ще покажа NPN версията в края на тази история)

Тъй като 100K потенциометър е включен в светодиодната мигаща схема NE555, времето за включване/изключване на червения светодиод може да се регулира свободно според нуждите.

Стъпка 2: Изготвяне на печатни платки

Изготвяне на печатни платки
Изготвяне на печатни платки

Тъй като оперативната схема на ИНДИКАТОРА е обяснена, нека започнем да правим веригата.

Преди запояване на нещо върху универсална платка, изготвянето на чертежа на печатната платка, показано по -горе, е полезно, за да се сведе до минимум всякакви грешки.

Чертежът е направен с помощта на power-point за локализиране на всяка част на универсалната дъска и направяне на схеми за свързване между части с проводници.

Тъй като изображенията на извода на IC и транзистора са разположени заедно с схемата на окабеляване на печатни платки, запояването може да се извърши с помощта на този чертеж.

Стъпка 3: Запояване

Запояване
Запояване

Въпреки че оригиналният чертеж на печатна платка е направен без използване на единични проводници за свързване на компоненти на печатна платка, запоявам малко по -различно.

Използвайки единичен проводник на проводници (не калайден проводник), аз се опитвам да намаля универсалния размер на печатната платка, който съдържа INDICATOR верига.

Но както можете да видите от страната на запояване на печатни платки, аз използвам тенекиена тел също според моделите, изобразени на чертежа на печатната платка.

Когато всеки компонент е свързан според оригиналния дизайн на чертежа на печатната платка, запоената печатна платка, включително схемата INDICATOR, ще работи правилно.

Стъпка 4: Подготовка за тестване

Подготовка за тестване
Подготовка за тестване

Преди свързване към RPI, готовата верига изисква тестване.

Тъй като могат да съществуват всякакви грешки при запояване, доставчикът на DC захранване се използва за предотвратяване на повреди при възникване на късо съединение или грешно окабеляване.

За тестване на INDICATOR, два допълнителни захранващи кабела са свързани към 5V захранващия конектор на веригата.

Стъпка 5: Тестване (Температурата на процесора е средно ниво)

Тестване (температурата на процесора е средно ниво)
Тестване (температурата на процесора е средно ниво)

Когато не се прилага вход 5V, тогава 74LS139 декодира входа и активира изхода Y0 като LOW (Зеленият светодиод свети).

Но 5V се прилага към вход А, изход Y1 от 74LS139 активира (LOW).

Следователно жълтият светодиод се включва, както е показано на снимката по -горе.

Стъпка 6: Тестване (CPU се нуждае от ниво на охлаждане)

Тестване (CPU се нуждае от ниво на охлаждане)
Тестване (CPU се нуждае от ниво на охлаждане)

Когато 5V приложи и двата входа (A и B) на 74LS139, четвъртият червен светодиод мига.

Скоростта на мигане може да се промени чрез регулиране на 100K VR, както е показано на снимката по -горе.

Когато тестването приключи, два 3 -пинов женски кабела Molex могат да бъдат отстранени.

Стъпка 7: Захранване към INDICATOR верига

Захранване към INDICATOR верига
Захранване към INDICATOR верига

За захранване на INDICATOR верига използвам общо зарядно устройство за ръчен телефон, което извежда 5V и USB адаптер тип B, както е показано на снимката по-горе.

За да се избегне проблем с RPI чрез свързване на 3.3V GPIO и 5V захранвана INDICATOR верига, сигналният интерфейс и захранването са напълно изолирани един от друг.

Стъпка 8: RPI окабеляване

RPI окабеляване
RPI окабеляване

За свързване на INDICATOR верига с RPI трябва да бъдат отделени два GPIO пина заедно с два заземителни щифта.

Няма конкретно изискване за избор на GPIO щифтове.

Можете да използвате всякакви GPIO щифтове за свързване на INDICATOR.

Но кабелните щифтове трябва да бъдат обозначени като входове на 74LS139 (например A, B) в програмата на python.

Стъпка 9: Програма Python

Програма Python
Програма Python

Когато веригата е завършена, е необходимо да се направи програма на python, за да се използва функцията INDICATOR.

Моля, вижте диаграма по -горе за повече подробности относно програмната логика.

#-*-кодиране: utf-8-*-

импортиране на подпроцес, сигнал, sys

време за импортиране, повторно

импортирайте RPi. GPIO като g

A = 12

В = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (sig, frame):

print ('Натиснахте Ctrl+C!')

g.output (A, False)

g.output (B, False)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

докато е вярно:

f = отворен ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = подпроцес.check_output ('/opt/vc/bin/vcgencmd измерване_темп', черупка = вярно)

temp_str = temp_str.decode (кодиране = 'UTF-8', грешки = 'строго')

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

# извличане на текущата температура на процесора

current_temp = float (CPU_temp [0])

ако current_temp> 30 и current_temp <40:

# ниска температура A = 0, B = 0

g.output (A, False)

g.output (B, False)

time.sleep (5)

elif current_temp> = 40 и current_temp <45:

# температурна среда A = 0, B = 1

g.output (A, False)

g.output (B, True)

time.sleep (5)

elif current_temp> = 45 и current_temp <50:

# висока температура A = 1, B = 0

g.output (A, True)

g.output (B, False)

time.sleep (5)

elif current_temp> = 50:

# Необходимо е охлаждане на процесора високо 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 (formatted_time)+'\ t'+str (current_temp)+'\ n')

f.close ()

Основната функция на програмата python е както по -долу.

- Първо задайте GPIO 12, 16 като изходен порт

- Определяне на Ctrl+C манипулатор на прекъсване за затваряне на регистрационен файл и изключване на GPIO 12, 16

- Когато влезете в безкраен цикъл, отворете регистрационния файл като режим на добавяне

- Прочетете температурата на процесора, като изпълните командата „/opt/vc/bin/vcgencmd mere_temp“

- Когато температурата е в диапазона 30 ~ 39, след това изведете 00, за да включите зеления светодиод

- Когато температурата е в диапазона 40 ~ 44, след това изведете 01, за да включите жълтия светодиод

- Когато температурата е в диапазона 45 ~ 49, след това изведете 10, за да включите червения светодиод

- Когато температурата е повече от 50, след това изведете 11, за да мигне червеният светодиод

- Запишете времеви печат и данни за температурата в лог файла

Стъпка 10: Работа с ИНДИКАТОР

ИНДИКАТОР Работа
ИНДИКАТОР Работа

Когато всичко е наред, можете да видите, че всеки светодиод е включен или мига според температурата на процесора.

Не е нужно да въвеждате командата shell, за да проверите текущата температура.

След събиране на данни в лог файла и преобразуване на текстови данни в графика с помощта на Excel, резултатът е показан на снимката по -горе.

Когато прилагате големи натоварвания (Работете с два браузъра Midori и възпроизвеждате видеоклип в Youtube), температурата на процесора се повишава до 57,9C.

Стъпка 11: Алтернативно създаване (използване на NPN транзистор) и по -нататъшно развитие

Алтернативно създаване (използване на NPN транзистор) и по -нататъшно развитие
Алтернативно създаване (използване на NPN транзистор) и по -нататъшно развитие

Това е предишен пример за проект INDICATOR, използващ NPN транзистори (2N3904 и BD139).

Както можете да видите още една IC (74HC04, Quad инвертори) е необходима за задвижване на NPN транзистор, тъй като напрежението на високо ниво трябва да бъде приложено към базата на NPN, за да се включи транзисторът.

Като обобщение, използването на NPN транзистор добавя ненужна сложност, за да направи INDICATOR верига.

За по -нататъшното развитие на този проект ще добавя охлаждащ вентилатор, както е показано на снимката по -горе, за да направя схемата INDICATOR по -полезна.

Препоръчано: