Оглавление:

Индикатор температуры процессора Raspberry Pi: 11 шагов (с изображениями)
Индикатор температуры процессора Raspberry Pi: 11 шагов (с изображениями)

Видео: Индикатор температуры процессора Raspberry Pi: 11 шагов (с изображениями)

Видео: Индикатор температуры процессора Raspberry Pi: 11 шагов (с изображениями)
Видео: Первый взгляд на Raspberry Pi 5. Тест Памяти и CPU. Установка Home Assistant Operation System. 2024, Июль
Anonim
Индикатор температуры процессора Raspberry Pi
Индикатор температуры процессора Raspberry Pi

Ранее я представил простую схему индикатора рабочего состояния raspberry pi (далее - RPI).

На этот раз я объясню еще одну полезную схему индикатора для работы RPI без монитора (без монитора).

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

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

- Желтый светодиод указывает на повышение температуры в диапазоне от 40 до 45 градусов.

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

- Еще один красный светодиод будет мигать, когда температура превышает 50 градусов

Вышеуказанные диапазоны температур процессора являются моей личной концепцией дизайна (другие диапазоны температур можно настроить, изменив условия тестирования программы Python, которая управляет этой схемой).

Используя эту схему, вы не обязательно часто выполняете команду «vcgencmd measure_temp» на консольном терминале.

Эта схема должна постоянно и удобно информировать текущую температуру процессора.

Шаг 1: Подготовка схем

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

Хотя вы можете управлять 4 светодиодами напрямую, используя только коды Python, логика управления программой будет загружать RPI и, как следствие, температура процессора будет увеличиваться еще больше, потому что вы должны постоянно запускать немного сложный код Python.

Поэтому я минимизирую сложность кода Python настолько просто, насколько это возможно, и перекладываю логику управления светодиодами на внешнюю аппаратную схему.

Схема индикатора температуры процессора (далее ИНИКАТОР) состоит из следующих основных частей.

- Два оптопары подключены к контактам 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 становится LOW, он активирует транзистор 2N3906 PNP, и в результате загорается зеленый светодиод.

- Аналогично, Y1 (01 -> CPU temperature medium) должен загореться желтым светодиодом и т. Д.

- Когда Y3 становится LOW, DB140 активирует цепь мигания светодиода NE555 (это обычный светодиодный мигатель на базе микросхемы 555), которая является нагрузкой на транзистор PNP BD140.

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

Вход | Выход

G (Включить) | B | А | 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 становится LOW, транзистор типа PNP может упростить общую схему, поскольку транзистор PNP включается, когда клемма базы становится LOW. (Я покажу версию NPN в конце этой истории)

Поскольку в цепь светодиодного мигающего индикатора NE555 включен потенциометр 100K, время включения / выключения красного светодиода можно свободно регулировать в соответствии с потребностями.

Шаг 2: Создание чертежа печатной платы

Создание чертежа печатной платы
Создание чертежа печатной платы

Поскольку поясняется схема работы ИНДИКАТОРА, приступим к изготовлению схемы.

Перед пайкой чего-либо на универсальной плате подготовьте показанный выше чертеж печатной платы, чтобы свести к минимуму любые ошибки.

Чертеж сделан с использованием точки питания для определения местоположения каждой части на универсальной плате и создания схем разводки между частями с проводами.

Поскольку изображения выводов микросхемы и транзистора совмещены с рисунком разводки печатной платы, пайка может быть выполнена с использованием этого чертежа.

Шаг 3: пайка

Пайка
Пайка

Хотя исходный чертеж печатной платы сделан без использования одиночных проводов для соединения компонентов на печатной плате, я паяю несколько иначе.

Используя однопроволочный провод (не оловянный), я пытаюсь уменьшить универсальный размер печатной платы, содержащей схему ИНДИКАТОРА.

Но, как вы можете видеть на стороне пайки печатной платы, я использую оловянную проволоку также в соответствии с рисунками, изображенными на чертеже печатной платы.

Когда каждый компонент подключен в соответствии с оригинальным дизайном чертежа печатной платы, завершенная пайка печатной платы, включая цепь ИНДИКАТОРА, будет работать правильно.

Шаг 4: Подготовка к тестированию

Подготовка к тестированию
Подготовка к тестированию

Перед подключением RPI готовая схема требует тестирования.

Поскольку возможны любые ошибки при пайке, для предотвращения повреждений в случае короткого замыкания или неправильного подключения используется источник питания постоянного тока.

Для тестирования ИНДИКАТОРА к разъему питания 5В схемы подключаются два дополнительных кабеля питания.

Шаг 5: Тестирование (средняя температура процессора)

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

Когда вход 5 В не подается, то 74LS139 декодирует вход и активирует выход Y0 как НИЗКИЙ (горит зеленый светодиод).

Но на вход A подается 5 В, выход Y1 74LS139 активируется (LOW).

Поэтому горит желтый светодиод, как показано на рисунке выше.

Шаг 6: Тестирование (ЦП требуется уровень охлаждения)

Тестирование (ЦП требует уровня охлаждения)
Тестирование (ЦП требует уровня охлаждения)

Когда на оба входа (A и B) 74LS139 подается 5 В, мигает 4-й красный светодиод.

Частоту мигания можно изменить, отрегулировав 100K VR, как показано на рисунке выше.

По завершении тестирования два 3-контактных кабеля Molex с розеткой можно удалить.

Шаг 7. Питание цепи ИНДИКАТОРА

Электропитание цепи ИНДИКАТОРА
Электропитание цепи ИНДИКАТОРА

Для питания цепи ИНДИКАТОРА я использую обычное зарядное устройство для мобильного телефона с выходным напряжением 5 В и адаптер USB типа B, как показано на рисунке выше.

Чтобы избежать проблем с RPI, подключив 3,3 В GPIO и цепь ИНДИКАТОРА с питанием 5 В, сигнальный интерфейс и источник питания полностью изолированы друг от друга.

Шаг 8: Подключение RPI

Подключение RPI
Подключение RPI

Для сопряжения схемы ИНДИКАТОРА с RPI необходимо выделить два контакта GPIO вместе с двумя контактами заземления.

Особых требований к выбору контактов GPIO нет.

Вы можете использовать любые контакты GPIO для подключения ИНДИКАТОРА.

Но проводные контакты должны быть обозначены как входы для 74LS139 (например, A, B) в программе Python.

Шаг 9: Программа Python

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

По завершении схемы требуется создание программы на Python для использования функции ИНДИКАТОР.

Пожалуйста, обратитесь к блок-схеме выше для получения более подробной информации о логике программы.

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

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

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

импортировать RPi. GPIO как g

А = 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; Ложь)

g.output (B; Ложь)

f.close ()

sys.exit (0)

signal.signal (сигнал. SIGINT, обработчик_сигнала)

##

в то время как True:

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

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

temp_str = temp_str.decode (кодировка = 'UTF-8', errors = 'strict')

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; Ложь)

g.output (B; Ложь)

время сна (5)

elif current_temp> = 40 и current_temp <45:

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

g.output (A; Ложь)

g.output (B, Истина)

время сна (5)

elif current_temp> = 45 и current_temp <50:

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

g.output (A, Истина)

g.output (B; Ложь)

время сна (5)

elif current_temp> = 50:

# Требуется высокое охлаждение процессора A = 1, B = 1

g.output (A, Истина)

g.output (B, Истина)

время сна (5)

current_time = время.время ()

formated_time = time.strftime ("% H:% M:% S", time.gmtime (текущее_время))

f.write (str (время_форматирования) + '\ t' + str (current_temp) + '\ n')

f.close ()

Основная функция программы Python приведена ниже.

- Сначала установите GPIO 12, 16 как выходной порт

- Определение обработчика прерывания Ctrl + C для закрытия файла журнала и выключения GPIO 12, 16

- При входе в бесконечный цикл открыть файл журнала в режиме добавления

- Считайте температуру процессора, выполнив команду «/ opt / vc / bin / vcgencmd measure_temp»

- Когда температура находится в диапазоне 30 ~ 39, на выходе 00 загорится зеленый светодиод.

- Когда температура находится в диапазоне 40 ~ 44, тогда на выходе 01 загорится желтый светодиод.

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

- Когда температура выше 50, на выходе 11 должен мигать красный светодиод.

- Запись отметки времени и данных температуры в файл журнала

Шаг 10: Работа ИНДИКАТОРА

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

Когда все в порядке, вы увидите, что каждый светодиод горит или мигает в зависимости от температуры процессора.

Вам не нужно вводить команду оболочки, чтобы проверить текущую температуру.

После сбора данных в файле журнала и визуализации текстовых данных в графике с помощью Excel результат показан на рисунке выше.

При высоких нагрузках (запуск двух браузеров Midori и воспроизведение видео на Youtube) температура процессора резко возрастает до 57,9 ° C.

Шаг 11: Создание альтернативы (с использованием транзистора NPN) и дальнейшее развитие

Создание альтернативы (с использованием транзистора NPN) и дальнейшее развитие
Создание альтернативы (с использованием транзистора NPN) и дальнейшее развитие

Это предыдущий пример проекта INDICATOR с использованием транзисторов NPN (2N3904 и BD139).

Как видите, еще одна микросхема (74HC04, четырехканальные инверторы) необходима для управления транзистором NPN, поскольку для включения транзистора на базу NPN должно подаваться напряжение ВЫСОКОГО уровня.

Подводя итог, можно сказать, что использование транзистора NPN добавляет ненужной сложности для создания схемы ИНДИКАТОРА.

Для дальнейшего развития этого проекта я добавлю охлаждающий вентилятор, как показано на рисунке выше, чтобы сделать схему ИНДИКАТОРА более полезной.

Рекомендуемые: