ساخت فن رزبری پای بر مبنای دمای پردازنده – How to control fan with raspberry pi
در این پست قصد دارم توضیح بدم که چطور میتونید فن خنک کننده رزبری پای بر مبنای دمای CPU بسازید !
سلام .
شاید برای شما هم پیش اومده باشه که خواسته باشید برای برد لینوکسی خودتون فن بزارید . ولی خیلی صدا داشته باشه و دوست داشته باشید این فن رزبری پای دورش با دمای پردازنده شما تغییر کنه درست مثل کامپیوتر شما .مراحل بسیار ساده و مدار خیلی ارزونه بریم سر اصل مطلب
قبلا یاد گرفتیم که چطوری میتونیم از GPIO در پایتون استفاده کنیم .پس الان روند کار به این صورت هست که اول دمای CPU رو میخونیم ،بعد بر مینای اون یه سگنال از نوع PWM به یکی از پایه های برد اعمال میکنیم .من در اینجا از پایه شماره ۸ استفاده کردم .
دمای CPU در فایلی با آدرس زیر ذخیره میشه .
دقت داشته باشید که باید مقدار رو تقسیم بر ۱۰۰۰ کنید تا دما به سلسیوس رو به شما برگردونه .
۱ |
/sys/class/thermal/thermal_zone0/temp |
خوب اصل برنامه این هست که اول از همه تابع Time رو فراخونی میکنم تا بتونم از دستور time.sleep استفاده کنم و وقفه ۱ ثانیه ای ایجاد کنم .
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ |
import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(۸, GPIO.OUT) p = GPIO.PWM(۸,۱۵) try: while True: fo = open('/sys/class/thermal/thermal_zone0/temp' , 'r') temp = int(fo.read()) //۱۰۰۰ if temp < ۳۵: p.start(۰) print('Fan OFF !') elif temp >= ۳۵ and temp < ۴۰: p.start(۴۰) print('The Fan is running at 40% speed!') elif temp >= ۴۰ and temp < ۴۵: p.start(۵۰) print('The Fan is running at 50% speed!') elif temp >= ۴۵ and temp < ۵۰ : p.start(۶۰) print('The Fan is running at 60% speed!') elif temp >= ۵۰ and temp < ۵۵: p.start(۷۰) print('The Fan is running at 70% speed!') elif temp >= ۵۵ and temp < ۶۰: p.start(۸۰) print('The Fan is running at 80% speed!') elif temp >= ۶۰ : p.start(۱۰۰) print('The Fan is running at Max speed!!') time.sleep(۱) except KeyboardInterrupt: pass p.stop() GPIO.cleanup() fo.close() |
برای استفاده اگر فن های ۳ سیم دارید که خیلی خوبه ! ولی اگر فن ساده دارید باید با استفاده از یه ترانزیستور فن رو به صورت متناوب قطع و وصل می کنیم (اصول کار pwm).برای این کار من از مدار زیر استفاده کردم براتون گذاشتمش هزینه بسیار کمی هم برای ساخت داره !
مدار الکترونیکی :
قطعات مورد نیاز :
- ترانزیستور BC337
- مقاومت ۱ کیلو اهم
- فن رزبری پای ۵ ولتی ( معمولا ابعاد ۴*۴ ابعاد مناسبیه )
سیگنال ورودی رو با یه مقاومت 1K اهمی به بیس ترانریستور میدیم و امیتر ترانزستور رو به منفی وصل میکنیم و کلکتور رو هم به فن میدیم . میتونید از پین های رسپبری برای پاور فن استفاده کنید.
اجرا در استارت آپ :
حالا برای اجرای برنامه به صورت خودکار از Cron Job استفاده میکنیمتا فن رزبری پای خودکار شروع به کار کنه .
ابتدا با دستور زیر crontab رو باز میکنیم .
۱ |
crontab -e |
در اینجا ممکنه از شما بپرسه که در کدوم فایل میخواید این فایل رو برای استارتاپ قرار بدید .
من ۱ رو انتخاب کردم . بعد از انتخاب فایل برای قرار دادن cronjob در صفحه ای که باز شده به خط آخر میرم . این متن رو اضافه میکنم .
نکته : اگر میخواید این دستور در هنگام بوت سیستم شما اجرا بشه باید شروع دستور رو با reboot@ شروع کنید یه فاصله بدید ، و دستورتون رو همونطور که در cli اجرا میکنید تایپ کنید .
۱ |
@reboot python /root/fan.py |
اینم فیلم تست برنامه
تمام ! امیدوارم به کارتون بیاد