Съдържание:

Таймер за кабинет: 7 стъпки
Таймер за кабинет: 7 стъпки

Видео: Таймер за кабинет: 7 стъпки

Видео: Таймер за кабинет: 7 стъпки
Видео: 7 стъпки за прилагане на ТЕС с Бойка Боянова 2024, Ноември
Anonim
Таймер за кабинет
Таймер за кабинет
Таймер за кабинет
Таймер за кабинет
Таймер за кабинет
Таймер за кабинет

Инструкции как да създадете таймер за кабинет.

Стъпка 1: Видео за взаимодействие

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

Стъпка 2: Декларация за проблем

През повечето време учебните стаи винаги се заемат. Това се случва, защото хората обичат да стоят в стаята много по -дълго, отколкото им е необходимо. Ние сме проектирали таймер, който позволява на всеки човек общо 2 часа и хора, чакащи възможността да поискат стаята да бъде следващата група. Използването на RGB на Neopixels ще изрази оставащото време.

Стъпка 3: Преглед на това как работи

Таймерът се състои от части, изрязани от лазерния нож, 3 бутона, 1 LED, 1 потенциометър.

Неопикселите и потенциометърът са свързани към NodeMCU. NodeMCU е програмиран да отчита докъде е завъртян потенциометърът, за да промени количеството на светодиодите, които светят на кръглата неопикселова лента. Бутонът Request спира функцията на функцията Start, Stop и Set time. Цветът на светодиодите на таймера в стаята е същият цвят на светодиода, запален отстрани на кутията. Неопикселът отстрани на кутията представлява дисплея във фоайето на сградата, за да знае коя стая е заета и колко време остава. За всяка стая са предписани 2 светодиода, един светодиод представлява, ако стаята е заета, а другият светодиод отразява цвета на светодиодите на таймера (зеленото е повече време, след това жълто, след това червено за по -малко време).

Стъпка 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 Neopixel ленти

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 към средния щифт на потенциометъра

Vin to Power на неопикселов пръстен

3v3 от едната страна на потенциометъра

Всички основания за заземяване на NodeMCU

D1 към бутона за заявка

D2 за LED заявка

D3 бутон за стартиране

Бутон D4 за спиране

D5 към резистор към неопикселов вход на пръстена

D6 към резистор към неопикселова входна лента

Стъпка 6: Стартиране на кода

Това е кодът, за да сте сигурни, че вашият проект работи досега. Таймерът трябва да бъде само няколко секунди на светодиод на пръстена Neopixel. След като разберете, че работи до този момент, всичко, което трябва да направите, е да промените времето, ако изявленията по -долу, в посочения от вас диапазон. Ще поставя "#Change time" на всеки от времето, ако изявленията, които трябва да промените за разпределението на времето си.

Опитвайки кода:

импортиране на време

време за импортиране

от машинен импорт 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 = машина. Pin (4, машина. 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 tglined (): # превключва LED функция „заявка“

ако l1.value () == 0:

l1.value (1)

иначе:

l1.value (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

докато е вярно:

# Това е бутонът, който превключва светодиода „заявка“

b1temp2 = b1.value ()

ако b1temp1, а не b1temp2:

tglined ()

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):

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

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

np = (0, 0, 0)

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

s = (i + 1)

иначе:

np = (0, 0, 30)

np.write ()

иначе:

np = (0, 0, 0)

np.write ()

# Това е бутонът за стартиране на таймера

ако (l1.value () == 0) и (t == 0):

b2temp2 = b2.value ()

ако b2temp1, а не b2temp2:

x += 1

t += (s * 100)

time.sleep (0.05)

b2temp1 = b2temp2

# Този бутон прекратява таймера

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

b3temp2 = b3.value ()

ако b3temp1, а не b3temp2:

x = 0

t = 0

time.sleep (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. Запояването е по избор, но може да го направи по -сигурно и по -малко за вашия корпус. Ето някои от лазерно изрязаните части, които направихме.

Препоръчано: