Мазмуну:

Raspberry Pi 4: 3 кадамдарынын так температурасын көзөмөлдөө
Raspberry Pi 4: 3 кадамдарынын так температурасын көзөмөлдөө

Video: Raspberry Pi 4: 3 кадамдарынын так температурасын көзөмөлдөө

Video: Raspberry Pi 4: 3 кадамдарынын так температурасын көзөмөлдөө
Video: СВИСТОК СМЕРТИ ночью НА КЛАДБИЩЕ / Призрак ребёнка в видео / Aztec Death Whistle 2024, Ноябрь
Anonim
Raspberry Pi 4 боюнча температураны так көзөмөлдөө
Raspberry Pi 4 боюнча температураны так көзөмөлдөө

Pimoroni Fan Shim - бул ысык кезде Пиңиздин температурасын төмөндөтүү үчүн эң сонун чечим. Жаратуучулар CPU температурасы белгилүү бир чектен (мисалы, 65 градустан) жогорулаганда күйөрманы иштетүүчү программалык камсыздоону да камсыз кылышат. Температура төмөнкү босогодон төмөн түшүп, желдеткичти өчүрөт. Бул сонун, бирок температуранын көтөрүлүшүнө жана орточо жүктүн астында калышына алып келет жана күйөрмандардын үнүн угат. Бул көрсөтмө PID контроллери деп аталган нерсени колдонуп, CPU температурасын белгилүү бир мааниге орнотуп жатканда, желдеткичтин ызы -чуусун азайтат. Жогорку босоголор (мисалы, 65 градус) бир топ тынчыраак желдеткичке алып келет, ал эми төмөнкү босоголор (мисалы, 50 градус) катуу желдеткичке, бирок температураны жакшыраак башкарууга алып келет.

Жогорудагы мисал PID контроллерин иштетүүдөн жана максаттуу температураны 500 секунд сайын өзгөртүүдөн алган жыйынтыктарымды көрсөтөт. Тактык +/- 1 градус, термометрдеги күтүүсүз өзгөрүүлөргө кээ бир ашыкча басым.

Маанилүүсү, бул тест жалпы сыноо убактысы үчүн (BBC iPlayerди көрүү) бир эле жүктүн астында ишке ашырылган.

Жабдуулар

  • Raspberry Pi 4
  • Pimoroni Fan Shim

1 -кадам: Күйөрманыңызды орнотуңуз

Күйөрманыңызды орнотуңуз
Күйөрманыңызды орнотуңуз

Биринчи кадам - күйөрманыңызды орнотуу. Pimorini үйрөткүчү сонун!

Андан кийин 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) контроллери - бул кандайдыр бир физикалык түзүлүштү (күйөрман ылдамдыгын) манипуляциялоо аркылуу белгилүү бир процесстин (CPU температурасы) баасын көзөмөлдөө үчүн колдонулган система. Биз желдеткичтин "ылдамдыгын" жана ызы -чуусун мезгил -мезгили менен күйгүзүү жана өчүрүү аркылуу башкара алабыз (Pulse Wave Modulation). Белгилүү бир мезгилде (мисалы, 1 секундда) күйгүзүү убактысы желдеткичтин канчалык тез жана канчалык күчтүү экенин аныктайт (900ms = катуу жана ылдам, 100ms = тынч жана жай). Биз PIDди желдеткичтин ылдамдыгын иштетүү үчүн колдонобуз жана ошону менен температураны көзөмөлдөйбүз.

Биз PIDдин колдонулушун кадамдардын санына бөлө алабыз.

  1. Процесстин өзгөрмөсүнүн мааниси жөнүндө чечим кабыл алыңыз (мис. CPU температурасы = 55). Бул сиздин белгиленген чекит деп аталат.
  2. PID катасын эсептөө. Эгерде сиз койгон чекит 55 градус жана чыныгы температура 60 градус болсо, катаңыз 5 градус (Температура - белгиленген чек)
  3. Желдеткичтин убактысын катага жараша алмаштырыңыз (Чоң каталар күйөрман ылдамдыгынын чоң өзгөрүшүнө алып келет, кичине каталар күйөрман ылдамдыгынын кичине өзгөрүшүнө алып келет).
  4. Желдеткичти мурунку баалуулуктарга жараша тууралаңыз (Интегралдык/мурунку бардык каталардын суммасы)
  5. Кааласаңыз, күйөрман ылдамдыгын катанын өзгөрүү ылдамдыгына жараша тууралаңыз (туунду), бирок биз бул жерде андай кылбайбыз

Эми сизде теория Thonny IDEде (же башка python IDEде) төмөнкү кодду иштетет. Пиңиздин температурасын өзгөртүү үчүн төмөнкү коддогу "максаттуу" маанисин өзгөртүңүз. Мен 'P' жана 'I' терминдерин бир аз ыктыярдуу баалуулуктарга койдум. Булар сиз үчүн иштебесе, аларды оңдоп коюңуз. "P" чоңураак кылуу контроллер жаңы каталарга тез жооп берерин билдирет (бирок туруктуу болбошу мүмкүн). "Мен" дегенди өзгөртүү контроллердин салмагына алып келет, ал өткөн баалуулуктарга көбүрөөк жооп берет. Мен бул терминдерди өтө чоң кылууга аракет кылмак эмесмин, анткени желдеткичтин ылдамдыгы тез өзгөрүп кетпейт. Ошондой эле, эгер сиз өзүңүздүн Пиңизде укмуштуудай оор жумуштарды аткарып жатсаңыз, сиз каалаган мөөнөтүңүзгө жете албайсыз (күйөрман чектери дагы эле колдонулат).

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 # интергралдык пайда мөөнөтү (муну менен ойноо жана эмне болгонун көрүңүз) Чынында: # get temperaute temp = int (float (getCPUtemperature ())) # катаны эсептөө жана катаны кетирүү = temp-target # интегра леррорун эсептөө жана аны чектөө intErr = intErr+err intErr> 10: intErr = 10 эгер intErr = мезгил: күйгүзүү = мезгил өчүрүү = 0 башка: күйүк = өчүк = мезгил-күйүк # эгер минималдуу иштөө циклин күйгүзсө <.09: күйүк =.09 башка: күйгүзүү = күйгүзүү fanshim пинсинде боюнча == мезгил: fanshim.set_fan (Чыныгы) уйку (күйүк) башка: fanshim.set_fan (Чыныгы) с пес (күйүк) fanshim.set_fan (Жалган) уйку (өчүк)

3 -кадам: Баштоо учурунда башкаруу скриптин иштетүү

Баштоо учурунда башкаруу скриптин иштетүү
Баштоо учурунда башкаруу скриптин иштетүү

Сиз бул скриптти пиңизди баштаганда иштете аласыз же автоматтык түрдө өчүрүп -күйгүзө аласыз. Бул crontab менен кылуу өтө жөнөкөй.

  1. терминалды ачуу
  2. терминалга crontab-e териңиз
  3. "@reboot python /home/pi/bootScripts/fanControl.py &" файлына кийинки кодду кошуңуз
  4. чыгуу жана кайра жүктөө

Мен сценарийди (fanControl.py) bootScripts деп аталган флодерге койдум, бирок сиз каалаган жерге коюп койсоңуз болот, crontab ичинде туура жолду көрсөтүңүз.

Баары бүттү! Эми сиздин күйөрманыңыз CPUңуздун температурасын белгилүү бир мааниге чейин көзөмөлдөйт, ошол эле учурда анын үнүн чыгарат.

Сунушталууда: