جدول المحتويات:
- الخطوة الأولى: تحضير المخططات
- الخطوة 2: عمل رسم ثنائي الفينيل متعدد الكلور
- الخطوة 3: اللحام
- الخطوة 4: التحضير للاختبار
- الخطوة 5: الاختبار (درجة حرارة وحدة المعالجة المركزية متوسطة المستوى)
- الخطوة 6: الاختبار (تحتاج وحدة المعالجة المركزية إلى مستوى التبريد)
- الخطوة 7: إمداد الطاقة لدائرة المؤشر
- الخطوة 8: RPI Wiring
- الخطوة 9: برنامج بايثون
- الخطوة 10: تشغيل المؤشر
- الخطوة 11: صنع بديل (باستخدام ترانزستور NPN) والمزيد من التطوير
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
في السابق ، كنت قد أدخلت دائرة مؤشر حالة التشغيل البسيطة لـ Raspberry Pi (المشار إليها فيما يلي باسم RPI).
هذه المرة ، سأشرح بعض دارات المؤشر الأكثر فائدة لتشغيل RPI بطريقة مقطوعة الرأس (بدون شاشة).
توضح الدائرة أعلاه درجة حرارة وحدة المعالجة المركزية إلى 4 مستويات مختلفة مثل:
- يتم تشغيل مؤشر LED الأخضر عندما تكون درجة حرارة وحدة المعالجة المركزية في حدود 30 ~ 39 درجة
- مؤشر LED أصفر يشير إلى زيادة درجة الحرارة في النطاق من 40 إلى 45 درجة
- يظهر مؤشر LED الأحمر الثالث أن وحدة المعالجة المركزية أصبحت ساخنة قليلاً من خلال الوصول إلى 46 ~ 49 درجة
- سيومض مؤشر LED أحمر آخر عندما تتجاوز درجة الحرارة أكثر من 50 درجة
نطاقات درجة حرارة وحدة المعالجة المركزية المذكورة أعلاه هي مفهوم التصميم الشخصي الخاص بي (يمكن تكوين نطاقات درجات الحرارة الأخرى عن طريق تغيير ظروف اختبار برنامج بيثون الذي يتحكم في هذه الدائرة).
باستخدام هذه الدائرة ، فأنت لا تقوم بالضرورة بتنفيذ الأمر "vcgencmd Meas_temp" بشكل متكرر على وحدة التحكم الطرفية.
يجب أن تبلغ هذه الدائرة درجة حرارة وحدة المعالجة المركزية الحالية بشكل مستمر وملائم.
الخطوة الأولى: تحضير المخططات
على الرغم من أنه يمكنك التحكم في 4 مصابيح LED مباشرة من خلال استخدام أكواد Python فقط ، فإن منطق التحكم في البرنامج سيؤدي إلى تحميل RPI ونتيجة لذلك ، ستزداد درجة حرارة وحدة المعالجة المركزية أكثر لأنه يجب عليك تشغيل رمز python معقد قليلاً باستمرار.
لذلك ، أقوم بتقليل تعقيد كود Python إلى الحد الأدنى قدر الإمكان وإفراغ منطق التحكم في LED لدائرة الأجهزة الخارجية.
تتكون دائرة مؤشر درجة حرارة وحدة المعالجة المركزية (المشار إليها فيما يلي باسم INICATOR) من الأجزاء الرئيسية التالية.
- اثنان من قارنات البصريات متصلة بدبابيس RPI GPIO للحصول على بيانات مستوى درجة الحرارة مثل 00-> LOW ، 01-> متوسط ، 10-> مرتفع ، 11-> بحاجة إلى التبريد.
- 74LS139 (أو 74HC139 ، 2 إلى 4 وحدة فك ترميز ومضاعف) التحكم في المخرجات (Y0 ، Y1 ، Y2 ، Y3) وفقًا للمدخلات (A ، B)
- عندما تكون درجة الحرارة في حدود 30 ~ 39 درجة ، يتم إخراج كود python من 00 إلى دبابيس GPIO. لذلك ، 74LS139 تحصل على بيانات الإدخال 00 (A-> 0 ، B-> 0)
- عند إدخال 00 ، يصبح ناتج Y0 منخفضًا. (يرجى الرجوع إلى جدول الحقيقة 74LS139)
- عندما يصبح خرج Y0 منخفضًا ، فإنه ينشط الترانزستور 2N3906 PNP ونتيجة لذلك ، يتم تشغيل مؤشر LED الأخضر
- وبالمثل ، يجب أن يضيء Y1 (01 -> متوسط درجة حرارة وحدة المعالجة المركزية) مؤشر LED باللون الأصفر وما إلى ذلك
- عندما يصبح Y3 منخفضًا ، DB140 ينشط دائرة وميض NE555 LED (هذا هو وميض LED شائع يعتمد على 555 IC) والذي يتم تحميله من ترانزستور BD140 PNP
العنصر الأكثر أهمية في هذه الدائرة هو 74LS139 والذي يقوم بفك تشفير الإدخال المكون من رقمين إلى 4 مخرجات فردية مختلفة كما هو موضح في جدول الحقيقة أدناه.
المدخلات | انتاج |
G (تمكين) | ب | أ | Y0 | Y1 | Y2 | Y3 |
ح | X | X | ح | ح | ح | ح |
لام | لام | لام | لام | ح | ح | ح |
لام | لام | ح | ح | لام | ح | ح |
لام | ح | لام | ح | ح | لام | ح |
لام | ح | ح | ح | ح | ح | لام |
نظرًا لأن الناتج 74LS139 يصبح منخفضًا ، يمكن أن يجعل الترانزستور من نوع PNP الدائرة الكلية بسيطة حيث يتم تشغيل ترانزستور PNP عندما تصبح المحطة الأساسية منخفضة. (سأعرض نسخة NPN في نهاية هذه القصة)
نظرًا لتضمين مقياس جهد 100K في دائرة وامض NE555 LED ، يمكن ضبط وقت تشغيل / إيقاف تشغيل LED الأحمر بحرية وفقًا للاحتياجات.
الخطوة 2: عمل رسم ثنائي الفينيل متعدد الكلور
كما تم شرح مخطط التشغيل للمؤشر ، دعونا نبدأ في صنع الدائرة.
قبل لحام شيء ما على السبورة العامة ، يعد إعداد رسم ثنائي الفينيل متعدد الكلور الموضح أعلاه مفيدًا لتقليل أي أخطاء.
يتم الرسم باستخدام power-point لتحديد موقع كل جزء على اللوحة العامة وعمل أنماط الأسلاك بين الأجزاء ذات الأسلاك.
نظرًا لأن صور IC و pin-out مثبتة في مكان مشترك مع نمط أسلاك PCB ، يمكن إجراء اللحام باستخدام هذا الرسم.
الخطوة 3: اللحام
على الرغم من أن رسم ثنائي الفينيل متعدد الكلور الأصلي لا يتم باستخدام أسلاك مفردة لتوصيل المكونات على ثنائي الفينيل متعدد الكلور ، إلا أنني أقوم باللحام بشكل مختلف نوعًا ما.
باستخدام موصل واحد من الأسلاك (وليس سلك القصدير) ، أحاول تقليل حجم ثنائي الفينيل متعدد الكلور العالمي الذي يحتوي على دائرة المؤشر.
ولكن كما ترون على جانب اللحام لثنائي الفينيل متعدد الكلور ، فأنا أستخدم سلك القصدير أيضًا وفقًا للأنماط الموضحة في رسم ثنائي الفينيل متعدد الكلور.
عندما يتم توصيل كل مكون وفقًا للتصميم الأصلي لرسم ثنائي الفينيل متعدد الكلور ، فإن لوحة PCB المكتملة باللحام بما في ذلك دائرة المؤشر ستعمل بشكل صحيح.
الخطوة 4: التحضير للاختبار
قبل توصيل RPI ، تتطلب الدائرة النهائية الاختبار.
نظرًا لوجود أي أخطاء في اللحام ، يتم استخدام مورد طاقة التيار المستمر لمنع الأضرار عند حدوث قصور أو أسلاك خاطئة.
لاختبار INDICATOR ، يتم توصيل كبلي إمداد طاقة إضافيين بموصل مصدر طاقة 5 فولت بالدائرة.
الخطوة 5: الاختبار (درجة حرارة وحدة المعالجة المركزية متوسطة المستوى)
عندما لا يتم تطبيق إدخال 5 فولت ، فإن 74LS139 مدخلات فك التشفير وتنشيط الإخراج Y0 كـ LOW (أخضر LED قيد التشغيل).
لكن 5 فولت مطبق على الإدخال A ، الناتج Y1 من 74LS139 تنشيط (منخفض).
لذلك ، يتم تشغيل مؤشر LED الأصفر كما هو موضح في الصورة أعلاه.
الخطوة 6: الاختبار (تحتاج وحدة المعالجة المركزية إلى مستوى التبريد)
عند تطبيق 5 فولت على كلا المدخلين (A و B) 74LS139 ، يومض مؤشر LED الأحمر الرابع.
يمكن تغيير معدل الوميض عن طريق ضبط 100K VR كما هو موضح في الصورة أعلاه.
عند اكتمال الاختبار ، يمكن فك كبلات موليكس 3 سنون الأنثوية.
الخطوة 7: إمداد الطاقة لدائرة المؤشر
لتشغيل دائرة INDICATOR ، أستخدم شاحن الهاتف اليدوي الشائع الذي يخرج 5 فولت ومحول USB من النوع B كما هو موضح في الصورة أعلاه.
لتجنب مشكلة RPI عن طريق توصيل 3.3V GPIO و 5 V دارة INDICATOR التي تعمل بالطاقة ، يتم عزل واجهة الإشارة ومصدر الطاقة تمامًا عن بعضهما البعض.
الخطوة 8: RPI Wiring
لربط دائرة INDICATOR بـ RPI ، يجب تخصيص دبابيس GPIO جنبًا إلى جنب مع اثنين من المسامير الأرضية.
لا توجد متطلبات محددة لاختيار دبابيس GPIO.
يمكنك استخدام أي دبابيس GPIO لتوصيل المؤشر.
ولكن يجب تعيين المسامير السلكية كمدخلات لـ 74LS139 (على سبيل المثال A ، B) في برنامج python.
الخطوة 9: برنامج بايثون
عند اكتمال الدائرة ، يلزم إنشاء برنامج بيثون لاستخدام وظيفة المؤشر.
يرجى الرجوع إلى مخطط التدفق أعلاه لمزيد من التفاصيل حول منطق البرنامج.
# - * - الترميز: utf-8 - * -
عملية الاستيراد الفرعية ، الإشارة ، النظم
وقت الاستيراد ، إعادة
استيراد RPi. GPIO كـ g
أ = 12
ب = 16
g.setmode (g. BCM)
g.setup (A، g. OUT)
g.setup (B، g. OUT)
##
معالج إشارة def (سيج ، إطار):
طباعة ("لقد ضغطت على Ctrl + C!")
g.output (أ ، خطأ)
g.output (ب ، خطأ)
f.close ()
sys.exit (0)
إشارة. إشارة (إشارة SIGINT ، معالج_إشارة)
##
احيانا صحيح:
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)
# استخراج درجة حرارة وحدة المعالجة المركزية الحالية
current_temp = float (CPU_temp [0])
إذا Current_temp> 30 و current_temp <40:
# درجة حرارة منخفضة أ = 0 ، ب = 0
g.output (أ ، خطأ)
g.output (ب ، خطأ)
time.sleep (5) الوقت.
elif current_temp> = 40 و current_temp <45:
# متوسط درجة الحرارة أ = 0 ، ب = 1
g.output (أ ، خطأ)
g.output (B ، صحيح)
time.sleep (5) الوقت.
elif current_temp> = 45 و current_temp <50:
# درجة حرارة عالية أ = 1 ، ب = 0
g.output (أ ، صحيح)
g.output (ب ، خطأ)
time.sleep (5) الوقت.
elif current_temp> = 50:
# مطلوب تبريد وحدة المعالجة المركزية عالية A = 1 ، B = 1
g.output (أ ، صحيح)
g.output (B ، صحيح)
time.sleep (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 ()
الوظيفة الرئيسية لبرنامج Python هي كما يلي.
- قم أولاً بإعداد GPIO 12 ، 16 كمنفذ إخراج
- تحديد معالج المقاطعة Ctrl + C لإغلاق ملف السجل وإيقاف تشغيل GPIO 12 ، 16
- عند الدخول إلى الحلقة اللانهائية ، افتح ملف السجل كوضع إلحاق
- قراءة درجة حرارة وحدة المعالجة المركزية عن طريق تنفيذ الأمر "/ opt / vc / bin / vcgencmd Meas_temp"
- عندما تكون درجة الحرارة في النطاق 30 ~ 39 ثم خرج 00 لتشغيل مؤشر LED الأخضر
- عندما تكون درجة الحرارة في النطاق 40 ~ 44 ثم خرج 01 لتشغيل مؤشر LED أصفر
- عندما تكون درجة الحرارة في النطاق 45 ~ 49 ثم خرج 10 لتشغيل LED الأحمر
- عندما تكون درجة الحرارة أكثر من 50 ، أخرج 11 ليجعل مؤشر LED الأحمر يومض
- كتابة الطابع الزمني وبيانات درجة الحرارة في ملف السجل
الخطوة 10: تشغيل المؤشر
عندما يكون كل شيء على ما يرام ، يمكنك رؤية كل مؤشر LED قيد التشغيل أو يومض وفقًا لدرجة حرارة وحدة المعالجة المركزية.
لا تحتاج إلى إدخال أمر shell للتحقق من درجة الحرارة الحالية.
بعد جمع البيانات في ملف السجل وتحويل البيانات النصية إلى رسم بياني باستخدام Excel ، تظهر النتيجة الصورة أعلاه.
عند استخدام أحمال عالية (تشغيل متصفحي Midori وتشغيل فيديو Youtube) ، ترتفع درجة حرارة وحدة المعالجة المركزية حتى 57.9 درجة مئوية.
الخطوة 11: صنع بديل (باستخدام ترانزستور NPN) والمزيد من التطوير
هذا مثال لمشروع INDICATOR السابق الذي يستخدم ترانزستورات NPN (2N3904 و BD139).
كما ترون ، هناك عنصر IC واحد آخر (74HC04 ، عاكسات رباعية) ضروري لتشغيل ترانزستور NPN حيث يجب تطبيق جهد عالي المستوى على قاعدة NPN لتشغيل الترانزستور.
كخلاصة ، فإن استخدام ترانزستور NPN يضيف تعقيدًا غير ضروري لعمل دارة مؤشر.
لمزيد من التطوير لهذا المشروع ، سأضيف مروحة تبريد كما هو موضح في الصورة أعلاه لجعل دائرة INDICATOR أكثر فائدة.