جدول المحتويات:
- الخطوة 1: فيديو التفاعل
- الخطوة الثانية: بيان المشكلة
- الخطوة 3: نظرة عامة على كيفية عملها
- الخطوة 4: قائمة المواد والأدوات
- الخطوة 5: ابدأ البناء باستخدام اللوح
- الخطوة السادسة: بدء الكود
- الخطوة 7: اللمسات الأخيرة
فيديو: مؤقت غرفة الدراسة: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
تعليمات حول كيفية إنشاء مؤقت لغرفة الدراسة.
الخطوة 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. يعتبر اللحام اختياريًا ولكنه قد يجعله أكثر أمانًا وأصغر حجمًا للغلاف الخاص بك. فيما يلي بعض الأجزاء المقطوعة بالليزر التي صنعناها.
موصى به:
اكتشف متى دخل شخص ما إلى غرفة باستخدام مستشعر الرادار Xyc-wb-dc: 7 خطوات
اكتشف متى دخل شخص ما إلى غرفة باستخدام مستشعر الرادار Xyc-wb-dc: في هذا البرنامج التعليمي سوف نتعلم كيفية اكتشاف دخول شخص ما إلى غرفة باستخدام وحدة RTC ومستشعر الرادار xyc-wb-dc وشاشة OLED و arduino. فيديو توضيحي
صديق الدراسة: 10 خطوات
دراسة الأصدقاء: يشرح هذا الدليل كيفية تكوين رفيق الدراسة.تتمثل وظيفة رفيق الدراسة هذا في مساعدة المراهقين الذين تتراوح أعمارهم بين 14 و 18 عامًا على تعلم كيفية التخطيط والدراسة. الهدف هو أن الروبوت يمكن أن يتعلم مع الطلاب. الغلاف مرسوم في
مؤشر منطقة الدراسة (SAI): 8 خطوات
مؤشر منطقة الدراسة (SAI): هل تريد تسهيل العثور على مكان للدراسة خلال أسبوع النهائيات؟ ضع في اعتبارك بناء مؤشرات منطقة الدراسة! في أبسطها ، النظام عبارة عن مجموعة من مؤشرات منطقة الدراسة (SAIs) متصلة بمصدر رئيسي للطاقة يشير إلى توفر
امنع أطفالك من اللعب أثناء الدراسة: 4 خطوات
امنع أطفالك من اللعب أثناء الدراسة: تعد ممارسة ألعاب الفيديو مشكلة كبيرة يواجهها الطلاب أثناء الدراسة. يعاني الكثير من الطلاب من ممارسة الألعاب بدلاً من الدراسة مما يجعلهم يحصلون على درجات سيئة. الآباء غاضبون وقلقون على طفلهم ، لذلك قرروا أن يأخذوا
صديق الدراسة: 4 خطوات
أصدقاء الدراسة: خطرت لي فكرة لرفيق الدراسة أثناء العصف الذهني لطرق أفضل للدراسة لفصلي. أعاني من استخدام هاتفي عندما يجب أن أدرس ، ووجدت أن إبعاده عن الأنظار هو أفضل طريقة لمساعدتي على التركيز ، بشكل صحيح