Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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“
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ų.