Мазмұны:

Raspberry Pi процессорының температуралық индикаторы: 11 қадам (суреттермен)
Raspberry Pi процессорының температуралық индикаторы: 11 қадам (суреттермен)

Бейне: Raspberry Pi процессорының температуралық индикаторы: 11 қадам (суреттермен)

Бейне: Raspberry Pi процессорының температуралық индикаторы: 11 қадам (суреттермен)
Бейне: Пять мифов о Raspberry Pi: зачем создавалась, как работает с Win 10 и кто победит — Pi 3 или Arduino 2024, Шілде
Anonim
Raspberry Pi процессорының температуралық индикаторы
Raspberry Pi процессорының температуралық индикаторы

Бұрын мен қарапайым таңқурай pi (бұдан әрі - RPI) жұмыс күйінің индикаторлық схемасын енгіздім.

Бұл жолы мен бассыз (мониторсыз) жұмыс істейтін RPI индикаторлық схемасын түсіндіремін.

Жоғарыдағы схема процессордың температурасын 4 түрлі деңгейге көрсетеді, мысалы:

- Жасыл жарық диоды процессор температурасы 30 ~ 39 градус аралығында болғанда қосылады

- Сары жарық диоды температураның 40 -тан 45 градусқа дейін көтерілгенін көрсетеді

3 -ші қызыл жарық диоды процессордың 46 ~ 49 градусқа дейін қызғанын көрсетеді

- Егер температура 50 градустан жоғары болса, басқа қызыл жарық диоды жыпылықтайды

Жоғарыда келтірілген процессордың температуралық диапазоны - бұл менің жеке дизайн тұжырымдамам (Басқа температура диапазондарын осы тізбекті басқаратын python бағдарламасының сынақ шарттарын өзгерту арқылы конфигурациялауға болады).

Бұл тізбекті пайдалану арқылы сіз консольдық терминалда жиі «vcgencmd tədbir_темп» пәрменін орындамайсыз.

Бұл схема процессордың ағымдағы температурасын үздіксіз және ыңғайлы түрде хабарлауы керек.

1 -қадам: схеманы дайындау

Схемаларды дайындау
Схемаларды дайындау

Сіз тек 4 питон кодын қолдану арқылы 4 жарықдиодты басқара алатын болсаңыз да, бағдарламаның басқару логикасы RPI жүктейді, нәтижесінде процессордың температурасы жоғарылайды, себебі сіз үнемі күрделі питон кодын үнемі іске қосуыңыз керек.

Сондықтан мен питон кодының күрделілігін барынша азайтамын және сыртқы аппараттық схемаға светодиодты басқару логикасын азайтамын.

CPU температурасының индикаторы (бұдан әрі INICATOR) схемасы келесі негізгі бөліктерден тұрады.

-00-> LOW, 01-> Medium, 10-> High, 11-> салқындату қажет сияқты температура деңгейін алу үшін RPI GPIO түйреуіштеріне екі опто-қосқыш қосылады.

-кірістерге сәйкес (A, B) 74LS139 (немесе 74HC139, 2-ден 4-ке дейін декодер мен де-мультиплексор) басқару шығысы (Y0, Y1, Y2, Y3).

- Температура 30 ~ 39 градус аралығында болғанда, python коды 00 GPIO түйреуіштеріне шығады. Сондықтан, 74LS139 00 кіріс деректерін алады (A-> 0, B-> 0)

- 00 енгізілгенде Y0 шығысы LOW болады. (74LS139 шындық кестесін қараңыз)

- Y0 шығысы LOW болғанда, ол 2N3906 PNP транзисторын іске қосады, нәтижесінде жасыл жарық диоды қосылады.

- Сол сияқты, Y1 (01 -> процессордың температуралық ортасы) сары жарықдиодты қосады және т.б.

- Y3 LOW болғанда, DB140 BD140 PNP транзисторының жүктемесі болып табылатын NE555 светодиодты жыпылықтау тізбегін белсендіреді (бұл 555 IC негізіндегі жарықдиодты жыпылықтағыш).

Бұл тізбектің ең маңызды құрамдас бөлігі - 74LS139, ол төмендегі шындық кестесінде көрсетілгендей 4 түрлі бір шығысқа 2 цифрлық кірісті декодтайды.

Енгізу | Шығу

G (қосу) | 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 |

74LS139 шығысы LOW деңгейіне жеткенде, PNP типті транзистор жалпы тізбекті жеңілдете алады, себебі PNP транзисторы базалық терминал LOW күйіне ауысқанда қосылады. (Мен осы оқиғаның соңында NPN нұсқасын көрсетемін)

100K потенциометрі NE555 жарық диодты жарықтандырғыш схемасына қосылғандықтан, қызыл жарықдиодты ҚОСУ/ӨШІРУ уақытын қажеттіліктерге сәйкес еркін реттеуге болады.

2 -қадам: ПХД сызбасын жасау

ПХД сызбасын жасау
ПХД сызбасын жасау

Индикатордың жұмыс схемасы түсіндірілгендіктен, схеманы құруды бастайық.

Әмбебап тақтаға бірдеңені дәнекерлемес бұрын, жоғарыда көрсетілген ПХД сызбасын дайындау кез келген қатені азайтуға көмектеседі.

Сызба power-point көмегімен әмбебап тақтадағы әрбір бөлікті табуға және сымдары бар бөлшектер арасында сымның үлгісін жасауға негізделген.

IC және транзисторлық кескіндер ПХД сымдар үлгісімен бірге орналасқандықтан, дәнекерлеуді осы сызбаның көмегімен орындауға болады.

3 -қадам: дәнекерлеу

Дәнекерлеу
Дәнекерлеу

ПХД -нің түпнұсқалық сызбасы ПХД компоненттерін қосу үшін бір сымды қолданбай жасалғанына қарамастан, мен басқаша дәнекерлеймін.

Сымдардың бір өткізгішін қолдану арқылы (қалайы сым емес) мен INDICATOR схемасы бар әмбебап ПХД өлшемін азайтуға тырысамын.

ПХД дәнекерлеу жағында көріп тұрғаныңыздай, мен қалайы сымды ПХД сызбасында көрсетілген үлгілерге сәйкес қолданамын.

Әр компонент ПХД сызбасының түпнұсқалық дизайнына сәйкес қосылған кезде, ИНДИКАТОР тізбегін қоса, ПХД тақтасын дәнекерлеу дұрыс жұмыс істейді.

4 -қадам: тестілеуге дайындық

Тестілеуге дайындық
Тестілеуге дайындық

RPI қосылмас бұрын, дайын схема тестілеуді қажет етеді.

Кез келген дәнекерлеу қателері болуы мүмкін болғандықтан, қысқа ток немесе қате сым пайда болған кезде зақымның алдын алу үшін тұрақты ток беруші қолданылады.

Индикаторды сынау үшін тізбектің 5В қуат көзінің қосқышына екі қосымша қуат көзі кабелі қосылады.

5 -қадам: тестілеу (процессордың температурасы орташа деңгей)

Тестілеу (CPU температурасы орташа деңгей)
Тестілеу (CPU температурасы орташа деңгей)

Егер 5В кіріс қолданылмаса, онда 74LS139 декодтау кірісі және Y0 шығысы LOW күйінде іске қосылады (Жасыл жарық диоды қосылады).

Бірақ 5В А кірісіне, Y1 шығысына 74LS139 қосылады (LOW).

Сондықтан сары жарық диоды жоғарыдағы суретте көрсетілгендей қосылады.

6 -қадам: тестілеу (процессорды салқындату деңгейі қажет)

Тестілеу (процессорды салқындату деңгейі қажет)
Тестілеу (процессорды салқындату деңгейі қажет)

5V 74LS139 екі кірісті (А және В) қосқанда, 4 -ші қызыл жарық диоды жыпылықтайды.

Жыпылықтау жиілігін жоғарыдағы суретте көрсетілгендей 100K VR реттеу арқылы өзгертуге болады.

Тестілеу аяқталғаннан кейін екі Molex 3 істікшелі аналық кабельдерді алып тастауға болады.

7 -қадам: INDICATOR схемасына электрмен жабдықтау

Индикатор схемасына электрмен жабдықтау
Индикатор схемасына электрмен жабдықтау

INDICATOR схемасын қосу үшін мен жоғарыдағы суретте көрсетілгендей 5В шығатын USB-В адаптері бар қарапайым телефон зарядтағышын қолданамын.

3.3V GPIO және 5V қуатымен жұмыс істейтін INDICATOR схемасын қосу арқылы RPI мәселесін болдырмау үшін сигнал интерфейсі мен қуат көзі бір -бірінен оқшауланған.

8 -қадам: RPI сымдары

RPI сымдары
RPI сымдары

INDICATOR схемасын RPI -мен байланыстыру үшін екі GPIO түйреуішін екі жерге қосқышпен бірге бөлу керек.

GPIO түйреуіштерін таңдауда нақты талап жоқ.

INDICATOR қосылу үшін кез келген GPIO түйреуіштерін қолдануға болады.

Бірақ сымды түйреуіштер python бағдарламасында 74LS139 (мысалы, A, B) кірістері ретінде белгіленуі керек.

9 -қадам: Python бағдарламасы

Python бағдарламасы
Python бағдарламасы

Схема аяқталғаннан кейін INDICATOR функциясын қолдану үшін python бағдарламасын жасау қажет.

Бағдарлама логикасы туралы толығырақ білу үшін жоғарыдағы схемаға жүгініңіз.

#-*-кодтау: utf-8-*-

ішкі процесті, сигналды, жүйені импорттау

импорт уақыты, қайта

g ретінде RPi. GPIO импорттау

A = 12

В = 16

g.setmode (g. BCM)

g. орнату (A, g. OUT)

g. орнату (B, g. OUT)

##

def signal_handler (сиг, кадр):

басып шығару ('Ctrl+C басыңыз!')

g.шығу (A, жалған)

g.шығу (B, жалған)

f.close ()

sys.exit (0)

сигнал.сигнал (сигнал. SIGINT, signal_handler)

##

шындық кезінде:

f = ашық ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

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

temp_str = temp_str.decode (кодтау = 'UTF-8', қателер = 'қатаң')

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

# процессордың ағымдағы температурасын шығару

current_temp = өзгермелі (CPU_temp [0])

егер current_temp> 30 және current_temp <40:

# температура төмен A = 0, B = 0

g.шығу (A, жалған)

g.шығу (B, жалған)

уақыт.ұйықтау (5)

elif current_temp> = 40 және current_temp <45:

# температуралық орта A = 0, B = 1

g.шығу (A, жалған)

g.шығу (B, True)

уақыт.ұйықтау (5)

elif current_temp> = 45 және current_temp <50:

# жоғары температура A = 1, B = 0

g.шығу (A, True)

g.шығу (B, жалған)

уақыт.ұйықтау (5)

elif current_temp> = 50:

# CPU салқындату жоғары A = 1, B = 1 қажет

g.шығу (A, True)

g.шығу (B, True)

уақыт.ұйықтау (5)

current_time = time.time ()

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

f.write (str (форматталған_уақыт)+'\ t'+str (current_temp)+'\ n')

f.close ()

Python бағдарламасының негізгі қызметі төмендегідей.

- Алдымен GPIO 12, 16 шығыс порты ретінде орнатыңыз

- журнал файлын жабу үшін Ctrl+C үзу өңдегішін анықтау және GPIO 12, 16 өшіру

- Шексіз циклге кіргенде, журнал файлын қосу режимі ретінде ашыңыз

- «/opt/vc/bin/vcgencmd ölçü_темп» пәрменін орындау арқылы процессордың температурасын оқыңыз

- Температура 30 ~ 39 аралығында болғанда, жасыл жарық диодты қосу үшін 00 шығысын шығарыңыз

- Температура 40 ~ 44 аралығында болғанда, сары жарық диодты қосу үшін 01 шығысын шығарыңыз

- Температура 45 ~ 49 аралығында болғанда, қызыл жарықдиодты қосу үшін 10 шығысы

- Егер температура 50 -ден жоғары болса, қызыл жарық диодты жыпылықтау үшін 11 шығысын шығарыңыз

- Журнал файлына уақыт белгісі мен температура деректерін жазыңыз

10 -қадам: ИНДИКАТОР операциясы

ИНДИКАТОР операциясы
ИНДИКАТОР операциясы

Барлығы жақсы болғанда, әр жарықдиодты процессордың температурасына сәйкес қосылғанын немесе жыпылықтап тұрғанын көруге болады.

Ағымдағы температураны тексеру үшін shell командасын енгізудің қажеті жоқ.

Журнал файлында деректерді жинап, Excel көмегімен мәтіндік мәліметтерді графикке шығарғаннан кейін нәтиже жоғарыдағы суретте көрсетіледі.

Жоғары жүктемелерді қолдану кезінде (екі Midori браузерін іске қосу және Youtube -те бейне ойнату) процессордың температурасы 57,9С дейін көтеріледі.

11 -қадам: балама жасау (NPN транзисторын қолдану) және одан әрі дамыту

Альтернативті жасау (NPN транзисторын қолдану) және одан әрі дамыту
Альтернативті жасау (NPN транзисторын қолдану) және одан әрі дамыту

Бұл NPN транзисторларын қолданатын INDICATOR жобасының алдыңғы мысалы (2N3904 және BD139).

Көріп отырғаныңыздай, NPN транзисторын басқару үшін тағы бір IC (74HC04, Quad инверторлары) қажет, себебі транзисторды қосу үшін NPN негізіне жоғары деңгейлі кернеу қолданылуы керек.

Қысқаша айтқанда, NPN транзисторын қолдану INDICATOR схемасын жасау үшін қажетсіз күрделілікті қосады.

Бұл жобаны әрі қарай дамыту үшін INDICATOR схемасын пайдалы ету үшін жоғарыдағы суретте көрсетілгендей салқындату желдеткішін қосамын.

Ұсынылған: