فهرست مطالب:
- تدارکات
- مرحله 1: ساختن مدار
- مرحله 2: دمای CPU را با ThingSpeak وارد کنید
- مرحله 3: گرفتن دمای پردازنده از رزبری پای با استفاده از پایتون
- مرحله 4: کنترل فن بر اساس دما
- مرحله 5: کد نهایی پایتون
- مرحله 6: نظارت بر داده ها از طریق Thingspeak Cloud
- مرحله 7: در هنگام راه اندازی اسکریپت پایتون را اجرا کنید
تصویری: کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
مروری مختصر
به طور پیش فرض ، فن به طور مستقیم به GPIO متصل است - این به معنای عملکرد ثابت آن است. علیرغم عملکرد نسبی آرام فن ، عملکرد مداوم آن استفاده م effectiveثر از سیستم خنک کننده فعال نیست. در عین حال ، عملکرد مداوم یک فن فقط می تواند آزاردهنده باشد. همچنین ، اگر رزبری پای خاموش باشد ، در صورت وصل شدن برق ، فن همچنان کار می کند.
این مقاله نشان می دهد که چگونه با استفاده از دستکاری های ساده و نه پیچیده ، یک سیستم خنک کننده موجود را به یک سیستم هوشمند تبدیل می کنید ، که تنها در مواقعی که پردازنده واقعاً به آن نیاز دارد روشن می شود. فن فقط در صورت استفاده زیاد روشن می شود ، بنابراین مصرف برق و سر و صدا کاهش می یابد. همچنین افزایش طول عمر فن با خاموش نگه داشتن آن در صورت عدم نیاز.
آنچه خواهید آموخت
نحوه پیاده سازی یک اسکریپت پایتون برای کنترل فن بر اساس دمای فعلی CPU رزبری با استفاده از کنترل On-Off با پسماند دما. نحوه انتقال داده ها از RaspberryPi خود به Things Speak Cloud.
تدارکات
اجزای مورد نیاز شما برای این پروژه به شرح زیر است
- کامپیوتر رزبری پای 4 مدل B 4 گیگابایت
- NPN ترانزیستور مقاومت S8050330 اهم
- قاب فلزی آلومینیومی Armor با دو عدد فن برای رزبری پای
- کابل های بلوز
- تخته نان
مرحله 1: ساختن مدار
مدار بسیار ساده است. برق با استفاده از ترانزیستور NPN قطع می شود. در این پیکربندی ، ترانزیستور به عنوان یک سوئیچ سمت پایین عمل می کند. مقاومت فقط برای محدود کردن جریان از طریق GPIO لازم است. GPIO رزبری پای حداکثر خروجی فعلی 16 میلی آمپر دارد. من از 330 اهم استفاده کردم که جریان پایه ای در حدود (5-0.7)/330 = 13mA به ما می دهد. من یک ترانزیستور NPN S8050 را انتخاب کردم ، بنابراین تعویض بار 400 میلی آمپر از هر دو فن مشکلی ندارد.
مرحله 2: دمای CPU را با ThingSpeak وارد کنید
ThingSpeak یک پلت فرم برای پروژه های مبتنی بر مفهوم اینترنت اشیا است. این بستر به شما امکان می دهد تا برنامه هایی را بر اساس داده های جمع آوری شده از حسگرها بسازید. ویژگی های اصلی ThingSpeak عبارتند از: جمع آوری داده ها در زمان واقعی ، پردازش داده ها و تجسم. ThingSpeak API نه تنها به شما امکان ارسال ، ذخیره و دسترسی به داده ها را می دهد ، بلکه روش های آماری مختلفی را برای پردازش آنها ارائه می دهد.
ThingSpeak می تواند دستگاه ها و سرویس های محبوب مانند:
- آردوینو
- تمشک پی
- oBridge / RealTime.io
- شیر برقی
- برنامه های تلفن همراه و وب
- شبکه های اجتماعی
- تجزیه و تحلیل داده ها در متلب
قبل از شروع ، شما نیاز به یک حساب کاربری در ThingSpeak دارید.
- به پیوند زیر بروید و در ThingSpeak ثبت نام کنید.
- پس از فعال سازی حساب کاربری خود ، وارد سیستم شوید.
- به کانالها -> کانالهای من بروید
- روی دکمه New Channel کلیک کنید.
- نام ، توضیحات و فیلدهای داده هایی را که می خواهید بارگذاری کنید وارد کنید
- برای ذخیره همه تنظیمات روی دکمه ذخیره کانال کلیک کنید.
ما به یک کلید API نیاز داریم که بعداً آن را به کد پایتون اضافه می کنیم تا دمای CPU خود را در ابر Thingspeak بارگذاری کنیم.
برای دریافت کلید نوشتن API ، روی برگه API Keys کلیک کنید
هنگامی که کلید نوشتن API را در اختیار دارید ، ما تقریباً آماده بارگذاری داده های خود هستیم.
مرحله 3: گرفتن دمای پردازنده از رزبری پای با استفاده از پایتون
اسکریپت بر اساس بازیابی دمای پردازنده است که هر ثانیه رخ می دهد. می توان آن را با اجرای دستور vcgencmd با پارامتر μέτρα_ Temp از ترمینال بدست آورد.
vcgencmd masë_temp
از کتابخانه Subprocess.check_output () برای اجرای دستور و سپس استفاده از عبارت معمولی برای استخراج مقدار واقعی از رشته بازگشتی استفاده شد.
از فرایند وارد کردن check_output
از وارد مجدد findalldef get_temp (): temp = check_output (["vcgencmd"، "masë_temp"]). رمزگشایی () temp = float (findall ('\ d+\. / d+'، temp) [0]) return (temp) چاپ (get_temp ())
پس از دریافت مقدار دما ، داده ها باید به ابر ThingSpeak ارسال شوند. از کلید نوشتن API خود برای تغییر متغیر myApi در کد پایتون زیر استفاده کنید.
از درخواست واردات urllib
from re import findall from time import sleep from underprocess import check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update؟api_key=٪ s '٪ myAPIdef get_temp (): temp = check_output (["vcgencmd"، "masë_temp"]). رمزگشایی () temp = float (findall (' / d+\. / d+'، temp) [0]) return (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =٪ s'٪ (temp)) print (str (temp)) conn.close () sleep (1) به جز KeyboardIntruptrupt: print ("Ctrl+C فشرده را ترک کنید")
مرحله 4: کنترل فن بر اساس دما
اسکریپت پایتون که در زیر نشان داده شده است ، منطقی را پیاده سازی می کند که هنگامی که دما از tempOn بالا می رود فن را روشن می کند و تنها زمانی که دما از آستانه پایین می آید خاموش می شود. به این ترتیب ، فن به سرعت روشن و خاموش نمی شود.
RPi. GPIO را به عنوان GPIO وارد کنید
import sys from re import findall from time import sleep from subprocess import check_output def get_temp (): temp = check_output (["vcgencmd"، "masë_temp"]). رمزگشایی () temp = float (findall ('\ d+\. / d+ '، temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 threshold = 10 controlPin = 14 pinState = false GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin، GPIO. OUT، initial = 0) while True: temp = get_temp () if temp> tempOn و نه pinState یا temp <tempOn - threshold and pinState: pinState = not pinState GPIO.output (controlPin، pinState) print (str (temp) + "" + str (pinState)) sleep (1) به جز KeyboardIntrupt: چاپ ("خروج از فشار Ctrl+C") به جز: print ("استثنا دیگر") چاپ ("--- شروع داده های استثنا:") traceback.print_exc (limit = 2 ، file = sys.stdout) print ("--- End Exception Data:") در نهایت: print ("CleanUp") GPIO.cleanup () print ("End of program")
مرحله 5: کد نهایی پایتون
کد اصلی پایتون را می توانید در حساب GitHub من در پیوند زیر پیدا کنید. به یاد داشته باشید که کلید API نوشتاری خود را قرار دهید.
- وارد برد Raspberry PI خود شوید
- دستور زیر را روی ترمینال اجرا کنید
python3 cpu.py
مرحله 6: نظارت بر داده ها از طریق Thingspeak Cloud
پس از مدتی ، کانال خود را در ThingSpeak باز کنید و دمای بارگذاری در ابر Thingspeak را در زمان واقعی مشاهده کنید.
مرحله 7: در هنگام راه اندازی اسکریپت پایتون را اجرا کنید
برای انجام این کار ، در انتهای فایل /etc/rc.local:
sudo nano /etc/rc.local
شما باید دستور شروع اسکریپت را در مقابل خط خروجی 0 قرار دهید:
sudo python /home/pi/cpu.py &
وجود نماد & در پایان فرمان اجباری است ، زیرا یک پرچم برای شروع روند در پس زمینه است. پس از راه اندازی مجدد ، اسکریپت به طور خودکار اجرا می شود و هنگامی که شرایط تعیین شده برآورده می شود ، فن روشن می شود.
توصیه شده:
کنترل تلویزیون و رزبری پای متصل با همان کنترل از راه دور: 4 مرحله
کنترل تلویزیون و رزبری پای متصل به هم از راه دور: برای کنترل رزبری پای با ریموت مادون قرمز ، قبلاً می توانستیم از LIRC استفاده کنیم. تا زمانی که Kernel 4.19.X کار می کرد ، کارکردن LIRC بسیار مشکل تر می شد. در این پروژه ما یک Raspberry Pi 3 B+ متصل به تلویزیون داریم و ما
کنترل حرکت با رزبری پای و LIS3DHTR ، شتاب سنج 3 محور ، با استفاده از پایتون: 6 مرحله
کنترل حرکت با رزبری پای و LIS3DHTR ، شتاب سنج 3 محور ، با استفاده از پایتون: زیبایی ما را احاطه کرده است ، اما معمولاً برای شناختن آن باید در باغ قدم بزنیم. - مولانا به عنوان گروه تحصیل کرده ای که به نظر می رسد ، ما اکثریت قریب به اتفاق انرژی خود را صرف کار قبل از رایانه های شخصی و تلفن های همراه می کنیم. بنابراین ، ما اغلب به سلامتی خود اجازه می دهیم
چشمک زدن LED با تمشک پای - نحوه استفاده از پین های GPIO در رزبری پای: 4 مرحله
چشمک زدن LED با تمشک پای | نحوه استفاده از پین های GPIO در Raspberry Pi: سلام بچه ها در این دستورالعمل نحوه استفاده از GPIO's Raspberry pi را یاد می گیریم. اگر تا به حال از آردوینو استفاده کرده اید ، احتمالاً می دانید که ما می توانیم سوئیچ LED و غیره را به پین های آن وصل کرده و آن را مانند کار کنیم. چشمک بزنید یا ورودی را از سوئیچ دریافت کنید تا
کنترل روشنایی کنترل LED مبتنی بر PWM با استفاده از دکمه های فشار ، رزبری پای و خراش: 8 مرحله (همراه با تصاویر)
کنترل روشنایی مبتنی بر PWM کنترل LED با استفاده از دکمه های فشار ، رزبری پای و خراش: من سعی می کردم راهی برای توضیح نحوه عملکرد PWM برای دانش آموزانم بیابم ، بنابراین وظیفه خود را برای کنترل روشنایی یک LED با استفاده از 2 دکمه تنظیم کردم. - یک دکمه روشنایی LED را افزایش می دهد و دکمه دیگر آن را کم می کند. برای پیشرفت
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید