Innholdsfortegnelse:
- Trinn 1: Interaksjonsvideo
- Trinn 2: Problemerklæring
- Trinn 3: Oversikt over hvordan det fungerer
- Trinn 4: Liste over materialer og verktøy
- Trinn 5: Begynn å bygge med brødbrettet
- Trinn 6: Start koden
- Trinn 7: Etterbehandling
Video: Studierom -timer: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Instruksjoner om hvordan du lager en timer for et studierom.
Trinn 1: Interaksjonsvideo
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Trinn 2: Problemerklæring
Mesteparten av tiden blir det alltid tatt studierom. Dette skjer fordi folk liker å bli i rommet mye lenger enn de trenger. Vi har designet en tidtaker som tillater hver person totalt 2 timer og folk som venter på muligheten til å be rommet om å være den neste gruppen i. Bruk av RGB på Neopixels vil uttrykke hvor lang tid det er igjen.
Trinn 3: Oversikt over hvordan det fungerer
Timeren består av deler kuttet av laserskjæreren, 3 knapper, 1 LED, 1 potensiometer.
Neopixel og potensiometer er koblet til NodeMCU. NodeMCU er programmert til å regonisere hvor langt potensiometeret er dreid for å endre mengden LED -er som lyser på den sirkulære Neopixel -stripen. Forespørselsknappen stopper funksjonen til Start, Stopp og Angi klokkeslett -funksjonen. Fargen på lysdiodene på timeren inne i rommet er den samme fargen som lysdioden lyser på siden av boksen. Neopikselen på siden av esken representerer skjermen i lobbyen til bygningen for å vite hvilket rom som er tatt og hvor lang tid det er igjen. 2 lysdioder er foreskrevet for hvert rom, en lysdiode representerer hvis rommet er tatt, og den andre lysdioden speiler fargen på lysdiodene på timeren (grønn er mer tid, deretter gul, deretter rød for kortere tid).
Trinn 4: Liste over materialer og verktøy
-Klar akryl
-MicroUSB -kabel
www.digikey.com/product-detail/en/stewart-…
-Brødbrett
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potensiometer
www.alliedelec.com/honeywell-380c32500/701…
-3 knapper
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixel Strips
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Motstandere
www.digikey.com/product-detail/en/te-conne…
- Ledninger
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Varm limpistol
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Sticky borrelåsstrimler
www.amazon.com/VELCRO-Brand-90076-Fastener…
Trinn 5: Begynn å bygge med brødbrettet
A0 til midtpinne på potensiometer
Vin to Power on Neopixel ring
3v3 til den ene siden av potensiometeret
All grunn til bakken på NodeMCU
D1 til forespørselsknapp
D2 for å be om LED
D3 til Start -knapp
D4 til stoppknapp
D5 til motstand mot Neopixel Inngang på ring
D6 til motstand mot Neopixel Input strip
Trinn 6: Start koden
Dette er koden for å sikre at prosjektet ditt fungerer så langt. Timeren bør bare være et par sekunder per LED på Neopixel -ringen. Når du vet at det fungerer frem til dette punktet, er alt du trenger å gjøre å endre tiden hvis utsagnene nedenfor er til det angitte området. Jeg vil sette "#Endre tid" på hver gang hvis uttalelser du må endre for din tidstildeling.
Prøver koden:
import utime
importtid
fra maskinimport ADC
import maskin
importer neopiksel
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.verdi (0)
def tglled (): # veksle 'forespørsel' LED -funksjon
hvis l1.value () == 0:
l1.verdi (1)
ellers:
l1.verdi (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
mens det er sant:
# Dette er knappen som veksler "forespørsels" LED
b1temp2 = b1.value ()
hvis b1temp1 og ikke b1temp2:
tglled ()
time.sleep (0,05)
b1temp1 = b1temp2
# Dette er rutenettet
np2 [0] = np [11]
hvis l1.value () == 1:
np2 [1] = (30, 0, 0)
ellers:
np2 [1] = (0, 0, 30)
np2.write ()
# Det er her vi velger hvor mye tid vi trenger
hvis t == 0:
for i i området (-1, 12):
hvis (l1.value () == 0):
if (adc.read ()> = (85,34 * (i+1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
ellers:
np = (0, 0, 30)
np.write ()
ellers:
np = (0, 0, 0)
np.write ()
# Dette er knappen for å starte timeren
hvis (l1.value () == 0) og (t == 0):
b2temp2 = b2.value ()
hvis b2temp1 og ikke b2temp2:
x += 1
t += (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# Denne knappen avslutter timeren
hvis (l1.value () == 0):
b3temp2 = b3.value ()
hvis b3temp1 og ikke b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# Dette er timeren
hvis x> 0:
t += 1
hvis (t> 0) og (t <= 100): #Endre tid
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 ()
hvis (t> 100) og (t <= 200): #Endre tid
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 ()
hvis (t> 200) og (t <= 300): #Endre tid
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 ()
hvis (t> 300) og (t <= 400): #Endre tid
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 ()
hvis (t> 400) og (t <= 500): #Endre tid
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 ()
hvis (t> 500) og (t <= 600): #Endre tid
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 ()
hvis (t> 600) og (t <= 700): #Endre tid
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 ()
hvis (t> 700) og (t <= 800): #Endre tid
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 ()
hvis (t> 800) og (t <= 900): #Endre tid
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 ()
hvis (t> 900) og (t <= 1000): #Endre tid
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 ()
hvis (t> 1000) og (t <= 1100): #Endre tid
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 ()
hvis (t> 1100) og (t <= 1200): #Endre tid
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 ()
hvis t> = 1300: #Endre tid
t = 0
x = 0
Trinn 7: Etterbehandling
Nå, når du er så langt, bør du ha arbeidskoden lastet opp til NodeMCU og alle delene er koblet til brødbrettet. Når du har prøvd koden og kuttet de bitene du har til utsiden, dvs. laserskåret foringsrør, kan du nå lodde ledningene til NodeMCU. Loddetinnet er valgfritt, men kan gjøre det sikrere og mindre for huset ditt. Her er noen av de laserskårne delene vi har laget.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte