সুচিপত্র:

রাস্পবেরি পাই 4: 3 ধাপে সঠিক তাপমাত্রা নিয়ন্ত্রণ
রাস্পবেরি পাই 4: 3 ধাপে সঠিক তাপমাত্রা নিয়ন্ত্রণ

ভিডিও: রাস্পবেরি পাই 4: 3 ধাপে সঠিক তাপমাত্রা নিয়ন্ত্রণ

ভিডিও: রাস্পবেরি পাই 4: 3 ধাপে সঠিক তাপমাত্রা নিয়ন্ত্রণ
ভিডিও: বুয়েটে এ ম্যাথ না পারলে কি করব? || BUET MATH PROBLEM 2024, নভেম্বর
Anonim
রাস্পবেরি পাই 4 তে সঠিক তাপমাত্রা নিয়ন্ত্রণ
রাস্পবেরি পাই 4 তে সঠিক তাপমাত্রা নিয়ন্ত্রণ

পিমোরোনি ফ্যান শিম আপনার পাই এর তাপমাত্রা কমানোর জন্য একটি দুর্দান্ত সমাধান যখন এটি গরম হয়ে যায়। নির্মাতারা এমন সফটওয়্যারও সরবরাহ করে যা ফ্যানকে ট্রিগার করে যখন সিপিইউ তাপমাত্রা নির্দিষ্ট থ্রেশহোল্ডের উপরে উঠে যায় (যেমন 65৫ ডিগ্রী)। তাপমাত্রা দ্রুত নিম্ন প্রান্তের নিচে নেমে আসে এবং ফ্যান বন্ধ করে দেয়। এটি দুর্দান্ত তবে তাপমাত্রা বৃদ্ধি এবং মাঝারি লোডের নিচে পড়ে এবং শ্রবণযোগ্য ফ্যানের শব্দ তৈরি করে। পিআইডি নিয়ামক নামক কিছু ব্যবহার করে সিপিইউ তাপমাত্রা নির্দিষ্ট মান নির্ধারণ করার সময় এই নির্দেশাবলী ফ্যানের শব্দ হ্রাস করবে। উচ্চ থ্রেশহোল্ড (উদা 65 65 ডিগ্রী) এর ফলে অনেক বেশি শান্ত ফ্যান হবে যখন নিম্ন থ্রেশহোল্ড (উদা 50 50 ডিগ্রী) এর ফলে একটি জোরে ফ্যান হবে কিন্তু ভাল তাপমাত্রা নিয়ন্ত্রণ হবে।

উপরের উদাহরণটি PID কন্ট্রোলার চালানো এবং প্রতি 500 সেকেন্ডে টার্গেট টার্মপেচার পরিবর্তন করে আমার ফলাফল দেখায়। নির্ভুলতা হল +/- 1 ডিগ্রী তাপমাত্রা হঠাৎ পরিবর্তন কিছু overshoot সঙ্গে।

গুরুত্বপূর্ণভাবে, এই পরীক্ষাটি মোট পরীক্ষার সময় (বিবিসি আইপ্লেয়ার দেখা) একই লোডের অধীনে ছিদ্র করা হয়েছিল।

সরবরাহ

  • রাস্পবেরি পাই 4
  • পিমোরনি ফ্যান শিম

ধাপ 1: আপনার ফ্যান সেট আপ করুন

আপনার ফ্যান সেট আপ করুন
আপনার ফ্যান সেট আপ করুন

প্রথম ধাপ হল আপনার ফ্যান সেট আপ করা। পিমোরিনি টিউটোরিয়াল দারুন!

তারপর আপনার Pi (ctrl alt t) এ টার্মিনাল খুলুন

এবং Pimoroni দ্বারা প্রদত্ত কোডটি ইনস্টল করুন

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

ধাপ 2: একটি PI (D) কন্ট্রোলার তৈরি করুন

একটি PI (D) কন্ট্রোলার তৈরি করুন
একটি PI (D) কন্ট্রোলার তৈরি করুন

একটি আনুপাতিক ইন্টিগ্রাল ডেরিভেটিভ (পিআইডি) কন্ট্রোলার হল এমন একটি সিস্টেম যা একটি নির্দিষ্ট প্রক্রিয়ার মান (সিপিইউ তাপমাত্রা) কিছু শারীরিক যন্ত্র (ফ্যান স্পিড) ম্যানিপুলেট করে ব্যবহার করে। আমরা ফ্যানের 'গতি' এবং শব্দকে পর্যায়ক্রমে চালু এবং বন্ধ করে (পালস ওয়েভ মডুলেশন) ম্যানিপুলেট করতে পারি। একটি নির্দিষ্ট সময়ের মধ্যে এটি চালু আছে (যেমন 1 সেকেন্ড) ফ্যান কত দ্রুত এবং কত জোরে তা নির্ধারণ করে (900ms = জোরে এবং দ্রুত, 100ms = শান্ত এবং ধীর)। আমরা পিআইডি ব্যবহার করে ফ্যানের গতি ম্যানিপুলেট করব এবং এভাবে তাপমাত্রা নিয়ন্ত্রণ করব।

আমরা একটি PID এর ব্যবহারকে ধাপে ভাগ করতে পারি।

  1. প্রসেস ভেরিয়েবলের মান নির্ধারণ করুন যা আপনি অর্জন করতে চান (যেমন CPU তাপমাত্রা = 55)। একে আপনার সেটপয়েন্ট বলা হয়।
  2. PID ত্রুটি গণনা করুন। যদি আপনার সেটপয়েন্ট 55 ডিগ্রী হয় এবং প্রকৃত তাপমাত্রা 60 ডিগ্রী হয় আপনার ত্রুটি 5 ডিগ্রী (তাপমাত্রা - সেটপয়েন্ট)
  3. ত্রুটির অনুপাতে ফ্যানের অন-টাইম পরিবর্তন করুন (বড় ত্রুটির ফলে ফ্যানের গতিতে বড় পরিবর্তন হয়, ছোট ত্রুটিগুলি ফ্যানের গতিতে ছোট পরিবর্তন করে)।
  4. প্রাক্তন মানগুলির সাথে ফ্যানটি সামঞ্জস্য করুন (পূর্ববর্তী সমস্ত ত্রুটির সংহত/সমষ্টি)
  5. Allyচ্ছিকভাবে আপনি ত্রুটির পরিবর্তনের হারের উপর ভিত্তি করে ফ্যানের গতি সামঞ্জস্য করুন (ডেরিভেটিভ) কিন্তু আমরা এখানে তা করব না

এখন আপনার কাছে তত্ত্বটি থনি আইডিই (বা অন্য কিছু পাইথন আইডিই) এ নীচের কোডটি চালান। আপনি আপনার Pi- এ কোন তাপমাত্রা বজায় রাখতে চান তা পরিবর্তন করতে নীচের কোডে 'টার্গেট' এর মান পরিবর্তন করুন। আমি 'P' এবং 'I' পদগুলি কিছুটা নির্বিচারে মান নির্ধারণ করেছি। এগুলো আপনার জন্য কাজ না করলে নির্দ্বিধায় সামঞ্জস্য করুন। 'পি' বড় করা মানে নিয়ামক নতুন ত্রুটির জন্য দ্রুত সাড়া দেবে (কিন্তু স্থিতিশীল নাও হতে পারে)। 'আমি' পরিবর্তন করা নিয়ামককে অতীতের মানগুলির প্রতি আরও বেশি প্রতিক্রিয়া দেখাবে। আমি এই শর্তগুলিকে খুব বড় করার চেষ্টা করবো না কারণ দ্রুত ফ্যানের গতি পরিবর্তন করলে দ্রুত তাপমাত্রা পরিবর্তন হবে না। এছাড়াও, যদি আপনি আপনার পাইতে অবিশ্বাস্যভাবে ভারী কাজ করছেন তবে আপনি আপনার পছন্দসই মেয়াদপূর্তি অর্জন করতে পারবেন না (ফ্যানের সীমা এখনও প্রযোজ্য)।

ফ্যানশিম থেকে ফ্যানশিম আমদানি করুন

সময় আমদানি ঘুম থেকে, সময় আমদানি os আমদানি গণিত # CPU তাপমাত্রা একটি অক্ষর স্ট্রিং ডিফ getCPUtemperature (): res = os.popen ('vcgencmd measure_temp')। readline () return (res.replace ("temp =", " ").replace (" 'C / n "," ")) fanshim = FanShim () target = 55 # পছন্দসই তাপমাত্রা (এর সাথে খেলুন এবং দেখুন কি হয়) পিরিয়ড = 1 # PWM পিরিয়ড =.1 # 0 থেকে শুরু % ডিউটি সাইকেল অফ = পিরিয়ড-অন # ইনিশিয়ালাইজ থেকে 0% ডিউটি সাইকেল P =.01 # আনুপাতিক লাভ টার্ম (এটি দিয়ে খেলুন এবং দেখুন কি হয়) এবং দেখুন কি হয়) যখন সত্য: # get temperaute temp = int (float (getCPUtemperature ())) # ত্রুটি গণনা করুন এবং মসৃণ ত্রুটি = temp-target # compute integra lerror এবং সীমাবদ্ধ করুন intErr = intErr+err যদি intErr> 10: intErr = 10 যদি intErr = period: on = period off = 0 else: on = on off = period-on # সেট ন্যূনতম ডিউটি চক্র যদি <.09: on =.09 else: on = on # PWM on the fanshim pin if on == period: fanshim.set_fan (true) ঘুম (on) else: fanshim.set_fan (True) s leep (on) fanshim.set_fan (মিথ্যা) ঘুম (বন্ধ)

ধাপ 3: স্টার্টআপে কন্ট্রোল স্ক্রিপ্ট চালান

স্টার্টআপে কন্ট্রোল স্ক্রিপ্ট চালান
স্টার্টআপে কন্ট্রোল স্ক্রিপ্ট চালান

আপনি যখনই আপনার পাই শুরু করবেন আপনি এই স্ক্রিপ্টটি চালাতে পারেন অথবা আপনি এটি পুনরায় বুট করার সময় স্বয়ংক্রিয়ভাবে ট্রিগার করতে পারেন। ক্রোনট্যাবের সাথে এটি করা খুব সহজ।

  1. টার্মিনাল খুলুন
  2. টার্মিনালে crontab-e টাইপ করুন
  3. 'breboot python /home/pi/bootScripts/fanControl.py &' ফাইলে কোডের ফোলিং লাইন যোগ করুন
  4. প্রস্থান করুন এবং পুনরায় বুট করুন

আমি bootScripts নামে একটি ফ্লোডারে স্ক্রিপ্ট (fanControl.py) রেখেছি কিন্তু আপনি এটিকে যে কোন জায়গায় রাখতে পারেন শুধু নিশ্চিত করুন যে আপনি crontab- এ সঠিক পথ নির্দিষ্ট করেছেন।

সব শেষ! এখন আপনার ফ্যান আপনার CPU- এর তাপমাত্রাকে একটি নির্দিষ্ট মান নিয়ন্ত্রণ করবে, যখন এটি শ্রবণযোগ্য শব্দ কমিয়ে দেবে।

প্রস্তাবিত: