فهرست مطالب:

تایمر اتاق مطالعه: 7 مرحله
تایمر اتاق مطالعه: 7 مرحله

تصویری: تایمر اتاق مطالعه: 7 مرحله

تصویری: تایمر اتاق مطالعه: 7 مرحله
تصویری: تایمر 7 ساعته + زنگ ساعت 1 ساعته ⛈ رعد و برق و باران Screen صفحه سیاه برای خوابTimerClockAlarm 2024, جولای
Anonim
تایمر اتاق مطالعه
تایمر اتاق مطالعه
تایمر اتاق مطالعه
تایمر اتاق مطالعه
تایمر اتاق مطالعه
تایمر اتاق مطالعه

دستورالعمل نحوه ایجاد یک زمان سنج برای یک اتاق مطالعه.

مرحله 1: فیلم تعامل

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

مرحله 2: بیان مشکل

بیشتر اوقات ، اتاقهای مطالعه همیشه گرفته می شوند. این امر به این دلیل اتفاق می افتد که افراد دوست دارند خیلی بیشتر از آنچه نیاز دارند در اتاق بمانند. ما یک تایمر طراحی کرده ایم که به هر فرد در مجموع 2 ساعت اجازه می دهد و افرادی که منتظر توانایی درخواست اتاق برای گروه بعدی هستند ، استفاده می کنند. استفاده از RGB در Neopixels میزان زمان باقی مانده را بیان می کند.

مرحله 3: مروری بر نحوه عملکرد آن

تایمر شامل قطعاتی است که توسط برش لیزری بریده شده است ، 3 دکمه ، 1 LED ، 1 پتانسیومتر.

Neopixels و پتانسیومتر به NodeMCU متصل می شود. NodeMCU به گونه ای برنامه ریزی شده است که تا چه اندازه پتانسیومتر را بچرخاند تا میزان LED های روشن شده بر روی نوار دایره ای نئوپیکسل را تغییر دهد. دکمه درخواست عملکرد عملکرد Start ، Stop و Set time را متوقف می کند. رنگ LED ها در تایمر داخل اتاق همان رنگ LED است که در کنار جعبه روشن شده است. نئو پیکسل در کنار جعبه نشان دهنده صفحه نمایش در لابی ساختمان است تا بدانید کدام اتاق گرفته شده و چقدر زمان باقی مانده است. 2 چراغ LED برای هر اتاق تجویز می شود ، یکی LED نشان می دهد که اتاق گرفته شده است و LED دیگر رنگ LED ها را در تایمر نشان می دهد (سبز زمان بیشتر است ، سپس زرد ، سپس قرمز برای زمان کمتری).

مرحله 4: فهرست مواد و ابزارها

-اکریلیک پاک کنید

-کابل MicroUSB

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

-تختخواب

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

-پتانسیومتر

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

-3 دکمه

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

-NodeMCU

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

- 2 نوار نئوپیکسلی

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

-مقاومین

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

- سیم ها

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

-1 LED

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

-چسب حرارتی تفنگی

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

نوارهای چسبناک Velcro

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

مرحله 5: شروع به ساختن با Breadboard کنید

ساختمان را با تخته نان شروع کنید
ساختمان را با تخته نان شروع کنید

A0 تا پین وسط در پتانسیومتر

حلقه Neopixel Vin to Power on

3v3 به یک طرف پتانسیومتر

همه زمینه ها برای اتصال به زمین در NodeMCU

D1 دکمه درخواست

D2 برای درخواست LED

D3 دکمه شروع

دکمه توقف D4

D5 به مقاومت در برابر ورودی نئوپیکسل روی حلقه

D6 به مقاومت در برابر نوار ورودی Neopixel

مرحله 6: شروع به کار کد

این کد برای اطمینان از مطمئن شدن پروژه شما تا کنون است. تایمر باید فقط چند ثانیه در هر LED روی حلقه نئوپیکسل باشد. هنگامی که می دانید تا این مرحله کار می کند ، تنها کاری که باید انجام دهید این است که زمان دستورات زیر را به محدوده مشخص شده خود تغییر دهید. اگر جملاتی را که باید برای تخصیص زمان خود تغییر دهید ، در هر زمان "#تغییر زمان" قرار می دهم.

امتحان کد:

وارد کردن ابزار مفید

زمان واردات

از واردات دستگاه ADC

دستگاه واردات

وارد کردن نئوپیکسل

adc = ADC (0)

pin = machine. Pin (14 ، machine. Pin. OUT)

np = neopixel. NeoPixel (پین ، 12)

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

np2 = neopixel. NeoPixel (pin2 ، 8)

l1 = ماشین. پین (4 ، ماشین. پین. خارج)

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.ارزش (0)

def tglled (): # تغییر عملکرد LED 'request'

اگر l1.value () == 0:

l1 ارزش (1)

دیگری:

l1.ارزش (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

در حالی که True:

# این دکمه ای است که LED درخواست را تغییر می دهد

b1temp2 = b1.value ()

اگر b1temp1 و نه b1temp2:

tglled ()

زمان خواب (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):

if (l1.value () == 0):

if (adc.read ()> = (85.34 * (i+1))):

np = (0 ، 0 ، 0)

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

s = (من + 1)

دیگری:

np = (0 ، 0 ، 30)

np.write ()

دیگری:

np = (0 ، 0 ، 0)

np.write ()

# این دکمه شروع تایمر است

if (l1.value () == 0) و (t == 0):

b2temp2 = b2.value ()

اگر b2temp1 و نه b2temp2:

x += 1

t += (s * 100)

زمان خواب (0.05)

b2temp1 = b2temp2

# این دکمه تایمر را به پایان می رساند

if (l1.value () == 0):

b3temp2 = b3.value ()

اگر b3temp1 و نه b3temp2:

x = 0

t = 0

زمان خواب (0.05)

b3temp1 = b3temp2

# این تایمر است

اگر x> 0:

t += 1

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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 ()

if (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: #زمان را تغییر دهید

t = 0

x = 0

مرحله 7: تکمیل لمس

در حال حاضر ، هنگامی که به این حد رسیدید ، باید کد کار را در NodeMCU بارگذاری کرده و همه قسمتها را روی بردبرد متصل کنید. هنگامی که کد را امتحان کردید و هر قطعه ای را که برای نمای بیرونی دارید ، یعنی پوشش برش لیزری ، قطع کردید ، اکنون می توانید سیم ها را به NodeMCU لحیم کنید. لحیم کاری اختیاری است اما ممکن است آن را برای پوشش شما ایمن تر و کوچکتر کند. در اینجا برخی از قطعات برش لیزری که ما ساخته ایم آورده شده است.

توصیه شده: