Мазмуну:

Raspberry Pi CPU температурасынын индикатору: 11 кадам (сүрөттөр менен)
Raspberry Pi CPU температурасынын индикатору: 11 кадам (сүрөттөр менен)

Video: Raspberry Pi CPU температурасынын индикатору: 11 кадам (сүрөттөр менен)

Video: Raspberry Pi CPU температурасынын индикатору: 11 кадам (сүрөттөр менен)
Video: BTT Manta M8P v2 - CM4 with eMMC 2024, Июль
Anonim
Raspberry Pi CPU температура көрсөткүчү
Raspberry Pi CPU температура көрсөткүчү

Буга чейин мен жөнөкөй малина pi (мындан ары - RPI) иштөө статусунун индикатордук схемасын киргизген элем.

Бул жолу мен RPI үчүн башсыз (мониторсуз) иштөө үчүн дагы пайдалуу индикатор схемасын түшүндүрүп берем.

Жогорудагы схема CPU температурасын 4 түрдүү деңгээлге көрсөтөт, мисалы:

- Жашыл LED CPU температурасы 30 ~ 39 градуста болгондо күйөт

- Сары LED температуранын 40-45 градуска чейин жогорулаганын билдирет

- 3 -Кызыл LED CPU 46 ~ 49 градуска жетүү менен бир аз ысып кетерин көрсөтөт

- Температура 50 градустан ашканда дагы бир кызыл LED күйөт

Жогорудагы CPU температурасынын диапазондору менин жеке дизайн түшүнүгүм (Башка температура диапазондору бул схеманы башкаруучу python программасынын сыноо шарттарын өзгөртүү аркылуу конфигурацияланат).

Бул схеманы колдонуу менен, сиз сөзсүз түрдө "vcgencmd tədbir_temp" буйругун консолдук терминалда аткарбайсыз.

Бул схема учурдагы CPU температурасын үзгүлтүксүз жана ыңгайлуу түрдө билдирип турушу керек.

1 -кадам: схемаларды даярдоо

Схемаларды даярдоо
Схемаларды даярдоо

Бир гана питон коддорун колдонуу менен 4 LEDди башкара алсаңыз да, программанын башкаруу логикасы RPIди жүктөйт жана натыйжада CPU температурасы жогорулайт, анткени сиз бир аз татаал питон кодун үзгүлтүксүз иштетишиңиз керек.

Ошондуктан, мен питон кодунун татаалдыгын мүмкүн болушунча минималдаштырып жатам жана тышкы жабдык схемасына LED көзөмөлдөө логикасын түшүрүп жатам.

CPU температурасынын көрсөткүчү (мындан ары INICATOR) схемасы төмөнкү негизги бөлүктөрдөн турат.

-00-> LOW, 01-> Орто, 10-> Жогорку, 11-> Муздатуу керек сыяктуу температура деңгээлиндеги маалыматтарды алуу үчүн эки опто-кошкуч RPI GPIO казыктарына туташтырылган.

-74LS139 (же 74HC139, 2-ден-4кө чейин декодер жана де-мультиплексор) башкаруу чыгуулары (Y0, Y1, Y2, Y3) киргизүү боюнча (A, B)

- Температура 30 ~ 39 градуста болгондо, python коду GPIO казыктарына 00 чыгат. Ошондуктан, 74LS139 00 маалыматын алат (A-> 0, B-> 0)

- 00 киргизилгенде, Y0 чыгаруу LOW болуп калат. (74LS139 чындык таблицасына кайрылыңыз)

- Y0 чыгаруу LOW болуп калганда, ал 2N3906 PNP транзисторун иштетет жана натыйжада Жашыл LED күйгүзүлөт

- Ошо сыяктуу эле, Y1 (01 -> CPU температура чөйрөсү) Yellow LEDди күйгүзөт ж.б.

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

Бул схеманын эң маанилүү компоненти 74LS139 болуп саналат, ал 2 сандын киришин 4 башка бирдиктүү чыгууга чечмелөөдө, төмөндөгү чындык таблицасында көрсөтүлгөн.

Киргизүү | Output

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 LED жаркылдаган схемасына киргизилгендиктен, Кызыл LED ON/OFF убактысы муктаждыктарына жараша эркин жөнгө салынышы мүмкүн.

2 -кадам: PCB чиймесин жасоо

PCB чиймесин жасоо
PCB чиймесин жасоо

ИНДИКАТОРдун иштөө схемасы түшүндүрүлгөндөй, келгиле, схеманы түзө баштайлы.

Универсалдуу тактага бир нерсени ширетүүдөн мурун, жогоруда көрсөтүлгөн ПХБ чиймесин даярдоо ар кандай каталарды азайтууга жардам берет.

Чийүү power-pointтун жардамы менен ар бир бөлүктү универсалдуу тактага жайгаштыруу жана зымдары бар бөлүктөрдүн арасына зымдардын үлгүлөрүн жасоо аркылуу жүргүзүлөт.

IC жана транзистордун пин-сүрөттөрү PCB зымынын үлгүсү менен бирге жайгашкандыктан, бул чиймени колдонуу менен ширетүү жүргүзүлүшү мүмкүн.

3 -кадам: ширетүү

Soldering
Soldering

ПКБнын баштапкы чиймеси PCBдеги компоненттерди туташтыруу үчүн бир зымдарды колдонбостон жасалганына карабастан, мен бир аз башкача ширетип жатам.

Зымдардын бир өткөргүчүн колдонуу менен (калай зым эмес), мен ИНДИКАТОР схемасын камтыган универсалдуу PCB өлчөмүн азайтууга аракет кылып жатам.

Бирок сиз ПХБнын ширетүүчү жагында көрүп тургандай, мен калай зымды ПХБ чиймесинде сүрөттөлгөн үлгүлөргө ылайык колдонуп жатам.

Ар бир компонент ПХБ чиймесинин баштапкы дизайнына ылайык туташтырылганда, ИНДИКАТОР схемасын камтыган ПХБ тактасын ширетүү туура иштейт.

4 -кадам: тестирлөөгө даярдык

Тестирлөөгө даярдык
Тестирлөөгө даярдык

RPI туташуусуна чейин, даяр схема тестирлөөнү талап кылат.

Кандайдыр бир ширетүү каталары болушу мүмкүн эле, DC ток берүүчү шорт же туура эмес зым пайда болгондо зыянды болтурбоо үчүн колдонулат.

ИНДИКАТОРДУ сыноо үчүн, эки кошумча электр менен камсыздоо кабели 5В электр менен камсыздоо туташтыргычына туташтырылган.

5 -кадам: тестирлөө (CPU температурасы орто деңгээл)

Тестирлөө (CPU температурасы орто деңгээл)
Тестирлөө (CPU температурасы орто деңгээл)

Качан 5V киргизүү колдонулбаса, анда 74LS139 кодун чечмелөө жана Y0 чыгарууну LOW катары иштетүү (Жашыл LED күйгүзүлгөн).

Бирок 5V кириш А үчүн колдонулат, 74LS139 активдештирүү Y1 чыгаруу (LOW).

Ошондуктан, сары LED жогорудагы сүрөттө көрсөтүлгөндөй күйгүзүлөт.

6 -кадам: тестирлөө (CPU муздатуу деңгээлине муктаж)

Тестирлөө (CPU муздатуу деңгээлине муктаж)
Тестирлөө (CPU муздатуу деңгээлине муктаж)

5V 74LS139 эки киргизүү (A жана B) колдонгондо, 4 -Кызыл LED жаркылдайт.

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

Тестирлөө аяктагандан кийин, эки Molex 3 төөнөгүч аял кабелин алып салса болот.

7 -кадам: ИНДИКАТОР микросхемасына электр менен камсыздоо

ИНДИКАТОР микросхемасына электр менен камсыздоо
ИНДИКАТОР микросхемасына электр менен камсыздоо

INDICATOR схемасын иштетүү үчүн, мен жогоруда сүрөттө көрсөтүлгөндөй 5В жана USB түрү-B адаптерин чыгаруучу кадимки телефондук кубаттагычты колдонуп жатам.

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

B = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

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

басып чыгаруу ('Ctrl+C баскансыз!')

g.output (A, False)

g.output (B, False)

f.close ()

sys.exit (0)

сигнал.сигнал (сигнал. ТАШТАМА, сигнал_колдоочу)

##

чын болсо:

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

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd tədbir_темпи', shell = True)

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

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

# учурдагы CPU температурасын алуу

current_temp = калкып чыгуу (CPU_temp [0])

эгер current_temp> 30 жана current_temp <40:

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

g.output (A, False)

g.output (B, False)

убакыт.уйку (5)

elif current_temp> = 40 жана current_temp <45:

# температура чөйрөсү A = 0, B = 1

g.output (A, False)

g.output (B, True)

убакыт.уйку (5)

elif current_temp> = 45 жана current_temp <50:

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

g.output (A, True)

g.output (B, False)

убакыт.уйку (5)

elif current_temp> = 50:

# CPU муздатуу жогорку A = 1, B = 1 талап кылынат

g.output (A, True)

g.output (B, True)

убакыт.уйку (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 ()

Python программасынын негизги функциясы төмөндөгүдөй.

- Биринчиден, GPIO 12, 16ны чыгаруу порту катары коюу

- Журнал файлын жабуу үчүн Ctrl+C үзгүлтүк иштетүүчүсүн аныктоо жана GPIO 12, 16ны өчүрүү

- Чексиз циклге киргенде, журнал файлын тиркеме режими катары ачыңыз

- "/opt/vc/bin/vcgencmd tədbir_temp" буйругун аткаруу менен CPU температурасын окуңуз

- Температура 30 ~ 39 чегинде болгондо, жашыл LEDди күйгүзүү үчүн 00дү чыгарыңыз

- Температура 40 ~ 44 диапазонунда болгондо, 01ди чыгарыңыз, сары LEDди күйгүзүңүз

- Температура 45 ~ 49 диапазонунда болгондо, 10ду чыгарып, Кызыл диодду күйгүзүңүз

- Температура 50дөн жогору болгондо, 11ди чыгаргыла, кызыл LED жаркырайт

- Журнал файлына убакыт мөөрүн жана температура маалыматын жазыңыз

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

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

Баары ойдогудай болгондо, ар бир светодиод CPU температурасына жараша күйүп же күйүп турганын көрө аласыз.

Учурдагы температураны текшерүү үчүн shell командасын киргизүүнүн кажети жок.

Журнал файлында маалыматтарды чогулткандан жана Excelди колдонуу менен тексттик маалыматтарды графикке чыгаргандан кийин, жыйынтык жогорудагы сүрөттө көрсөтүлөт.

Жогорку жүктөөлөрдү колдонгондо (эки Midori браузерин иштетүү жана Youtube видеосун ойноо), CPU температурасы 57.9Ске чейин көтөрүлөт.

11 -кадам: Альтернативдүү даярдоо (NPN транзисторун колдонуу) жана андан ары өнүктүрүү

Альтернативдүү даярдоо (NPN транзисторун колдонуу) жана андан ары өнүктүрүү
Альтернативдүү даярдоо (NPN транзисторун колдонуу) жана андан ары өнүктүрүү

Бул NPN транзисторун (2N3904 жана BD139) колдонгон INDICATOR долбоорунун мурунку мисалы.

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

Жыйынтык катары, NPN транзисторун колдонуу INDICATOR чынжырын жасоо үчүн керексиз татаалдыкты кошот.

Бул долбоордун андан ары өнүгүшү үчүн INDICATOR схемасын пайдалуу кылуу үчүн жогоруда сүрөттө көрсөтүлгөндөй муздатуучу желдеткичти кошом.

Сунушталууда: