Mündəricat:

Raspberry Pi CPU İstilik Göstəricisi: 11 Addım (Şəkillərlə birlikdə)
Raspberry Pi CPU İstilik Göstəricisi: 11 Addım (Şəkillərlə birlikdə)

Video: Raspberry Pi CPU İstilik Göstəricisi: 11 Addım (Şəkillərlə birlikdə)

Video: Raspberry Pi CPU İstilik Göstəricisi: 11 Addım (Şəkillərlə birlikdə)
Video: Мини ПК на Intel N100 - AC8-N, мощная безвентиляторная платформа, установка Home Assistant OS 2024, Noyabr
Anonim
Raspberry Pi CPU İstilik Göstəricisi
Raspberry Pi CPU İstilik Göstəricisi

Əvvəllər sadə moruq pi (bundan sonra RPI olaraq) əməliyyat vəziyyəti göstərici dövrə təqdim etmişdim.

Bu dəfə başsız (monitor olmadan) işləyən RPI üçün daha faydalı bir göstərici sxemini izah edəcəyəm.

Yuxarıdakı sxem CPU temperaturunu 4 fərqli səviyyəyə göstərir, məsələn:

- Yaşıl LED, CPU temperaturu 30 ~ 39 dərəcə olduqda yanır

- Sarı LED, temperaturun 40-45 dərəcə aralığında artdığını göstərir

- Üçüncü Qırmızı LED, CPU -nun 46 ~ 49 dərəcəyə çataraq bir qədər istiləşdiyini göstərir

- Temperatur 50 dərəcəni keçəndə başqa bir qırmızı LED yanıb -sönəcək

Yuxarıda göstərilən CPU temperatur aralığı mənim şəxsi dizayn konsepsiyamdır (Digər temperatur aralığı, bu dövrəni idarə edən python proqramının test şərtlərini dəyişdirərək konfiqurasiya edilə bilər).

Bu dövrəni istifadə edərək, konsol terminalında tez -tez "vcgencmd tədbir_temp" əmrini icra etməyəcəksiniz.

Bu dövrə cari CPU temperaturunu davamlı və rahat şəkildə məlumatlandırmalıdır.

Addım 1: sxemlərin hazırlanması

Sxemlərin hazırlanması
Sxemlərin hazırlanması

Yalnız python kodları istifadə edərək 4 LED -i birbaşa idarə edə bilsəniz də, proqramın idarəetmə məntiqi RPI yükləyəcək və nəticədə CPU temperaturu daha da artacaq, çünki davamlı olaraq bir az kompleks python kodu işləməlisiniz.

Buna görə də, mümkün qədər sadə olan python kodunun mürəkkəbliyini minimuma endirirəm və xarici idarəetmə sisteminə LED nəzarət məntiqini yükləyirəm.

CPU temperatur göstəricisi (bundan sonra INICATOR) dövrəsi aşağıdakı əsas hissələrdən ibarətdir.

-00-> LOW, 01-> Medium, 10-> High, 11-> Soyutma lazımdır kimi temperatur səviyyəsi məlumatlarını almaq üçün iki opto-bağlayıcı RPI GPIO pinlərinə qoşulur.

-Girişlərə (A, B) görə 74LS139 (və ya 74HC139, 2-dən 4-ə qədər dekoder və de-multipleksor) nəzarət çıxışları (Y0, Y1, Y2, Y3)

- İstilik 30 ~ 39 dərəcə olduqda, python kodu 00 GPIO sancaqlarına çıxır. Buna görə, 74LS139 00 məlumatlarını alır (A-> 0, B-> 0)

- 00 daxil edildikdə Y0 çıxışı LOW olur. (Zəhmət olmasa 74LS139 həqiqət cədvəlinə baxın)

- Y0 çıxışı LOW olduqda, 2N3906 PNP tranzistorunu işə salır və nəticədə Yaşıl LED açılır.

- Eynilə, Y1 (01 -> CPU temperatur mühiti) Sarı LED -i yandıracaq və s

- Y3 LOW olduqda, DB140, BD140 PNP tranzistorunun yükü olan NE555 LED yanıb sönmə dövrəsini aktivləşdirir (bu, 555 IC əsaslı LED flaşördür).

Bu dövrənin ən vacib komponenti, aşağıda göstərilən həqiqət cədvəlində göstərildiyi kimi 2 fərqli girişi 4 fərqli tək çıxışı kodlaşdıran 74LS139 -dur.

Giriş | Çıxış

G (Enable) | 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 çıxışı LOW olaraq qaldıqda, PNP tipli tranzistor, əsas terminal LOW olduqda PNP tranzistoru açıldığı üçün ümumi dövrəni asanlaşdıra bilər. (Bu hekayənin sonunda NPN versiyasını göstərəcəyəm)

100K potensiometr NE555 LED yanıb sönmə sxeminə daxil edildiyindən, Qırmızı LED AÇMA/KAPAMA vaxtı ehtiyaclara görə sərbəst şəkildə tənzimlənə bilər.

Addım 2: PCB Rəsminin Hazırlanması

PCB Rəsminin Hazırlanması
PCB Rəsminin Hazırlanması

Göstəricinin iş sxemi izah edildiyi kimi, dövrəni qurmağa başlayaq.

Universal lövhədə bir şey lehimləməzdən əvvəl, yuxarıda göstərilən PCB rəsmini hazırlamaq səhvləri minimuma endirmək üçün faydalıdır.

Rəsm, hər bir hissəni universal lövhədə tapmaq və telləri olan hissələr arasında məftil nümunələri düzəltmək üçün power-point istifadə edərək edilir.

IC və tranzistor pin şəkilləri PCB məftil nümunəsi ilə birlikdə yerləşdiyindən, bu rəsm istifadə edərək lehimləmə edilə bilər.

Addım 3: Lehimləmə

Lehimləmə
Lehimləmə

Orijinal PCB rəsmləri, PCB -də komponentləri birləşdirmək üçün tək tellərdən istifadə edilmədən hazırlansa da, bir az fərqli şəkildə lehimləyirəm.

Tək tellərdən (qalay məftil deyil) istifadə edərək, INDICATOR dövrəsi olan universal PCB ölçüsünü azaltmağa çalışıram.

Ancaq PCB -nin lehimləmə tərəfində gördüyünüz kimi, PCB rəsmində təsvir olunan nümunələrə görə də qalay teldən istifadə edirəm.

Hər bir komponent PCB rəsminin orijinal dizaynına uyğun olaraq bağlandıqda, İNDİKATOR dövrəsi daxil olmaqla tamamlanmış PCB lövhəsi düzgün işləyəcəkdir.

Addım 4: Test Hazırlığı

Test Hazırlığı
Test Hazırlığı

RPI bağlantısına başlamazdan əvvəl bitmiş dövrə test tələb edir.

Hər hansı bir lehimləmə səhvləri ola biləcəyi üçün, qısa elektrik xətləri meydana gəldikdə zədələnmənin qarşısını almaq üçün DC enerji təchizatçısı istifadə olunur.

Göstəricinin sınanması üçün, dövrənin 5V güc təchizatı konnektoruna iki əlavə enerji təchizatı kabeli bağlanır.

Addım 5: Test (CPU İstiliyi Orta Səviyyədir)

Test (CPU İstiliyi Orta Səviyyədir)
Test (CPU İstiliyi Orta Səviyyədir)

5V girişi tətbiq edilmədikdə, 74LS139 giriş kodunu deşifr edin və Y0 çıxışını LOW olaraq aktivləşdirin (Yaşıl LED yandı).

Ancaq 5V A girişinə, 74LS139 Y1 çıxışına (LOW) aktivləşdirildi.

Buna görə də sarı LED yuxarıdakı şəkildə göstərildiyi kimi açılır.

Addım 6: Test (CPU soyutma səviyyəsinə ehtiyac duyur)

Test (CPU soyutma səviyyəsinə ehtiyac duyur)
Test (CPU soyutma səviyyəsinə ehtiyac duyur)

5V 74LS139 -un hər iki girişini (A və B) tətbiq edərkən, 4 -cü Qırmızı LED yanıb -sönür.

Yanıp sönmə dərəcəsi, yuxarıdakı şəkildə göstərildiyi kimi 100K VR tənzimləyərək dəyişdirilə bilər.

Test tamamlandıqda iki Molex 3 pinli dişi kabel çıxarıla bilər.

Addım 7: GÖSTƏRGƏCİ Dövrə Güc Təchizatı

GÖSTƏRGƏCİ Dövrə Güc Təchizatı
GÖSTƏRGƏCİ Dövrə Güc Təchizatı

INDICATOR sxemini işə salmaq üçün yuxarıdakı şəkildə göstərildiyi kimi 5V və USB tip B tipli adapteri olan ümumi əl telefon şarj cihazından istifadə edirəm.

3.3V GPIO və 5V gücünə malik INDICATOR sxemini bağlayaraq RPI ilə bağlı problemlərin qarşısını almaq üçün siqnal interfeysi və enerji təchizatı bir -birindən tamamilə təcrid olunmuşdur.

Addım 8: RPI Kablolama

RPI naqilləri
RPI naqilləri

INDICATOR sxemini RPI ilə əlaqələndirmək üçün iki torpaq sancağı ilə birlikdə iki GPIO sancağı ayrılmalıdır.

GPIO sancaqlarını seçmək üçün xüsusi bir tələb yoxdur.

INDICATOR -a qoşulmaq üçün hər hansı bir GPIO pinindən istifadə edə bilərsiniz.

Ancaq simli pinlər, python proqramında 74LS139 (məsələn, A, B) girişləri olaraq təyin olunmalıdır.

Addım 9: Python Proqramı

Python proqramı
Python proqramı

Dövrə tamamlandıqda, İNDİKATOR funksiyasından istifadə etmək üçün python proqramının hazırlanması tələb olunur.

Proqram məntiqi haqqında daha ətraflı məlumat üçün yuxarıdakı axın cədvəlinə baxın.

#-*-kodlaşdırma: utf-8-*-

idxal alt prosesi, siqnal, sys

idxal vaxtı, yenidən

g kimi RPi. GPIO idxal edin

A = 12

B = 16

g.setmode (g. BCM)

g. qurma (A, g. OUT)

g. qurma (B, g. Çıxdı)

##

def signal_handler (siq, çərçivə):

çap et ('Ctrl+C düymələrinə basmısan!')

g. Çıxış (A, Yanlış)

g. Çıxış (B, Yanlış)

f.close ()

sys.exit (0)

siqnal.siqnal (siqnal. SIGINT, signal_handler)

##

Doğru halda:

f = açıq ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd tədbir_temp', shell = Doğru)

temp_str = temp_str.decode (kodlaşdırma = 'UTF-8', səhvlər = 'ciddi')

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

# cari CPU istiliyinin çıxarılması

current_temp = float (CPU_temp [0])

current_temp> 30 və current_temp <40 olarsa:

# temperatur aşağı A = 0, B = 0

g. Çıxış (A, Yanlış)

g. Çıxış (B, Yanlış)

vaxt.yuxu (5)

elif current_temp> = 40 və current_temp <45:

# temperatur mühiti A = 0, B = 1

g. Çıxış (A, Yanlış)

g. Çıxış (B, Doğru)

vaxt.yuxu (5)

elif current_temp> = 45 və current_temp <50:

# yüksək temperatur A = 1, B = 0

g. Çıxış (A, Doğru)

g. Çıxış (B, Yanlış)

vaxt.yuxu (5)

elif current_temp> = 50:

# CPU soyutma yüksək A = 1, B = 1 tələb olunur

g. Çıxış (A, Doğru)

g. Çıxış (B, Doğru)

vaxt.yuxu (5)

cari_vaxt = vaxt.vaxt ()

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

f. yazın (str (formated_time)+'\ t'+str (current_temp)+'\ n')

f.close ()

Python proqramının əsas funksiyası aşağıdakı kimidir.

- İlk olaraq çıxış portu olaraq GPIO 12, 16 qurmaq

- Günlük faylını bağlamaq və GPIO 12, 16 -nı söndürmək üçün Ctrl+C kəsmə işləyicisini təyin etmək

- Sonsuz döngəyə daxil olduqda, qeyd faylını əlavə rejimi olaraq açın

- "/opt/vc/bin/vcgencmd ölçü_temp" əmrini yerinə yetirərək CPU temperaturunu oxuyun

- Temperatur 30 ~ 39 aralığında olduqda Yaşıl LED -i yandırmaq üçün 00 -a çıxış edin

- Temperatur 40 ~ 44 aralığında olduqda Sarı LED -i yandırmaq üçün 01 -ə çıxın

- İstilik 45 ~ 49 aralığında olduqda Qırmızı LED -i yandırmaq üçün 10 -cu çıxış

- İstilik 50 -dən çox olduqda, Qırmızı LEDin yanıb -sönməsini təmin etmək üçün 11 -ə çıxın

- Günlük faylına vaxt möhürü və temperatur məlumatlarını yazın

Addım 10: GÖSTƏRGƏCİ Əməliyyatı

GÖSTƏRİCİ Əməliyyatı
GÖSTƏRİCİ Əməliyyatı

Hər şey qaydasında olduqda, hər bir LED -in CPU istiliyinə görə açıldığını və ya yanıb -söndüyünü görə bilərsiniz.

Mövcud temperaturu yoxlamaq üçün shell əmrini daxil etməyinizə ehtiyac yoxdur.

Günlük faylında məlumat topladıqdan və Excel istifadə edərək mətn məlumatlarını qrafikə çevirdikdən sonra yuxarıdakı şəkil göstərilir.

Yüksək yük tətbiq edərkən (iki Midori Tarayıcısı işlədərkən və Youtube videosunu oynayarkən), CPU temperaturu 57.9C -ə qədər yüksəlir.

Addım 11: Alternativ Hazırlama (NPN Transistorundan istifadə) və Əlavə İnkişaf

Alternativ Hazırlama (NPN Transistorundan istifadə) və Əlavə İnkişaf
Alternativ Hazırlama (NPN Transistorundan istifadə) və Əlavə İnkişaf

Bu, NPN tranzistorlarından (2N3904 və BD139) istifadə edən əvvəlki INDICATOR layihə nümunəsidir.

Gördüyünüz kimi NPN tranzistorunu idarə etmək üçün daha bir IC (74HC04, Quad invertor) lazımdır, çünki tranzistoru açmaq üçün NPN bazasına yüksək səviyyəli gərginlik tətbiq olunmalıdır.

Xülasə olaraq, NPN tranzistorundan istifadə edərək, İNDİKATOR dövrəsini etmək üçün lazımsız mürəkkəblik əlavə edin.

Bu layihənin daha da inkişafı üçün INDICATOR sxemini daha faydalı etmək üçün yuxarıdakı şəkildə göstərildiyi kimi soyutma fanı əlavə edəcəyəm.

Tövsiyə: