Skip to content

النشاط

مقياس الطاقة (الجزء الثاني)

مُتقدم | MakeCode, Python | الأزرار, شاشة العرض, مستشعر الضوء | 13 المناخ, أجهزة الاستشعار, المتغيرات, المدخلات/المخرجات, المنطق البوليني

الخطوة ١: صنّع

ما هو ؟

قِس المدة التي تُترك فيها الأنوار مضاءة لتتبّع استهلاكك للطاقة. يمكنك أيضًا استخدام هذا المشروع لتسجيل عدد ساعات سطوع الشمس ضمن مشروع محطة للأرصاد الجوية.

يُعد هذا المشروع جزءًا من سلسلة أُنشئت لتقديم أنشطة لحل المشاكل تهدف إلى إستخدام التقانة كأحد الحلول للتحديات التي تواجه الأهداف العالمية للتنمية المستدامة.

ماذا ستتعلم؟

  • كيفية استخدام المستشعرات والبرمجة لمراقبة الأحداث والظواهر في العالم الحقيقي.
  • كيفية وضع مسجّل للبيانات لتسجيل بيانات موثوقة ودقيقة.
  • كيفية جمع البيانات وتنظيمها على مدى فترة زمنية لاكتشاف الأنماط في استهلاك الطاقة.
  • كيفية تفسير البيانات وتحليلها من أجل إحداث تغييرات في السلوك وتحسين استهلاك الطاقة.
  • كيفية تغيير قيم المتغيّرات بواسطة المستخدم لتهيئة النظام وضبط إعداداته قبل بدء الاستخدام.

كيفية الاستخدام

  • ابدأ أولًا باستخدام مشروع مقياس الإضاءة للطاقة «مقياس الطاقة الضوئية (Energy Light Meter)» لمعرفة قراءات الإضاءة عندما تكون الأنوار مضاءة وعندما تكون مطفأة. احرص على إجراء القياسات في المكان نفسه وبظروف الإضاءة نفسها التي ستضع فيها جهاز مايكروبت المخصّص للمراقبة. وتأكد من أن ضوء النهار لا يؤدي إلى قراءة خاطئة تجعل الجهاز يعتقد أن الأنوار مضاءة.
  • أدخل قيمة قراءة الإضاءة في البرنامج عند السطر الذي يتم فيه تحديد المتغيّر «الإضاءة (LIGHT)». لقد اخترنا لك القيمة ١٠٠، ولكن من المحتمل أن تحتاج إلى تغييرها قبل تحميل البرنامج على الجهاز ، بحيث تتناسب مع مستوى الإضاءة في المكان الذي تريد مراقبته.
  • وصّل حزمة البطاريات بجهاز مايكروبت وضعه أسفل المصباح الذي تريد مراقبته. من المفترض أن تظهر نقطة على الشاشة عندما يكون المصباح مطفأً، وأن تضيء الشاشة عندما يكون المصباح مشغّلًا. إذا لم يعمل ذلك بشكل صحيح، فجرّب استخدام مشروع «مقياس الطاقة الضوئية (energy light meter)» مرة أخرى لمعرفة مستوى الإضاءة عند تشغيل المصباح.
  • سيستمر جهاز مايكروبت في حساب مدة تشغيل المصباح. وعند الضغط على الزر «B»، سيعرض المدة التي ظل فيها المصباح مضاءً بالدقائق.

كيف يعمل ؟

  • يستخدم البرنامج المتغير «البولياني (Boolean)» يُسمّى «التوقيت (timing)» للتحكم في عمل البرنامج. ولا يمكن للمتغيّرات البوليانية أن تأخذ إلا إحدى قيمتين: «صواب (True)» أو «خطأ (False)».
  • إذا كانت قراءة مستشعر الضوء أعلى من المستوى الذي حددته، يبدأ المؤقّت بالعمل وتضيء شاشة العرض. أما إذا انخفضت القراءة عن هذا المستوى، فيتوقف المؤقّت ثم تظهر نقطة على الشاشة.
  • يستخدم هذا المشروع خاصية «التباطؤ (Hysteresis)» لضمان عدم تشغيل المؤقّت و إيقافه بشكل متكرر عند حدوث تغيّرات طفيفة في مستوى الإضاءة حول الحد المحدد لتشغيله. وتعمل هذه الخاصية من خلال إنشاء نطاق أوسع حول قيمة الحد الفاصل، بحيث يجب أن يتجاوز مستوى الإضاءة هذا النطاق قبل تشغيل المؤقّت أو إيقافه.
  • تستخدم خاصية التباطؤ بشكل شائع في أنظمة التحكم التي تعتمد على المستشعرات، مثل أنظمة التدفئة التي تستخدم منظم الحرارة (Thermostat). فعندما تضبط منظم الحرارة على درجة حرارة معينة، لا تريد أن يعمل نظام التدفئة ويتوقف بسرعة وبشكل متكرر عندما تتذبذب درجة الحرارة حول القيمة المحددة. لذلك تمنع خاصية التباطؤ حدوث ذلك، وتجعل عمل النظام أكثر استقرارًا.

المطلوب

  • مايكروبت
  • محرر «بايثون» أو «ميك كود»
  • حزمة بطاريات (موصى به)

الخطوة ٢: بَرمج

1from microbit import *
2display.show('L')
3
4LIGHT = 100  # <<< Enter your 'measured' reading here
5
6HYSTERESIS = 8
7LIGHT -= (HYSTERESIS/2)
8DARK = LIGHT - HYSTERESIS
9ON_IMAGE = Image('99999:99999:99999:99999:99999')
10OFF_IMAGE = Image('00000:00000:00900:00000:00000')
11timing = False
12start_time = 0
13total_time = 0
14reading = display.read_light_level()
15sleep(1000)
16
17def show_number(n):
18    # Make number display the same as MakeCode
19    if len(str(n)) == 1:
20        display.show(n)
21    else:
22        display.scroll(n)
23
24while True:
25    reading = display.read_light_level()
26    if reading < DARK:
27        if timing:
28            # it has just gone dark, update timer for 'on' time
29            end_time = running_time()
30            total_time += (end_time - start_time)
31            timing = False
32        
33    elif reading >= LIGHT:
34        if not timing:
35            # it has just gone light, start the timer
36            start_time = running_time()
37            timing = True
38        
39    if button_b.was_pressed():
40        # calculate and display cumulative time in minutes
41        minutes = total_time / 60000
42        if timing:
43            # adjust live for current ON time
44            minutes += (running_time() - start_time) / 60000
45        display.clear()
46        show_number(round(minutes))  # whole numbers only
47        sleep(500)
48
49    # update the display with the ON/OFF state
50    if timing:
51        display.show(ON_IMAGE)
52    else:
53        display.show(OFF_IMAGE)
54    sleep(1000)
55
56        

الخطوة ٣: حسّن

  • غيّر أنماط الإضاءة المعروضة على الشاشة لإطالة عمر البطاريات، أو خفّض السطوع لتقليل استهلاك الطاقة.
  • استخدم المدة الزمنية المسجّلة لحساب كمية الكهرباء التي استهلكتها والتكلفة المحتملة لها. التفاصيل موجودة في مشروع حاسبة تكلفة الطاقة
  • استخدم البرنامج نفسه لقياس عدد ساعات سطوع الشمس. استعِن بمشروع «مقياس الطاقة الضوئية» لتحديد قيمة الإضاءة عندما تسقط أشعة الشمس على الجهاز، وعندما يكون الطقس كذلك غائمًا. قد تحتاج إلى صنع غلاف لجهاز مايكروبت، مزوّد بغطاء شبه شفاف لتوزيع الضوء وحماية الجهاز من المطر، مثل علبة طعام بلاستيكية قديمة.