Mundarija:

Raspberry Pi protsessorining harorat ko'rsatkichi: 11 qadam (rasmlar bilan)
Raspberry Pi protsessorining harorat ko'rsatkichi: 11 qadam (rasmlar bilan)

Video: Raspberry Pi protsessorining harorat ko'rsatkichi: 11 qadam (rasmlar bilan)

Video: Raspberry Pi protsessorining harorat ko'rsatkichi: 11 qadam (rasmlar bilan)
Video: Einfach göttlich: Das ultimative vegane Brownie-Rezept, das alle anderen in den Schatten stellt! 2024, Iyul
Anonim
Raspberry Pi protsessorining harorat ko'rsatkichi
Raspberry Pi protsessorining harorat ko'rsatkichi

Ilgari men oddiy ahududu pi (bundan keyin RPI) ish holatining indikator sxemasini joriy qilgan edim.

Bu safar men boshsiz (monitorsiz) ishlaydigan RPI indikatori sxemasini tushuntiraman.

Yuqoridagi sxema CPU haroratini 4 xil darajaga ko'rsatadi, masalan:

- Yashil LED, CPU harorati 30 ~ 39 daraja oralig'ida yonadi

- Sariq LED harorati 40 dan 45 darajagacha ko'tarilganligini ko'rsatadi

Uchinchi qizil LED, CPU 46-49 darajaga qadar qizib ketishini ko'rsatadi

- Harorat 50 darajadan oshganda yana bir qizil LED yonadi

Yuqoridagi protsessorning harorat diapazoni - bu mening shaxsiy dizayn kontseptsiyam (Boshqa harorat diapazonlari ushbu sxemani boshqaruvchi python dasturining sinov shartlarini o'zgartirish orqali sozlanishi mumkin).

Ushbu sxemadan foydalanib, siz konsol terminalida tez -tez "vcgencmd tədbir_temp" buyrug'ini bajarishingiz shart emas.

Bu sxema protsessorning joriy haroratini doimiy va qulay tarzda xabardor qilishi kerak.

1 -qadam: sxemalarni tayyorlash

Sxemalarni tayyorlash
Sxemalarni tayyorlash

Siz faqat 4 ta LEDni faqat python kodlari yordamida boshqarishingiz mumkin bo'lsa -da, dasturning boshqaruv mantiqlari RPI yuklaydi va natijada protsessor harorati yanada oshadi, chunki siz doimo murakkab python kodini ishlatishingiz kerak.

Shunday qilib, men iloji boricha oddiy python kodining murakkabligini kamaytiraman va tashqi boshqaruv pallasida LEDni boshqarish mantig'ini yuklayman.

CPU harorat indikatori (bundan keyin INICATOR) sxemasi quyidagi asosiy qismlardan iborat.

-00-> LOW, 01-> Medium, 10-> High, 11-> Sovutish kerak bo'lgan harorat ma'lumotlarini olish uchun ikkita opto-ulagich RPI GPIO pinlariga ulangan.

-kirishlar (A, B) bo'yicha 74LS139 (yoki 74HC139, 2 dan 4 gacha dekoder va de-multipleksor) boshqaruv chiqishlari (Y0, Y1, Y2, Y3).

- Harorat 30 ~ 39 daraja ichida bo'lsa, python kodi 00 ni GPIO pinlariga chiqaradi. Shuning uchun, 74LS139 kirish ma'lumotlarini oladi 00 (A-> 0, B-> 0)

- 00 kiritilganda, Y0 chiqishi LOW bo'ladi. (Iltimos, 74LS139 haqiqat jadvaliga qarang)

- Y0 chiqishi LOW bo'lganda, u 2N3906 PNP tranzistorini faollashtiradi va natijada Yashil LED yonadi.

- Xuddi shunday, Y1 (01 -> CPU harorat muhiti) sariq LEDni va boshqalarni yoqadi

- Y3 LOW bo'lganda, DB140 BD140 PNP tranzistorining yuklanishi bo'lgan NE555 LED miltillovchi o'chiruvchi sxemasini faollashtiradi (bu 555 IC asosidagi LED chirog'i).

Ushbu sxemaning eng muhim komponenti 74LS139 bo'lib, u 2 raqamli kirishni 4 xil bitta chiqishga hal qiladi va quyidagi jadvalda ko'rsatilgan.

Kirish | Chiqish

G (yoqish) | 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 chiqishi LOWga aylanganda, PNP tipidagi tranzistor umumiy sxemani soddalashtirishi mumkin, chunki PNP tranzistorining asosiy terminali LOW past bo'lganda. (Men ushbu hikoyaning oxirida NPN versiyasini ko'rsataman)

100K potentsiometr NE555 LED miltillovchi pallasida joylashganligi sababli, qizil LEDni yoqish/o'chirish vaqti ehtiyojlarga qarab erkin sozlanishi mumkin.

2 -qadam: tenglikni chizish

PCB chizmasini yaratish
PCB chizmasini yaratish

Ko'rsatkichning ishlash sxemasi tushuntirilgandek, biz sxemani tuzishni boshlaymiz.

Umumjahon taxtasida biror narsani lehimlashdan oldin, yuqorida ko'rsatilgan PCB chizig'ini tayyorlash xatolarni kamaytirishga yordam beradi.

Chizma power-point yordamida har bir qismni universal taxtada topadi va simli qismlar orasiga simlar yasaydi.

IC va tranzistorli pinli tasvirlar tenglikni simlari bilan birgalikda joylashtirilganligi sababli, lehimlash ushbu chizma yordamida amalga oshirilishi mumkin.

3 -qadam: Lehimlash

Lehimlash
Lehimlash

PCB -ning asl chizilgani PCB komponentlarini ulash uchun bitta simsiz ishlatilgan bo'lsa -da, men boshqacha tarzda lehimlayman.

Yagona sim o'tkazgichlardan (qalay simli emas) foydalanib, men INDICATOR sxemasini o'z ichiga olgan universal tenglikni hajmini kamaytirishga harakat qilaman.

Ammo siz PCB lehim tomonida ko'rib turganingizdek, men qalay simni ham PCB chizmasida ko'rsatilgan naqshlarga muvofiq ishlataman.

Har bir komponent PCB chizishining original dizayniga muvofiq ulanganda, lehim bilan to'ldirilgan tenglikni kartasi, shu jumladan INDICATOR sxemasi to'g'ri ishlaydi.

4 -qadam: Testga tayyorgarlik

Sinovga tayyorgarlik
Sinovga tayyorgarlik

RPI ulanishidan oldin tugallangan zanjir sinovni talab qiladi.

Lehimlashda har qanday xatolar bo'lishi mumkinligi sababli, qisqa tutashuv yoki noto'g'ri sim o'tkazilganda shikastlanishni oldini olish uchun shahar quvvat manbai ishlatiladi.

Indikatorni sinab ko'rish uchun 5V kuchlanishli elektr manbaiga ikkita qo'shimcha quvvat kabeli ulangan.

5 -qadam: Sinov (CPU harorati o'rtacha)

Sinov (CPU harorati o'rtacha)
Sinov (CPU harorati o'rtacha)

5V usuli qo'llanilmaganda, 74LS139 kodini dekodlash va Y0 chiqishini LOW (Yashil LED yoqilgan) sifatida faollashtirish.

Ammo 5V A kirishiga, Y1 chiqishiga 74LS139 faollashadi (LOW).

Shuning uchun, sariq LED yuqoridagi rasmda ko'rsatilgandek yonadi.

6 -qadam: Sinov (CPU sovutish darajasiga muhtoj)

Sinov (CPU sovutish darajasiga muhtoj)
Sinov (CPU sovutish darajasiga muhtoj)

5V 74LS139 ning ikkala kirishini (A va B) qo'llaganida, 4 -qizil LED miltillaydi.

Yonish tezligini yuqoridagi rasmda ko'rsatilgandek 100K VR ni sozlash orqali o'zgartirish mumkin.

Sinov tugagach, ikkita Molex 3 pinli ayol kabelini olib tashlash mumkin.

7 -qadam: INDICATOR sxemasiga elektr ta'minoti

INDIKATOR sxemasiga elektr ta'minoti
INDIKATOR sxemasiga elektr ta'minoti

INDICATOR zanjirini yoqish uchun men yuqoridagi rasmda ko'rsatilgandek 5V va USB tipidagi USB adapterli umumiy telefon zaryadlovchisini ishlataman.

3.3V GPIO va 5V quvvat indikatorini ulash orqali RPI bilan bog'liq muammolarni oldini olish uchun signal interfeysi va quvvat manbai bir -biridan to'liq ajratilgan.

8 -qadam: RPI simlari

RPI simlari
RPI simlari

INDICATOR sxemasini RPI bilan bog'lash uchun ikkita GPIO pinini ikkita tuproqli pin bilan ajratish kerak.

GPIO pinlarini tanlash uchun maxsus talablar yo'q.

INDICATOR -ni ulash uchun har qanday GPIO pinlaridan foydalanishingiz mumkin.

Ammo simli pinlar python dasturida 74LS139 (masalan, A, B) ga kirish sifatida belgilanishi kerak.

9 -qadam: Python dasturi

Python dasturi
Python dasturi

O'chirish tugagandan so'ng, INDICATOR funktsiyasidan foydalanish uchun python dasturini yaratish talab qilinadi.

Iltimos, dastur mantig'i haqida batafsil ma'lumot olish uchun yuqoridagi oqim jadvaliga qarang.

#-*-kodlash: utf-8-*-

subprocess, signal, sys import qilish

import vaqti, qayta

g sifatida RPi. GPIO -ni import qiling

A = 12

B = 16

g.setmode (g. BCM)

g. sozlash (A, g. OUT)

g. sozlash (B, g. OUT)

##

def signal_handler (sig, ramka):

chop etish ("Siz Ctrl+C tugmalarini bosgansiz!")

g. chiqish (A, noto'g'ri)

g. chiqish (B, noto'g'ri)

f.yaqin ()

sys.exit (0)

signal.signal (signal SIGINT, signal_handler)

##

rost bo'lsa:

f = ochiq ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd tədbir_temp', qobiq = To'g'ri)

temp_str = temp_str.decode (kodlash = 'UTF-8', xatolar = "qat'iy")

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

# joriy CPU haroratini chiqarish

current_temp = float (CPU_temp [0])

agar current_temp> 30 va current_temp <40 bo'lsa:

# past harorat A = 0, B = 0

g. chiqish (A, noto'g'ri)

g. chiqish (B, noto'g'ri)

uyqu (5)

elif current_temp> = 40 va current_temp <45:

# haroratli muhit A = 0, B = 1

g. chiqish (A, noto'g'ri)

g. chiqish (B, rost)

uyqu (5)

elif current_temp> = 45 va current_temp <50:

# yuqori harorat A = 1, B = 0

g. chiqish (A, rost)

g. chiqish (B, noto'g'ri)

uyqu (5)

elif current_temp> = 50:

# CPU sovutish yuqori A = 1, B = 1 talab qilinadi

g. chiqish (A, rost)

g. chiqish (B, rost)

uyqu (5)

current_time = time.time ()

formatated_time = time.strftime ("%H:%M:%S", time.gmtime (current_time))

f.yozish (str (formatlangan_ vaqt)+'\ t'+str (joriy_temp)+'\ n')

f.yaqin ()

Python dasturining asosiy vazifasi quyida keltirilgan.

- Birinchidan, chiqish porti sifatida GPIO 12, 16 ni sozlash

- Jurnal faylini yopish va GPIO 12, 16 ni o'chirish uchun Ctrl+C uzilish ishlovchilarini aniqlash

- Cheksiz tsiklga kirganda, jurnal faylini qo'shish rejimi sifatida oching

- "/opt/vc/bin/vcgencmd ölçü_temp" buyrug'ini bajarish orqali CPU haroratini o'qing.

- Harorat 30 ~ 39 oralig'ida bo'lsa, Yashil LEDni yoqish uchun 00 ni chiqaring

- Harorat 40 ~ 44 oralig'ida bo'lsa, sariq LEDni yoqish uchun 01 -chi chiqish

- Harorat 45 ~ 49 oralig'ida bo'lsa, qizil LEDni yoqish uchun 10 -chi chiqish

- Harorat 50 dan yuqori bo'lsa, qizil chiroq yonib -o'chib turishi uchun 11 -chi chiqish

- Jurnalga vaqt belgisi va harorat ma'lumotlarini yozing

10 -qadam: Ko'rsatkichlar bilan ishlash

Ko'rsatkich operatsiyasi
Ko'rsatkich operatsiyasi

Hamma narsa tartibda bo'lganda, siz har bir LED yonayotganini yoki CPU haroratiga ko'ra miltillashini ko'rasiz.

Hozirgi haroratni tekshirish uchun shell buyrug'ini kiritish shart emas.

Jurnal faylidagi ma'lumotlarni yig'ib, Excel yordamida matnli ma'lumotlarni grafikga o'tkazgandan so'ng, yuqoridagi rasm ko'rsatiladi.

Yuqori yuklarni ishlatganda (ikkita Midori brauzerini ishga tushirish va Youtube -da video ijro etish), CPU harorati 57,9C gacha ko'tariladi.

11 -qadam: muqobil ishlab chiqarish (NPN tranzistoridan foydalanish) va keyingi rivojlanish

Alternativ ishlab chiqarish (NPN tranzistoridan foydalanish) va keyingi rivojlanish
Alternativ ishlab chiqarish (NPN tranzistoridan foydalanish) va keyingi rivojlanish

Bu NPN tranzistorlari (2N3904 va BD139) dan foydalanilgan INDICATOR loyihasining oldingi misoli.

Ko'rib turganingizdek, NPN tranzistorini haydash uchun yana bir IC (74HC04, Quad invertorlar) kerak, chunki tranzistorni yoqish uchun NPN bazasiga yuqori darajali kuchlanish qo'llanilishi kerak.

Xulosa qilib aytganda, NPN tranzistoridan foydalanish INDICATOR sxemasini tuzish uchun keraksiz murakkablikni qo'shadi.

Loyihani yanada rivojlantirish uchun INDICATOR sxemasini yanada foydali qilish uchun yuqoridagi rasmda ko'rsatilgan sovutish ventilyatorini qo'shaman.

Tavsiya: