Obsah:
- Krok 1: Interakčné video
- Krok 2: Vyhlásenie o probléme
- Krok 3: Prehľad toho, ako to funguje
- Krok 4: Zoznam materiálov a nástrojov
- Krok 5: Začnite stavať s doskou
- Krok 6: Spustenie kódu
- Krok 7: Dokončenie dotykov
Video: Časovač študovne: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Návod, ako vytvoriť časovač do študovne.
Krok 1: Interakčné video
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Krok 2: Vyhlásenie o probléme
Väčšinu času sú študovne vždy obsadené. Stáva sa to preto, že ľudia radi zostanú v miestnosti oveľa dlhšie, ako potrebujú. Navrhli sme časovač, ktorý umožní každej osobe celkom 2 hodiny a čakajúcim osobám požiadať, aby sa miestnosť stala ďalšou skupinou. Použitie RGB na Neopixeloch vyjadrí zostávajúci čas.
Krok 3: Prehľad toho, ako to funguje
Časovač sa skladá z častí rezaných laserovou rezačkou, 3 tlačidiel, 1 diódy LED, 1 potenciometra.
Neopixely a potenciometer sú zapojené do NodeMCU. NodeMCU je naprogramovaný tak, aby regonizoval, ako ďaleko je potenciometer otočený, aby sa zmenil počet LED diód, ktoré svietia na kruhovom neopixelovom páse. Tlačidlo Požiadať zastaví funkciu funkcií Štart, Zastaviť a Nastaviť čas. Farba diód LED na časovači v miestnosti je rovnaká ako farba diód LED rozsvietených na boku krabice. Neopixel na bočnej strane škatule predstavuje displej vo vstupnej hale budovy, aby vedel, ktorá izba je obsadená a koľko času ešte zostáva. Pre každú izbu sú predpísané 2 LED diódy, jedna LED dióda predstavuje, či je miestnosť obsadená, a druhá LED dióda odzrkadľuje farbu diód LED na časovači (zelená je viac času, potom žltá, potom červená kratšiu dobu).
Krok 4: Zoznam materiálov a nástrojov
-čistý akryl
-Kábel microUSB
www.digikey.com/product-detail/en/stewart-…
-Breadboard
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-potenciometer
www.alliedelec.com/honeywell-380c32500/701…
-3 tlačidlá
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
- 2 neopixelové prúž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…
-Horúca lepiaca pištoľ
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Lepiace pásky na suchý zips
www.amazon.com/VELCRO-Brand-90076-Fastener…
Krok 5: Začnite stavať s doskou
A0 k strednému kolíku na potenciometri
Neopixelový prsteň Vin to Power
3v3 na jednu stranu potenciometra
Všetky dôvody na uzemnenie na NodeMCU
Tlačidlo D1 na vyžiadanie
D2 na vyžiadanie LED
D3 na tlačidlo Štart
D4 na tlačidlo Stop
D5 na odpor k neopixelovému vstupu na krúžku
D6 na odpor k vstupnému prúžku Neopixel
Krok 6: Spustenie kódu
Toto je kód, ktorý zaisťuje, aby váš projekt doteraz fungoval. Časovač by mal byť iba niekoľko sekúnd na jednu diódu LED na neopixelovom krúžku. Akonáhle budete vedieť, že to funguje až do tohto bodu, stačí, ak zmeníte čas, ak príkazy uvedené nižšie na vami určený rozsah. V prípade vyhlásení, ktoré musíte pre svoj časový limit zmeniť, vložím do každého času „#Change time“.
Vyskúšajte kód:
čas importu
čas importu
zo strojového importu ADC
importný stroj
import neopixel
adc = ADC (0)
pin = machine. Pin (14, machine. Pin. OUT)
np = neopixel. NeoPixel (kolík, 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 (): # prepína funkciu LED „požiadavky“
ak l1.value () == 0:
l1.hodnota (1)
inak:
l1.hodnota (0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
kým je pravda:
# Toto je tlačidlo, ktoré prepína LED „požiadavka“
b1temp2 = b1.value ()
ak b1temp1 a nie b1temp2:
tglled ()
time.sleep (0,05)
b1temp1 = b1temp2
# Toto je mriežka
np2 [0] = np [11]
ak l1.hodnota () == 1:
np2 [1] = (30, 0, 0)
inak:
np2 [1] = (0, 0, 30)
np2.write ()
# Tu vyberáme, koľko času potrebujeme
ak t == 0:
pre i v rozsahu (-1, 12):
ak (l1.value () == 0):
if (adc.read ()> = (85,34 * (i+1))):
np = (0, 0, 0)
np [11] = (0, 0, 30)
s = (i + 1)
inak:
np = (0, 0, 30)
np.write ()
inak:
np = (0, 0, 0)
np.write ()
# Toto je tlačidlo na spustenie časovača
ak (l1.hodnota () == 0) a (t == 0):
b2temp2 = b2.value ()
ak b2temp1 a nie b2temp2:
x += 1
t += (s * 100)
time.sleep (0,05)
b2temp1 = b2temp2
# Toto tlačidlo ukončí časovač
ak (l1.value () == 0):
b3temp2 = b3.hodnota ()
ak b3temp1 a nie b3temp2:
x = 0
t = 0
time.sleep (0,05)
b3temp1 = b3temp2
# Toto je časovač
ak x> 0:
t += 1
ak (t> 0) a (t <= 100): #Zmeniť čas
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 ()
ak (t> 100) a (t <= 200): #Čas zmeny
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 ()
ak (t> 200) a (t <= 300): #Čas zmeny
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 ()
ak (t> 300) a (t <= 400): #Čas zmeny
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 ()
ak (t> 400) a (t <= 500): #Čas zmeny
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 ()
ak (t> 500) a (t <= 600): #Čas zmeny
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 ()
ak (t> 600) a (t <= 700): #Čas zmeny
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 ()
ak (t> 700) a (t <= 800): #Čas zmeny
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 ()
ak (t> 800) a (t <= 900): #Čas zmeny
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 ()
ak (t> 900) a (t <= 1000): #Čas zmeny
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 ()
ak (t> 1000) a (t <= 1100): #Čas zmeny
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 ()
ak (t> 1100) a (t <= 1200): #Čas zmeny
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 ()
ak t> = 1300: #Čas zmeny
t = 0
x = 0
Krok 7: Dokončenie dotykov
Keď ste už tak ďaleko, mali by ste mať pracovný kód nahraný na NodeMCU a všetky diely zapojené na doske. Akonáhle vyskúšate kód a odstrihnete všetky kusy, ktoré máte pre exteriér, t.j. laserom rezané puzdro, môžete teraz spájkovať vodiče k NodeMCU. Spájkovanie je voliteľné, ale môže byť bezpečnejšie a menšie pre váš plášť. Tu sú niektoré časti laserom rezané, ktoré sme vyrobili.
Odporúča:
Časovač s Arduino a rotačným kodérom: 5 krokov
Časovač s Arduino a rotačným kodérom: Časovač je nástroj, ktorý sa často používa v priemyselných aj domácich činnostiach. Táto zostava je lacná a ľahko sa vyrába. Je tiež veľmi univerzálna a je schopná načítať program zvolený podľa potrieb. Napísal som niekoľko programov pre Ardui
Časovač domácich úloh vyrobený spoločnosťou Arduino: 5 krokov
Časovač domácich úloh vyrobený spoločnosťou Arduino: Píše vaše dieťa svoje domáce úlohy hodiny? Je vaše dieťa ľahko rozptýlené ostatnými, keď si robí domáce úlohy? Dnes som sa pokúsil urobiť najlepšie riešenie tohto konfliktu: časovač vyrobený spoločnosťou Arduino. Prečo sa pokúšam vytvoriť tento časovač namiesto
Prepracovaný časovač mlynčeka na kávu za 14 dolárov: 6 krokov
Sofistikovaný časovač mlynčeka na kávu za 14 dolárov: Tento projekt je pokrokom v mojom pokyne na spustenie mlynčeka na kávu za 7 dolárov, ktorý som publikoval pred niekoľkými rokmi. S pribúdajúcim časom rastie aj potreba sofistikovanejšieho mlynčeka na kávu. Podobne ako to, čo som uviedol v minulom pokyne, cieľom tohto
555 Časovač na vyslanie signálu na prerušenie Atmega328: 7 krokov
555 Časovač na vyslanie signálu na prerušenie Atmega328: Hlavným cieľom tohto okruhu je úspora energie. Nebudem teda hovoriť o arduine, pretože samotná doska má pre konečný produkt zbytočnú réžiu. Je to skvelé pre vývoj. Nie je to však dobré pre konečné projekty spustené na batt
Ako si vyrobiť časovač sami: 10 krokov
Ako si vyrobiť časovač sami: Časovače sú v súčasnej dobe široko používané v mnohých aplikáciách, ako je napríklad nabíjanie elektrického vozidla s ochranou proti časovaciemu nabíjaniu a niektoré funkčné sieťové regulátory časovania. Ako si teda vyrobíte časovač?