Агуулгын хүснэгт:

Raspberry Pi 4: 3 алхам дээрх температурын нарийн хяналт
Raspberry Pi 4: 3 алхам дээрх температурын нарийн хяналт

Видео: Raspberry Pi 4: 3 алхам дээрх температурын нарийн хяналт

Видео: Raspberry Pi 4: 3 алхам дээрх температурын нарийн хяналт
Видео: BTT - Manta M4P CB1 Klipper install 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
  • Пиморони Фан Шим

Алхам 1: Фенээ тохируулна уу

Фенээ тохируулна уу
Фенээ тохируулна уу

Эхний алхам бол фенээ тохируулах явдал юм. Пиморинигийн заавар үнэхээр сайхан байна!

Дараа нь Pi дээрх терминалыг нээнэ үү (ctrl alt t)

Мөн Пиморонигийн өгсөн кодыг суулгаарай

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

Алхам 2: PI (D) хянагч үүсгэх

PI (D) хянагч үүсгэх
PI (D) хянагч үүсгэх

Пропорциональ интеграл дериватив (PID) хянагч нь зарим физик төхөөрөмжийг (Fan Speed) удирдах замаар тодорхой процессын утгыг (CPU -ийн температур) хянахад ашигладаг систем юм. Бид сэнсний "хурд", дуу чимээг үе үе асааж, унтрааж удирдах боломжтой (Pulse Wave Modulation). Тухайн хугацаанд асаах хугацаа (жишээ нь 1 секунд) нь сэнс хэр хурдан, хэр чанга байгааг тодорхойлдог (900ms = чанга ба хурдан, 100ms = чимээгүй, удаан). Бид PID -ийг ашиглан сэнсний хурдыг удирдах бөгөөд ингэснээр температурыг хянах болно.

Бид PID -ийн хэрэглээг хэд хэдэн үе шатанд хувааж болно.

  1. Үр дүнд хүрэхийг хүсч буй процессын хувьсагчийн утгыг шийдээрэй (жишээ нь CPU -ийн температур = 55). Үүнийг таны тогтоосон цэг гэж нэрлэдэг.
  2. PID алдааг тооцоолох. Хэрэв таны тогтоосон цэг 55 градус, бодит температур 60 градус байвал таны алдаа 5 градус байна (Температур - тогтоосон цэг)
  3. Сэнсний ажиллах хугацааг алдаатай пропорциональ байдлаар өөрчлөх (Том алдаа нь сэнсний хурданд том өөрчлөлт, жижиг алдаа нь сэнсний хурданд бага зэргийн өөрчлөлтийг үүсгэдэг).
  4. Сэнсийг өмнөх утгаар нь тохируулна уу (Өмнөх бүх алдааны нийлбэр/нийлбэр)
  5. Сонголтын дагуу та алдааны өөрчлөлтийн хурд (дериватив) дээр үндэслэн сэнсний хурдыг тохируулж болно, гэхдээ бид үүнийг энд хийхгүй

Одоо та онолыг Thonny IDE (эсвэл өөр python IDE) дээр доорх кодыг ажиллуулна. Pi -г ямар температурт байлгахыг хүсч байгаагаа өөрчлөхийн тулд доорх кодон дахь 'target' утгыг өөрчилнө үү. Би 'P' ба 'I' гэсэн нэр томъёог арай дур зоргоороо тохируулсан. Хэрэв эдгээр нь танд тохирохгүй бол тэдгээрийг тохируулж болно. 'P' -ийг том болгох нь хянагч шинэ алдаанд хурдан хариу өгөх болно гэсэн үг (гэхдээ тогтвортой биш байж магадгүй). 'I' -г өөрчилснөөр хянагч өмнөх утгуудад илүү их хариу өгөх болно. Би эдгээр нэр томъёог хэт том болгохыг оролдохгүй, учир нь сэнсний хурдыг хурдан өөрчлөх нь температурыг хурдан өөрчлөхгүй. Түүнчлэн, хэрэв та Pi дээрээ гайхалтай хүнд ажил хийж байгаа бол хүссэн хугацаандаа хүрч чадахгүй байж магадгүй (сэнсний хязгаар хэвээр байх болно).

fanshim импортоос FanShim

цаг импортлох нойр, цаг импорт os импорт математик # CPU температурыг тэмдэгт мөр болгон буцаах defCPUtemperature (): res = os.popen ('vcgencmd tədbir_темп'). readline () буцах (res.replace ("temp =", " ").rease (" 'C / n "," ")) fanshim = FanShim () target = 55 # хүссэн температур (үүгээр тоглож, юу болохыг хараарай) үе = 1 # ХОУХ -ны үе =.1 # 0 -ийг эхлүүлэх % үүргийн мөчлөгийг унтраах = үеийг эхлүүлэх # 0% -ийн үүргийн мөчлөгийг эхлүүлэх P =.01 # пропорциональ ашиг олох хугацаа (үүнийг тоглож, юу болсныг харна уу) intErr = 0 # интеграл алдаа I =.0001 # завсрын ашиг олох хугацаа (үүнийг тоглоорой Үнэн бол # юу болохыг хараарай): # авах temperaute temp = int (float (getCPUtemperature ())) # алдааг тооцоолж, алдааг алдаагүй болгоорой = temp-target = 10 бол intErr = хугацаа: асаалттай = завсарлагааны хугацаа = 0 өөр: асаалттай = асаалттай = хугацаанд асаалттай # бол <.09: асаалттай =.09 бол хамгийн бага ажлын мөчлөгийг тохируулна уу. дээр == үе: fanshim.set_fan (Үнэн) унтах (асаах) өөр: fanshim.set_fan (Үнэн) s leep (on) fanshim.set_fan (Худал) унтах (унтраах)

Алхам 3: Эхлэх үедээ Control Script -ийг ажиллуулна уу

Эхлэх үед Control Script -ийг ажиллуулна уу
Эхлэх үед Control Script -ийг ажиллуулна уу

Та энэ скриптийг pi -ээ эхлүүлэх бүртээ ажиллуулж болно, эсвэл автоматаар дахин ачаалах боломжтой. Үүнийг crontab ашиглан хийхэд маш энгийн.

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

Би скриптийг (fanControl.py) bootScripts гэж нэрлэгддэг флотерт оруулсан боловч та хаана ч хамаагүй тавьж болно, crontab дээр зөв замыг зааж өгсөн эсэхээ шалгаарай.

Бүгд бэлэн! Одоо таны сэнс таны CPU -ийн температурыг тодорхой хэмжээнд хянаж, дуу чимээг багасгах болно.

Зөвлөмж болгож буй: