فهرست مطالب:

کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak: 7 مرحله
کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak: 7 مرحله

تصویری: کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak: 7 مرحله

تصویری: کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak: 7 مرحله
تصویری: کنترل موتور توسط رزبری پای با استفاده از پایتون 2024, جولای
Anonim
کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak
کنترل هوشمند فن رزبری پای با استفاده از Python & Thingspeak

مروری مختصر

به طور پیش فرض ، فن به طور مستقیم به 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 وارد کنید

ورود دمای CPU با ThingSpeak
ورود دمای CPU با ThingSpeak

ThingSpeak یک پلت فرم برای پروژه های مبتنی بر مفهوم اینترنت اشیا است. این بستر به شما امکان می دهد تا برنامه هایی را بر اساس داده های جمع آوری شده از حسگرها بسازید. ویژگی های اصلی ThingSpeak عبارتند از: جمع آوری داده ها در زمان واقعی ، پردازش داده ها و تجسم. ThingSpeak API نه تنها به شما امکان ارسال ، ذخیره و دسترسی به داده ها را می دهد ، بلکه روش های آماری مختلفی را برای پردازش آنها ارائه می دهد.

ThingSpeak می تواند دستگاه ها و سرویس های محبوب مانند:

  • آردوینو
  • تمشک پی
  • oBridge / RealTime.io
  • شیر برقی
  • برنامه های تلفن همراه و وب
  • شبکه های اجتماعی
  • تجزیه و تحلیل داده ها در متلب

قبل از شروع ، شما نیاز به یک حساب کاربری در ThingSpeak دارید.

  1. به پیوند زیر بروید و در ThingSpeak ثبت نام کنید.
  2. پس از فعال سازی حساب کاربری خود ، وارد سیستم شوید.
  3. به کانالها -> کانالهای من بروید
  4. روی دکمه New Channel کلیک کنید.
  5. نام ، توضیحات و فیلدهای داده هایی را که می خواهید بارگذاری کنید وارد کنید
  6. برای ذخیره همه تنظیمات روی دکمه ذخیره کانال کلیک کنید.

ما به یک کلید 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 نوشتاری خود را قرار دهید.

  1. وارد برد Raspberry PI خود شوید
  2. دستور زیر را روی ترمینال اجرا کنید

python3 cpu.py

مرحله 6: نظارت بر داده ها از طریق Thingspeak Cloud

نظارت بر داده ها از طریق Thingspeak Cloud
نظارت بر داده ها از طریق Thingspeak Cloud

پس از مدتی ، کانال خود را در ThingSpeak باز کنید و دمای بارگذاری در ابر Thingspeak را در زمان واقعی مشاهده کنید.

مرحله 7: در هنگام راه اندازی اسکریپت پایتون را اجرا کنید

برای انجام این کار ، در انتهای فایل /etc/rc.local:

sudo nano /etc/rc.local

شما باید دستور شروع اسکریپت را در مقابل خط خروجی 0 قرار دهید:

sudo python /home/pi/cpu.py &

وجود نماد & در پایان فرمان اجباری است ، زیرا یک پرچم برای شروع روند در پس زمینه است. پس از راه اندازی مجدد ، اسکریپت به طور خودکار اجرا می شود و هنگامی که شرایط تعیین شده برآورده می شود ، فن روشن می شود.

توصیه شده: