Mündəricat:

Python & Thingspeak istifadə edərək Raspberry Pi Fan -ın Ağıllı Nəzarəti: 7 addım
Python & Thingspeak istifadə edərək Raspberry Pi Fan -ın Ağıllı Nəzarəti: 7 addım

Video: Python & Thingspeak istifadə edərək Raspberry Pi Fan -ın Ağıllı Nəzarəti: 7 addım

Video: Python & Thingspeak istifadə edərək Raspberry Pi Fan -ın Ağıllı Nəzarəti: 7 addım
Video: read data from thingspeak using python Raspberry pi or arduino 2024, Iyul
Anonim
Python & Thingspeak istifadə edərək Raspberry Pi Fan -ın Ağıllı Nəzarəti
Python & Thingspeak istifadə edərək Raspberry Pi Fan -ın Ağıllı Nəzarəti

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ə qurulması
Dövrə qurulması
Dövrə qurulması
Dövrə 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 ilə CPU İstiliyini qeyd edin
ThingSpeak ilə CPU İstiliyini qeyd 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.

  1. Aşağıdakı linkə daxil olun və ThingSpeak -ə daxil olun.
  2. Hesabınızı aktivləşdirdikdən sonra daxil olun.
  3. Kanallar -> Kanallarım bölməsinə keçin
  4. Yeni Kanal düyməsini basın.
  5. Yükləmək istədiyiniz məlumatların adını, təsvirini və sahələrini daxil edin
  6. 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.

  1. Raspberry PI lövhənizə daxil olun
  2. Terminalda aşağıdakı əmri işlədin

python3 cpu.py

Addım 6: Thingspeak Cloud vasitəsilə məlumatların izlənməsi

Thingspeak Cloud vasitəsilə Məlumatların İzlənməsi
Thingspeak Cloud vasitəsilə Məlumatların İzlə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.

Tövsiyə: