Spisu treści:
- Krok 1: Wideo interakcji
- Krok 2: Stwierdzenie problemu
- Krok 3: Przegląd, jak to działa
- Krok 4: Lista materiałów i narzędzi
- Krok 5: Zacznij budować z deską do krojenia chleba
- Krok 6: Uruchamianie kodu
- Krok 7: Wykończenie szlifów
Wideo: Zegar w pokoju do nauki: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Instrukcje tworzenia timera do gabinetu.
Krok 1: Wideo interakcji
drive.google.com/file/d/12z5zQR52AXILX2AGb3EplfbmZWANZiCl/view?usp=drivesdk
Krok 2: Stwierdzenie problemu
W większości przypadków pokoje do nauki są zawsze zajęte. Dzieje się tak, ponieważ ludzie lubią przebywać w pokoju znacznie dłużej niż potrzebują. Zaprojektowaliśmy timer, który pozwala każdej osobie łącznie na 2 godziny, a osobom oczekującym możliwość zgłoszenia pokoju do następnej grupy. Użycie RGB w Neopikselach wykaże ilość czasu, jaka pozostała.
Krok 3: Przegląd, jak to działa
Timer składa się z części wyciętych przez wycinarkę laserową, 3 przycisków, 1 diody LED, 1 potencjometru.
Neopiksele i potencjometr są podłączone do NodeMCU. NodeMCU jest zaprogramowane tak, aby regonizować, jak daleko potencjometr jest obrócony, aby zmienić ilość diod LED, które świecą na okrągłym pasku Neopixel. Przycisk Żądaj zatrzymuje działanie funkcji Start, Stop i Ustaw godzinę. Kolor diod na zegarze w pomieszczeniu jest taki sam, jak dioda zapalona z boku pudełka. Neopiksel z boku pudełka reprezentuje wyświetlacz w holu budynku, aby wiedzieć, które miejsce jest zajęte i ile czasu pozostało. Dla każdego pomieszczenia przypisane są 2 diody LED, jedna dioda wskazuje, czy pokój jest zajęty, a druga dioda odzwierciedla kolor diod na zegarze (zielona oznacza więcej czasu, następnie żółta, a następnie czerwona krócej).
Krok 4: Lista materiałów i narzędzi
-Czysty akryl
-Kabel MicroUSB
www.digikey.com/product-detail/en/stewart-…
-Płytka do krojenia chleba
www.amazon.com/gp/product/B01EV6LJ7G/ref=o…
-Potencjometr
www.alliedelec.com/honeywell-380c32500/701…
-3 przyciski
www.digikey.com/product-detail/en/te-conne…
-NodeMCU
www.amazon.com/gp/product/B07CB4P2XY/ref=o…
-2 paski neopikselowe
www.amazon.com/Moduły-oświetleniowe-NeoPixel-W…
-Rezystory
www.digikey.com/product-detail/en/te-conne…
- Przewody
www.digikey.com/product-detail/en/sparkfun…
-1 LED
www.mouser.com/ProductDetail/Cree-Inc/C512…
-Pistolet na gorący klej
www.walmart.com/ip/AdTech-Hi-Temp-Mini-Hot…
-Lepkie paski na rzepy
www.amazon.com/VELCRO-Brand-90076-Zapięcie…
Krok 5: Zacznij budować z deską do krojenia chleba
A0 do środkowego pinu na potencjometrze
Vin to Power na pierścieniu Neopixel
3v3 z jednej strony potencjometru
Wszystkie podstawy do uziemienia na NodeMCU
D1 do przycisku żądania
D2 do diody LED żądania
D3 do przycisku Start
D4 do przycisku zatrzymania
D5 do rezystora do wejścia Neopixel na pierścieniu
D6 do rezystora do paska wejściowego Neopixel
Krok 6: Uruchamianie kodu
To jest kod do upewnienia się, że Twój projekt działa do tej pory. Licznik powinien wynosić tylko kilka sekund na diodę LED na pierścieniu Neopixel. Kiedy już wiesz, że wszystko działa do tego momentu, wszystko, co musisz zrobić, to zmienić czas, jeśli poniższe oświadczenia na określony zakres. Umieszczę '#Change time' na każdym z oświadczeń, które musisz zmienić ze względu na przydzielony czas.
Wypróbowanie kodu:
importuj utime
czas importu
z maszyny import ADC
importuj maszynę
importuj neopiksel
adc = ADC(0)
pin = maszyna. Pin(14, maszyna. Pin. OUT)
np = neopiksel. NeoPixel(pin, 12)
pin2 = maszyna. Pin(12, maszyna. Pin. OUT)
np2 = neopiksel. NeoPixel(pin2, 8)
l1 = maszyna. Pin(4, maszyna. Pin. OUT)
b1 = maszyna. Pin(5, maszyna. Pin. IN, maszyna. Pin. PULL_UP)
b3 = maszyna. Pin(2, maszyna. Pin. IN, maszyna. Pin. PULL_UP)
b2 = maszyna. Pin(0, maszyna. Pin. IN, maszyna. Pin. PULL_UP)
l1.wartość(0)
def tglled(): # włącz funkcję LED „żądanie”
jeśli l1.wartość() == 0:
l1.wartość(1)
w przeciwnym razie:
l1.wartość(0)
x = 0
b1temp1 = 0
b1temp2 = 0
t = 0
b2temp1 = 0
b2temp2 = 0
b3temp1 = 0
b3temp2 = 0
s = 0
podczas gdy prawda:
# To jest przycisk, który przełącza diodę „żądanie”
b1temp2 = b1.wartość()
jeśli b1temp1 a nie b1temp2:
tglled()
czas.snu(0.05)
b1temp1 = b1temp2
# To jest siatka
np2[0] = np[11]
jeśli l1.wartość() == 1:
np2[1] = (30, 0, 0)
w przeciwnym razie:
np2[1] = (0, 0, 30)
np2.zapis()
# Tutaj wybieramy ile czasu potrzebujemy
jeśli t == 0:
dla i w zakresie (-1, 12):
jeśli (l1.wartość() == 0):
if (adc.read() >= (85,34 * (i+1))):
np = (0, 0, 0)
np[11] = (0, 0, 30)
s = (i + 1)
w przeciwnym razie:
np = (0, 0, 30)
np. zapis()
w przeciwnym razie:
np = (0, 0, 0)
np. zapis()
# To jest przycisk do uruchomienia timera
if (l1.value() == 0) i (t == 0):
b2temp2 = b2.wartość()
jeśli b2temp1 a nie b2temp2:
x += 1
t += (s * 100)
czas.snu(0.05)
b2temp1 = b2temp2
# Ten przycisk kończy odliczanie
jeśli (l1.wartość() == 0):
b3temp2 = b3.wartość()
jeśli b3temp1 a nie b3temp2:
x = 0
t = 0
czas.snu(0.05)
b3temp1 = b3temp2
# To jest minutnik
jeśli x > 0:
t += 1
jeśli (t > 0) i (t <= 100): #Czas zmiany
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. zapis()
jeśli (t > 100) i (t <= 200): #Czas zmiany
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. zapis()
jeśli (t > 200) i (t <= 300): #Czas zmiany
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. zapis()
jeśli (t > 300) i (t <= 400): #Czas zmiany
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. zapis()
jeśli (t > 400) i (t <= 500): #Czas zmiany
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. zapis()
jeśli (t > 500) i (t <= 600): #Czas zmiany
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. zapis()
jeśli (t > 600) i (t <= 700): #Czas zmiany
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. zapis()
jeśli (t > 700) i (t <= 800): #Czas zmiany
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. zapis()
jeśli (t > 800) i (t <= 900): #Czas zmiany
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. zapis()
jeśli (t > 900) i (t <= 1000): #Czas zmiany
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. zapis()
jeśli (t > 1000) i (t <= 1100): #Czas zmiany
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. zapis()
jeśli (t > 1100) i (t <= 1200): #Czas zmiany
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. zapis()
jeśli t >= 1300: #Czas zmiany
t = 0
x = 0
Krok 7: Wykończenie szlifów
Teraz, gdy jesteś już tak daleko, powinieneś mieć wgrany kod roboczy do NodeMCU i wszystkie części podłączone do płytki prototypowej. Po wypróbowaniu kodu i wycięciu dowolnych elementów, które posiadasz na zewnątrz, tj. Obudowę wycinaną laserowo, możesz teraz przylutować przewody do NodeMCU. Lutowanie jest opcjonalne, ale może sprawić, że będzie ono bezpieczniejsze i mniejsze dla Twojej obudowy. Oto niektóre z wyciętych laserowo części, które wykonaliśmy.
Zalecana:
Dowiedz się, kiedy ktoś wszedł do pokoju za pomocą czujnika radarowego Xyc-wb-dc: 7 kroków
Dowiedz się, kiedy ktoś wszedł do pokoju za pomocą czujnika radarowego Xyc-wb-dc: W tym samouczku dowiemy się, jak dowiedzieć się, kiedy ktoś wszedł do pokoju za pomocą modułu RTC, czujnika radarowego xyc-wb-dc, wyświetlacza OLED i arduino. film demonstracyjny
Zegar WiFi, zegar i stacja pogodowa, sterowanie Blynk: 5 kroków (ze zdjęciami)
Zegar WiFi, timer i stacja pogodowa, sterowanie Blynk: jest to zegar cyfrowy Morphing (dzięki Hari Wiguna za koncepcję i kod morfingu), jest to również zegar analogowy, stacja raportowania pogody i minutnik kuchenny. Jest kontrolowany w całości przez Aplikacja Blynk na smartfonie przez Wi-Fi.Aplikacja umożliwia
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
Zegar elektroniczny C51 4 bity - Drewniany zegar: 15 kroków (ze zdjęciami)
C51 4-bitowy zegar elektroniczny - drewniany zegar: W ten weekend miałem trochę wolnego czasu, więc poszedłem dalej i zmontowałem ten 4-bitowy elektroniczny zegar cyfrowy DIY o wartości 2,40 USD, który kupiłem jakiś czas temu od AliExpress
Konwertuj zwykły zegar domowy na samoświecący zegar: 8 kroków (ze zdjęciami)
Konwertuj zwykły zegar domowy na świecący zegar: NAJPIERW SERDECZNIE DZIĘKUJĘ ZESPÓŁ INSTRUKCJI, ABY MOJE DNI ODZYSKANIA ZDROWIA BARDZIEJ ODPOWIEDZIALNE ….. W tej instrukcji chcę podzielić się z wami, jak przekonwertować zwykły zegar w domu w samoświecący się zegar.>> Za to