Isi kandungan:

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

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

Video: Petunjuk Suhu CPU Raspberry Pi: 11 Langkah (dengan Gambar)
Video: Raspberry pi 5 inch HDMI Screen Installation | #Shorts 2024, November
Anonim
Petunjuk Suhu CPU Raspberry Pi
Petunjuk Suhu CPU Raspberry Pi

Sebelum ini saya telah memperkenalkan litar penunjuk status operasi sederhana raspberry pi (Selanjutnya sebagai RPI).

Kali ini, saya akan menerangkan beberapa litar penunjuk yang lebih berguna untuk RPI berjalan tanpa kepala (tanpa monitor).

Litar di atas menunjukkan suhu CPU menjadi 4 tahap yang berbeza seperti:

- LED Hijau dihidupkan ketika suhu CPU berada dalam lingkungan 30 ~ 39 darjah

- LED Kuning menunjukkan suhu meningkat dalam lingkungan 40 hingga 45 darjah

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

- LED Merah yang lain akan berkelip apabila suhu melebihi 50 darjah

Julat suhu CPU di atas adalah konsep reka bentuk peribadi saya (Julat suhu lain dapat dikonfigurasi dengan mengubah keadaan ujian program python yang mengendalikan litar ini).

Dengan menggunakan litar ini, anda tidak semestinya sering melaksanakan perintah "vcgencmd mengukur_temp" di terminal konsol.

Litar ini hendaklah memberitahu suhu CPU semasa secara berterusan dan selesa.

Langkah 1: Menyiapkan Skematik

Menyiapkan Skematik
Menyiapkan Skematik

Walaupun anda dapat mengawal 4 LED secara langsung dengan hanya menggunakan kod python, logik kawalan program akan memuat RPI dan sebagai hasilnya, suhu CPU akan meningkat lebih banyak kerana anda harus menjalankan kod python yang sedikit rumit secara berterusan.

Oleh itu, saya meminimumkan kerumitan kod python semudah mungkin dan logik kawalan LED off-loading ke litar perkakasan luaran.

Litar penunjuk suhu CPU (Selanjutnya INICATOR) terdiri daripada bahagian utama berikut.

- Dua pengganding opto disambungkan ke pin GPP RPI untuk mendapatkan data tahap suhu seperti 00-> RENDAH, 01-> Sederhana, 10-> Tinggi, 11-> Perlu penyejukan.

- output kawalan 74LS139 (atau 74HC139, 2-to-4 decoder dan de-multiplexer) (Y0, Y1, Y2, Y3) mengikut input (A, B)

- Apabila suhu berada dalam lingkungan 30 ~ 39 darjah, output kod python 00 hingga pin GPIO. Oleh itu, 74LS139 mendapatkan data input 00 (A-> 0, B-> 0)

- Apabila 00 dimasukkan, output Y0 menjadi RENDAH. (Sila rujuk jadual kebenaran 74LS139)

- Apabila output Y0 menjadi RENDAH, mengaktifkan transistor PNP 2N3906 dan sebagai hasilnya, LED Hijau dihidupkan

- Begitu juga, Y1 (01 -> medium suhu CPU) akan menyala LED Kuning dan seterusnya

- Apabila Y3 menjadi RENDAH, DB140 mengaktifkan litar berkedip LED NE555 (ini adalah pemancar LED berasaskan 555 IC biasa) yang memuat transistor BD140 PNP

Komponen litar yang paling penting ialah 74LS139 yang menyahkod input 2 digit menjadi 4 output tunggal yang berbeza seperti yang ditunjukkan dalam jadual kebenaran di bawah.

Input | Pengeluaran

G (Dayakan) | 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 |

Oleh kerana output 74LS139 menjadi RENDAH, transistor jenis PNP dapat menjadikan keseluruhan litar menjadi sederhana kerana transistor PNP dihidupkan ketika terminal asas menjadi RENDAH. (Saya akan menunjukkan versi NPN pada akhir cerita ini)

Oleh kerana potensiometer 100K dimasukkan ke dalam rangkaian blinker LED NE555, masa LED ON / OFF LED Merah dapat disesuaikan dengan bebas mengikut keperluan.

Langkah 2: Membuat Lukisan PCB

Membuat Lukisan PCB
Membuat Lukisan PCB

Seperti yang dijelaskan skema operasi INDICATOR, mari kita mulai membuat litar.

Sebelum menyolder sesuatu pada papan sejagat, menyiapkan gambar PCB yang ditunjukkan di atas sangat berguna untuk mengurangkan kesilapan.

Lukisan dibuat dengan menggunakan power-point untuk mencari setiap bahagian pada papan sejagat dan membuat corak pendawaian di antara bahagian dengan wayar.

Oleh kerana gambar pin-out IC dan transistor terletak bersama dengan corak pendawaian PCB, pematerian dapat dilakukan menggunakan gambar ini.

Langkah 3: Pematerian

Pematerian
Pematerian

Walaupun gambar PCB asli dibuat tidak menggunakan wayar tunggal untuk menyambungkan komponen pada PCB, saya menyolder agak berbeza.

Dengan menggunakan satu konduktor wayar (bukan wayar timah), saya cuba mengurangkan ukuran PCB sejagat yang mengandungi litar INDICATOR.

Tetapi seperti yang anda lihat di sisi pematerian PCB, saya menggunakan wayar timah juga mengikut corak yang digambarkan dalam gambar PCB.

Apabila setiap komponen disambungkan mengikut reka bentuk asal lukisan PCB, pematerian papan PCB yang lengkap termasuk litar INDIKATOR akan beroperasi dengan betul.

Langkah 4: Persediaan Menguji

Persediaan Menguji
Persediaan Menguji

Sebelum ke sambungan RPI, litar siap memerlukan ujian.

Oleh kerana terdapat sebarang kesalahan pematerian, pembekal kuasa DC digunakan untuk mencegah kerosakan ketika seluar pendek atau pendawaian yang salah berlaku.

Untuk menguji INDICATOR, dua kabel bekalan kuasa tambahan disambungkan ke penyambung bekalan kuasa litar 5V.

Langkah 5: Pengujian (Suhu CPU Tahap Sederhana)

Ujian (Suhu CPU Tahap Sederhana)
Ujian (Suhu CPU Tahap Sederhana)

Apabila tiada input 5V digunakan maka input penyahkodan 74LS139 dan pengaktifan output Y0 sebagai RENDAH (LED Hijau dihidupkan).

Tetapi 5V digunakan untuk input A, output Y1 dari 74LS139 mengaktifkan (LOW).

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

Langkah 6: Pengujian (CPU Perlu Tahap Penyejukan)

Ujian (CPU Perlu Tahap Penyejukan)
Ujian (CPU Perlu Tahap Penyejukan)

Apabila 5V menerapkan kedua-dua input (A dan B) 74LS139, LED Merah ke-4 berkelip.

Kadar berkelip dapat diubah dengan menyesuaikan 100K VR seperti yang ditunjukkan pada gambar di atas.

Apabila ujian selesai, dua kabel wanita Molex 3 pin dapat dilepaskan.

Langkah 7: Bekalan Kuasa ke Litar INDIKATOR

Bekalan Kuasa ke Litar INDIKATOR
Bekalan Kuasa ke Litar INDIKATOR

Untuk menghidupkan litar INDICATOR, saya menggunakan pengecas telefon bimbit biasa yang mengeluarkan 5V dan penyesuai USB-B seperti yang ditunjukkan pada gambar di atas.

Untuk mengelakkan masalah dengan RPI dengan menyambungkan 3.3V GPIO dan litar INDICATOR berkuasa 5V, antara muka isyarat dan bekalan kuasa benar-benar terasing antara satu sama lain.

Langkah 8: Pendawaian RPI

Pendawaian RPI
Pendawaian RPI

Untuk menghubungkan litar INDICATOR dengan RPI, dua pin GPIO harus dikhaskan bersama dengan dua pin ground.

Tidak ada syarat khusus untuk memilih pin GPIO.

Anda boleh menggunakan pin GPIO untuk menyambungkan INDICATOR.

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

Langkah 9: Program Python

Program Python
Program Python

Semasa litar selesai, membuat program python diperlukan untuk menggunakan fungsi INDICATOR.

Sila rujuk carta alir di atas untuk lebih terperinci mengenai logik program.

# - * - pengekodan: utf-8 - * -

subproses import, isyarat, sys

masa import, semula

import 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, frame):

cetak ('Anda menekan Ctrl + C!')

g. output (A, Salah)

g. output (B, Salah)

f. tutup ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler) isyarat.

##

Walaupun Betul:

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

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

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

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

# mengekstrak suhu CPU semasa

current_temp = terapung (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)

masa. tidur (5)

elif current_temp> = 40 dan current_temp <45:

# medium suhu A = 0, B = 1

g. output (A, Salah)

g. output (B, Betul)

masa. tidur (5)

elif current_temp> = 45 dan current_temp <50:

# suhu tinggi A = 1, B = 0

g. output (A, Betul)

g. output (B, Salah)

masa. tidur (5)

elif current_temp> = 50:

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

g. output (A, Betul)

g. output (B, Betul)

masa. tidur (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. tutup ()

Fungsi utama program python adalah seperti di bawah.

- Pertama menetapkan GPIO 12, 16 sebagai port output

- Mendefinisikan pengendali gangguan Ctrl + C untuk menutup fail log dan mematikan GPIO 12, 16

- Ketika masuk ke gelung tak terbatas, buka fail log sebagai mod lampiran

- Baca suhu CPU dengan menjalankan perintah "/ opt / vc / bin / vcgencmd Meas_temp"

- Apabila suhu berada dalam lingkungan 30 ~ 39 maka keluarkan 00 untuk menghidupkan LED Hijau

- Apabila suhu berada dalam lingkungan 40 ~ 44 maka keluarkan 01 untuk menghidupkan LED Kuning

- Apabila suhu berada dalam lingkungan 45 ~ 49 maka keluarkan 10 untuk menghidupkan LED Merah

- Apabila suhu lebih dari 50 maka keluaran 11 menjadikan LED Merah berkelip

- Tulis cap waktu dan data suhu ke fail log

Langkah 10: Operasi INDIKATOR

INDIKATOR Operasi
INDIKATOR Operasi

Apabila semuanya baik-baik saja, anda dapat melihat setiap LED menyala atau berkelip mengikut suhu CPU.

Anda tidak perlu memasukkan perintah shell untuk memeriksa suhu semasa.

Setelah mengumpulkan data dalam fail log dan menjadikan data teks menjadi grafik dengan menggunakan Excel, hasilnya ditunjukkan gambar di atas.

Semasa menggunakan beban tinggi (Menjalankan dua Penyemak Imbas Midori dan memainkan video Youtube), suhu CPU melonjak hingga 57.9C.

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

Pembuatan Alternatif (Menggunakan NPN Transistor) dan Pembangunan Lanjut
Pembuatan Alternatif (Menggunakan NPN Transistor) dan Pembangunan Lanjut

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

Seperti yang anda lihat satu lagi IC (74HC04, Quad inverter) diperlukan untuk menggerakkan transistor NPN kerana voltan tahap TINGGI harus digunakan pada dasar NPN untuk menghidupkan transistor.

Sebagai ringkasan, menggunakan transistor NPN menambah kerumitan yang tidak perlu untuk membuat litar INDICATOR.

Untuk perkembangan selanjutnya projek ini, saya akan menambahkan kipas penyejuk seperti yang ditunjukkan dalam gambar di atas untuk menjadikan litar INDICATOR lebih berguna.

Disyorkan: