Sadržaj:
- Korak 1: Videozapis o interakciji
- Korak 2: Izjava o problemu
- Korak 3: Pregled kako to funkcionira
- Korak 4: Lista materijala i alata
- Korak 5: Počnite graditi s tlocrtom
- Korak 6: Pokretanje koda
- Korak 7: Završni dodiri
Video: Tajmer za radnu sobu: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
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ćinu vremena radne sobe su uvijek zauzete. To se događa zato što ljudi vole ostati u sobi mnogo duže nego što im je potrebno. Dizajnirali smo mjerač vremena koji omogućava 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
Tajmer se sastoji od dijelova izrezanih laserskim rezačem, 3 dugmeta, 1 LED, 1 potenciometar.
Neopikseli i potenciometar su spojeni 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. Tipka Zahtjev zaustavlja funkciju Start, Stop i Set time. Boja LED dioda na tajmeru u prostoriji je ista boja LED diode koja svijetli sa strane kutije. Neopiksel sa strane kutije predstavlja ekran u predvorju zgrade kako bi znao koja je soba zauzeta i koliko je vremena ostalo. 2 LED diode su propisane za svaku prostoriju, jedna LED predstavlja ako je soba zauzeta, a druga LED reflektuje boju LED dioda na tajmeru (zelena ima više vremena, zatim žuta, a zatim crvena za manje vremena).
Korak 4: Lista materijala i alata
-Čisti akril
-MicroUSB kabl
www.digikey.com/product-detail/en/stewart-…
-Bboardboard
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potenciometar
www.alliedelec.com/honeywell-380c32500/701…
-3 dugmeta
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixel 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 pina na potenciometru
Vin za uključivanje Neopixel prstena
3v3 na jednu stranu potenciometra
Sve osnove za uzemljenje na NodeMCU
D1 za dugme za traženje
D2 na zahtjev LED
D3 za pokretanje
D4 za dugme Stop
D5 na otpor prema Neopixel ulazu 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. Tajmer bi trebao imati samo nekoliko sekundi po LED diodi na Neopixel prstenu. Jednom 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 se izjave koje morate promijeniti za dodjelu vremena.
Isprobavanje koda:
import utime
vreme uvoza
iz ADC -a za uvoz mašina
mašina 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 = Machine. Pin (4, machine. 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.value (0)
def tglined (): # prebacivanje LED funkcije 'zahtjev'
ako je l1.value () == 0:
l1.value (1)
drugo:
l1.value (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
dok je True:
# Ovo je dugme za prebacivanje LED -a za 'zahtev'
b1temp2 = b1.value ()
ako b1temp1, a ne b1temp2:
tglined ()
time.sleep (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 dugme za pokretanje odbrojavanja
if (l1.value () == 0) i (t == 0):
b2temp2 = b2.value ()
ako b2temp1, a ne b2temp2:
x += 1
t += (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# Ovo dugme prekida tajmer
if (l1.value () == 0):
b3temp2 = b3.value ()
ako b3temp1, a ne b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# Ovo je tajmer
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): #Promeni vreme
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): #Promijenite 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): #Promijenite 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, kada ste ovoliki, radni kôd biste trebali učitati na NodeMCU, a svi dijelovi ožičeni na matičnoj ploči. Nakon što ste isprobali kod i izrezali sve dijelove koje imate za vanjski dio, tj. Kućište laserskim rezanjem, 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 napravili.
Preporučuje se:
Napravite dvostrano, beskonačno ogledalo za radnu površinu: 14 koraka (sa slikama)
Napravite dvostrano, beskonačno ogledalo za radnu površinu: Većina beskonačnih ogledala koja sam vidio su jednostrani, ali sam htio da napravim jedno malo drugačije. Ova će biti dvostrana i dizajnirana tako da se može prikazati na radnoj površini ili polici. To je jednostavan, jako kul projekt za napraviti
RGB svjetla za radnu površinu na daljinsko upravljanje: 5 koraka
RGB svjetla za računare na daljinsko upravljanje: Ovaj projekt pokazuje upotrebu firebasea kao servera za kontrolu i upravljanje LED svjetlima sa stražnje strane mog stola
Izgradite vlastitu prijenosnu COB LED radnu lampu!: 16 koraka (sa slikama)
Izgradite vlastitu prijenosnu COB LED radnu lampu !: Dobro došli! U ovom Instructables -u naučit ću vas kako napraviti prijenosnu stolnu svjetiljku prekrasnog izgleda, vrlo moćnu i što je najvažnije! Odricanje odgovornosti: Ovaj projekat ne sponzorira nijedan brend. Karakteristike: • Moderan i elegantan dizajn • Prijenosni i
Zvjezdana vrata za vašu radnu površinu - dizajn PCB -a: 6 koraka (sa slikama)
Zvjezdana vrata za vašu radnu površinu - PCB dizajn: Ako vam se sviđa ovaj projekt, razmislite o tome da glasate za njega na takmičenju za PCB (pri dnu stranice)! Stargate SG -1 je moja omiljena TV emisija svih vremena - tačka. U posljednjih nekoliko mjeseci prisiljavao sam svoju djevojku da gleda i gleda
Odbojna ploča pogodna za radnu ploču za ESP8266-01 s regulatorom napona: 6 koraka (sa slikama)
Breadboard Friendly Breakout Board za ESP8266-01 sa regulatorom napona: Pozdrav svima! nadam se da si dobro. U ovom tutorijalu pokazat ću kako sam napravio ovaj prilagođeni adapter prilagođen matičnoj ploči za modul ESP8266-01 s odgovarajućom regulacijom napona i značajkama koje omogućuju način rada bljeskalice ESP-a. Napravio sam ovaj način