Kazalo:
- 1. korak: interakcijski video
- 2. korak: Izjava o težavi
- 3. korak: Pregled delovanja
- 4. korak: Seznam materialov in orodij
- 5. korak: Začnite graditi s ploščico
- 6. korak: Zagon kode
- 7. korak: Zaključni dotiki
Video: Časovnik za študijsko sobo: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Navodila za ustvarjanje časovnika za delovno sobo.
1. korak: interakcijski video
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
2. korak: Izjava o težavi
Večino časa so vedno zasedene učilnice. To se zgodi, ker ljudje radi ostanejo v sobi veliko dlje, kot jih potrebujejo. Oblikovali smo časovnik, ki vsaki osebi omogoča skupno 2 uri in ljudem, ki čakajo, da lahko zahtevajo, da soba postane naslednja skupina. Uporaba RGB na neopikslih bo izrazila preostali čas.
3. korak: Pregled delovanja
Časovnik je sestavljen iz delov, ki jih izreže laserski rezalnik, 3 gumbe, 1 LED, 1 potenciometer.
Neopiksli in potenciometer so povezani z NodeMCU. NodeMCU je programiran tako, da znova ugotovi, kako daleč je potenciometer obrnjen, da spremeni količino LED, ki svetijo na krožnem traku Neopixel. Gumb za zahtevo ustavi funkcijo Start, Stop in Set time. Barva LED na časovniku v prostoru je enaka barvi LED, prižganih na strani škatle. Neopixel na strani škatle predstavlja zaslon v preddverju stavbe, da ve, katera soba je zasedena in koliko časa je še ostalo. Za vsako sobo sta predpisani 2 LED, ena LED predstavlja, če je soba zasedena, druga pa odraža barvo LED na časovniku (zelena je več časa, nato rumena, nato rdeča za manj časa).
4. korak: Seznam materialov in orodij
-čist akril
-MicroUSB kabel
www.digikey.com/product-detail/en/stewart-…
-lesena deska
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-potenciometer
www.alliedelec.com/honeywell-380c32500/701…
-3 gumbi
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixel trakova
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Upori
www.digikey.com/product-detail/en/te-conne…
- Žice
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Pištola za vroče lepilo
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Ljupki Velcro trakovi
www.amazon.com/VELCRO-Brand-90076-Fastener…
5. korak: Začnite graditi s ploščico
A0 do sredinskega zatiča na potenciometru
Vin za vklop prstana Neopixel
3v3 na eno stran potenciometra
Vsi razlogi za utemeljitev na NodeMCU
D1 za zahtevo
D2 za zahtevo LED
D3 za zagon
D4 za gumb za ustavitev
D5 do upora do neopixel vhoda na obroču
D6 do upora na vhodni trak Neopixel
6. korak: Zagon kode
To je koda za zagotovitev, da vaš projekt doslej deluje. Časovnik naj bo na obroču Neopixel le nekaj sekund na LED. Ko veste, da deluje do te točke, morate le spremeniti čas, če spodnji stavki v določeni obseg. Vsakemu času bom dodal '#Change time', če bodo navedbe, ki jih morate spremeniti glede na dodelitev časa.
Preizkusite kodo:
uvoz utime
čas uvoza
iz stroja za uvoz ADC
uvozni stroj
uvoz neopiksela
adc = ADC (0)
pin = machine. Pin (14, machine. Pin. OUT)
np = neopixel. NeoPixel (pin, 12)
pin2 = machine. Pin (12, machine. Pin. OUT)
np2 = neopixel. NeoPixel (pin2, 8)
l1 = stroj. Pin (4, stroj. Pin. OUT)
b1 = stroj. Pin (5, stroj. Pin. IN, stroj. Pin. PULL_UP)
b3 = stroj. Pin (2, stroj. Pin. IN, stroj. Pin. PULL_UP)
b2 = stroj. Pin (0, stroj. Pin. IN, stroj. Pin. PULL_UP)
l1.value (0)
def tglined (): # preklopi LED funkcija 'request'
če je l1.value () == 0:
l1.vrednost (1)
drugače:
l1.value (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
medtem ko je res:
# To je gumb, ki preklopi LED za zahtevo
b1temp2 = b1.value ()
če b1temp1 in ne b1temp2:
tglined ()
time.sleep (0,05)
b1temp1 = b1temp2
# To je mreža
np2 [0] = np [11]
če je l1.value () == 1:
np2 [1] = (30, 0, 0)
drugače:
np2 [1] = (0, 0, 30)
np2.write ()
# Tu izberemo, koliko časa potrebujemo
če je t == 0:
za i v območju (-1, 12):
if (l1.value () == 0):
if (adc.read ()> = (85,34 * (i+1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
drugače:
np = (0, 0, 30)
np.write ()
drugače:
np = (0, 0, 0)
np.write ()
# To je gumb za zagon časovnika
če (l1.value () == 0) in (t == 0):
b2temp2 = b2.value ()
če b2temp1 in ne b2temp2:
x += 1
t += (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# S tem gumbom se časovnik konča
if (l1.value () == 0):
b3temp2 = b3.value ()
če b3temp1 in ne b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# To je časovnik
če je x> 0:
t += 1
if (t> 0) in (t <= 100): #Spremeni čas
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) in (t <= 200): #Spremeni čas
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) in (t <= 300): #Spremeni čas
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) in (t <= 400): #Spremeni čas
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) in (t <= 500): #Spremeni čas
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) in (t <= 600): #Spremeni čas
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) in (t <= 700): #Spremeni čas
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) in (t <= 800): #Spremeni čas
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) in (t <= 900): #Spremeni čas
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) in (t <= 1000): #Spremeni čas
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) in (t <= 1100): #Spremeni čas
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 ()
če (t> 1100) in (t <= 1200): #Spremeni čas
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 ()
če je t> = 1300: #Spremenite čas
t = 0
x = 0
7. korak: Zaključni dotiki
Zdaj, ko ste tako daleč, bi morali delovno kodo naložiti v NodeMCU in vse dele povezati z matično ploščo. Ko ste preizkusili kodo in odrezali vse kose, ki jih imate za zunanjost, to je lasersko rezano ohišje, lahko žice spajkate na NodeMCU. Spajkanje ni obvezno, vendar je lahko varnejše in manjše za vaše ohišje. Tukaj je nekaj delov, ki smo jih izdelali z laserjem.
Priporočena:
FuseLight: Obrnite staro/fuzijsko svetilko v studijsko/zabavno luč: 3 koraki (s slikami)
FuseLight: Pretvorite staro/fusedno cevno svetilko v studijsko/zabavno luč: tukaj sem z nekaj osnovnimi orodji, lučmi rgb in 3D tiskanjem spremenil fuzijsko cevko v luč za studio/del. Zaradi uporabljenih LED trakov RGB imamo lahko več barv in odtenkov
Ugotovite, kdaj je nekdo vstopil v sobo z radarskim senzorjem Xyc-wb-dc: 7 korakov
Ugotovite, kdaj je nekdo vstopil v sobo z radarskim senzorjem Xyc-wb-dc: V tej vadnici se bomo naučili, kako ugotoviti, kdaj je nekdo vstopil v sobo z uporabo modula RTC, radarskega senzorja xyc-wb-dc, zaslona OLED in arduina. predstavitveni video
Fanair: vremenska postaja za vašo sobo: 6 korakov (s slikami)
Fanair: Vremenska postaja za vašo sobo: Obstaja nešteto načinov, kako ugotoviti trenutno vreme, potem pa poznate le vreme zunaj. Kaj pa, če želite vedeti vreme v vaši hiši, v določeni sobi? To poskušam rešiti s tem projektom. Fanair uporablja več
SmartBox - sistem pametnega doma za vašo sobo: 6 korakov
SmartBox - sistem pametnega doma za vašo sobo: Pozdravljeni! V tem navodilu vam bom razložil, kako narediti sistem pametne sobe. Ta sistem vsebuje dve napravi: splošno napravo s senzorjem vlažnosti in temperaturnim senzorjem, ki meri trenutno kakovost bivanja v vaši sobi. Ti boš
Ugotovite, kdaj je nekdo vstopil v sobo: 7 korakov
Ugotovite, kdaj je nekdo vstopil v sobo: V tej vadnici se bomo naučili, kako ugotoviti, kdaj je nekdo vstopil v sobo z uporabo modula RTC, senzorja PIR, zaslona OLED in arduina. Oglejte si predstavitveni video