Daftar Isi:

Indikator Suhu CPU Raspberry Pi: 11 Langkah (dengan Gambar)
Indikator Suhu CPU Raspberry Pi: 11 Langkah (dengan Gambar)

Video: Indikator Suhu CPU Raspberry Pi: 11 Langkah (dengan Gambar)

Video: Indikator Suhu CPU Raspberry Pi: 11 Langkah (dengan Gambar)
Video: AMD Sempron Cpu processor .Removing pins For Gold Recovery 2024, November
Anonim
Indikator Suhu CPU Raspberry Pi
Indikator Suhu CPU Raspberry Pi

Sebelumnya saya telah memperkenalkan rangkaian indikator status operasional raspberry pi (Selanjutnya sebagai RPI).

Kali ini saya akan menjelaskan beberapa rangkaian indikator yang lebih berguna untuk menjalankan RPI secara headless (tanpa monitor).

Rangkaian di atas menunjukkan suhu CPU menjadi 4 level berbeda seperti:

- LED hijau menyala saat suhu CPU dalam 30~39 derajat

- LED kuning menunjukkan suhu meningkat dalam kisaran 40 hingga 45 derajat

- LED Merah ke-3 menunjukkan CPU menjadi sedikit panas dengan mencapai 46 ~ 49 derajat

- LED Merah lainnya akan berkedip ketika suhu melebihi lebih dari 50 derajat

Rentang suhu CPU di atas adalah konsep desain pribadi saya (Rentang suhu lainnya dapat dikonfigurasi dengan mengubah kondisi pengujian program python yang mengontrol sirkuit ini).

Dengan menggunakan sirkuit ini, Anda tidak perlu sering menjalankan perintah “vcgencmd measure_temp” di terminal konsol.

Sirkuit ini akan menginformasikan suhu CPU saat ini secara terus menerus dan nyaman.

Langkah 1: Mempersiapkan Skema

Mempersiapkan Skema
Mempersiapkan Skema

Meskipun Anda dapat mengontrol 4 LED secara langsung dengan hanya menggunakan kode python, logika kontrol program akan memuat RPI dan akibatnya, suhu CPU akan lebih meningkat karena Anda harus menjalankan kode python yang sedikit rumit secara terus-menerus.

Oleh karena itu, saya meminimalkan kompleksitas kode python sesederhana mungkin dan melepaskan logika kontrol LED ke sirkuit perangkat keras eksternal.

Rangkaian indikator suhu CPU (Selanjutnya INICATOR) terdiri dari bagian-bagian utama berikut.

- Dua opto-coupler terhubung ke pin RPI GPIO untuk mendapatkan data tingkat suhu seperti 00->RENDAH, 01->Sedang, 10->Tinggi, 11->Perlu pendinginan.

- 74LS139 (atau 74HC139, dekoder 2-ke-4 dan de-multiplexer) output kontrol (Y0, Y1, Y2, Y3) sesuai dengan input (A, B)

- Ketika suhu berada dalam 30 ~ 39 derajat, kode python mengeluarkan 00 ke pin GPIO. Oleh karena itu, 74LS139 mendapatkan data input 00 (A->0, B->0)

- Saat 00 dimasukkan, output Y0 menjadi RENDAH. (Silakan lihat tabel kebenaran 74LS139)

- Ketika output Y0 menjadi LOW, transistor PNP 2N3906 diaktifkan dan sebagai hasilnya, LED Hijau menyala

- Demikian juga, Y1 (01 -> media suhu CPU) akan menyalakan LED Kuning dan seterusnya

- Ketika Y3 menjadi LOW, DB140 mengaktifkan rangkaian kedip LED NE555 (ini adalah blinker LED berbasis IC 555 yang umum) yang memuat transistor PNP BD140

Komponen terpenting dari rangkaian ini adalah 74LS139 yang mendekode input 2 digit menjadi 4 output tunggal yang berbeda seperti yang ditunjukkan pada tabel kebenaran di bawah ini.

Masukan | Keluaran

G (Aktifkan) | B | Sebuah | 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 |

Karena output 74LS139 menjadi RENDAH, transistor tipe PNP dapat membuat rangkaian keseluruhan menjadi sederhana karena transistor PNP dihidupkan ketika terminal basis menjadi RENDAH. (Saya akan menunjukkan versi NPN di akhir cerita ini)

Karena potensiometer 100K disertakan pada rangkaian lampu LED NE555, waktu ON/OFF LED Merah dapat disesuaikan secara bebas sesuai kebutuhan.

Langkah 2: Membuat Gambar PCB

Membuat Gambar PCB
Membuat Gambar PCB

Saat skema operasi INDIKATOR dijelaskan, mari kita mulai membuat rangkaiannya.

Sebelum menyolder sesuatu di papan universal, mempersiapkan gambar PCB yang ditunjukkan di atas sangat membantu untuk meminimalkan kesalahan.

Gambar dibuat dengan menggunakan power-point untuk menempatkan setiap bagian pada papan universal dan membuat pola pengkabelan di antara bagian-bagian dengan kabel.

Karena gambar pin-out IC dan transistor ditempatkan bersama dengan pola kabel PCB, penyolderan dapat dilakukan menggunakan gambar ini.

Langkah 3: Menyolder

Pematerian
Pematerian

Meskipun gambar PCB asli dibuat tidak menggunakan kabel tunggal untuk menghubungkan komponen pada PCB, saya menyolder agak berbeda.

Dengan menggunakan kabel konduktor tunggal (bukan kawat timah), saya mencoba mengurangi ukuran PCB universal yang berisi rangkaian INDIKATOR.

Tapi seperti yang Anda lihat di sisi solder PCB, saya menggunakan kawat timah juga sesuai dengan pola yang digambarkan dalam gambar PCB.

Ketika setiap komponen terhubung sesuai dengan desain asli gambar PCB, papan PCB yang telah selesai disolder termasuk sirkuit INDIKATOR akan beroperasi dengan benar.

Langkah 4: Persiapan Pengujian

Persiapan Pengujian
Persiapan Pengujian

Sebelum koneksi RPI, sirkuit yang sudah jadi membutuhkan pengujian.

Karena kesalahan penyolderan dapat terjadi, pemasok daya DC digunakan untuk mencegah kerusakan saat terjadi hubungan pendek atau kabel yang salah.

Untuk pengujian INDIKATOR, dua kabel catu daya tambahan dihubungkan ke konektor catu daya 5V sirkuit.

Langkah 5: Pengujian (Suhu CPU Tingkat Sedang)

Pengujian (Suhu CPU Tingkat Sedang)
Pengujian (Suhu CPU Tingkat Sedang)

Ketika tidak ada input 5V yang diterapkan maka input decoding 74LS139 dan mengaktifkan output Y0 sebagai RENDAH (LED Hijau menyala).

Tapi 5V diterapkan pada input A, output Y1 dari 74LS139 mengaktifkan (RENDAH).

Oleh karena itu, LED Kuning menyala seperti yang ditunjukkan pada gambar di atas.

Langkah 6: Pengujian (CPU Membutuhkan Tingkat Pendinginan)

Pengujian (CPU Membutuhkan Tingkat Pendinginan)
Pengujian (CPU Membutuhkan Tingkat Pendinginan)

Ketika 5V menerapkan kedua input (A dan B) dari 74LS139, LED Merah ke-4 berkedip.

Tingkat kedipan dapat diubah dengan menyesuaikan 100K VR seperti yang ditunjukkan pada gambar di atas.

Saat pengujian selesai, dua kabel betina Molex 3 pin dapat dilepas.

Langkah 7: Catu Daya ke Sirkuit INDIKATOR

Catu Daya ke Sirkuit INDIKATOR
Catu Daya ke Sirkuit INDIKATOR

Untuk menyalakan rangkaian INDIKATOR, saya menggunakan charger ponsel biasa yang mengeluarkan 5V dan adaptor USB tipe-B seperti yang ditunjukkan pada gambar di atas.

Untuk menghindari masalah dengan RPI dengan menghubungkan sirkuit INDIKATOR bertenaga 3.3V GPIO dan 5V, antarmuka sinyal dan catu daya benar-benar terisolasi satu sama lain.

Langkah 8: Pengkabelan RPI

Pengkabelan RPI
Pengkabelan RPI

Untuk menghubungkan sirkuit INDIKATOR dengan RPI, dua pin GPIO harus didedikasikan bersama dengan dua pin ground.

Tidak ada persyaratan khusus untuk memilih pin GPIO.

Anda dapat menggunakan pin GPIO apa pun untuk menghubungkan INDIKATOR.

Tetapi pin berkabel harus ditetapkan sebagai input ke 74LS139 (mis. A, B) dalam program python.

Langkah 9: Program Python

Program Python
Program Python

Setelah rangkaian selesai, pembuatan program python diperlukan untuk menggunakan fungsi INDIKATOR.

Silakan lihat diagram alur di atas untuk detail lebih lanjut tentang logika program.

#-*- koding:utf-8 -*-

subproses impor, sinyal, sys

waktu impor, re

impor RPi. GPIO sebagai g

A = 12

B = 16

g.setmode(g. BCM)

g.setup(A, g. OUT)

g.setup(B, g. OUT)

##

def signal_handler(sig, bingkai):

print('Anda menekan Ctrl+C!')

g.output(A, Salah)

g.output(B, Salah)

f.tutup()

sys.keluar(0)

signal.signal(signal. SIGINT, signal_handler)

##

sementara Benar:

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

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

temp_str = temp_str.decode(pengkodean = 'UTF-8', kesalahan = 'ketat')

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

# mengekstrak suhu CPU saat ini

saat_temp = float(CPU_temp[0])

jika current_temp > 30 dan current_temp < 40:

# suhu rendah A=0, B=0

g.output(A, Salah)

g.output(B, Salah)

waktu.tidur(5)

elif current_temp >= 40 dan current_temp < 45:

# suhu medium A=0, B=1

g.output(A, Salah)

g.keluaran(B, Benar)

waktu.tidur(5)

elif current_temp >= 45 dan current_temp < 50:

# suhu tinggi A=1, B=0

g.output(A, Benar)

g.output(B, Salah)

waktu.tidur(5)

elif current_temp >= 50:

# Pendinginan CPU diperlukan tinggi A=1, B=1

g.output(A, Benar)

g.keluaran(B, Benar)

waktu.tidur(5)

saat_waktu = waktu.waktu()

format_waktu = waktu.strftime("%H:%M:%S", waktu.gmtime(waktu_saat ini))

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

f.tutup()

Fungsi utama dari program python seperti di bawah ini.

- Pertama-tama atur GPIO 12, 16 sebagai port output

- Mendefinisikan Ctrl+C interrupt handler untuk menutup file log dan mematikan GPIO 12, 16

- Saat masuk ke infinite loop, buka file log sebagai mode tambahan

- Baca suhu CPU dengan menjalankan perintah “/opt/vc/bin/vcgencmd measure_temp”

- Saat suhu dalam kisaran 30 ~ 39 maka output 00 untuk menyalakan LED Hijau

- Saat suhu dalam kisaran 40 ~ 44 maka output 01 untuk menyalakan LED Kuning

- Ketika suhu dalam kisaran 45 ~ 49 maka output 10 untuk menyalakan LED Merah

- Ketika suhu lebih dari 50 maka output 11 untuk membuat LED Merah berkedip

- Tulis cap waktu dan data suhu ke file log

Langkah 10: Operasi INDIKATOR

Operasi INDIKATOR
Operasi INDIKATOR

Ketika semuanya OK, Anda dapat melihat setiap LED menyala atau berkedip sesuai dengan suhu CPU.

Anda tidak perlu memasukkan perintah shell untuk memeriksa suhu saat ini.

Setelah mengumpulkan data dalam file log dan merender data teks ke dalam grafik dengan menggunakan Excel, hasilnya ditunjukkan pada gambar di atas.

Saat menerapkan beban tinggi (Menjalankan dua Browser Midori dan memutar video Youtube), suhu CPU melonjak hingga 57,9C.

Langkah 11: Pembuatan Alternatif (Menggunakan Transistor NPN) dan Pengembangan Lebih Lanjut

Pembuatan Alternatif (Menggunakan Transistor NPN) dan Pengembangan Lebih Lanjut
Pembuatan Alternatif (Menggunakan Transistor NPN) dan Pengembangan Lebih Lanjut

Ini adalah contoh proyek INDICATOR sebelumnya yang menggunakan transistor NPN (2N3904 dan BD139).

Seperti yang Anda lihat satu lagi IC (74HC04, Quad inverter) diperlukan untuk menggerakkan transistor NPN karena tegangan level TINGGI harus diterapkan ke basis NPN untuk menghidupkan transistor.

Singkatnya, menggunakan transistor NPN menambah kerumitan yang tidak perlu untuk membuat rangkaian INDIKATOR.

Untuk pengembangan lebih lanjut dari proyek ini, saya akan menambahkan kipas pendingin seperti yang ditunjukkan pada gambar di atas untuk membuat rangkaian INDIKATOR lebih bermanfaat.

Direkomendasikan: