Съдържание:
- Стъпка 1: Видео за взаимодействие
- Стъпка 2: Декларация за проблем
- Стъпка 3: Преглед на това как работи
- Стъпка 4: Списък на материалите и инструментите
- Стъпка 5: Започнете да изграждате с дъската
- Стъпка 6: Стартиране на кода
- Стъпка 7: Довършителни щрихи
Видео: Таймер за кабинет: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Инструкции как да създадете таймер за кабинет.
Стъпка 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. Запояването е по избор, но може да го направи по -сигурно и по -малко за вашия корпус. Ето някои от лазерно изрязаните части, които направихме.
Препоръчано:
Стъпков двигател с D джапанки и таймер 555; първата част на веригата 555 Таймер: 3 стъпки
Стъпков двигател с D джапанки и таймер 555; първата част от веригата 555 Таймер: Стъпковият двигател е DC двигател, който се движи на дискретни стъпки. Често се използва в принтери и дори роботика. Ще обясня тази схема на стъпки. Първата част на веригата е 555 таймер. Това е първото изображение (вижте по -горе) с чип 555 с
Аркаден кабинет с 4 играчи за MAME: 32 стъпки (със снимки)
Аркаден кабинет за 4 играчи на MAME: Това ще ви покаже как съм конструирал своя MAME пиедестален шкаф за 4 играча. Има много неща, които може да искате да персонализирате по ваш вкус. Ще ви покажа как направих моя, можете да се чувствате свободни да го настроите по ваш вкус. Тук се помещава стандартен прозорец
AVR микроконтролер. Светодиоди мигат с помощта на таймер. Таймери Прекъсва. Таймер CTC режим: 6 стъпки
AVR микроконтролер. Светодиоди мигат с помощта на таймер. Таймери Прекъсва. Таймер CTC режим: Здравейте всички! Таймерите са важна концепция в областта на електрониката. Всеки електронен компонент работи по време. Тази времева база помага да се поддържа цялата работа синхронизирана. Всички микроконтролери работят на предварително зададена тактова честота
Говорещ дисплей Baymax за кабинет на педиатър: 10 стъпки (със снимки)
Говорещ дисплей Baymax за кабинет на педиатър: „Здравейте. Аз съм Baymax, вашият личен спътник в здравеопазването. - Baymax В кабинета на местния педиатър те приеха интересна стратегия в опит да направят медицинската среда по -малко стресираща и по -забавна за децата. Те са запълнили д
Обикновена лампа с кабинет с рециклиран захранващ адаптер: 6 стъпки
Обикновена лампа със светлинен шкаф с рециклиран захранващ адаптер: Всеки има адаптери за захранване, които вече не се използват. От стари лаптопи, преносими телефони и всякакви преносими машини. Не ги изхвърляйте !!!!!!!!!!!!!!!!!!!!!!!!! Потърсете 12 -волтовите и 9 -волтовите адаптери. Можем да ги използваме като адаптери за захранване