Isi kandungan:

Kawalan Pintar Raspberry Pi Fan Menggunakan Python & Thingspeak: 7 Langkah
Kawalan Pintar Raspberry Pi Fan Menggunakan Python & Thingspeak: 7 Langkah

Video: Kawalan Pintar Raspberry Pi Fan Menggunakan Python & Thingspeak: 7 Langkah

Video: Kawalan Pintar Raspberry Pi Fan Menggunakan Python & Thingspeak: 7 Langkah
Video: Gesture-Controlled Servo with Python and Arduino #electronics #arduinotraining 2024, November
Anonim
Kawalan Pintar Raspberry Pi Fan Menggunakan Python & Thingspeak
Kawalan Pintar Raspberry Pi Fan Menggunakan Python & Thingspeak

Gambaran ringkas

Secara lalai, kipas disambungkan terus ke GPIO - ini menunjukkan pengoperasiannya yang berterusan. Walaupun terdapat kipas yang relatif tenang, operasi berterusannya bukanlah penggunaan sistem penyejukan aktif yang berkesan. Pada masa yang sama, operasi berterusan kipas boleh mengganggu. Juga, jika Raspberry Pi dimatikan, kipas akan tetap berfungsi jika kuasa disambungkan.

Artikel ini akan menunjukkan bagaimana, dengan menggunakan manipulasi yang sederhana dan tidak rumit, mengubah sistem penyejukan yang ada menjadi yang pintar, yang hanya akan dihidupkan apabila pemproses benar-benar memerlukannya. Kipas akan dihidupkan hanya apabila terdapat penggunaan yang berat, sehingga dapat mengurangkan penggunaan dan kebisingan daya kipas. Juga memanjangkan hayat peminat dengan menjauhkannya apabila tidak diperlukan.

Apa yang Anda Akan Pelajari

Cara melaksanakan skrip Python untuk mengawal kipas berdasarkan suhu semasa CPU Raspberry menggunakan kawalan On-Off dengan histeresis suhu. Bagaimana cara mengangkut data dari RaspberryPi anda ke Things Speak Cloud.

Bekalan

Komponen yang anda perlukan untuk projek ini adalah seperti berikut

  • Model Komputer Raspberry Pi 4 B 4GB
  • Perintang transistor NPN S8050330ohms
  • Sarung Logam Aluminium Armor dengan Kipas Ganda untuk Raspberry Pi
  • Kabel pelompat
  • Papan roti

Langkah 1: Membina Litar

Membina Litar
Membina Litar
Membina Litar
Membina Litar

Litarnya cukup sederhana. Daya ke kipas terputus menggunakan transistor NPN. Dalam konfigurasi ini, transistor bertindak sebagai suis sisi rendah. Resistor hanya diperlukan untuk menghadkan arus melalui GPIO. GPIO Raspberry Pi mempunyai output arus maksimum 16mA. Saya menggunakan 330 ohm yang memberi kita arus asas sekitar (5-0.7) / 330 = 13mA. Saya memilih transistor NPN S8050, jadi menukar beban 400mA dari kedua kipas tidak ada masalah.

Langkah 2: Log Suhu CPU Dengan ThingSpeak

Log Suhu CPU Dengan ThingSpeak
Log Suhu CPU Dengan ThingSpeak

ThingSpeak adalah platform untuk projek berdasarkan konsep Internet of Things. Platform ini membolehkan anda membina aplikasi berdasarkan data yang dikumpulkan dari sensor. Ciri utama ThingSpeak termasuk: pengumpulan data masa nyata, pemprosesan data dan visualisasi. ThingSpeak API bukan sahaja membolehkan anda mengirim, menyimpan dan mengakses data, tetapi juga menyediakan pelbagai kaedah statistik untuk memprosesnya.

ThingSpeak dapat mengintegrasikan peranti dan perkhidmatan popular seperti:

  • Arduino
  • Raspberry pii
  • oBridge / RealTime.io
  • Imp elektrik
  • Aplikasi mudah alih dan Web
  • Rangkaian sosial
  • Analisis Data dalam MATLAB

Sebelum kita memulakan, anda memerlukan akaun di ThingSpeak.

  1. Pergi ke pautan berikut dan daftar ke ThingSpeak.
  2. Selepas pengaktifan akaun anda, log masuk.
  3. Pergi ke Saluran -> Saluran Saya
  4. Klik pada butang Saluran Baru.
  5. Masukkan nama, keterangan dan bidang data yang ingin anda muat naik
  6. Klik pada butang Simpan Saluran untuk menyimpan semua tetapan anda.

Kami memerlukan kunci API, yang kemudian kami tambahkan ke python code untuk memuat naik suhu CPU kami ke Thingspeak cloud.

Klik pada tab Kunci API untuk mendapatkan Kunci API Tulis

Setelah anda mempunyai Kunci API Tulis, kami hampir bersedia untuk memuat naik data kami.

Langkah 3: Mendapatkan Suhu CPU Dari Raspberry Pi Menggunakan Python

Skrip berdasarkan pengambilan suhu pemproses, yang berlaku setiap saat. Ia dapat diperoleh dari terminal dengan menjalankan perintah vcgencmd dengan parameter mengukur_temp.

vcgencmd mengukur_temp

Perpustakaan subprocess.check_output () digunakan untuk melaksanakan perintah dan kemudian menggunakan ekspresi biasa untuk mengekstrak nilai sebenarnya dari rentetan yang dikembalikan.

dari check_output import subproses

dari re import findalldef get_temp (): temp = check_output (["vcgencmd", "Meas_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) kembali (temp) cetak (get_temp ())

Setelah nilai suhu diambil, data perlu dikirim ke ThingSpeak cloud. Gunakan Kunci API Tulis anda untuk mengubah pemboleh ubah myApi dalam kod Python di bawah.

dari permintaan import urllib

dari re import import all dari time import sleep dari subproses import check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "mengukur_temp"]). decode () temp = float (findall (' / d + \. / d + ', temp) [0]) kembali (temp) cuba: sementara Benar: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =% s'% (temp)) print (str (temp)) conn.close () sleep (1) kecuali Keyboard Interrupt: print ("Keluar ditekan Ctrl + C")

Langkah 4: Mengawal Kipas Berdasarkan Suhu

Skrip Python yang ditunjukkan di bawah menerapkan logik yang menghidupkan kipas ketika suhu meningkat di atas tempOn dan mati hanya apabila suhu turun di bawah ambang. Dengan cara ini, kipas tidak akan menyala dan mati dengan pantas.

import RPi. GPIO sebagai GPIO

import sys dari re import findall dari time import sleep dari subproses import check_output def get_temp (): temp = check_output (["vcgencmd", "Meas_temp"]). decode () temp = float (findall ('\ d + \. / d + ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 ambang = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, awal = 0) sementara True: temp = get_temp () if temp> tempOn and not pinState atau temp <tempOn - ambang dan pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) kecuali KeyboardInterrupt: print ("Exit ditekan Ctrl + C") kecuali: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (had = 2, file = sys.stdout) cetak ("--- Akhir Data Pengecualian:") akhirnya: cetak ("CleanUp") GPIO.cleanup () cetak ("Tamat program")

Langkah 5: Kod Python Akhir

Kod python utama boleh didapati di akaun GitHub saya di pautan berikut. Ingatlah untuk meletakkan Kunci API Tulis anda sendiri.

  1. Log masuk ke papan Raspberry PI anda
  2. Jalankan arahan berikut di terminal

python3 cpu.py

Langkah 6: Memantau Data Melalui Thingspeak Cloud

Memantau Data Melalui Cloud Thingspeak
Memantau Data Melalui Cloud Thingspeak

Selepas beberapa ketika, buka saluran anda di ThingSpeak dan anda akan melihat suhu memuat naik ke awan Thingspeak dalam masa nyata.

Langkah 7: Jalankan Skrip Python pada Permulaan

Untuk melakukan ini, pada akhir fail /etc/rc.local:

sudo nano /etc/rc.local

Anda perlu meletakkan perintah permulaan skrip di depan jalan keluar 0:

sudo python /home/pi/cpu.py &

Kehadiran & simbol di akhir arahan adalah wajib, kerana ia adalah bendera untuk memulakan proses di latar belakang. Selepas reboot, skrip akan berjalan secara automatik dan kipas akan menyala apabila syarat yang ditentukan dipenuhi.

Disyorkan: