Оглавление:

Таймер кабинета: 7 шагов
Таймер кабинета: 7 шагов

Видео: Таймер кабинета: 7 шагов

Видео: Таймер кабинета: 7 шагов
Видео: Tilda. Приглашение на вебинар. 7 шагов как сознать Landing page за 1 час без знаний программирования 2024, Июль
Anonim
Таймер кабинета
Таймер кабинета
Таймер кабинета
Таймер кабинета
Таймер кабинета
Таймер кабинета

Инструкция, как создать таймер для кабинета.

Шаг 1. Интерактивное видео

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

Шаг 2: Постановка проблемы

Большую часть времени всегда занимают учебные комнаты. Это происходит потому, что людям нравится оставаться в комнате намного дольше, чем им нужно. Мы разработали таймер, который позволяет каждому человеку в общей сложности 2 часа и людям, ожидающим возможности запросить комнату для следующей группы. Использование RGB на Neopixels будет выражать количество оставшегося времени.

Шаг 3. Обзор того, как это работает

Таймер состоит из деталей, вырезанных лазерным резаком, 3 кнопок, 1 светодиода, 1 потенциометра.

Neopixels и потенциометр подключены к NodeMCU. NodeMCU запрограммирован на определение того, насколько повернут потенциометр, чтобы изменить количество светодиодов, которые горят на круглой полосе Neopixel. Кнопка 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 для включения кольца Neopixel

3v3 сбоку от потенциометра

Все основания для заземления на NodeMCU

D1 для кнопки запроса

D2 для запроса светодиода

D3 к кнопке пуска

D4 к кнопке остановки

D5 к резистору к входу Neopixel на кольце

D6 к резистору к входной полосе Neopixel

Шаг 6: запуск кода

Это код, чтобы убедиться, что ваш проект работает до сих пор. Таймер должен составлять всего пару секунд на каждый светодиод на Neopixel Ring. Как только вы узнаете, что он работает до этого момента, все, что вам нужно сделать, это изменить приведенные ниже операторы time if на указанный диапазон. Я добавлю "#Change time" к каждому из операторов time if, которые вам нужно изменить в соответствии с вашим временным распределением.

Пробуем код:

импортировать utime

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

из машинного импорта АЦП

импортная машина

импортный неопиксель

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 = 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 (): # переключить функцию светодиода 'request'

если l1.value () == 0:

l1.value (1)

еще:

l1.value (0)

х = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

в то время как True:

# Это кнопка, которая включает светодиод запроса.

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

если (l1.value () == 0):

если (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 ()

# Это кнопка для запуска таймера

если (l1.value () == 0) и (t == 0):

b2temp2 = b2.value ()

если b2temp1, а не b2temp2:

х + = 1

т + = (с * 100)

время сна (0,05)

b2temp1 = b2temp2

# Эта кнопка завершает таймер

если (l1.value () == 0):

b3temp2 = b3.value ()

если b3temp1, а не b3temp2:

х = 0

t = 0

время сна (0,05)

b3temp1 = b3temp2

# Это таймер

если x> 0:

т + = 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) and (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) and (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) and (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) and (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 ()

if t> = 1300: # Время изменения

t = 0

х = 0

Шаг 7: завершающие штрихи

Теперь, когда вы зашли так далеко, у вас должен быть загружен рабочий код в NodeMCU и все части подключены к макетной плате. После того, как вы попробовали код и вырезали все детали, которые у вас есть для внешнего вида, например, корпус, вырезанный лазером, теперь вы можете припаять провода к NodeMCU. Пайка не является обязательной, но может сделать ее более безопасной и компактной для вашего корпуса. Вот некоторые детали, вырезанные лазером, которые мы сделали.

Рекомендуемые: