جدول المحتويات:

مؤقت غرفة الدراسة: 7 خطوات
مؤقت غرفة الدراسة: 7 خطوات

فيديو: مؤقت غرفة الدراسة: 7 خطوات

فيديو: مؤقت غرفة الدراسة: 7 خطوات
فيديو: طريقة عمل مخطط الدراسة🧠 تابعوني لتحفيز اكثر✨ #مخطط #دراسة #تنظيم #تحفيزات 2024, شهر نوفمبر
Anonim
مؤقت غرفة الدراسة
مؤقت غرفة الدراسة
مؤقت غرفة الدراسة
مؤقت غرفة الدراسة
مؤقت غرفة الدراسة
مؤقت غرفة الدراسة

تعليمات حول كيفية إنشاء مؤقت لغرفة الدراسة.

الخطوة 1: فيديو التفاعل

drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view؟usp=drivesdk

الخطوة الثانية: بيان المشكلة

في معظم الأوقات ، يتم استخدام غرف الدراسة دائمًا. يحدث هذا لأن الناس يحبون البقاء في الغرفة لفترة أطول بكثير مما يحتاجون إليه. لقد صممنا مؤقتًا يسمح لكل شخص بإجمالي ساعتين وينتظر الأشخاص القدرة على طلب الغرفة ليكونوا المجموعة التالية. سيعبر استخدام RGB على Neopixels عن مقدار الوقت المتبقي.

الخطوة 3: نظرة عامة على كيفية عملها

يتكون الموقت من أجزاء مقطوعة بواسطة قاطع الليزر ، 3 أزرار ، 1 LED ، 1 مقياس جهد.

يتم توصيل Neopixels و potentiometer بـ NodeMCU. تمت برمجة NodeMCU لإعادة تحديد المدى الذي يتم فيه تشغيل مقياس الجهد لتغيير كمية مصابيح LED المضاءة على شريط Neopixel الدائري. يوقف الزر "طلب" وظيفة وظيفة "البدء" و "الإيقاف" و "ضبط الوقت". لون LED على المؤقت داخل الغرفة هو نفس لون LED المضاء على جانب الصندوق. يمثل neopixel الموجود على جانب الصندوق العرض في ردهة المبنى لمعرفة الغرفة التي سيتم أخذها وكم من الوقت المتبقي. يتم تحديد 2 LED لكل غرفة ، ويمثل مؤشر LED ما إذا كانت الغرفة مأخوذة والأخرى تعكس لون مصابيح LED على المؤقت (الأخضر هو المزيد من الوقت ، ثم الأصفر ، ثم الأحمر لوقت أقل).

الخطوة 4: قائمة المواد والأدوات

- اكريليك شفاف

- كابل MicroUSB

www.digikey.com/product-detail/en/stewart-…

- اللوح

www.amazon.com/gp/product/B01EV6LJ7G/ref=o…

-مقياس فرق الجهد

www.alliedelec.com/honeywell-380c32500/701…

-3 أزرار

www.digikey.com/product-detail/en/te-conne…

-NodeMCU

www.amazon.com/gp/product/B07CB4P2XY/ref=o…

- عدد 2 شريط نيوبكسل

www.amazon.com/Lighting-Modules-NeoPixel-W…

المقاومات

www.digikey.com/product-detail/en/te-conne…

- اسلاك

www.digikey.com/product-detail/en/sparkfun…

-1 ليد

www.mouser.com/ProductDetail/Cree-Inc/C512…

-مسدس الغراء الساخن

www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…

-شرائط لاصقة لاصقة

www.amazon.com/VELCRO-Brand-90076-Fastener…

الخطوة 5: ابدأ البناء باستخدام اللوح

ابدأ البناء باستخدام اللوح
ابدأ البناء باستخدام اللوح

A0 إلى دبوس الأوسط على مقياس الجهد

فين للتشغيل على حلقة Neopixel

3 ضد 3 إلى جانب واحد من مقياس الجهد

كل أسباب الأرض على NodeMCU

D1 لطلب زر

D2 لطلب LED

D3 لبدء زر

D4 إلى زر الإيقاف

D5 لمقاومة إدخال Neopixel على الحلقة

D6 للمقاومة لشريط إدخال Neopixel

الخطوة السادسة: بدء الكود

هذا هو رمز التأكد من أن مشروعك يعمل حتى الآن. يجب أن يكون المؤقت ثانيتين فقط لكل مؤشر LED على حلقة Neopixel. بمجرد أن تعرف أنه يعمل حتى هذه النقطة ، كل ما عليك فعله هو تغيير الوقت إذا كانت العبارات أدناه إلى النطاق المحدد الخاص بك. سأضع "#Change time" في كل مرة إذا كانت العبارات التي تحتاج إلى تغييرها لتخصيص وقتك.

تجربة الكود:

وقت الاستيراد

وقت الاستيراد

من ADC استيراد الجهاز

آلة الاستيراد

استيراد neopixel

adc = ADC (0)

دبوس = machine. Pin (14، machine. Pin. OUT)

np = neopixel. NeoPixel (دبوس ، 12)

pin2 = machine. Pin (12، machine. Pin. OUT)

np2 = neopixel. NeoPixel (pin2 ، 8)

l1 = machine. Pin (4، machine. Pin. OUT)

b1 = machine. Pin (5، machine. Pin. IN، machine. Pin. PULL_UP)

b3 = machine. Pin (2، machine. Pin. IN، machine. Pin. PULL_UP)

b2 = machine. Pin (0، machine. Pin. IN، machine. Pin. PULL_UP)

l1.value (0)

def tglled (): # تبديل وظيفة LED "طلب"

إذا كانت l1.value () == 0:

l1.value (1)

آخر:

l1.value (0)

س = 0

b1temp1 = 0

b1temp2 = 0

ر = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

ق = 0

احيانا صحيح:

# هذا هو الزر الذي يقوم بتبديل مؤشر LED "للطلب"

b1temp2 = b1.value ()

إذا كان b1temp1 وليس b1temp2:

tglled ()

time.sleep (0.05).

b1temp1 = b1temp2

# هذه هي الشبكة

np2 [0] = np [11]

إذا كانت l1.value () == 1:

np2 [1] = (30 ، 0 ، 0)

آخر:

np2 [1] = (0 ، 0 ، 30)

np2.write ()

# هذا هو المكان الذي نختار فيه مقدار الوقت الذي نحتاجه

إذا كانت t == 0:

بالنسبة لـ i في النطاق (-1 ، 12):

إذا (l1.value () == 0):

إذا (adc.read ()> = (85.34 * (i + 1))):

np = (0 ، 0 ، 0)

np [11] = (0، 0، 30)

ق = (أنا + 1)

آخر:

np = (0، 0، 30)

np.write ()

آخر:

np = (0 ، 0 ، 0)

np.write ()

# هذا هو الزر لبدء الموقت

إذا (l1.value () == 0) و (t == 0):

b2temp2 = b2.value ()

إذا كان b2temp1 وليس b2temp2:

س + = 1

ر + = (ق * 100)

time.sleep (0.05).

b2temp1 = b2temp2

# هذا الزر ينهي الموقت

إذا (l1.value () == 0):

b3temp2 = b3.value ()

إذا كان b3temp1 وليس b3temp2:

س = 0

ر = 0

time.sleep (0.05).

b3temp1 = b3temp2

# هذا هو الموقت

إذا كانت x> 0:

ر + = 1

إذا (t> 0) و (t <= 100): # وقت التغيير

np [0] = (5، 30، 0)

np [1] = (5، 30، 0)

np [2] = (5، 30، 0)

np [3] = (5، 30، 0)

np [4] = (5، 30، 0)

np [5] = (5، 30، 0)

np [6] = (5، 30، 0)

np [7] = (5، 30، 0)

np [8] = (5، 30، 0)

np [9] = (5، 30، 0)

np [10] = (5، 30، 0)

np [11] = (5، 30، 0)

np.write ()

إذا (t> 100) و (t <= 200): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (10 ، 30 ، 0)

np [2] = (10، 30، 0)

np [3] = (10 ، 30 ، 0)

np [4] = (10، 30، 0)

np [5] = (10، 30، 0)

np [6] = (10، 30، 0)

np [7] = (10، 30، 0)

np [8] = (10، 30، 0)

np [9] = (10 ، 30 ، 0)

np [10] = (10، 30، 0)

np [11] = (10، 30، 0)

np.write ()

إذا (t> 200) و (t <= 300): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (15، 30، 0)

np [3] = (15، 30، 0)

np [4] = (15، 30، 0)

np [5] = (15، 30، 0)

np [6] = (15، 30، 0)

np [7] = (15، 30، 0)

np [8] = (15، 30، 0)

np [9] = (15، 30، 0)

np [10] = (15، 30، 0)

np [11] = (15، 30، 0)

np.write ()

إذا (t> 300) و (t <= 400): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (20، 30، 0)

np [4] = (20، 30، 0)

np [5] = (20، 30، 0)

np [6] = (20، 30، 0)

np [7] = (20، 30، 0)

np [8] = (20، 30، 0)

np [9] = (20، 30، 0)

np [10] = (20، 30، 0)

np [11] = (20، 30، 0)

np.write ()

إذا (t> 400) و (t <= 500): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (25، 30، 0)

np [5] = (25، 30، 0)

np [6] = (25، 30، 0)

np [7] = (25، 30، 0)

np [8] = (25، 30، 0)

np [9] = (25، 30، 0)

np [10] = (25، 30، 0)

np [11] = (25، 30، 0)

np.write ()

إذا (t> 500) و (t <= 600): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (30، 30، 0)

np [6] = (30، 30، 0)

np [7] = (30، 30، 0)

np [8] = (30، 30، 0)

np [9] = (30 ، 30 ، 0)

np [10] = (30، 30، 0)

np [11] = (30، 30، 0)

np.write ()

إذا (t> 600) و (t <= 700): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (0 ، 0 ، 0)

np [6] = (30، 25، 0)

np [7] = (30 ، 25 ، 0)

np [8] = (30، 25، 0)

np [9] = (30 ، 25 ، 0)

np [10] = (30 ، 25 ، 0)

np [11] = (30 ، 25 ، 0)

np.write ()

إذا (t> 700) و (t <= 800): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (0 ، 0 ، 0)

np [6] = (0 ، 0 ، 0)

np [7] = (30، 20، 0)

np [8] = (30، 20، 0)

np [9] = (30 ، 20 ، 0)

np [10] = (30، 20، 0)

np [11] = (30، 20، 0)

np.write ()

إذا (t> 800) و (t> = 900): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (0، 0، 0)

np [6] = (0 ، 0 ، 0)

np [7] = (0 ، 0 ، 0)

np [8] = (30، 15، 0)

np [9] = (30، 15، 0)

np [10] = (30، 15، 0)

np [11] = (30، 15، 0)

np.write ()

إذا (t> 900) و (t <= 1000): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (0 ، 0 ، 0)

np [6] = (0 ، 0 ، 0)

np [7] = (0 ، 0 ، 0)

np [8] = (0 ، 0 ، 0)

np [9] = (30، 10، 0)

np [10] = (30، 10، 0)

np [11] = (30، 10، 0)

np.write ()

إذا (t> 1000) و (t> = 1100): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (0 ، 0 ، 0)

np [6] = (0 ، 0 ، 0)

np [7] = (0 ، 0 ، 0)

np [8] = (0 ، 0 ، 0)

np [9] = (0 ، 0 ، 0)

np [10] = (30، 5، 0)

np [11] = (30، 5، 0)

np.write ()

إذا (t> 1100) و (t <= 1200): # وقت التغيير

np [0] = (0، 0، 0)

np [1] = (0 ، 0 ، 0)

np [2] = (0 ، 0 ، 0)

np [3] = (0 ، 0 ، 0)

np [4] = (0 ، 0 ، 0)

np [5] = (0 ، 0 ، 0)

np [6] = (0 ، 0 ، 0)

np [7] = (0 ، 0 ، 0)

np [8] = (0 ، 0 ، 0)

np [9] = (0 ، 0 ، 0)

np [10] = (0 ، 0 ، 0)

np [11] = (30، 0، 0)

np.write ()

إذا كان t> = 1300: # وقت التغيير

ر = 0

س = 0

الخطوة 7: اللمسات الأخيرة

الآن ، بمجرد أن تصل إلى هذا الحد ، يجب أن يكون لديك رمز العمل الذي تم تحميله إلى NodeMCU وجميع الأجزاء الموصلة بأسلاك على اللوح. بمجرد تجربة الكود وقطع أي قطع لديك للجزء الخارجي ، أي غلاف مقطوع بالليزر ، يمكنك الآن لحام الأسلاك في NodeMCU. يعتبر اللحام اختياريًا ولكنه قد يجعله أكثر أمانًا وأصغر حجمًا للغلاف الخاص بك. فيما يلي بعض الأجزاء المقطوعة بالليزر التي صنعناها.

موصى به: