Мазмұны:
- Жабдықтар
- 1 -қадам: Желдеткішті орнатыңыз
- 2 -қадам: PI (D) контроллерін жасаңыз
- 3 -қадам: Бастау кезінде басқару сценарийін іске қосыңыз
Бейне: Raspberry Pi 4: 3 қадамдарында температураны дәл бақылау
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
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) контроллерін жасаңыз
Пропорционалды интегралдық туынды (PID) контроллері - белгілі бір процестің мәнін (процессордың температурасы) кейбір физикалық құрылғыны (желдеткіш жылдамдығы) басқару арқылы басқаруға арналған жүйе. Біз желдеткіштің «жылдамдығы» мен шуын мезгіл -мезгіл қосу және өшіру арқылы басқара аламыз (Импульстік толқын модуляциясы). Белгілі бір уақыт ішінде қосылатын уақыт ұзақтығы (мысалы, 1 секунд) желдеткіштің қаншалықты жылдам және қатты екенін анықтайды (900ms = қатты және жылдам, 100 мс = тыныш және баяу). Біз желдеткіштің жылдамдығын басқару үшін температураны бақылау үшін PID қолданамыз.
Біз PID пайдалануды қадамдардың санына бөле аламыз.
- Сіз қол жеткізгіңіз келетін процестің айнымалы мәнін шешіңіз (мысалы, CPU температурасы = 55). Бұл сіздің белгіленген нүкте деп аталады.
- PID қатесін есептеңіз. Егер сіздің мәніңіз 55 градус болса және нақты температура 60 градус болса, сіздің қателігіңіз 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 көмегімен өте қарапайым.
- терминалды ашыңыз
- терминалға crontab-e теріңіз
- келесі код жолын '@reboot python /home/pi/bootScripts/fanControl.py &' файлына қосыңыз
- шығу және қайта жүктеу
Мен сценарийді (fanControl.py) bootScripts деп аталатын қалтаға қойдым, бірақ сіз оны кез келген жерге қоя аласыз, тек crontab ішіндегі дұрыс жолды көрсетіңіз.
Бәрі дайын! Енді сіздің желдеткішіңіз процессордың температурасын белгілі бір мәнге дейін басқарады, сонымен бірге ол шығаратын дыбысты азайтады.
Ұсынылған:
Arduino дәл және дәл вольт өлшегіші (0-90В тұрақты ток): 3 қадам
Arduino дәл және дәл вольт өлшегіші (0-90В тұрақты ток): Бұл нұсқаулықта мен Arduino Nano көмегімен салыстырмалы дәлдікпен және дәлдікпен тұрақты токтың жоғары кернеуін (0-90в) өлшеуге арналған вольтметр құрдым. Мен қабылдаған сынақ өлшемдері жеткілікті дәл болды, көбінесе олардың көмегімен өлшенетін нақты кернеудің 0,3 в ішінде
MCP9808 және Raspberry Pi көмегімен температураны бақылау: 4 қадам
MCP9808 мен Raspberry Pi көмегімен температураны бақылау: MCP9808 - жоғары дәлдіктегі сандық температура сенсоры ± 0,5 ° C I2C шағын модулі. Олар температураны сезуді қолдануды жеңілдететін пайдаланушы бағдарламалайтын регистрлермен біріктірілген. MCP9808 жоғары дәлдіктегі температура сенсоры өнеркәсіпке айналды
Терариумға арналған ылғалдылық пен температураны бақылау жүйесі: 11 қадам (суреттермен)
Терариумға арналған ылғалдылық пен температураны бақылау жүйесі: КІРІСПЕ: Бұл нұсқаулық Arduino Uno көмегімен ылғалдылық пен температураны бақылаудың модульдік жүйесін дамытуға арналған. Бұл жүйе қоршаған ортаның параметрлерін және Arduino Uno қосылымын бақылау үшін су өткізбейтін ылғалдылық пен температуралық зондты қолданады
MCP9808 және Arduino Nano көмегімен температураны бақылау: 4 қадам
MCP9808 және Arduino Nano көмегімен температураны бақылау: MCP9808 - жоғары дәлдіктегі сандық температура сенсоры ± 0,5 ° C I2C шағын модулі. Олар температураны сезуді қолдануды жеңілдететін пайдаланушы бағдарламалайтын регистрлермен біріктірілген. MCP9808 жоғары дәлдіктегі температура сенсоры өнеркәсіпке айналды
ESP8266 Nodemcu жергілікті веб -серверде DHT11 көмегімен температураны бақылау - Браузерде бөлме температурасы мен ылғалдылығын алыңыз: 6 қадам
ESP8266 Nodemcu жергілікті веб -серверде DHT11 көмегімен температураны бақылау | Браузерде бөлме температурасы мен ылғалдылықты алыңыз: Сәлеметсіздерме балалар, бүгін біз ылғалдылық жасаймыз. температураны бақылау жүйесі ESP 8266 NODEMCU & DHT11 температура сенсоры. Температура мен ылғалдылық DHT11 Sensor & оны браузерден көруге болады, ол қай веб -бетті басқарады