সুচিপত্র:

রাস্পবেরি পাই সিপিইউ তাপমাত্রা নির্দেশক: 11 টি ধাপ (ছবি সহ)
রাস্পবেরি পাই সিপিইউ তাপমাত্রা নির্দেশক: 11 টি ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই সিপিইউ তাপমাত্রা নির্দেশক: 11 টি ধাপ (ছবি সহ)

ভিডিও: রাস্পবেরি পাই সিপিইউ তাপমাত্রা নির্দেশক: 11 টি ধাপ (ছবি সহ)
ভিডিও: Windows 10 ARM Raspberry Pi | Giveaway 2024, জুলাই
Anonim
রাস্পবেরি পাই সিপিইউ তাপমাত্রা নির্দেশক
রাস্পবেরি পাই সিপিইউ তাপমাত্রা নির্দেশক

পূর্বে আমি সহজ রাস্পবেরি পাই (এরপরে আরপিআই হিসাবে) অপারেশনাল স্ট্যাটাস ইন্ডিকেটর সার্কিট চালু করেছি।

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

উপরের সার্কিটটি CPU তাপমাত্রাকে 4 টি ভিন্ন মাত্রায় দেখায় যেমন:

- সবুজ LED চালু যখন CPU তাপমাত্রা 30 ~ 39 ডিগ্রির মধ্যে থাকে

- হলুদ LED ইঙ্গিত দেয় যে তাপমাত্রা 40 থেকে 45 ডিগ্রির মধ্যে বৃদ্ধি পেয়েছে

- Red য় লাল LED দেখায় সিপিইউ ~ ~ degree ডিগ্রিতে পৌঁছে একটু গরম হয়ে যায়

- তাপমাত্রা 50 ডিগ্রির বেশি হলে আরেকটি লাল LED জ্বলজ্বল করবে

উপরের সিপিইউ তাপমাত্রার রেঞ্জগুলি আমার ব্যক্তিগত নকশা ধারণা (অন্যান্য তাপমাত্রার রেঞ্জগুলি পাইথন প্রোগ্রামের পরীক্ষার শর্তাবলী পরিবর্তন করে কনফিগার করা যায় যা এই সার্কিট নিয়ন্ত্রণ করে)।

এই সার্কিট ব্যবহার করে, আপনি অগত্যা কনসোল টার্মিনালে প্রায়ই "vcgencmd measure_temp" কমান্ডটি চালাচ্ছেন না।

এই সার্কিট ক্রমাগত এবং সুবিধামত বর্তমান CPU তাপমাত্রা জানাবে।

ধাপ 1: স্কিম্যাটিক্স প্রস্তুত করা

পরিকল্পনার প্রস্তুতি
পরিকল্পনার প্রস্তুতি

যদিও আপনি শুধুমাত্র পাইথন কোড ব্যবহার করে সরাসরি 4 টি এলইডি নিয়ন্ত্রণ করতে পারেন, প্রোগ্রামের কন্ট্রোল লজিক্স আরপিআই লোড করবে এবং ফলস্বরূপ, সিপিইউ তাপমাত্রা আরও বৃদ্ধি পাবে কারণ আপনার ক্রমাগত একটু জটিল পাইথন কোড চালানো উচিত।

অতএব, আমি পাইথন কোড জটিলতাকে যথাসম্ভব সহজ করে দিচ্ছি এবং বহিরাগত হার্ডওয়্যার সার্কিটের জন্য LED নিয়ন্ত্রণের যুক্তি বন্ধ করছি।

CPU তাপমাত্রা নির্দেশক (পরে INICATOR) সার্কিট নিম্নলিখিত প্রধান অংশ নিয়ে গঠিত।

-দুইটি অপটো-কাপলার RPI GPIO পিনের সাথে সংযুক্ত থাকে যাতে তাপমাত্রার লেভেল ডাটা পাওয়া যায় যেমন 00-> LOW, 01-> মাঝারি, 10-> উচ্চ, 11-> কুলিং দরকার।

-74LS139 (বা 74HC139, 2-to-4 ডিকোডার এবং ডি-মাল্টিপ্লেক্সার) ইনপুট অনুযায়ী (A, B)

- যখন তাপমাত্রা 30 ~ 39 ডিগ্রির মধ্যে থাকে, পাইথন কোড আউটপুট 00 থেকে GPIO পিনগুলিতে। অতএব, 74LS139 ইনপুট ডেটা পায় 00 (A-> 0, B-> 0)

- 00 প্রবেশ করানোর সাথে সাথে Y0 আউটপুট কম হয়ে যায়। (অনুগ্রহ করে 74LS139 এর সত্য সারণী দেখুন)

- যখন Y0 আউটপুট কম হয়ে যায়, এটি 2N3906 PNP ট্রানজিস্টর সক্রিয় করে এবং ফলস্বরূপ, সবুজ LED চালু হয়

- একইভাবে, Y1 (01 -> CPU তাপমাত্রার মাধ্যম) হলুদ LED চালু করবে ইত্যাদি

- যখন Y3 কম হয়ে যায়, DB140 NE555 LED ব্লিঙ্কিং সার্কিট সক্রিয় করে (এটি সাধারণ 555 IC ভিত্তিক LED ব্লিঙ্কার) যা BD140 PNP ট্রানজিস্টারের লোড

এই সার্কিটের সবচেয়ে গুরুত্বপূর্ণ উপাদান হল 74LS139 যা 2 অঙ্কের ইনপুটকে 4 টি ভিন্ন একক আউটপুটে ডিকোড করে নিচের সত্য সারণীতে দেখানো হয়েছে।

ইনপুট | আউটপুট

জি (সক্ষম) | খ | এ | Y0 | Y1 | Y2 | Y3 |

এইচ | এক্স | এক্স | জ | জ | জ | জ |

এল | এল | এল | এল | জ | জ | এইচ |

এল | এল | জ | জ | এল | জ | জ |

এল | জ | এল | এইচ | জ | এল | জ |

এল | জ | জ | জ | এইচ | জ | এল |

যেহেতু 74LS139 আউটপুট কম হয়ে যায়, পিএনপি টাইপ ট্রানজিস্টার সামগ্রিক সার্কিটকে সহজ করতে পারে কারণ পিএনপি ট্রানজিস্টর চালু হলে বেস টার্মিনাল কম হয়ে যায়। (আমি এই গল্পের শেষে এনপিএন সংস্করণ দেখাব)

NE555 LED ব্লিঙ্কার সার্কিটে 100K পোটেন্টিওমিটার অন্তর্ভুক্ত হওয়ায়, লাল LED ON/OFF সময় প্রয়োজন অনুযায়ী অবাধে সামঞ্জস্য করা যায়।

ধাপ 2: PCB অঙ্কন তৈরি করা

পিসিবি অঙ্কন তৈরি করা
পিসিবি অঙ্কন তৈরি করা

যেমন ইন্ডিকেটরের অপারেটিং স্কিম ব্যাখ্যা করা হয়েছে, আসুন সার্কিট তৈরি করা শুরু করি।

সার্বজনীন বোর্ডে কিছু সোল্ডার করার আগে, উপরে দেখানো পিসিবি অঙ্কন প্রস্তুত করা কোনও ভুল কমানোর জন্য সহায়ক।

সার্বজনীন বোর্ডে প্রতিটি অংশ সনাক্ত করার জন্য পাওয়ার পয়েন্ট ব্যবহার করে এবং তারের সাথে অংশগুলির মধ্যে তারের নিদর্শন তৈরি করে অঙ্কনটি তৈরি করা হয়।

যেহেতু আইসি এবং ট্রানজিস্টার পিন-আউট ইমেজগুলি পিসিবি তারের প্যাটার্ন সহ সহ-অবস্থিত, তাই এই অঙ্কনটি ব্যবহার করে সোল্ডারিং করা যেতে পারে।

ধাপ 3: সোল্ডারিং

সোল্ডারিং
সোল্ডারিং

যদিও পিসিবিতে উপাদানগুলিকে সংযুক্ত করার জন্য মূল পিসিবি অঙ্কন একক তারের ব্যবহার না করে তৈরি করা হয়েছে, আমি কিছুটা ভিন্নভাবে সোল্ডারিং করছি।

তারের একক কন্ডাকটর (টিনের তার নয়) ব্যবহার করে, আমি সার্বজনীন পিসিবি আকার কমানোর চেষ্টা করছি যার মধ্যে ইন্ডিকেটর সার্কিট রয়েছে।

কিন্তু আপনি যেমন পিসিবির সোল্ডারিং সাইডে দেখতে পাচ্ছেন, আমি পিসিবি অঙ্কনে দেখানো নিদর্শন অনুযায়ী টিনের তারও ব্যবহার করছি।

যখন প্রতিটি উপাদান পিসিবি অঙ্কনের মূল নকশা অনুসারে সংযুক্ত থাকে, ইন্ডেকটর সার্কিট সহ সোল্ডারিং সম্পন্ন পিসিবি বোর্ড সঠিকভাবে কাজ করবে।

ধাপ 4: পরীক্ষার প্রস্তুতি

পরীক্ষার প্রস্তুতি
পরীক্ষার প্রস্তুতি

RPI সংযোগের আগে, সমাপ্ত সার্কিটের পরীক্ষার প্রয়োজন।

যেহেতু কোনও সোল্ডারিং ভুল বিদ্যমান থাকতে পারে, ডিসি পাওয়ার সাপ্লায়ার যখন শর্টস বা ভুল ওয়্যারিং হয় তখন ক্ষতি প্রতিরোধের জন্য ব্যবহার করা হয়।

ইন্ডিকেটর পরীক্ষার জন্য, দুটি অতিরিক্ত পাওয়ার সাপ্লাই ক্যাবল সার্কিটের 5V পাওয়ার সাপ্লাই কানেক্টরের সাথে সংযুক্ত।

ধাপ 5: পরীক্ষা (CPU তাপমাত্রা মাঝারি স্তর)

পরীক্ষা (CPU তাপমাত্রা মাঝারি স্তর)
পরীক্ষা (CPU তাপমাত্রা মাঝারি স্তর)

যখন 5V ইনপুট প্রয়োগ করা হয় না তখন 74LS139 ডিকোডিং ইনপুট এবং Y0 আউটপুটকে LOW হিসাবে সক্রিয় করে (সবুজ LED চালু)।

কিন্তু 5V ইনপুট A তে প্রয়োগ করা হয়েছে, 74LS139 সক্রিয় করার আউটপুট Y1 (LOW)।

অতএব, উপরের ছবিতে দেখানো হিসাবে হলুদ LED চালু আছে।

ধাপ 6: টেস্টিং (CPU কুলিং লেভেল প্রয়োজন)

টেস্টিং (সিপিইউ কুলিং লেভেল প্রয়োজন)
টেস্টিং (সিপিইউ কুলিং লেভেল প্রয়োজন)

যখন 5V 74LS139 এর উভয় ইনপুট (A এবং B) প্রয়োগ করে, তখন 4 র্থ লাল LED জ্বলজ্বল করে।

উপরের ছবিতে দেখানো হিসাবে 100K VR সমন্বয় করে ব্লিঙ্কিং রেট পরিবর্তন করা যেতে পারে।

যখন পরীক্ষা সম্পন্ন হয়, দুটি মোলেক্স 3 পিন মহিলা তারগুলি সরানো যেতে পারে।

ধাপ 7: ইন্ডিকেটর সার্কিটে পাওয়ার সাপ্লাই

ইন্ডিকেটর সার্কিটে পাওয়ার সাপ্লাই
ইন্ডিকেটর সার্কিটে পাওয়ার সাপ্লাই

ইন্ডিকেটর সার্কিটকে শক্তিশালী করার জন্য, আমি সাধারণ হ্যান্ড-ফোন চার্জার ব্যবহার করছি যা উপরের ছবিতে দেখানো 5V এবং USB টাইপ-বি অ্যাডাপ্টার আউটপুট করে।

3.3V GPIO এবং 5V চালিত ইন্ডিকেটর সার্কিট সংযোগ করে RPI- এর সমস্যা এড়াতে, সিগন্যাল ইন্টারফেস এবং পাওয়ার সাপ্লাই একে অপরকে সম্পূর্ণ বিচ্ছিন্ন করে।

ধাপ 8: RPI ওয়্যারিং

আরপিআই ওয়্যারিং
আরপিআই ওয়্যারিং

RPI এর সাথে ইন্ডিকেটর সার্কিট ইন্টারফেস করার জন্য, দুটি GPIO পিন দুটি গ্রাউন্ড পিনের সাথে উৎসর্গ করা উচিত।

GPIO পিন নির্বাচন করার জন্য কোন নির্দিষ্ট প্রয়োজন নেই।

আপনি ইন্ডিকেটর সংযোগের জন্য যেকোনো GPIO পিন ব্যবহার করতে পারেন।

কিন্তু তারযুক্ত পিনগুলিকে পাইথন প্রোগ্রামে 74LS139 (যেমন A, B) এর ইনপুট হিসাবে মনোনীত করা উচিত।

ধাপ 9: পাইথন প্রোগ্রাম

পাইথন প্রোগ্রাম
পাইথন প্রোগ্রাম

সার্কিট সম্পন্ন হওয়ার সাথে সাথে পাইথন প্রোগ্রাম তৈরির জন্য ইন্ডিকেটর ফাংশন ব্যবহার করতে হয়।

প্রোগ্রাম লজিক সম্পর্কে আরো বিস্তারিত জানার জন্য দয়া করে উপরের ফ্লো চার্ট দেখুন।

#-*-কোডিং: utf-8-*-

আমদানি সাবপ্রসেস, সিগন্যাল, sys

আমদানির সময়, পুনরায়

RPi. GPIO g হিসাবে আমদানি করুন

A = 12

বি = 16

g.setmode (g. BCM)

g.setup (A, g. OUT)

g.setup (B, g. OUT)

##

def signal_handler (সিগ, ফ্রেম):

মুদ্রণ ('আপনি Ctrl+C টিপেছেন!')

g.output (A, False)

g.output (B, False)

f.close ()

sys.exit (0)

signal.signal (signal. SIGINT, signal_handler)

##

যখন সত্য:

f = open ('/home/pi/My_project/CPU_temperature_log.txt', 'a+')

temp_str = subprocess.check_output ('/opt/vc/bin/vcgencmd measure_temp', shell = True)

temp_str = temp_str.decode (এনকোডিং = 'UTF-8', ত্রুটি = 'কঠোর')

CPU_temp = re.findall ("\ d+\। / D+", temp_str)

# বর্তমান CPU তাপমাত্রা নিষ্কাশন

current_temp = float (CPU_temp [0])

যদি current_temp> 30 এবং current_temp <40:

# তাপমাত্রা কম A = 0, B = 0

g.output (A, False)

g.output (B, False)

সময় ঘুম (5)

elif current_temp> = 40 এবং current_temp <45:

# তাপমাত্রার মাধ্যম A = 0, B = 1

g.output (A, False)

g.output (B, True)

সময় ঘুম (5)

elif current_temp> = 45 এবং current_temp <50:

# তাপমাত্রা উচ্চ A = 1, B = 0

g.output (A, True)

g.output (B, False)

সময় ঘুম (5)

elif current_temp> = 50:

# CPU কুলিং প্রয়োজন উচ্চ A = 1, B = 1

g.output (A, True)

g.output (B, True)

সময় ঘুম (5)

current_time = time.time ()

formated_time = time.strftime ("%H:%M:%S", time.gmtime (current_time))

f.write (str (formated_time)+'\ t'+str (current_temp)+'\ n')

f.close ()

পাইথন প্রোগ্রামের প্রধান কাজ নিচের মত।

- প্রথমে GPIO 12, 16 আউটপুট পোর্ট হিসেবে সেট করা

- লগ ফাইল বন্ধ করার জন্য Ctrl+C ইন্টারাপ্ট হ্যান্ডলার সংজ্ঞায়িত করুন এবং GPIO 12, 16 বন্ধ করুন

- যখন অসীম লুপে প্রবেশ করুন, সংযুক্তি মোড হিসাবে লগ ফাইল খুলুন

- "/opt/vc/bin/vcgencmd measure_temp" কমান্ড প্রয়োগ করে CPU তাপমাত্রা পড়ুন

- যখন তাপমাত্রা 30 ~ 39 পরিসরে থাকে তখন সবুজ LED চালু করার জন্য 00 আউটপুট

- যখন তাপমাত্রা 40 ~ 44 এর মধ্যে থাকে তখন হলুদ LED চালু করতে 01 আউটপুট দিন

- যখন তাপমাত্রা 45 ~ 49 পরিসরে থাকে তখন লাল LED চালু করতে 10 আউটপুট করুন

- যখন তাপমাত্রা 50 এর বেশি হয় তখন লাল LED ঝলকানি করতে 11 আউটপুট করে

- লগ ফাইল টাইম স্ট্যাম্প এবং তাপমাত্রা তথ্য লিখুন

ধাপ 10: সূচক অপারেশন

সূচক অপারেশন
সূচক অপারেশন

যখন সবকিছু ঠিক থাকে, আপনি দেখতে পাবেন যে প্রতিটি LED সিপিইউ তাপমাত্রা অনুসারে চালু বা জ্বলজ্বল করছে।

বর্তমান তাপমাত্রা পরীক্ষা করার জন্য আপনাকে শেল কমান্ড লিখতে হবে না।

লগ ফাইলে তথ্য সংগ্রহ এবং এক্সেল ব্যবহার করে গ্রাফে পাঠ্য ডেটা রেন্ডার করার পরে, ফলাফলটি উপরের ছবিটি দেখানো হয়েছে।

উচ্চ লোড প্রয়োগ করার সময় (দুটি মিডোরি ব্রাউজার চালানো এবং ইউটিউব ভিডিও চালানো), সিপিইউ তাপমাত্রা 57.9C পর্যন্ত বৃদ্ধি পায়।

ধাপ 11: অল্টারনেটিভ মেকিং (এনপিএন ট্রানজিস্টর ব্যবহার করে) এবং আরও উন্নয়ন

বিকল্প তৈরি (এনপিএন ট্রানজিস্টার ব্যবহার করে) এবং আরও উন্নয়ন
বিকল্প তৈরি (এনপিএন ট্রানজিস্টার ব্যবহার করে) এবং আরও উন্নয়ন

এটি NPN ট্রানজিস্টর (2N3904 এবং BD139) ব্যবহার করে আগের ইন্ডিকেটর প্রকল্পের উদাহরণ।

যেহেতু আপনি দেখতে পাচ্ছেন আরও একটি IC (74HC04, Quad invertors) NPN ট্রানজিস্টর চালানোর জন্য প্রয়োজনীয় কারণ ট্রানজিস্টর চালু করার জন্য NPN এর বেসে উচ্চ স্তরের ভোল্টেজ প্রয়োগ করা উচিত।

সংক্ষিপ্ত হিসাবে, NPN ট্রানজিস্টার ব্যবহার করে INDICATOR সার্কিট তৈরিতে অপ্রয়োজনীয় জটিলতা যোগ করে।

এই প্রকল্পের আরও উন্নয়নের জন্য, আমি ইন্ডিকেটর সার্কিটকে আরও উপযোগী করার জন্য উপরের ছবিতে দেখানো কুলিং ফ্যান যুক্ত করব।

প্রস্তাবিত: