Obsah:
- Krok 1: Interakční video
- Krok 2: Prohlášení o problému
- Krok 3: Přehled toho, jak to funguje
- Krok 4: Seznam materiálů a nástrojů
- Krok 5: Začněte stavět s Breadboard
- Krok 6: Spuštění kódu
- Krok 7: Dokončení dotyků
Video: Časovač studovny: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Návod, jak vytvořit časovač do studovny.
Krok 1: Interakční video
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Krok 2: Prohlášení o problému
Studovny jsou většinou vždy obsazeny. Stává se to proto, že lidé rádi zůstávají v místnosti mnohem déle, než potřebují. Navrhli jsme časovač, který umožňuje každému člověku celkem 2 hodiny a lidem, kteří čekají, možnost požádat místnost, aby se stala další skupinou. Použití RGB na Neopixelech vyjádří zbývající čas.
Krok 3: Přehled toho, jak to funguje
Časovač se skládá z částí řezaných laserovou řezačkou, 3 tlačítek, 1 LED, 1 potenciometru.
Neopixely a potenciometr jsou připojeny k NodeMCU. NodeMCU je naprogramován tak, aby regonizoval, jak daleko je potenciometr otočen, aby se změnilo množství LED diod, které svítí na kruhovém pásu Neopixel. Tlačítko Request zastaví funkci funkcí Start, Stop a Set time. Barva LED diod na časovači v místnosti je stejná jako barva LED svítí na boku krabice. Neopixel na boku krabice představuje displej ve vestibulu budovy, aby věděl, který pokoj je zabrán a kolik času zbývá. Pro každou místnost jsou předepsány 2 LED diody, jedna LED představuje, zda je místnost obsazena, a druhá LED zrcadlí barvu LED diod na časovači (zelená je více času, poté žlutá, poté červená po kratší dobu).
Krok 4: Seznam materiálů a nástrojů
-Čistý akryl
-MicroUSB kabel
www.digikey.com/product-detail/en/stewart-…
-prkénko
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potenciometr
www.alliedelec.com/honeywell-380c32500/701…
-3 tlačítka
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 Neopixelové proužky
www.amazon.com/Lighting-Modules-NeoPixel-W…
-Rezistory
www.digikey.com/product-detail/en/te-conne…
- Dráty
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Horká lepicí pistole
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Lepicí pásky na suchý zip
www.amazon.com/VELCRO-Brand-90076-Fastener…
Krok 5: Začněte stavět s Breadboard
A0 na střední pin na potenciometru
Vin to Power na prstenu Neopixel
3v3 na jednu stranu potenciometru
Všechny důvody k uzemnění na NodeMCU
Tlačítko D1 na vyžádání
D2 pro požadavek LED
Tlačítko D3 pro spuštění
Tlačítko D4 pro zastavení
D5 na odpor k vstupu Neopixel na kroužku
D6 na odpor k vstupnímu proužku Neopixel
Krok 6: Spuštění kódu
Toto je kód, který zajišťuje, že váš projekt zatím funguje. Časovač by měl být pouze několik sekund pro každou LED diodu na Neopixel Ring. Jakmile víte, že to funguje až do tohoto bodu, vše, co musíte udělat, je změnit čas, pokud příkazy níže na zadaný rozsah. V případě příkazů, které je třeba změnit pro přidělení času, vložím „#Change time“.
Vyzkoušení kódu:
čas importu
čas importu
ze strojového importu ADC
importní stroj
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.hodnota (0)
def tglled (): # přepíná funkci LED 'požadavku'
pokud l1.value () == 0:
l1.hodnota (1)
jiný:
l1.hodnota (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
zatímco pravda:
# Toto je tlačítko, které přepíná LED „požadavek“
b1temp2 = b1.value ()
pokud b1temp1 a ne b1temp2:
tglled ()
time.sleep (0,05)
b1temp1 = b1temp2
# Toto je mřížka
np2 [0] = np [11]
pokud l1.value () == 1:
np2 [1] = (30, 0, 0)
jiný:
np2 [1] = (0, 0, 30)
np2.write ()
# Zde vybereme, kolik času potřebujeme
pokud t == 0:
pro i v rozsahu (-1, 12):
if (l1.value () == 0):
if (adc.read ()> = (85,34 * (i+1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
jiný:
np = (0, 0, 30)
np.write ()
jiný:
np = (0, 0, 0)
np.write ()
# Toto je tlačítko pro spuštění časovače
if (l1.value () == 0) and (t == 0):
b2temp2 = b2.value ()
pokud b2temp1 a ne b2temp2:
x += 1
t += (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# Toto tlačítko ukončí časovač
if (l1.value () == 0):
b3temp2 = b3.value ()
pokud b3temp1 a ne b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# Toto je časovač
pokud x> 0:
t += 1
if (t> 0) and (t <= 100): #Change time
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): #Change time
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): #Change time
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): #Change time
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) and (t <= 500): #Change time
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) and (t <= 600): #Change time
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) and (t <= 700): #Change time
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) and (t <= 800): #Change time
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) and (t <= 900): #Change time
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): #Change time
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): #Change time
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) and (t <= 1200): #Change time
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 ()
if t> = 1300: #Change time
t = 0
x = 0
Krok 7: Dokončení dotyků
Nyní, když jste tak daleko, měli byste mít pracovní kód nahraný na NodeMCU a všechny části zapojené na prkénko. Jakmile vyzkoušíte kód a odstřihnete všechny kusy, které máte pro exteriér, tj. Pouzdro řezané laserem, můžete nyní pájet vodiče k NodeMCU. Pájení je volitelné, ale může být pro vaše pouzdro bezpečnější a menší. Zde jsou některé části řezané laserem, které jsme vyrobili.
Doporučuje:
Časovač s Arduino a rotačním kodérem: 5 kroků
Časovač s Arduino a rotačním kodérem: Časovač je nástroj, který se často používá v průmyslových i domácích činnostech. Tato sestava je levná a snadno se vyrábí. Je také velmi univerzální a umožňuje načíst program zvolený podle potřeb. Existuje několik programů, které jsem napsal pro Ardui
Časovač domácích úkolů od Arduina: 5 kroků
Časovač domácích úkolů vytvořený Arduinem: Píše vaše dítě své domácí úkoly celé hodiny? Je vaše dítě snadno rozptýleno ostatními, když dělá své domácí úkoly? Dnes jsem se pokusil udělat nejlepší řešení tohoto konfliktu: časovač od Arduina. Proč se snažím vytvořit tento časovač místo
Sofistikovaný časovač mlýnku na kávu za 14 $: 6 kroků
Sofistikovaný časovač mlýnku na kávu za 14 $: Tento projekt je pokrokem v mém pokynu pro časovač mlýnku na kávu za 7 $, který jsem zveřejnil před několika lety. Jak čas plyne, roste i potřeba důmyslnějšího mlýnku na kávu. Podobně jako to, co jsem uvedl v minulém Instructable, cílem tohoto
Časovač 555 pro vyslání signálu k přerušení Atmega328: 7 kroků
555 Časovač pro vyslání signálu k přerušení Atmega328: Hlavním cílem tohoto okruhu je úspora energie. Nebudu tedy mluvit o arduinu, protože samotná deska má pro konečný produkt zbytečnou režii. Je to skvělé pro vývoj. Ale není to dobré pro konečné projekty běžící na batt
Jak si vyrobit časovač sami: 10 kroků
Jak si vyrobit časovač sami: Časovače jsou nyní široce používány v mnoha aplikacích, jako je nabíjení elektrického vozidla s ochranou proti časování nabíjení a některé funkční síťové ovladače časování. Jak si tedy vyrobíte časovač?