Përmbajtje:

Kohëmatësi i dhomës së studimit: 7 hapa
Kohëmatësi i dhomës së studimit: 7 hapa

Video: Kohëmatësi i dhomës së studimit: 7 hapa

Video: Kohëmatësi i dhomës së studimit: 7 hapa
Video: تركنا النبي وذهبنا للغبي | توبة الحاصلة على شهادة الشيطان والباحثة في اليوغا والعلاج بالطاقة هوليستك 2024, Korrik
Anonim
Kohëmatësi i dhomës së studimit
Kohëmatësi i dhomës së studimit
Kohëmatësi i dhomës së studimit
Kohëmatësi i dhomës së studimit
Kohëmatësi i dhomës së studimit
Kohëmatësi i dhomës së studimit

Udhëzime se si të krijoni një kohëmatës për një dhomë studimi.

Hapi 1: Video e ndërveprimit

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

Hapi 2: Deklarata e problemit

Shumicën e kohës, dhomat e studimit merren gjithmonë. Kjo ndodh sepse njerëzve u pëlqen të qëndrojnë në dhomë për shumë më tepër sesa kanë nevojë. Ne kemi krijuar një kohëmatës që i lejon secilit person një total prej 2 orësh dhe njerëzve që presin aftësinë për të kërkuar që dhoma të jetë grupi tjetër. Përdorimi i RGB në Neopixels do të shprehë sasinë e kohës së mbetur.

Hapi 3: Pasqyrë se si funksionon

Kohëmatësi përbëhet nga pjesë të prera nga prerësja lazer, 3 butona, 1 LED, 1 potenciometër.

Neopixelët dhe potenciometri lidhen me NodeMCU. NodeMCU është programuar të regonizojë sa larg është kthyer potenciometri për të ndryshuar sasinë e LED -ve që ndizen në shiritin rrethor Neopixel. Butoni Request ndalon funksionin e funksionit Start, Stop dhe Set time. Ngjyra e LED -ve në kohëmatësin brenda dhomës është e njëjta ngjyrë e LED e ndezur në anën e kutisë. Neopixel në anën e kutisë përfaqëson ekranin në hollin e ndërtesës për të ditur se cila dhomë është marrë dhe sa kohë ka mbetur. 2 LED janë të përshkruara për secilën dhomë, një LED përfaqëson nëse dhoma merret dhe tjetra led pasqyron ngjyrën e LED -ve në kohëmatës (jeshilja është më shumë kohë, pastaj e verdhë, pastaj e kuqe për më pak kohë).

Hapi 4: Lista e materialeve dhe mjeteve

-Akrilik i qartë

-Kabllo MicroUSB

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

-Burboard

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

-Potentiometër

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

-3 butona

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

-NodeMCU

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

- 2 shirita neopixel

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

-Rezistorët

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

- Tela

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

-1 LED

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

-Armë ngjitëse e nxehtë

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

-Shirita Velcro ngjitës

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

Hapi 5: Filloni të ndërtoni me tabelën e bukës

Filloni të ndërtoni me tabelën e bukës
Filloni të ndërtoni me tabelën e bukës

A0 në kunjin e mesëm në Potenciometër

Vin për të ndezur unazën Neopixel

3v3 në njërën anë të Potenciometrit

Të gjitha bazat për t'u bazuar në NodeMCU

D1 Butoni i Kërkesës

D2 për të kërkuar LED

Butoni D3 për të filluar

Butoni D4 për të ndaluar

D5 në rezistencë ndaj Neopixel Hyrja në unazë

D6 në rezistencë ndaj shiritit të hyrjes Neopixel

Hapi 6: Fillimi i Kodit

Ky është kodi për t'u siguruar që projekti juaj po funksionon deri më tani. Kohëmatësi duhet të jetë vetëm disa sekonda për LED në Unazën Neopixel. Pasi ta dini se po funksionon deri në këtë pikë, gjithçka që duhet të bëni është të ndryshoni kohën nëse deklaratat më poshtë në gamën tuaj të specifikuar. Unë do të vendos '#Change time' në secilën prej kohës nëse deklaratat që ju duhet të ndryshoni për ndarjen e kohës tuaj.

Duke provuar Kodin:

import utime

koha e importit

nga importi i makinës ADC

makinë importi

import neopixel

adc = ADC (0)

pin = makinë. Pin (14, makinë. Pin. OUT)

np = neopixel. NeoPixel (pin, 12)

pin2 = makinë. Pin (12, makinë. Pin. OUT)

np2 = neopixel. NeoPixel (pin2, 8)

l1 = makinë. Pin (4, makinë. Pin. OUT)

b1 = makinë. Pin (5, makinë. Pin. IN, makinë. Pin. PULL_UP)

b3 = makinë. Pin (2, makinë. Pin. IN, makinë. Pin. PULL_UP)

b2 = makinë. Pin (0, makinë. Pin. IN, makinë. Pin. PULL_UP)

l1. vlera (0)

def tglled (): # kaloni 'kërkesë' funksion LED

nëse l1.vlera () == 0:

l1. vlera (1)

tjeter:

l1. vlera (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

ndërsa e vërtetë:

# Ky është butoni që ndryshon LED -in 'e kërkesës'

b1temp2 = b1.vlera ()

nëse b1temp1 dhe jo b1temp2:

tglled ()

koha. gjumi (0.05)

b1temp1 = b1temp2

# Ky është rrjeti

np2 [0] = np [11]

nëse l1.vlera () == 1:

np2 [1] = (30, 0, 0)

tjeter:

np2 [1] = (0, 0, 30)

np2.write ()

# Këtu zgjedhim sa kohë na duhet

nëse t == 0:

për i në rang (-1, 12):

nëse (l1.vlera () == 0):

nëse (adc.read ()> = (85.34 * (i+1))):

np = (0, 0, 0)

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

s = (i + 1)

tjeter:

np = (0, 0, 30)

np.shkruaj ()

tjeter:

np = (0, 0, 0)

np.shkruaj ()

# Ky është butoni për të filluar kohëmatësin

nëse (l1.vlera () == 0) dhe (t == 0):

b2temp2 = b2.vlera ()

nëse b2temp1 dhe jo b2temp2:

x += 1

t += (s * 100)

koha. gjumi (0.05)

b2temp1 = b2temp2

# Ky buton përfundon kohëmatësin

nëse (l1.vlera () == 0):

b3temp2 = b3. vlera ()

nëse b3temp1 dhe jo b3temp2:

x = 0

t = 0

koha. gjumi (0.05)

b3temp1 = b3temp2

# Ky është kohëmatësi

nëse x> 0:

t += 1

nëse (t> 0) dhe (t <= 100): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 100) dhe (t <= 200): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 200) dhe (t <= 300): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 300) dhe (t <= 400): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 400) dhe (t <= 500): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 500) dhe (t <= 600): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 600) dhe (t <= 700): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 700) dhe (t <= 800): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 800) dhe (t <= 900): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 900) dhe (t <= 1000): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 1000) dhe (t <= 1100): #Koha e ndryshimit

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.shkruaj ()

nëse (t> 1100) dhe (t <= 1200): #Koha e ndryshimit

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.shkruaj ()

nëse t> = 1300: #Koha e ndryshimit

t = 0

x = 0

Hapi 7: Përfundimi i Prekjeve

Tani, pasi të jeni aq larg, duhet të keni kodin e punës të ngarkuar në NodeMCU dhe të gjitha pjesët të lidhura me tabelën e bukës. Pasi të keni provuar kodin dhe të keni prerë çdo pjesë që keni për pjesën e jashtme, domethënë shtresën e prerë me lazer, tani mund t'i lidhni telat në NodeMCU. Bashkimi është opsional, por mund ta bëjë atë më të sigurt dhe më të vogël për shtresën tuaj. Këtu janë disa nga pjesët e prera me lazer që kemi bërë.

Recommended: