Мазмұны:

Raspberry Pi 4: 3 қадамдарында температураны дәл бақылау
Raspberry Pi 4: 3 қадамдарында температураны дәл бақылау

Бейне: Raspberry Pi 4: 3 қадамдарында температураны дәл бақылау

Бейне: Raspberry Pi 4: 3 қадамдарында температураны дәл бақылау
Бейне: MSC Meraviglia Full Ship Tour Tips Tricks & Review Award Winning Cruise Ship Vista Project 2024, Қараша
Anonim
Raspberry Pi 4 температурасын дәл бақылау
Raspberry Pi 4 температурасын дәл бақылау

Pimoroni Fan Shim - ыстық болған кезде Pi температурасын төмендетуге арналған тамаша шешім. Өндірушілер тіпті процессор температурасы белгілі бір шекті мәннен (мысалы, 65 градус) жоғары көтерілгенде желдеткішті іске қосатын бағдарламалық қамтамасыз етуді ұсынады. Температура төменгі табалдырықтан тез төмендейді және желдеткішті өшіреді. Бұл өте жақсы, бірақ температураның көтерілуі мен қалыпты жүктеме кезінде төмендеуіне әкеледі және желдеткіштің шуылын шығарады. Бұл нұсқаулық процессордың температурасын PID контроллері деп аталатын белгілі бір мәнге бекіту кезінде желдеткіштің шуын азайтады. Жоғары табалдырықтар (мысалы, 65 градус) желдеткішті әлдеқайда тыныштандырады, ал төменгі табалдырықтар (мысалы, 50 градус) желдеткіштің күшеюіне әкеледі, бірақ температураны жақсы басқарады.

Жоғарыда келтірілген мысалда PID контроллерін іске қосудан және әрбір 500 секунд сайын мақсатты температураны өзгертуден алынған нәтижелер көрсетілген. Дәлдік +/- 1 градус, терматураның кенеттен өзгеруіне шамадан тыс асып түседі.

Маңыздысы, бұл тест жалпы сынақ уақытында (BBC iPlayer -ді қарау) бірдей жүктеме астында орындалды.

Жабдықтар

  • Таңқурай Pi 4
  • Пиморон Фан Шим

1 -қадам: Желдеткішті орнатыңыз

Желдеткішті орнатыңыз
Желдеткішті орнатыңыз

Бірінші қадам - желдеткішті орнату. Пиморини оқулығы керемет!

Содан кейін Pi терминалын ашыңыз (ctrl alt t)

Және Pimoroni ұсынған кодты орнатыңыз

git clone https://github.com/pimoroni/fanshim-pythoncd fanshim-python sudo./install.sh

2 -қадам: PI (D) контроллерін жасаңыз

PI (D) контроллерін жасаңыз
PI (D) контроллерін жасаңыз

Пропорционалды интегралдық туынды (PID) контроллері - белгілі бір процестің мәнін (процессордың температурасы) кейбір физикалық құрылғыны (желдеткіш жылдамдығы) басқару арқылы басқаруға арналған жүйе. Біз желдеткіштің «жылдамдығы» мен шуын мезгіл -мезгіл қосу және өшіру арқылы басқара аламыз (Импульстік толқын модуляциясы). Белгілі бір уақыт ішінде қосылатын уақыт ұзақтығы (мысалы, 1 секунд) желдеткіштің қаншалықты жылдам және қатты екенін анықтайды (900ms = қатты және жылдам, 100 мс = тыныш және баяу). Біз желдеткіштің жылдамдығын басқару үшін температураны бақылау үшін PID қолданамыз.

Біз PID пайдалануды қадамдардың санына бөле аламыз.

  1. Сіз қол жеткізгіңіз келетін процестің айнымалы мәнін шешіңіз (мысалы, CPU температурасы = 55). Бұл сіздің белгіленген нүкте деп аталады.
  2. PID қатесін есептеңіз. Егер сіздің мәніңіз 55 градус болса және нақты температура 60 градус болса, сіздің қателігіңіз 5 градус (Температура - белгіленген нүкте)
  3. Желдеткіштің жұмыс уақытын қатеге пропорционалды түрде өзгертіңіз (Үлкен қателіктер желдеткіш жылдамдығының үлкен өзгеруіне әкеледі, кіші қателіктер желдеткіш жылдамдығының кішігірім өзгеруіне әкеледі).
  4. Желдеткішті өткен мәндерге сәйкес реттеңіз (интегралды/барлық алдыңғы қателердің қосындысы)
  5. Қажет болса, сіз желдеткіштің жылдамдығын қатенің өзгеру жылдамдығына (туынды) негізге ала отырып реттейсіз, бірақ біз мұны мұнда жасамаймыз

Енді сізде теория бар болса, төмендегі кодты Thonny IDE (немесе басқа python IDE) ішінде іске қосыңыз. Пиді қандай температурада ұстағыңыз келетінін өзгерту үшін төмендегі кодтағы «мақсат» мәнін өзгертіңіз. Мен 'P' және 'I' терминдерін біршама еркін мәндерге қойдым. Егер олар сізге сәйкес келмесе, оларды реттеңіз. 'P' үлкендеу контроллер жаңа қателерге тез жауап береді дегенді білдіреді (бірақ тұрақты болмауы мүмкін). 'I' параметрін өзгерту контроллердің салмағын жоғарылатады, бұл оның өткен мәндерге жауап береді. Мен бұл терминдерді тым үлкен етуге тырыспас едім, себебі желдеткіш жылдамдығын тез өзгерту температураны тез өзгертпейді. Сонымен қатар, егер сіз Pi -де өте ауыр жұмыс жасасаңыз, сіз қалаған мерзімге жете алмайсыз (желдеткіштің шегі әлі де қолданылады).

fanshim импортынан FanShim

уақыт импорттық ұйқыдан, уақыт импорттау импорт математика # CPU температурасын таңба жолы ретінде қайтару getCPUtemperature (): res = os.popen ('vcgencmd tədbir_темп'). readline () қайтару (res.replace («temp =», « «).replace (» 'C / n «,» «)) fanshim = FanShim () target = 55 # қажетті температура (осымен ойна және не болатынын көр) кезең = 1 # PWM кезеңі =.1 # 0 -ге инициализация % тапсырма циклы өшірулі = период бойынша # инициализация 0% жұмыс циклі P =.01 # пропорционалды пайда термині (осымен ойнаңыз және не болатынын қараңыз) intErr = 0 # интегралды қате I =.0001 # интергалральды пайда алу мерзімі (осымен ойнаңыз) және не болатынын көріңіз) True кезінде: # temperaute temp = int (float (getCPUtemperature ())) # қатені есептеңіз және қатені тегіс есептеңіз = temp-target # интегра қатесін есептеңіз және оны шектеңіз intErr = intErr+err intErr> 10: intErr = 10 егер intErr = кезеңі: қосулы = үзіліс кезеңі = 0 басқа: қосулы = қосулы болса = периодты қосқанда # егер минималды жұмыс циклы <.09 болса: қосулы =.09 басқа: қосулы = қосулы күйінде желдеткіш түйреуіште == кезеңінде: fanshim.set_fan (True) ұйқы (қосулы) басқа: fanshim.set_fan (True) с (ашық) fanshim.set_fan (жалған) ұйқы (өшірулі)

3 -қадам: Бастау кезінде басқару сценарийін іске қосыңыз

Басқару сценарийін іске қосу кезінде іске қосыңыз
Басқару сценарийін іске қосу кезінде іске қосыңыз

Сіз бұл сценарийді pi іске қосылған сайын іске қоса аласыз немесе оны автоматты түрде қайта жүктеуді қосуға болады. Бұл crontab көмегімен өте қарапайым.

  1. терминалды ашыңыз
  2. терминалға crontab-e теріңіз
  3. келесі код жолын '@reboot python /home/pi/bootScripts/fanControl.py &' файлына қосыңыз
  4. шығу және қайта жүктеу

Мен сценарийді (fanControl.py) bootScripts деп аталатын қалтаға қойдым, бірақ сіз оны кез келген жерге қоя аласыз, тек crontab ішіндегі дұрыс жолды көрсетіңіз.

Бәрі дайын! Енді сіздің желдеткішіңіз процессордың температурасын белгілі бір мәнге дейін басқарады, сонымен бірге ол шығаратын дыбысты азайтады.

Ұсынылған: