Sadržaj:
- Korak 1: Videozapis o interakciji
- Korak 2: Izjava o problemu
- Korak 3: Pregled kako to funkcionira
- Korak 4: Popis materijala i alata
- Korak 5: Počnite graditi s tlocrtom
- Korak 6: Pokretanje koda
- Korak 7: Završni dodiri
Video: Mjerač radne sobe: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Upute o tome kako stvoriti mjerač vremena za radnu sobu.
Korak 1: Videozapis o interakciji
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Korak 2: Izjava o problemu
Većinom se uvijek zauzimaju radne sobe. To se događa jer ljudi vole ostati u sobi mnogo dulje nego što im je potrebno. Dizajnirali smo mjerač vremena koji omogućuje svakoj osobi ukupno 2 sata i ljudima koji čekaju mogućnost da zatraže da soba bude sljedeća grupa. Korištenje RGB -a na Neopikselima izrazit će preostalo vrijeme.
Korak 3: Pregled kako to funkcionira
Mjerač vremena sastoji se od dijelova izrezanih laserskim rezačem, 3 gumba, 1 LED, 1 potenciometar.
Neopikseli i potenciometar spojeni su na NodeMCU. NodeMCU je programiran za ponovno određivanje udaljenosti okretanja potenciometra za promjenu količine LED dioda koje svijetle na kružnoj traci od neopiksela. Gumb Zahtjev zaustavlja funkciju Start, Stop i Set time. Boja LED dioda na mjeraču vremena u prostoriji ista je boja LED diode koja svijetli sa strane kutije. Neopiksel sa strane kutije predstavlja zaslon u predvorju zgrade kako bi znao koja je soba zauzeta i koliko je vremena ostalo. 2 LED diode su propisane za svaku sobu, jedna LED predstavlja ako je soba zauzeta, a druga LED reflektira boju LED dioda na mjeraču vremena (zelena ima više vremena, zatim žuta, a zatim crvena za manje vremena).
Korak 4: Popis materijala i alata
-čisti akril
-MicroUSB kabel
www.digikey.com/product-detail/en/stewart-…
-Daska
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potenciometar
www.alliedelec.com/honeywell-380c32500/701…
-3 tipke
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopikselne trake
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Otpornici
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štolj za vruće ljepilo
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Ljepljive čičak trake
www.amazon.com/VELCRO-Brand-90076-Fastener…
Korak 5: Počnite graditi s tlocrtom
A0 do srednjeg zatika na potenciometru
Vin to Power Neopixel prsten
3v3 na jednu stranu potenciometra
Sve osnove za uzemljenje na NodeMCU
D1 za gumb zahtjeva
D2 na zahtjev LED
D3 za pokretanje
D4 za zaustavljanje
D5 na otpornik do Neopixel ulaza na prstenu
D6 na otpor prema Neopixel ulaznoj traci
Korak 6: Pokretanje koda
Ovo je kôd za provjeru funkcioniranja vašeg projekta do sada. Mjerač vremena trebao bi biti samo nekoliko sekundi po LED na neopikselnom prstenu. Kad znate da radi do ove točke, sve što trebate učiniti je promijeniti donje izraze time if u navedeni raspon. Stavit ću '#Promijeni vrijeme' na svako vrijeme ako izjave koje morate promijeniti za svoju dodjelu vremena.
Isprobavanje koda:
uvoz utime
vrijeme uvoza
iz ADC uvoznog stroja
stroj za uvoz
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 = 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.vrijednost (0)
def tglined (): # prebacivanje LED funkcije 'zahtjev'
ako je l1.value () == 0:
l1.vrijednost (1)
drugo:
l1.vrijednost (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
dok je istina:
# Ovo je gumb koji prebacuje LED "zahtjev"
b1temp2 = b1.value ()
ako b1temp1, a ne b1temp2:
tglined ()
vrijeme.spavanje (0,05)
b1temp1 = b1temp2
# Ovo je mreža
np2 [0] = np [11]
ako je l1.value () == 1:
np2 [1] = (30, 0, 0)
drugo:
np2 [1] = (0, 0, 30)
np2.write ()
# Ovdje odabiremo koliko nam je vremena potrebno
ako je t == 0:
za i u rasponu (-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)
drugo:
np = (0, 0, 30)
np.write ()
drugo:
np = (0, 0, 0)
np.write ()
# Ovo je gumb za pokretanje mjerača vremena
if (l1.value () == 0) i (t == 0):
b2temp2 = b2.value ()
ako b2temp1, a ne b2temp2:
x += 1
t += (s * 100)
vrijeme.spavanje (0,05)
b2temp1 = b2temp2
# Ovaj gumb prekida mjerač vremena
if (l1.value () == 0):
b3temp2 = b3.value ()
ako b3temp1, a ne b3temp2:
x = 0
t = 0
vrijeme.spavanje (0,05)
b3temp1 = b3temp2
# Ovo je mjerač vremena
ako je x> 0:
t += 1
if (t> 0) i (t <= 100): #Promijeni vrijeme
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) i (t <= 200): #Promijeni vrijeme
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) i (t <= 300): #Promijeni vrijeme
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) i (t <= 400): #Promijeni vrijeme
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) i (t <= 500): #Promijeni vrijeme
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) i (t <= 600): #Promijeni vrijeme
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) i (t <= 700): #Promijeni vrijeme
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) i (t <= 800): #Promijeni vrijeme
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) i (t <= 900): #Promijeni vrijeme
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) i (t <= 1000): #Promijeni vrijeme
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) i (t <= 1100): #Promijeni vrijeme
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 ()
if (t> 1100) i (t <= 1200): #Promijeni vrijeme
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 ()
ako je t> = 1300: #Promijenite vrijeme
t = 0
x = 0
Korak 7: Završni dodiri
Sada, kad ste ovoliki, radni kôd trebali biste učitati na NodeMCU, a svi dijelovi ožičeni na matičnoj ploči. Nakon što ste isprobali kôd i izrezali sve dijelove koje imate za vanjski dio, tj. Laserski izrezano kućište, sada možete lemiti žice na NodeMCU. Lemljenje je opcionalno, ali ga može učiniti sigurnijim i manjim za vaše kućište. Evo nekih laserski izrezanih dijelova koje smo izradili.
Preporučeni:
Kako promijeniti izgled radne površine u sustavu Windows 7?: 5 koraka
Kako promijeniti izgled radne površine u sustavu Windows 7 ?: Možda ste razmišljali o promjeni pozadine radne površine. Ova uputa govori o tome kako promijeniti pozadinu. namijenjen je korisnicima sustava Windows 7. Ako želite promijeniti pozadinu radne površine, ali ne znate kako, pogledajte je! Nadam se da je ovo uputstvo
Rainmeter - Postavljanje minimalne radne površine (Win 10): 30 koraka
Rainmeter - Postavljanje minimalne radne površine (Win 10): Hvala što ste pogledali ovo uputstvo! Ovaj će vam vodič pomoći da kreirate minimalno postavljanje radne površine s nekim korisnim widgetima, pomažući vam da očistite radnu površinu od nereda. Imajte na umu da je ovaj vodič napravljen na umu za Windows 10
Prijenosna lemna stanica TS100 od crne i Deckerove radne svjetiljke 20V: 5 koraka
Prijenosna lemilica TS100 od Black & Decker 20V radnog svjetla: Nedavno sam morala kupiti novu lemilicu i odlučila sam se za TS100 jer se može pokrenuti iz zidne utičnice ili iz baterije. Imao sam staro Black & Decker 20v radno svjetlo koje nikad nisam koristio, došlo je kao besplatna bonus stavka u Black &
Automatsko slanje e -pošte s fotografijom iz skupne datoteke pomoću stare radne površine i XP -a: 4 koraka
Automatsko slanje e -pošte s fotografijom iz skupne datoteke pomoću stare radne površine i XP -a: vrlo sam sretan što imam odličan pogled s prozora kućnog ureda. Kad sam odsutan, želim vidjeti što propuštam i često sam odsutan. Nekada sam imao svoju web stranicu i kućnu meteorološku stanicu koja bi putem ftp -a prenosila sve vremenske uvjete
Glazbeno reaktivno svjetlo -- Kako napraviti super jednostavno glazbeno reaktivno svjetlo za poboljšanje izgleda radne površine .: 5 koraka (sa slikama)
Glazbeno reaktivno svjetlo || Kako napraviti super jednostavno glazbeno reaktivno svjetlo za poboljšanje izgleda radne površine: Hej, što ima ljudi, danas ćemo izgraditi vrlo zanimljiv projekt. Danas ćemo izgraditi glazbeno reaktivno svjetlo. LED dioda će promijeniti svoju svjetlinu prema bas koji je zapravo niskofrekventni audio signal. Vrlo je jednostavno izgraditi. Mi ćemo