Mündəricat:
- Təchizat
- Addım 1: Dövrün qurulması
- Addım 2: ThingSpeak ilə CPU İstiliyini daxil edin
- Addım 3: Python istifadə edərək bir Raspberry Pi -dən CPU İstiliyinin Alınması
- Addım 4: Temperatur əsasında Fanı İdarə Edin
- Addım 5: Son Python Kodu
- Addım 6: Thingspeak Cloud vasitəsilə məlumatların izlənməsi
- Addım 7: Başlanğıcda Python Scriptini işə salın
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Qısa baxış
Varsayılan olaraq, fan birbaşa GPIO -ya bağlıdır - bu daimi işləməsini nəzərdə tutur. Fanın nisbi sakit işləməsinə baxmayaraq, fasiləsiz işləməsi aktiv bir soyutma sisteminin effektiv istifadəsi deyil. Eyni zamanda, bir fanın daimi işləməsi sadəcə əsəbi ola bilər. Ayrıca, Raspberry Pi söndürüldükdə, fan qoşulduqda yenə də işləyəcək.
Bu məqalə, sadə və mürəkkəb olmayan manipulyasiyalardan istifadə edərək, mövcud bir soyutma sistemini yalnız prosessora həqiqətən ehtiyac duyulduqda necə açılacağını göstərəcək. Fan yalnız çox istifadə edildikdə işə salınacaq, beləliklə fan gücünü və səs -küyü azaldır. Həm də lazım olmadıqda söndürərək fan ömrünü uzadır.
Öyrənəcəkləriniz
İstilik histerezisi ilə On-Off nəzarətindən istifadə edərək Raspberry CPU-nun mövcud temperaturuna əsaslanan bir fanı idarə etmək üçün Python skriptini necə tətbiq etmək olar.
Təchizat
Bu layihə üçün sizə lazım olacaq komponentlər aşağıdakılardır
- Raspberry Pi 4 Kompüter Model B 4GB
- NPN tranzistor S8050330ohms rezistor
- Raspberry Pi üçün ikili pərəstişkarı olan Alüminium Metal Korpus
- Keçid kabelləri
- Çörək lövhəsi
Addım 1: Dövrün qurulması
Dövrə olduqca sadədir. Fanın gücü NPN tranzistoru ilə kəsilir. Bu konfiqurasiyada tranzistor aşağı tərəfli keçid rolunu oynayır. Rezistor yalnız GPIO vasitəsilə cərəyanı məhdudlaşdırmaq üçün lazımdır. Raspberry Pi -nin GPIO -nun maksimum cərəyanı 16mA -dır. Təxminən (5-0.7)/330 = 13mA olan əsas cərəyan verən 330 ohm istifadə etdim. Bir NPN tranzistor S8050 seçdim, buna görə hər iki fanatdan 400mA yükü dəyişdirmək problem deyil.
Addım 2: ThingSpeak ilə CPU İstiliyini daxil edin
ThingSpeak, Əşyaların İnterneti konsepsiyasına əsaslanan layihələr üçün bir platformadır. Bu platform, sensorlardan toplanan məlumatlara əsaslanaraq tətbiqlər qurmağa imkan verir. ThingSpeak-in əsas xüsusiyyətlərinə aşağıdakılar daxildir: real vaxtda məlumatların toplanması, məlumatların işlənməsi və vizualizasiya. ThingSpeak API yalnız məlumatları göndərməyə, saxlamağa və onlara daxil olmağa imkan vermir, həm də onları emal etmək üçün müxtəlif statistik üsullar təqdim edir.
ThingSpeak, populyar cihaz və xidmətləri birləşdirə bilər:
- Arduino
- Moruq pii
- oBridge / RealTime.io
- Elektrik imp
- Mobil və Veb tətbiqləri
- Sosial şəbəkələr
- MATLAB -da məlumatların təhlili
Başlamazdan əvvəl ThingSpeak -də bir hesaba ehtiyacınız var.
- Aşağıdakı linkə daxil olun və ThingSpeak -ə daxil olun.
- Hesabınızı aktivləşdirdikdən sonra daxil olun.
- Kanallar -> Kanallarım bölməsinə keçin
- Yeni Kanal düyməsini basın.
- Yükləmək istədiyiniz məlumatların adını, təsvirini və sahələrini daxil edin
- Bütün parametrlərinizi saxlamaq üçün Kanalı Saxla düyməsini basın.
CPU temperaturumuzu Thingspeak buluduna yükləmək üçün daha sonra python koduna əlavə edəcəyimiz bir API açarına ehtiyacımız var.
API Açarlarını yazmaq üçün API Açarları sekmesini vurun
Write API Açarını əldə etdikdən sonra, demək olar ki, məlumatlarımızı yükləməyə hazırıq.
Addım 3: Python istifadə edərək bir Raspberry Pi -dən CPU İstiliyinin Alınması
Ssenari, hər saniyədə baş verən prosessor istiliyinin alınmasına əsaslanır. Vcgencmd əmrini tədbir_temp parametri ilə işlədərək terminaldan əldə etmək olar.
vcgencmd ölçü_temp
Subprocess.check_output () kitabxanası əmri yerinə yetirmək üçün istifadə edildi və sonra qaytarılmış sətirdən həqiqi dəyəri çıxarmaq üçün normal ifadəni istifadə etdi.
alt proses idxalı check_output
yenidən idxaldan findalldef get_temp (): temp = check_output (["vcgencmd", "meter_temp"]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) qayıt (temp) çap et (get_temp ())
İstilik dəyəri alındıqdan sonra məlumatların ThingSpeak buluduna göndərilməsi lazımdır. Aşağıdakı Python kodundakı myApi dəyişənini dəyişdirmək üçün Write API Açarınızdan istifadə edin.
urllib idxal sorğusundan
yenidən idxaldan toplama vaxtından idxal yuxu alt prosesdən idxal check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "meter_temp"]). decode () temp = float (findall (' / d+\. / d+', temp) [0]) qayıt (temp) cəhd edin: Doğru: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) KeyboardInterrupt istisna olmaqla: print ("Çıxış Ctrl+C basıldı")
Addım 4: Temperatur əsasında Fanı İdarə Edin
Aşağıda göstərilən Python skripti, temperatur tempOn -dan yuxarı qalxdıqda və yalnız temperatur eşikdən aşağı düşəndə söndürüldükdə fanı açan məntiqi tətbiq edir. Beləliklə, fan tez açılmayacaq və sönməyəcək.
GPO olaraq RPi. GPIO idxal edin
sistemin idxalını yenidən idxal etməkdən, alt prosesdən yuxu idxalını yoxlamaq check_output def get_temp (): temp = check_output (["vcgencmd", "tədbir_temp"]). decode () temp = float (findall ('\ d+\. / d+) ', temp) [0]) qayıt (temp) cəhd edin: GPIO.setwarnings (False) tempOn = 50 eşik = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) True isə: temp = get_temp () if temp> tempOn və pinState və ya temp <tempOn - eşik və pinState deyil: pinState = pinState deyil GPIO.output (controlPin, pinState) çap (str (temp) + "" + str (pinState)) yuxu (1) KeyboardInterrupt istisna olmaqla: print ("Extr basıldı Ctrl+C") istisna olmaqla: print ("Other Exception") print ("--- Exception Data Start:") traceback.print_exc (limit = 2), file = sys.stdout) print ("--- İstisna Məlumatlarını Sonlandır:") nəhayət: print ("CleanUp") GPIO.cleanup () print ("Proqramın sonu")
Addım 5: Son Python Kodu
Əsas python kodunu GitHub hesabımda aşağıdakı linkdə tapa bilərsiniz. Öz Yazma API Açarını qoymağı unutmayın.
- Raspberry PI lövhənizə daxil olun
- Terminalda aşağıdakı əmri işlədin
python3 cpu.py
Addım 6: Thingspeak Cloud vasitəsilə məlumatların izlənməsi
Bir müddət sonra ThingSpeak-də kanalınızı açın və Thingspeak buluduna yüklənən temperaturu real vaxtda görməlisiniz.
Addım 7: Başlanğıcda Python Scriptini işə salın
Bunu etmək üçün /etc/rc.local faylının sonunda:
sudo nano /etc/rc.local
Skript start əmrini 0 nömrəli çıxışın qarşısında yerləşdirməlisiniz:
sudo python /home/pi/cpu.py &
Əməliyyatın arxa planda başlaması üçün bir bayraq olduğu üçün əmrin sonunda & işarəsinin olması məcburidir. Yenidən başladıqdan sonra skript avtomatik olaraq işləyəcək və göstərilən şərtlər yerinə yetirildikdə fan açılacaq.