Мазмуну:
- 1 -кадам: Өз ара видео
- 2 -кадам: Проблемалар жөнүндө билдирүү
- 3 -кадам: Бул кантип иштээрин карап чыгуу
- 4 -кадам: Материалдардын жана шаймандардын тизмеси
- 5 -кадам: Курулуш панелинен баштаңыз
- 6 -кадам: Кодду баштоо
- 7 -кадам: Тийиштерди бүтүрүү
Video: Окуу бөлмөсүнүн таймери: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Окуу бөлмөсү үчүн таймерди кантип түзүү боюнча нускамалар.
1 -кадам: Өз ара видео
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
2 -кадам: Проблемалар жөнүндө билдирүү
Көбүнчө окуу бөлмөлөрү дайыма алынат. Бул адамдар бөлмөдө муктаж болгондон алда канча көп убакыт калууну жакшы көргөндүктөн болот. Биз таймерди иштеп чыктык, ал ар бир адамга жалпы 2 сааттан жана бөлмөнү кийинки топко кирүү мүмкүнчүлүгүн күткөн адамдарга мүмкүндүк берет. Неопикселдерде RGB колдонуу калган убакытты билдирет.
3 -кадам: Бул кантип иштээрин карап чыгуу
Таймер лазер кескич менен кесилген бөлүктөрдөн турат, 3 баскыч, 1 LED, 1 потенциометр.
Neopixels жана потенциометр NodeMCUге туташтырылган. NodeMCU потенциометр канчалык бурулганын регонизациялоо үчүн программаланган. "Сурам" баскычы Баштоо, токтотуу жана убакытты коюу функциясын токтотот. Бөлмөнүн ичиндеги таймердеги светодиоддордун түсү кутунун капталында күйгөн LEDдын түсү менен бирдей. Кутунун капталындагы неопиксел имараттын фойесинде кайсы бөлмө алынганын жана канча убакыт калганын билүү үчүн дисплейди билдирет. Ар бир бөлмөгө 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 неопикселдик тилке
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Резисторлор
www.digikey.com/product-detail/en/te-conne…
- Зымдар
www.digikey.com/product-detail/en/sparkfun…
-1 LED
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 LED суроо үчүн
Баштоо баскычына D3
D4 баскычын басуу
D5 шакеги боюнча Neopixel киргизүү үчүн резисторго
D6 Neopixel киргизүү тилкесине резисторго
6 -кадам: Кодду баштоо
Бул сиздин долбооруңуздун ушул убакка чейин иштеп жатканына ынануу үчүн код. Таймер Neopixel Ringдеги LED күнүнө бир нече секунд болушу керек. Бул учурга чейин иштеп жатканын билгенден кийин, төмөндөгү билдирүүлөр көрсөтүлгөн убакытка чейин өзгөрүшү керек. Убактыңызды бөлүштүрүү үчүн өзгөртүшүңүз керек болгон билдирүүлөрдү мен ар бир убакытка '#Өзгөртүүнү' коем.
Кодду колдонуу:
utime импорттоо
импорттоо убактысы
ADC машина импортунан
машина импорттоо
неопикселди импорттоо
adc = ADC (0)
pin = machine. Pin (14, machine. Pin. OUT)
np = neopixel. NeoPixel (пин, 12)
pin2 = машина. Пин (12, машина. Пин. ОЮТ)
np2 = neopixel. NeoPixel (pin2, 8)
l1 = машина
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.баа (1)
башка:
l1.value (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
чын болсо:
# Бул "өтүнүч" LEDин алмаштыруучу баскыч
b1temp2 = b1.value ()
эгер b1temp2 эмес, 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)
s = (i + 1)
башка:
np = (0, 0, 30)
np.write ()
башка:
np = (0, 0, 0)
np.write ()
# Бул таймерди баштоо үчүн баскыч
эгер (l1.value () == 0) жана (t == 0):
b2temp2 = b2.value ()
эгер b2temp2 эмес, b2temp2:
x += 1
t += (s * 100)
time.sleep (0.05)
b2temp1 = b2temp2
# Бул баскыч таймерди аяктайт
эгер (l1.value () == 0):
b3temp2 = b3.value ()
эгер b3temp2 эмес, b3temp2:
x = 0
t = 0
time.sleep (0.05)
b3temp1 = b3temp2
# Бул таймер
эгер x> 0:
t += 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: #Убакытты өзгөрт
t = 0
x = 0
7 -кадам: Тийиштерди бүтүрүү
Эми, бул жерге жеткенден кийин, сизде NodeMCUге жумушчу код жүктөлүп берилиши керек жана анын бардык бөлүктөрү нан тактасына туташтырылган. Сиз кодду сынап көрүп, сырткы, башкача айтканда лазер менен кесилген капкактарды кесип алгандан кийин, сиз азыр зымдарды NodeMCUга ширете аласыз. Ширетүү милдеттүү эмес, бирок аны корпус үчүн коопсузураак жана кичирээк кылышы мүмкүн. Бул жерде биз жасаган лазердик тетиктердин айрымдары.
Сунушталууда:
MicroBit Бөлмөсүнүн толушун эсептегич жана контролер: 4 кадам
MicroBit бөлмөсүнүн толушун эсептегич жана контролер: Пандемия учурунда вирустун таралышын азайтуунун бир жолу - адамдардын ортосундагы физикалык алыстыкты жогорулатуу. Бөлмөлөрдө же дүкөндөрдө, каалаган убакта жабык мейкиндикте канча адам бар экенин билүү пайдалуу болмок. Бул долбоордо бир жуп колдонулат
Тиш щеткасынын таймери: 4 кадам
Тиш щеткасы таймери: бул үчүн тиш тазалоо үчүн 2 адамдык таймерди түзүү идеясы, мен микробити V1ди колдондум. Бул менин балдарыма сунушталган мөөнөткө тиштерин тазалоого жардам берет. алардын таза тиштери бар; тартынба
Кол жуу таймери; Таза версия: 6 кадам
Кол жуу таймери; Таза версия: Коронавирусту эле эмес, бардык ооруларды алдын алуу керек. Оорулар жана алдын алуу борборлорунун маалыматы боюнча, бактериялар менен козу карындардын айынан 2.8 миллион инфекция жана 35000 өлүм бар. Бул адамдар колдорун жууш керек экенин көрсөтүп турат
€ 12 Led Cactus (неон бөлмөсүнүн жасалгасы): 4 кадам
€ 12 Led Cactus (неон бөлмө декорациясы): Саламатсызбы, мен бул көрсөтмөдө, мен бул укмуштуудай Led Cactus Room Decoration жасаганды көрсөтөм
Иш столуңуздагы үй/офис бөлмөсүнүн температурасын көзөмөлдөңүз: 4 кадам
Иш столуңуздагы үй/офис бөлмөсүнүн температурасын көзөмөлдөңүз: Бөлмөлөрдү же кеңселерди же бул долбоорду колдоно турган жерлерди көзөмөлдөө үчүн жана график, реалдуу убакыт температурасы жана башка көптөгөн нерселер менен көрсөтүлгөн. Биз колдонуп жатабыз: https://thingsio.ai/ Биринчиден, биз бул IoT платформасында эсеп жазышыбыз керек