Spisu treści:

Zegar treningu snu dla dzieci: 6 kroków (ze zdjęciami)
Zegar treningu snu dla dzieci: 6 kroków (ze zdjęciami)

Wideo: Zegar treningu snu dla dzieci: 6 kroków (ze zdjęciami)

Wideo: Zegar treningu snu dla dzieci: 6 kroków (ze zdjęciami)
Wideo: Pogodne ćwiczenia W PODSKOKACH | RYTMIKA DLA DZIECI 2024, Lipiec
Anonim
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci
Zegar treningowy dla dzieci

Potrzebowałem zegara, który pomógłby moim czteroletnim bliźniakom nauczyć się spać trochę dłużej (mam dość wstawania o 5:30 rano w soboty), ale nie potrafią jeszcze odczytać godziny. Po przejrzeniu kilku przedmiotów na bardzo popularnej stronie z zakupami pomyślałem: „Jak trudno byłoby po prostu zrobić jeden?!”

Oto, czego chciałem w tym projekcie. Wykorzystałby kilka diod LED RGB (głównie dlatego, że mam ich około pięćdziesięciu z innego projektu), aby wyświetlić trzy różne kolory. Czerwony oznaczałby powrót do snu, jest za wcześnie, by się obudzić. Żółty oznaczałby, że mogą wstać i cicho bawić się w swoim pokoju. Zielony oczywiście oznacza, że możesz wstać. Chciałem też mieć możliwość dostosowania czasu, ponieważ chciałbym spać dłużej w niektóre dni (weekendy/święta vs. dni powszednie itp.).

Kieszonkowe dzieci

Raspberry Pi Zero W

Dwie diody LED RGB

Sześć rezystorów 220 Ohm

Pliki (.stl, python, html) znalezione tutaj

Różne małe śrubki, druty i małe części w razie potrzeby.

Krok 1: Drukowanie 3D

drukowanie 3d
drukowanie 3d
drukowanie 3d
drukowanie 3d
drukowanie 3d
drukowanie 3d

Moja córka naprawdę lubi jednorożce, więc w tym projekcie zremiksowałem Unicorn Nightlight Riven02, który jest remiksem Unicorn Trophy Apachcreation, który można znaleźć na Thingiverse.com i używać na licencji Creative Commons Non-Commercial. Zmodyfikowałem podstawę jednorożca, aby pasował do kabla zasilającego do raspberry pi zero. Tak się złożyło, że leżało trochę AMZ3D Red PLA, więc podstawa i głowa jednorożca będą czerwone. Do klaksonu użyłem przezroczystego/przezroczystego PLA. Pliki.stl i ustawienia, których użyłem to:

Jednorożec.stl

  • Wysokość warstwy: 0,02
  • Grubość ścianki: 0,8
  • Liczba linii ściany: 2
  • Wypełnienie: 15%
  • Wzór wypełnienia: siatka

UnicornBase.stl

  • Wysokość warstwy: 0,02
  • Grubość ścianki: 0,8
  • Liczba linii ściany: 2
  • Wypełnienie: 15%
  • Wzór wypełnienia: siatka

Horn.stl

  • Wysokość warstwy: 0,02
  • Grubość ścianki: 0,8
  • Liczba linii ściany: 3
  • Wypełnienie: 0

Krok 2: Obwód

Obwód
Obwód
Obwód
Obwód
Obwód
Obwód

Obwód jest dość łatwy. Wybrałem sześć różnych pinów GPIO do sterowania włączaniem/wyłączaniem różnych kolorów RGB. Te piny i odpowiadające im kolory LED to:

  • Pin 11 do RGB 1 CZERWONY
  • Pin 13 do RGB 1 ZIELONY
  • Pin 15 do RGB 1 NIEBIESKI
  • Pin 16 do RGB 2 CZERWONY
  • Pin 18 do RGB 2 ZIELONY
  • Pin 36 do RGB 2 NIEBIESKI
  • Pin 39 do uziemienia

Każdy pin jest podłączony do rezystora przez rezystor ograniczający prąd 220 omów (oczywiście z wyjątkiem masy). Rezystor wlutowałem w linię i pokryłem rurką termokurczliwą.

Krok 3: Przygotowanie Raspberry Pi

Chciałem mieć możliwość ustawienia czasu zegara trenera snu za pomocą interfejsu internetowego. Musiałem więc skonfigurować serwer Apache i PHP na Raspberry Pi. Pierwszą rzeczą, którą powinieneś zawsze zrobić podczas instalowania nowego oprogramowania na Raspberry Pi, jest upewnienie się, że jest ono aktualne, wpisując:

aktualizacja sudo apt-get

Po tym możemy naprawdę zabrać się do pracy. Zrobimy to, instalując Apache2:

sudo apt-get zainstaluj apache2 -y

powinno to zainstalować serwer WWW Apache. Możesz to przetestować za pomocą przeglądarki na Raspberry pi i przechodząc do:

hostlokalny/

lub przechodząc z przeglądarki innego komputera na adres IP Raspberry Pi. Aby znaleźć swój adres IP, wpisz:

nazwa hosta -I

Wykonanie tych czynności doprowadzi do domyślnej strony serwera WWW Apache. Można to zmienić zastępując index.html znajdujący się w katalogu /var/www/html/. Można go zastąpić moim własnym plikiem index.html.

Następnie skonfigurujemy serwer WWW Apache, aby móc uruchamiać pliki PHP. Zacznij od wpisania:

sudo apt-get zainstaluj php libapache2-mod-php -y

powinieneś być teraz w stanie umieścić plik sleepset.php w /var/www/html razem z plikiem index.html.

Aby przejść do tej strony we własnej sieci, musisz skonfigurować Raspberry Pi ze statycznym adresem IP (lub możesz po prostu spróbować ustalić nowy adres IP, gdy twoja sieć odnawia się od czasu do czasu). Aby to zadziałało, musisz edytować kilka plików. Musisz edytować plik /etc/dhcpcd.conf w następujący sposób:

interfejs wlan0

statyczny adres_ip=192.168.1.routery statyczne=192.168.1.1 statyczny serwer_nazw_domeny=192.168.1.1

Zastąp informacjami o swojej sieci. Jedyne, co musisz teraz zrobić, to zrestartować komputer.

ponowne uruchomienie sudo

Umieszczenie plików z linku do Dysku Google powinno wyglądać następująco:

  • index.html i sleepset.php należy umieścić w katalogu /var/www/html
  • sleepset.txt i sleeptrainer1_1.py należy umieścić w katalogu /home/pi/pythoncode (wskazówka: będziesz musiał utworzyć ten katalog)

Po umieszczeniu tych plików we właściwym katalogu, plik rc.local musi zostać zmodyfikowany, aby uruchomić program sleeptrainer1_1.py podczas uruchamiania. Aby zmodyfikować plik rc.local, będziesz potrzebować dostępu na poziomie root, więc wpisz:

sudo nano /etc/rc.local

W edytorze przewiń w dół i tuż przed linią wyjścia 0 dodaj:

python /home/pi/pythoncode/sleeptrainer1_1.py &

Należy tutaj pamiętać o dwóch rzeczach:

  1. Użyj bezwzględnej ścieżki do pliku, aby LINUX nie myślał, że plik sleeptraner1_1.py znajduje się w tym samym katalogu co rc.local.
  2. Nie zapomnij o znaku & (&) na końcu. pozwoli to LINUXowi na uruchomienie tego pliku w tle i kontynuowanie uruchamiania.

Teraz zapisz plik, wpisując ctrl-x, a następnie y, gdy pojawi się monit o zapisanie, a następnie ENTER.

Następnie wpisz sudo reboot.

W tym miejscu należy wspomnieć, że (co najmniej) należy zmienić hasło do Raspberry Pi za pomocą polecenia passwd. Jeśli jeszcze tego nie zrobiłeś, teraz byłby dobry moment.

Krok 4: Kodeks

Poniżej znajduje się kod z pliku sleeptrainer1_1.py. Użyłem obiektu datetime do porównania czasów z odczytanymi w pliku sleepset.txt. Plik tekstowy to po prostu dwie linie, pierwsza godzina, druga minuta. sleeptrainer1_1.py śpi przez jedną minutę między iteracjami pętli, aby nie blokować procesora. Zielone światło początkowo wychodziło zbyt jasno, więc użyłem modulacji szerokości impulsu, aby je przyciemnić, gdy użyłem czerwonego, aby uzyskać żółty.

Kod w Pythonie:

importuj RPi. GPIO jako GPIO

from datetime import datetime as dt import time GPIO.setmode(GPIO. BOARD) GPIO.setwarnings(False) red1 = 11 red2 = 16 green1 = 13 green2 = 18 blue1 = 15 blue2 = 36 GPIO.setup(red1, GPIO. OUT) GPIO.setup(red2, GPIO. OUT) GPIO.setup(green1, GPIO. OUT) GPIO.setup(green2, GPIO. OUT) GPIO.setup(blue1, GPIO. OUT) GPIO.setup(blue2, GPIO. OUT) p1 = GPIO. PWM(zielony1, 100) p2 = GPIO. PWM(zielony2, 100) def readset(): setfile = open("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile. readline() b = setfile.readline() a = int(a) b = int(b) return a, b def ledlight(color): if (color == "red"): GPIO.output(red1, GPIO. HIGH) GPIO.output(red2, GPIO. HIGH) p1.stop() p2.stop() GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) elif (kolor == "niebieski"): GPIO.output(czerwony1, GPIO. LOW) GPIO.output(czerwony2, GPIO. LOW) p1.stop() p2.stop() GPIO.output(niebieski1, GPIO. HIGH) GPIO.output(niebieski2, GPIO. HIGH) elif (kolor == "zielony"): GPIO.output(red1, GPIO. LOW) GPIO.output(red2, GPIO. LOW) p1.start(100) p2.start(100) GPIO.output(blue1, GPIO. LOW) GPIO.output(niebieski2, GPIO. LOW) elif (kolor == "żółty"): p1.start(60) p2.start(60) GPIO.output(czerwony1, GPIO. HIGH) GPIO.output (czerwony2, GPIO. HIGH) GPIO.output(niebieski1, GPIO. LOW) GPIO.output(niebieski2, GPIO. LOW) elif (kolor == "off"): GPIO.output(czerwony1, GPIO. LOW) GPIO.output (czerwony2, GPIO. LOW) GPIO.output(niebieski1, GPIO. LOW) GPIO.output(niebieski2, GPIO. LOW) p1.stop() p2.stop() while True: settime = readset() godzina, minuta = settime if minuta == 0: if dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina-2) < dt.now() < dt(dt.now(.rok, dt.now().miesiąc, dt.now().dzień, godzina-1, minuta+30): ledlight("czerwony") elif dt(dt.now().year, dt.now().miesiąc, dt.now().dzień, godzina-1, minuta+30) < dt.now() < dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina, minuta): ledlight("żółty") elif dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina, minuta) < dt.now() < dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina+1, minuta): ledlight("zielony") else: ledlight("off") elif dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, ho ur-2) < dt.now() < dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina, minuta-30): ledlight("czerwony") elif dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina, minuta-30) < dt.now() < dt(dt.now().rok, dt.now().month, dt.now().day, hour, minute): ledlight("żółty") elif dt(dt.now().year, dt.now().month, dt.now().dzień, godzina, minuta) < dt.now() < dt(dt.now().rok, dt.now().miesiąc, dt.now().dzień, godzina+1, minuta): ledlight("zielony") else: ledlight("off") time.sleep(60)

Plik index.html jest podstawowym formularzem zaprojektowanym w HTML. Pobiera zawartość dwóch pól tekstowych i przekazuje je do pliku sleepset.php w celu obsługi formularzy. Plik PHP po prostu nadpisuje plik sleepset.txt zaktualizowanymi danymi.

Krok 5: Składanie wszystkiego razem

Kładąc wszystko razem
Kładąc wszystko razem
Kładąc wszystko razem
Kładąc wszystko razem
Kładąc wszystko razem
Kładąc wszystko razem

Po zakończeniu kodowania i wydrukowaniu wszystkich części nadszedł czas na montaż. Postępowałem zgodnie z następującymi krokami, aby złożyć to wszystko razem:

  1. Wywierć dwa małe otwory wielkości diod LED RGB w dolnej części tuby i umieść diody LED w tych otworach.
  2. Włóż róg do otworu w głowie jednorożca i przeciągnij go, aż będzie szczelny. Użyj kleju od wewnątrz, aby zabezpieczyć klakson.
  3. Przymocuj Raspberry Pi Zero W do wnętrza głowy jednorożca. (przy użyciu pistoletu do klejenia na gorąco Maybe)
  4. Przymocuj głowę jednorożca do podstawy jednorożca.
  5. Podłącz przewód zasilający i przymocuj cały zestaw do ściany.
  6. Podłącz zegar.

W tym momencie mam działający Zegar Trenera Snu Dzieci.

Krok 6: Rok później…

Rok później …
Rok później …

Rok później:

Moje dziewczynki śpią trochę dłużej. Przyzwyczailiśmy się, że małe dzieci w naszym pokoju budzą się i mówią: „Tato, światło jest zielone”. i to jest świetne. Krótko mówiąc, budzimy się dopiero o 5:30 w sobotę, kiedy już to planujemy.

Rzeczy, które planuję poprawić w przyszłości:

  • Może dodanie czujników lub innych elementów, takich jak mikrofon i głośniki.
  • Może zmodyfikuj kod, aby działał z głośnikiem, który będzie używany jako budzik, ponieważ moje dzieci niedługo zaczną chodzić do szkoły.

Zalecana: