Სარჩევი:

სასწავლო ოთახის ტაიმერი: 7 ნაბიჯი
სასწავლო ოთახის ტაიმერი: 7 ნაბიჯი

ვიდეო: სასწავლო ოთახის ტაიმერი: 7 ნაბიჯი

ვიდეო: სასწავლო ოთახის ტაიმერი: 7 ნაბიჯი
ვიდეო: ალგეთი არენას მშენებლობის კონცეფცია შემუშავებულია 2024, ნოემბერი
Anonim
სასწავლო ოთახის ტაიმერი
სასწავლო ოთახის ტაიმერი
სასწავლო ოთახის ტაიმერი
სასწავლო ოთახის ტაიმერი
სასწავლო ოთახის ტაიმერი
სასწავლო ოთახის ტაიმერი

ინსტრუქცია სასწავლო ოთახისთვის ტაიმერის შესაქმნელად.

ნაბიჯი 1: ურთიერთქმედების ვიდეო

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

ნაბიჯი 2: პრობლემის განცხადება

უმეტეს დროს სასწავლო ოთახებს ყოველთვის იღებენ. ეს ხდება იმიტომ, რომ ადამიანებს მოსწონთ ოთახში ყოფნა იმაზე დიდხანს, ვიდრე მათ სჭირდებათ. ჩვენ შევქმენით ტაიმერი, რომელიც თითოეულ ადამიანს აძლევს 2 საათს და ადამიანები, რომლებიც ელოდებიან ოთახის მომდევნო ჯგუფში შესვლის შესაძლებლობას. Neopixels– ზე RGB– ის გამოყენება გამოხატავს დარჩენილ დროს.

ნაბიჯი 3: მიმოხილვა როგორ მუშაობს

ტაიმერი შედგება ლაზერული საჭრელით დაჭრილი ნაწილებისგან, 3 ღილაკი, 1 LED, 1 პოტენომეტრი.

ნეოპიქსელები და პოტენომეტრი არის მიერთებული NodeMCU– ზე. NodeMCU დაპროგრამებულია იმისათვის, რომ მოახდინოს რეგულირება, თუ რამდენად შორს არის პოტენომეტრი, რომ შეცვალოს LED- ების რაოდენობა, რომლებიც განათებულია წრიულ ნეოპიქსელურ ზოლზე. მოთხოვნის ღილაკი აჩერებს დაწყების, გაჩერების და დროის დაყენების ფუნქციას. ოთახის შიგნით ტაიმერზე LED- ების ფერი იგივე ფერია, რომელიც განათებულია ყუთის მხარეს. ყუთის გვერდით მდებარე ნეოპიქსელი წარმოადგენს შენობის სადარბაზოს ჩვენებას იმის გასაგებად, თუ რომელი ოთახია გადაღებული და რამდენი დრო დარჩა. თითოეული ოთახისთვის ინიშნება 2 შუქდიოდური შუქი, ერთი შუქდიოდური არის ოთახის გადაღება, ხოლო მეორე LED ასახავს ტაიმერს LED- ის ფერი (მწვანე უფრო მეტი დროა, შემდეგ ყვითელი, შემდეგ წითელი ნაკლები დროით).

ნაბიჯი 4: მასალებისა და ინსტრუმენტების სია

-წმინდა აკრილის

-MicroUSB კაბელი

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

-პურის დაფა

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

-პოტენომეტრი

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

-3 ღილაკი

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

-NodeMCU

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

- 2 ნეოპიქსელის ზოლები

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

-რეზისტები

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

- მავთულები

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

-1 LED

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

-ცხელი წებოს იარაღი

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

-წებოვანი Velcro ზოლები

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

ნაბიჯი 5: დაიწყეთ მშენებლობა პურის დაფით

დაიწყეთ მშენებლობა პურის დაფით
დაიწყეთ მშენებლობა პურის დაფით

A0 შუა პინზე პოტენციომეტრზე

Vin to Power on Neopixel ბეჭედი

3v3 პოტენომეტრის ერთ მხარეს

ყველა საფუძველი დასაბუთებულია NodeMCU– ზე

D1 ღილაკს მოთხოვნა

D2 მოითხოვეთ LED

D3 დაწყების ღილაკი

D4 გაჩერების ღილაკი

D5 to resistor to Neopixel Input on ring

D6 რეზისტენტამდე ნეოპიქსელის შეყვანის ზოლზე

ნაბიჯი 6: კოდის დაწყება

ეს არის კოდი იმის დასადასტურებლად, რომ თქვენი პროექტი ჯერჯერობით მუშაობს. ტაიმერი უნდა იყოს მხოლოდ რამდენიმე წამი თითო LED- ზე ნეოპიქსელის ბეჭედზე. მას შემდეგ რაც გაიგებთ რომ ის მუშაობს ამ მომენტამდე, თქვენ მხოლოდ უნდა შეცვალოთ დრო ქვემოთ მოცემული განცხადებების თქვენს მითითებულ დიაპაზონში. თითოეულ დროს დავაყენებ "#შეცვლის დროს" იმ განცხადებებს, რომლებიც თქვენ უნდა შეცვალოთ თქვენი დროის გამოყოფისთვის.

სცადეთ კოდი:

იმპორტის უტიმი

იმპორტის დრო

მანქანების იმპორტიდან ADC

იმპორტის მანქანა

ნეოპიქსელის იმპორტი

adc = ADC (0)

pin = მანქანა. pin (14, მანქანა. pin. OUT)

np = ნეოპიქსელი. NeoPixel (პინი, 12)

pin2 = მანქანა. pin (12, მანქანა. pin. OUT)

np2 = ნეოპიქსელი. NeoPixel (pin2, 8)

l1 = მანქანა. პინი (4, მანქანა. პინი. მარშრუტი)

b1 = მანქანა. პინი (5, მანქანა. პინ. ინ, მანქანა. პინ. PULL_UP)

b3 = მანქანა. პინი (2, მანქანა. პინ. ინ, მანქანა. პინ. PULL_UP)

b2 = მანქანა. პინი (0, მანქანა. პინ. ინ, მანქანა. პინ. PULL_UP)

l1. ღირებულება (0)

def tglled (): # გადართვა 'მოთხოვნის' LED ფუნქცია

თუ l1. ღირებულება () == 0:

l1. ღირებულება (1)

სხვა:

l1. ღირებულება (0)

x = 0

b1temp1 = 0

b1temp2 = 0

t = 0

b2temp1 = 0

b2temp2 = 0

b3temp1 = 0

b3temp2 = 0

s = 0

მართალია:

# ეს არის ღილაკი, რომელიც ცვლის "მოთხოვნის" LED- ს

b1temp2 = b1. ღირებულება ()

თუ b1temp1 და არა b1temp2:

tglled ()

დრო. ძილი (0.05)

b1temp1 = b1temp2

# ეს არის ბადე

np2 [0] = np [11]

თუ l1. ღირებულება () == 1:

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

სხვა:

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

np2.write ()

# ეს არის ის, სადაც ჩვენ ვირჩევთ რამდენი დრო გვჭირდება

თუ t == 0:

მე დიაპაზონში (-1, 12):

თუ (l1. ღირებულება () == 0):

თუ (adc.read ()> = (85.34 * (i+1))):

np = (0, 0, 0)

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

s = (i + 1)

სხვა:

np = (0, 0, 30)

np.write ()

სხვა:

np = (0, 0, 0)

np.write ()

# ეს არის ღილაკი ტაიმერის დასაწყებად

თუ (l1. ღირებულება () == 0) და (t == 0):

b2temp2 = b2. მნიშვნელობა ()

თუ b2temp1 და არა b2temp2:

x += 1

t += (s * 100)

დრო. ძილი (0.05)

b2temp1 = b2temp2

# ეს ღილაკი ამთავრებს ტაიმერს

თუ (l1. ღირებულება () == 0):

b3temp2 = b3. მნიშვნელობა ()

თუ b3temp1 და არა b3temp2:

x = 0

t = 0

დრო. ძილი (0.05)

b3temp1 = b3temp2

# ეს არის ტაიმერი

თუ x> 0:

t += 1

თუ (t> 0) და (t <= 100): #შეცვალეთ დრო

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

თუ (t> 100) და (t <= 200): #შეცვალეთ დრო

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

თუ (t> 200) და (t <= 300): #შეცვალეთ დრო

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

თუ (t> 300) და (t <= 400): #შეცვალეთ დრო

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

თუ (t> 400) და (t <= 500): #შეცვალეთ დრო

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

თუ (t> 500) და (t <= 600): #შეცვალეთ დრო

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

თუ (t> 600) და (t <= 700): #შეცვალეთ დრო

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

თუ (t> 700) და (t <= 800): #შეცვალეთ დრო

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

თუ (t> 800) და (t <= 900): #შეცვალეთ დრო

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

თუ (t> 900) და (t <= 1000): #დროის შეცვლა

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

თუ (t> 1000) და (t <= 1100): #დროის შეცვლა

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

თუ (t> 1100) და (t <= 1200): #დროის შეცვლა

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

თუ t> = 1300: #შეცვალეთ დრო

t = 0

x = 0

ნაბიჯი 7: შეხების დასრულება

ახლა, როდესაც თქვენ უკვე შორს ხართ, თქვენ უნდა ატვირთოთ სამუშაო კოდი NodeMCU– ში და ყველა ნაწილი მავთულხლართზე იყოს დაფარული. მას შემდეგ რაც სცადეთ კოდი და გაჭერით ნებისმიერი ნაჭერი გარედან, ანუ ლაზერული გარსაცმები, შეგიძლიათ მიაერთოთ მავთულები NodeMCU– ზე. შედუღება არჩევითია, მაგრამ შეიძლება გახადოს ის უფრო უსაფრთხო და პატარა თქვენი გარსაცმისთვის. აქ არის რამოდენიმე ლაზერული ნაწილის ნაწილი, რომელიც ჩვენ გავაკეთეთ.

გირჩევთ: