Innehållsförteckning:
- Steg 1: Interaktionsvideo
- Steg 2: Problemmeddelande
- Steg 3: Översikt över hur det fungerar
- Steg 4: Lista över material och verktyg
- Steg 5: Börja bygga med brödbrädan
- Steg 6: Starta koden
- Steg 7: Finisher
Video: Studierumstimer: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Instruktioner om hur man skapar en timer för ett studierum.
Steg 1: Interaktionsvideo
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Steg 2: Problemmeddelande
För det mesta används alltid studierum. Detta händer eftersom människor gillar att stanna i rummet mycket längre än de behöver. Vi har utformat en timer som tillåter varje person totalt 2 timmar och personer som väntar på möjligheten att begära att rummet ska vara nästa grupp i. Användningen av RGB på Neopixels kommer att uttrycka den tid som återstår.
Steg 3: Översikt över hur det fungerar
Timern består av delar som skärs av laserskäraren, 3 knappar, 1 LED, 1 potentiometer.
Neopixlarna och potentiometern är ansluten till NodeMCU. NodeMCU är programmerad att regonisera hur långt potentiometern vrids för att ändra mängden lysdioder som lyser på den cirkulära Neopixel -remsan. Knappen Begär stoppar funktionen för Start, Stopp och Ställ in tid. Färgen på lysdioderna på timern inne i rummet är samma färg som lysdioden tänd på lådans sida. Neopixeln på lådans sida representerar displayen i byggnadens lobby för att veta vilket rum som tas och hur mycket tid som är kvar. 2 lysdioder föreskrivs för varje rum, en lysdiod representerar om rummet tas och den andra lysdioden speglar färgen på lysdioderna på timern (grön är mer tid, sedan gul, sedan röd för kortare tid).
Steg 4: Lista över material och verktyg
-Klar akryl
-MicroUSB -kabel
www.digikey.com/product-detail/en/stewart-…
-Bakbord
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potentiometer
www.alliedelec.com/honeywell-380c32500/701…
-3 knappar
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixel -remsor
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Motstånd
www.digikey.com/product-detail/en/te-conne…
- Trådar
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Lim pistol
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Klibbiga kardborreband
www.amazon.com/VELCRO-Brand-90076-Fastener…
Steg 5: Börja bygga med brödbrädan
A0 till mittstift på Potentiometer
Vin to Power on Neopixel ring
3v3 till ena sidan av potentiometern
Alla skäl att jorda på NodeMCU
Knapp för begäran D1
D2 för att begära LED
D3 till startknappen
D4 till stoppknappen
D5 till motstånd mot Neopixel Ingång på ring
D6 till motstånd mot Neopixel ingångslist
Steg 6: Starta koden
Detta är koden för att se till att ditt projekt fungerar hittills. Timern bör bara vara ett par sekunder per lysdiod på Neopixel -ringen. När du väl vet att det fungerar fram till denna punkt är allt du behöver göra att ändra tiden om uttalanden nedan till ditt angivna intervall. Jag kommer att sätta "#Ändra tid" på varje gång om uttalanden som du behöver ändra för din tidstilldelning.
Försöker koden:
import utime
importtid
från maskinimport ADC
importmaskin
importera 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 = 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.värde (0)
def tglled (): # växla 'begäran' LED -funktion
om l1.value () == 0:
l1.värde (1)
annan:
l1.värde (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
medan det är sant:
# Detta är knappen som växlar mellan "begäran" -lampan
b1temp2 = b1.value ()
om b1temp1 och inte b1temp2:
tglled ()
time.sleep (0,05)
b1temp1 = b1temp2
# Detta är rutnätet
np2 [0] = np [11]
om l1.value () == 1:
np2 [1] = (30, 0, 0)
annan:
np2 [1] = (0, 0, 30)
np2.write ()
# Här väljer vi hur mycket tid vi behöver
om t == 0:
för i inom intervallet (-1, 12):
om (l1.value () == 0):
if (adc.read ()> = (85,34 * (i+1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
annan:
np = (0, 0, 30)
np.write ()
annan:
np = (0, 0, 0)
np.write ()
# Detta är knappen för att starta timern
om (l1.value () == 0) och (t == 0):
b2temp2 = b2.value ()
om b2temp1 och inte b2temp2:
x += 1
t += (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# Denna knapp avslutar timern
om (l1.value () == 0):
b3temp2 = b3.value ()
om b3temp1 och inte b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# Detta är timern
om x> 0:
t += 1
if (t> 0) och (t <= 100): #Ändra 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 ()
if (t> 100) och (t <= 200): #Ändra 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 ()
if (t> 200) och (t <= 300): #Ändra 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 ()
if (t> 300) och (t <= 400): #Ändra 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 ()
if (t> 400) och (t <= 500): #Ändra 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 ()
if (t> 500) och (t <= 600): #Ändra 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 ()
if (t> 600) och (t <= 700): #Ändra 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 ()
if (t> 700) och (t <= 800): #Ändra 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 ()
if (t> 800) och (t <= 900): #Ändra 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 ()
if (t> 900) och (t <= 1000): #Ändra 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 ()
if (t> 1000) och (t <= 1100): #Ändra 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 ()
if (t> 1100) och (t <= 1200): #Ändra 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 ()
om t> = 1300: #Ändra tid
t = 0
x = 0
Steg 7: Finisher
Nu, när du är så långt, bör du ha arbetskoden uppladdad till NodeMCU och alla delar kopplade till brödbrädan. När du väl har provat koden och klippt alla bitar du har för utsidan, dvs. Lödningen är valfri men kan göra den säkrare och mindre för ditt hölje. Här är några av de laserskurna delarna som vi gjorde.
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)