Cuprins:

Cronometru pentru camera de studiu: 7 pași
Cronometru pentru camera de studiu: 7 pași

Video: Cronometru pentru camera de studiu: 7 pași

Video: Cronometru pentru camera de studiu: 7 pași
Video: Costeo biju ‼️luat la palme de interlopi‼️#bucuresti #emipian #florinsalam #dans #interlopi 2024, Noiembrie
Anonim
Cronometru cameră de studiu
Cronometru cameră de studiu
Cronometru cameră de studiu
Cronometru cameră de studiu
Cronometru cameră de studiu
Cronometru cameră de studiu

Instrucțiuni despre cum să creați un cronometru pentru o sală de studiu.

Pasul 1: Video de interacțiune

drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk

Pasul 2: Declarație de problemă

De cele mai multe ori, sălile de studiu sunt întotdeauna luate. Acest lucru se întâmplă deoarece oamenilor le place să rămână în cameră mult mai mult decât au nevoie. Am proiectat un cronometru care permite fiecărei persoane un total de 2 ore și persoanelor care așteaptă posibilitatea de a solicita să fie camera următoare. Utilizarea RGB pe Neopixeli va exprima cantitatea de timp rămasă.

Pasul 3: Prezentare generală a modului în care funcționează

Cronometrul este format din piese tăiate de tăietorul laser, 3 butoane, 1 LED, 1 potențiometru.

Neopixeli și potențiometrul sunt conectați la NodeMCU. NodeMCU este programat pentru a regoniza cât de mult este rotit potențiometrul pentru a modifica cantitatea de LED-uri care sunt aprinse pe banda circulară Neopixel. Butonul Cerere oprește funcția funcției Start, Stop și Set time. Culoarea LED-urilor de pe cronometrul din interiorul camerei este aceeași culoare a LED-urilor aprinse pe partea laterală a cutiei. Neopixelul din partea laterală a cutiei reprezintă afișajul din holul clădirii pentru a ști ce cameră este luată și cât timp mai rămâne. 2 LED-uri sunt prescrise pentru fiecare cameră, un LED reprezintă dacă camera este luată, iar celălalt LED reflectă culoarea LED-urilor de pe cronometru (verde este mai mult timp, apoi galben, apoi roșu pentru mai puțin timp).

Pasul 4: Lista de materiale și instrumente

-Acrilic clar

-Cablu MicroUSB

www.digikey.com/product-detail/en/stewart-…

-Panoul

www.amazon.com/gp/product/B01EV6LJ7G/ref=o…

-Potentiometru

www.alliedelec.com/honeywell-380c32500/701…

-3 butoane

www.digikey.com/product-detail/en/te-conne…

-NodeMCU

www.amazon.com/gp/product/B07CB4P2XY/ref=o…

- 2 benzi de Neopixel

www.amazon.com/Lighting-Modules-NeoPixel-W…

-Rezistori

www.digikey.com/product-detail/en/te-conne…

- Fire

www.digikey.com/product-detail/en/sparkfun…

-1 LED

www.mouser.com/ProductDetail/Cree-Inc/C512…

-Pistola de lipit fierbinte

www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…

-Bande cu velcro lipicios

www.amazon.com/VELCRO-Brand-90076-Fastener…

Pasul 5: începeți să construiți cu Breadboard

Începeți să construiți cu Breadboard
Începeți să construiți cu Breadboard

A0 până la pinul central de pe potențiometru

Vin to Power on Neopixel ring

3v3 pe o parte a potențiometrului

Toate terenurile către Ground on NodeMCU

Butonul D1 pentru a solicita

D2 pentru a solicita LED

D3 la butonul Start

D4 pentru a opri butonul

D5 pentru a rezista la intrarea Neopixel pe inel

D6 pentru a rezista la banda de intrare Neopixel

Pasul 6: Pornirea codului

Acesta este codul pentru a vă asigura că proiectul dvs. funcționează până acum. Cronometrul ar trebui să fie de doar câteva secunde pe LED pe inelul Neopixel. Odată ce știți că funcționează până în acest moment, tot ce trebuie să faceți este să modificați ora dacă declarațiile de mai jos la intervalul specificat. Voi pune „#Change time” pe fiecare dintre situații dacă afirmațiile pe care trebuie să le modificați pentru alocarea timpului.

Încercarea codului:

import utime

timpul de import

de la importul de mașini ADC

mașină de import

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 = 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 tglled (): # comută funcția LED „cerere”

dacă l1.value () == 0:

l1.value (1)

altceva:

l1.value (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

în timp ce este adevărat:

# Acesta este butonul care comută LED-ul „solicitare”

b1temp2 = b1.value ()

dacă b1temp1 și nu b1temp2:

tglled ()

time.sleep (0,05)

b1temp1 = b1temp2

# Aceasta este grila

np2 [0] = np [11]

dacă l1.value () == 1:

np2 [1] = (30, 0, 0)

altceva:

np2 [1] = (0, 0, 30)

np2.write ()

# Aici selectăm cât timp avem nevoie

dacă t == 0:

pentru i în intervalul (-1, 12):

if (l1.value () == 0):

dacă (adc.read ()> = (85.34 * (i + 1))):

np = (0, 0, 0)

np [11] = (0, 0, 30)

s = (i + 1)

altceva:

np = (0, 0, 30)

np.write ()

altceva:

np = (0, 0, 0)

np.write ()

# Acesta este butonul pentru a porni cronometrul

dacă (l1.value () == 0) și (t == 0):

b2temp2 = b2.value ()

dacă b2temp1 și nu b2temp2:

x + = 1

t + = (s * 100)

time.sleep (0,05)

b2temp1 = b2temp2

# Acest buton termină cronometrul

if (l1.value () == 0):

b3temp2 = b3.value ()

dacă b3temp1 și nu b3temp2:

x = 0

t = 0

time.sleep (0,05)

b3temp1 = b3temp2

# Acesta este cronometrul

dacă x> 0:

t + = 1

dacă (t> 0) și (t <= 100): # Timp de schimbare

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 ()

dacă (t> 100) și (t <= 200): # Timp de schimbare

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 ()

dacă (t> 200) și (t <= 300): # Timp de schimbare

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): # Timp de schimbare

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): # Timp de schimbare

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): # Timp de schimbare

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 ()

dacă (t> 600) și (t <= 700): # Schimbă timpul

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 ()

dacă (t> 700) și (t <= 800): # Schimbă timpul

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 ()

dacă (t> 800) și (t <= 900): # Timp de schimbare

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): # Timp de schimbare

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 ()

dacă (t> 1000) și (t <= 1100): # Schimbă timpul

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): # Schimbă timpul

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 ()

dacă t> = 1300: # Timp de schimbare

t = 0

x = 0

Pasul 7: Atingeri de finisare

Acum, odată ce sunteți atât de departe, ar trebui să aveți codul de lucru încărcat pe NodeMCU și toate părțile conectate la panoul de verificare. După ce ați încercat codul și ați tăiat orice bucăți pe care le aveți pentru exterior, adică carcasa tăiată cu laser, puteți lipi acum firele către NodeMCU. Lipirea este opțională, dar poate fi mai sigură și mai mică pentru carcasă. Iată câteva dintre părțile tăiate cu laser pe care le-am realizat.

Recomandat: