Агуулгын хүснэгт:

Ажлын өрөөний таймер: 7 алхам
Ажлын өрөөний таймер: 7 алхам

Видео: Ажлын өрөөний таймер: 7 алхам

Видео: Ажлын өрөөний таймер: 7 алхам
Видео: 🏡 Разбираемся с Планом: Шаг 10 Цикл - Создаем Рабочий План для Вашего Одноэтажного Дома! 📐 2024, Арваннэгдүгээр
Anonim
Ажлын өрөөний таймер
Ажлын өрөөний таймер
Ажлын өрөөний таймер
Ажлын өрөөний таймер
Ажлын өрөөний таймер
Ажлын өрөөний таймер

Хичээлийн өрөөнд цаг хэмжигч хийх заавар.

Алхам 1: Харилцааны видео

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

Алхам 2: Асуудлын мэдэгдэл

Ихэнх тохиолдолд сургалтын өрөөнүүдийг үргэлж авч явдаг. Энэ нь хүмүүс өрөөнд байх хугацаанаасаа хамаагүй удаан байх дуртай байдагтай холбоотой юм. Бид таймер зохион бүтээсэн бөгөөд энэ нь хүн бүрт нийтдээ 2 цаг зарцуулах боломжийг олгодог бөгөөд өрөөг дараагийн бүлэгт оруулах хүсэлтийг хүлээж буй хүмүүст зориулагдсан болно. Неопиксел дээр RGB ашиглах нь үлдсэн хугацааг илэрхийлэх болно.

Алхам 3: Энэ нь хэрхэн ажилладаг талаар тойм

Таймер нь лазер таслагчаар таслагдсан хэсгүүд, 3 товчлуур, 1 LED, 1 потенциометрээс бүрдэнэ.

Неопиксел ба потенциометрийг NodeMCU руу холбосон. NodeMCU нь потенциометрийг хэр хол эргүүлж, дугуй хэлбэртэй неопиксел зурвас дээр асдаг LED -ийн хэмжээг өөрчлөхөд зориулагдсан болно. Хүсэлтийн товчлуур нь Start, Stop, Set time функцийг зогсооно. Өрөөн доторх таймер дээрх LED -ийн өнгө нь хайрцгийн хажуу талд ассан LED -ийн өнгөтэй ижил байна. Хайрцагны хажуу талд байрлах неопиксел нь барилгын үүдний танхимд аль өрөөг авч, хэр их цаг үлдсэнийг харуулсан дэлгэцийг харуулдаг. Өрөө бүрт 2 LED заасан бөгөөд нэг LED нь өрөөг авсан бол бусад 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…

-Наалдамхай хилэн тууз

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

Алхам 5: Breadboard ашиглан барилгын ажлыг эхлүүлээрэй

Breadboard ашиглан барилгын ажлыг эхлүүлээрэй
Breadboard ашиглан барилгын ажлыг эхлүүлээрэй

А0 -аас дунд зүү хүртэл потенциометр

Vin to Neopixel бөгжийг асаах

Потенциометрийн нэг талд 3v3 байна

NodeMCU дээр газардах бүх үндэслэл

D1 товчлуурыг хүсэх

LED хүсэх D2

D3 эхлүүлэх товчлуур

D4 товчлуурыг зогсоох

D5 нь цагираг дээрх неопикселийн оролтыг эсэргүүцэх

D6 нь Neopixel оролтын зурваст резистор хийх

Алхам 6: Кодыг эхлүүлэх

Энэ бол таны төсөл одоог хүртэл ажиллаж байгаа эсэхийг шалгах код юм. Таймер нь Neopixel Ring дээрх LED тутамд хэдхэн секунд байх ёстой. Энэ үе хүртэл ажиллаж байгааг мэдсэний дараа доорх мэдэгдлийг заасан хязгаарт оруулах цагийг өөрчлөхөд л хангалттай. Хэрэв та хуваарилах хугацаандаа өөрчлөх шаардлагатай мэдэгдлүүдийг гаргавал би цаг болгон дээр '#Цагийг өөрчлөх' гэж бичнэ.

Кодыг туршиж үзэх:

цагаар импортлох

импортлох хугацаа

машин импортлох ADC -ээс

импортын машин

неопиксел импортлох

adc = ADC (0)

pin = machine. Pin (14, machine. Pin. OUT)

np = neopixel. NeoPixel (зүү, 12)

pin2 = машин. Зүү (12, машин. Зүү. OUT)

np2 = neopixel. NeoPixel (pin2, 8)

l1 = машин. Зүү (4, машин. Зүү. OUT)

b1 = машин. Зүү (5, машин. Зүү. IN, машин.

b3 = машин. Зүү (2, машин. Зүү. IN, машин.

b2 = machine. Pin (0, machine. Pin. IN, machine. Pin. PULL_UP)

l1. утга (0)

def tglled (): # хүсэлт 'LED функцийг солино

хэрэв l1.value () == 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. утга ()

b1temp2 биш b1temp2 бол:

tglled ()

цаг унтах (0.05)

b1temp1 = b1temp2

# Энэ бол сүлжээ юм

np2 [0] = np [11]

хэрэв l1.value () == 1:

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

өөр:

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

np2. бичих ()

# Энд бид хичнээн их цаг хэрэгтэйг сонгодог

хэрэв t == 0 бол:

i-ийн хувьд (-1, 12):

хэрэв (l1.value () == 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.value () == 0) ба (t == 0):

b2temp2 = b2. утга ()

b2temp2 биш b2temp2 бол:

x += 1

t += (s * 100)

цаг унтах (0.05)

b2temp1 = b2temp2

# Энэ товчлуур нь таймерыг дуусгадаг

хэрэв (l1.value () == 0):

b3temp2 = b3. утга ()

b3temp2 биш b3temp2 бол:

x = 0

t = 0

цаг унтах (0.05)

b3temp1 = b3temp2

# Энэ бол цаг хэмжигч юм

хэрэв x> 0:

t += 1

if (t> 0) and (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 ()

if (t> 100) and (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 ()

if (t> 200) and (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 ()

if (t> 300) and (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 ()

if (t> 900) and (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 ()

if (t> 1000) and (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 руу гагнах боломжтой. Гагнах нь заавал биш боловч таны бүрхүүлийг илүү найдвартай, жижиг болгож магадгүй юм. Бидний хийсэн лазер хайчлах хэсгүүдийн заримыг энд оруулав.

Зөвлөмж болгож буй: