Turinys:

Studijų kambario laikmatis: 7 žingsniai
Studijų kambario laikmatis: 7 žingsniai

Video: Studijų kambario laikmatis: 7 žingsniai

Video: Studijų kambario laikmatis: 7 žingsniai
Video: 10 НАСТОЯЩИХ СТРАШНЫХ ПАРАНОРМАЛЬНЫХ ИСТОРИЙ ИЗ ЯПОНИИ... 2024, Lapkritis
Anonim
Studijų kambario laikmatis
Studijų kambario laikmatis
Studijų kambario laikmatis
Studijų kambario laikmatis
Studijų kambario laikmatis
Studijų kambario laikmatis

Instrukcijos, kaip sukurti laikmatį studijų kambariui.

1 veiksmas: sąveikos vaizdo įrašas

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

2 žingsnis: problemos pareiškimas

Dažniausiai studijų kambariai visada būna užimti. Taip atsitinka todėl, kad žmonės mėgsta būti kambaryje daug ilgiau nei reikia. Mes sukūrėme laikmatį, leidžiantį kiekvienam žmogui iš viso skirti 2 valandas ir žmonėms, laukiantiems galimybės paprašyti, kad kambarys būtų kita grupė. RGB naudojimas neopikseliuose parodys likusį laiką.

3 žingsnis: apžvalga, kaip tai veikia

Laikmatį sudaro dalys, nukirstos lazeriniu pjovikliu, 3 mygtukai, 1 LED, 1 potenciometras.

Neopikseliai ir potenciometras prijungti prie „NodeMCU“. „NodeMCU“yra užprogramuotas taip, kad nustatytų, kiek pasuktas potenciometras, kad pakeistų apskritoje Neopikselio juostelėje šviečiančių šviesos diodų kiekį. Mygtukas Užklausa sustabdo funkcijos Pradėti, Sustabdyti ir Nustatyti laiką funkciją. Kambario laikmačio šviesos diodų spalva yra tokia pati kaip ir dėžutės šone šviečiančių šviesos diodų spalva. Dėžutės šone esantis neopikselis žymi pastato vestibiulio ekraną, kad žinotumėte, kuris kambarys yra užimtas ir kiek laiko liko. Kiekvienam kambariui yra skirti 2 šviesos diodai, vienas šviesos diodas reiškia, kad kambarys yra užimtas, o kitas šviesos diodas atspindi laikmačio šviesos diodų spalvą (žalia spalva yra daugiau laiko, tada geltona, tada raudona trumpiau).

4 žingsnis: medžiagų ir įrankių sąrašas

-skaidrus akrilas

-MicroUSB kabelis

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

-Bandomoji Lenta

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

-Potenciometras

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

-3 mygtukai

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

-NodeMCU

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

- 2 neopikselių juostelės

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

-Rezistoriai

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

- Laidai

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

-1 šviesos diodas

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

-Karštas klijų pistoletas

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

-Lipnios velcro juostelės

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

5 veiksmas: pradėkite kurti naudodami „Breadboard“

Pradėkite kurti su „Breadboard“
Pradėkite kurti su „Breadboard“

A0 iki vidurinio potenciometro kaiščio

„Vin“įjungia „Neopixel“žiedą

3v3 į vieną potenciometro pusę

Visi pagrindai įžeminti „NodeMCU“

D1 iki užklausos mygtuko

D2 prašyti šviesos diodo

D3 iki pradžios mygtuko

D4 iki sustabdymo mygtuko

D5 į rezistorių į neopikselio įvestį žiede

D6 - neopikselio įvesties juostos rezistorius

6 veiksmas: kodo paleidimas

Tai kodas, leidžiantis įsitikinti, kad jūsų projektas veikia iki šiol. Laikmatis turėtų trukti tik kelias sekundes vienam šviesos diodui „Neopixel Ring“. Kai žinosite, kad jis veikia iki šio momento, viskas, ką jums reikia padaryti, tai pakeisti laiką, jei toliau pateikiami teiginiai, į jūsų nurodytą diapazoną. Kiekvieną kartą nurodysiu „#Change time“, jei teiginiai, kuriuos reikia pakeisti, paskirstant laiką.

Bandant kodą:

importuoti

importo laikas

iš mašinos importo ADC

importo mašina

importuoti neopikselius

adc = ADC (0)

kaištis = mašina. PIN (14, mašina. PIN. OUT)

np = neopikselis. „NeoPixel“(kaištis, 12)

pin2 = mašina. PIN (12, machine. Pin. OUT)

np2 = neopikselis. NeoPixel (pin2, 8)

l1 = mašina. PIN (4, mašina. PIN. OUT)

b1 = mašina. Pin (5, mašina. Pin. IN, mašina. Pin. PULL_UP)

b3 = mašina. Pin (2, mašina. Pin. IN, mašina. Pin. PULL_UP)

b2 = mašina. Pin (0, mašina. Pin. IN, mašina. Pin. PULL_UP)

l1.vertybė (0)

def tglled (): # perjungti „prašymo“LED funkciją

jei l1.value () == 0:

l1.vertybė (1)

Kitas:

l1.vertybė (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

nors tiesa:

# Tai yra mygtukas, perjungiantis „prašymo“šviesos diodą

b1temp2 = b1.value ()

jei b1temp1, o ne b1temp2:

tglled ()

laikas miegoti (0,05)

b1temp1 = b1temp2

# Tai tinklelis

np2 [0] = np [11]

jei l1.value () == 1:

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

Kitas:

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

np2.write ()

# Čia mes pasirenkame, kiek laiko mums reikia

jei t == 0:

i diapazone (-1, 12):

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

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

np = (0, 0, 0)

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

s = (i + 1)

Kitas:

np = (0, 0, 30)

np.write ()

Kitas:

np = (0, 0, 0)

np.write ()

# Tai mygtukas, skirtas paleisti laikmatį

jei (l1.value () == 0) ir (t == 0):

b2temp2 = b2.value ()

jei b2temp1, o ne b2temp2:

x += 1

t += (s * 100)

laikas miegoti (0,05)

b2temp1 = b2temp2

# Šis mygtukas baigia laikmatį

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

b3temp2 = b3.value ()

jei b3temp1, o ne b3temp2:

x = 0

t = 0

laikas miegoti (0,05)

b3temp1 = b3temp2

# Tai yra laikmatis

jei x> 0:

t += 1

jei (t> 0) ir (t <= 100): #Keisti laiką

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

jei (t> 100) ir (t <= 200): #Keisti laiką

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

jei (t> 200) ir (t <= 300): #Keisti laiką

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

jei (t> 300) ir (t <= 400): #Keisti laiką

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

jei (t> 400) ir (t <= 500): #Keisti laiką

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

jei (t> 500) ir (t <= 600): #Keisti laiką

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

jei (t> 600) ir (t <= 700): #Keisti laiką

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

jei (t> 700) ir (t <= 800): #Keisti laiką

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

jei (t> 800) ir (t <= 900): #Keisti laiką

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

jei (t> 900) ir (t <= 1000): #Keisti laiką

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

jei (t> 1000) ir (t <= 1100): #Keisti laiką

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

jei (t> 1100) ir (t <= 1200): #Keisti laiką

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

jei t> = 1300: #Keisti laiką

t = 0

x = 0

7 žingsnis: Apdailos darbai

Dabar, kai būsite taip toli, turėtumėte įkelti „NodeMCU“darbo kodą ir visas dalis, prijungtas prie duonos lentos. Išbandę kodą ir nupjovę bet kokias išorės dalis, t. Y. Lazeriu supjaustytą korpusą, dabar galite lituoti laidus prie „NodeMCU“. Lituoti neprivaloma, tačiau jis gali būti saugesnis ir mažesnis jūsų korpusui. Čia yra keletas mūsų pagamintų lazeriu dalių.

Rekomenduojamas: