Indholdsfortegnelse:
- Trin 1: Interaktionsvideo
- Trin 2: Problemformulering
- Trin 3: Oversigt over hvordan det fungerer
- Trin 4: Liste over materialer og værktøjer
- Trin 5: Start med at bygge med brødbrættet
- Trin 6: Start af koden
- Trin 7: Efterbehandling
Video: Studierumstimer: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Instruktioner om, hvordan du opretter en timer til et studieværelse.
Trin 1: Interaktionsvideo
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Trin 2: Problemformulering
For det meste tages der altid studierum. Dette sker, fordi folk kan lide at blive i rummet meget længere, end de har brug for. Vi har designet en timer, der giver hver person i alt 2 timer og folk, der venter på muligheden for at anmode lokalet om at være den næste gruppe i. Brug af RGB på Neopixels vil udtrykke den tid, der er tilbage.
Trin 3: Oversigt over hvordan det fungerer
Timeren består af dele, der er skåret af laserskæreren, 3 knapper, 1 LED, 1 potentiometer.
Neopixel og potentiometer er forbundet til NodeMCU. NodeMCU er programmeret til at regonisere, hvor langt potentiometeret drejes for at ændre mængden af lysdioder, der lyser på den cirkulære Neopixel -strimmel. Knappen Anmodning stopper funktionen Start, Stop og Indstil tid. Farven på LED'erne på timeren inde i rummet er den samme farve som LED'en tændt på siden af boksen. Neopixel på siden af boksen repræsenterer displayet i bygningens lobby for at vide, hvilket rum der er taget, og hvor lang tid der er tilbage. 2 LED'er er foreskrevet for hvert værelse, en LED repræsenterer, hvis rummet er taget, og den anden LED afspejler farven på LED'erne på timeren (grøn er mere tid, derefter gul, derefter rød i kortere tid).
Trin 4: Liste over materialer og værktøjer
-Klar akryl
-MicroUSB -kabel
www.digikey.com/product-detail/en/stewart-…
-Brødbræt
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potentiometer
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 strimler
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Modstande
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 velcro strips
www.amazon.com/VELCRO-Brand-90076-Fastener…
Trin 5: Start med at bygge med brødbrættet
A0 til midterste pin på potentiometer
Vin to Power on Neopixel ring
3v3 til den ene side af potentiometeret
Alle grunde til jorden på NodeMCU
D1 til anmodningsknap
D2 til Request LED
D3 til startknap
D4 til stopknap
D5 til modstand til Neopixel Indgang på ring
D6 til modstand til Neopixel inputstrimmel
Trin 6: Start af koden
Dette er koden for at sikre, at dit projekt fungerer indtil videre. Timeren bør kun være et par sekunder pr. LED på Neopixel -ringen. Når du ved, at det fungerer indtil dette tidspunkt, er alt du skal gøre at ændre tiden, hvis udsagnene nedenfor til dit angivne område. Jeg vil sætte '#Change time' på hver gang, hvis udsagn, som du skal ændre for din tidstildeling.
Prøv koden:
import utime
importtid
fra maskineimport ADC
import maskine
import neopixel
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 = maskine. Pin (4, maskine. Pin. OUT)
b1 = maskine. Pin (5, maskine. Pin. IN, maskine. Pin. PULL_UP)
b3 = maskine. Pin (2, maskine. Pin. IN, maskine. Pin. PULL_UP)
b2 = maskine. Pin (0, maskine. Pin. IN, maskine. Pin. PULL_UP)
l1.værdi (0)
def tglled (): # skift 'anmodning' LED -funktion
hvis l1.value () == 0:
l1.værdi (1)
andet:
l1.værdi (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
mens det er sandt:
# Dette er den knap, der skifter LED'en 'anmodning'
b1temp2 = b1.value ()
hvis b1temp1 og ikke b1temp2:
tglled ()
time.sleep (0,05)
b1temp1 = b1temp2
# Dette er gitteret
np2 [0] = np [11]
hvis l1.value () == 1:
np2 [1] = (30, 0, 0)
andet:
np2 [1] = (0, 0, 30)
np2.write ()
# Det er her, vi vælger, hvor meget tid vi har brug for
hvis t == 0:
for i i området (-1, 12):
hvis (l1.value () == 0):
hvis (adc.read ()> = (85,34 * (i+1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
andet:
np = (0, 0, 30)
np.write ()
andet:
np = (0, 0, 0)
np.write ()
# Dette er knappen til at 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 knap afslutter 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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): #Ændre 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: #Ændre tid
t = 0
x = 0
Trin 7: Efterbehandling
Nu, når du er kommet så langt, skal du have uploadet arbejdskoden til NodeMCU og alle delene er forbundet til brødbrættet. Når du har prøvet koden og skåret de stykker, du har til ydersiden, dvs. laserskåret kabinet, kan du nu lodde ledningerne til NodeMCU. Lodningen er valgfri, men kan gøre den mere sikker og mindre til dit hus. Her er nogle af de laserskårne dele, som vi har lavet.
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)