სასწავლო ოთახის ტაიმერი: 7 ნაბიჯი
სასწავლო ოთახის ტაიმერი: 7 ნაბიჯი
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- ზე. შედუღება არჩევითია, მაგრამ შეიძლება გახადოს ის უფრო უსაფრთხო და პატარა თქვენი გარსაცმისთვის. აქ არის რამოდენიმე ლაზერული ნაწილის ნაწილი, რომელიც ჩვენ გავაკეთეთ.

გირჩევთ: