Obsah:

Hodiny pro trénink spánku dětí: 6 kroků (s obrázky)
Hodiny pro trénink spánku dětí: 6 kroků (s obrázky)

Video: Hodiny pro trénink spánku dětí: 6 kroků (s obrázky)

Video: Hodiny pro trénink spánku dětí: 6 kroků (s obrázky)
Video: Arianka není rozmazlený dítě! Je jenom perfekcionista 🥺 2024, Červenec
Anonim
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí
Hodiny pro trénink spánku dětí

Potřeboval jsem hodiny, které by pomohly mým 4letým dvojčatům naučit se spát o něco déle (už jsem měl dost toho, že jsem se musel v sobotu vzbudit v 5:30 ráno), ale ještě neumí číst čas. Po procházení několika položek na velmi oblíbeném nákupním webu jsem si řekl: „Jak těžké by bylo jen jeden vyrobit ?!“

Tady je to, co jsem si myslel, že chci v tomto projektu. K zobrazení tří různých barev by to využilo některé RGB LED diody (většinou proto, že jich mám asi padesát z jiného projektu). Červená by znamenala návrat ke spánku, na probuzení je příliš brzy. Žlutá by znamenala, že mohou vstát a tiše si hrát ve svém pokoji. Zelená samozřejmě znamená, že můžete vstát. Také jsem chtěl mít možnost upravit čas, protože v některé dny bych chtěl spát déle (víkendy/svátky vs všední dny a podobně).

Zásoby

Raspberry Pi Zero W

Dvě RGB LED diody

Šest rezistorů 220 ohmů

Zde jsou nalezeny soubory (.stl, python, html)

Různé malé šrouby, dráty a malé části podle potřeby.

Krok 1: 3D tisk

3D tisk
3D tisk
3D tisk
3D tisk
3D tisk
3D tisk

Moje dcera má opravdu ráda jednorožce, takže jsem pro tento projekt remixoval Unicorn Nightlight od Riven02, což je remix hry Unicorn Trophy od Apachcreation, kterou najdete na Thingiverse.com a používáte pod licencí Creative Commons Non-Commercial. Upravil jsem základnu jednorožce tak, aby odpovídala napájecímu kabelu pro malinu pi nula. Náhodou jsem měl kolem sebe nějaké AMZ3D Red PLA, takže základna a hlava jednorožce budou červené. Na roh jsem použil čirý/průsvitný PLA. Soubory a nastavení.stl, které jsem použil, jsou:

Unicorn.stl

  • Výška vrstvy: 0,02
  • Tloušťka stěny:.8
  • Počet linek na zdi: 2
  • Výplň: 15%
  • Vzor výplně: Mřížka

UnicornBase.stl

  • Výška vrstvy: 0,02
  • Tloušťka stěny:.8
  • Počet linek na zdi: 2
  • Výplň: 15%
  • Vzor výplně: Mřížka

Horn.stl

  • Výška vrstvy: 0,02
  • Tloušťka stěny: 0,8
  • Počet linek na zdi: 3
  • Výplň: 0

Krok 2: Okruh

Okruh
Okruh
Okruh
Okruh
Okruh
Okruh

Okruh je docela snadný. Vybral jsem šest různých GPIO pinů pro ovládání zapnutí/vypnutí pro různé barvy RGB. Tyto kolíky a odpovídající barvy LED jsou:

  • Pin 11 na RGB 1 ČERVENÝ
  • Pin 13 na RGB 1 ZELENÝ
  • Pin 15 na RGB 1 MODRÝ
  • Pin 16 na RGB 2 ČERVENÝ
  • Pin 18 na RGB 2 ZELENÝ
  • Pin 36 na RGB 2 MODRÝ
  • Kolík 39 k zemi

Každý kolík je připojen k rezistoru přes odpor omezující proud 220 ohmů (samozřejmě s výjimkou uzemnění.) Odpájel jsem odpor v řadě a zakryl jej smršťovací trubičkou.

Krok 3: Příprava Raspberry Pi

Chtěl jsem mít možnost nastavit časy pro hodiny trenéra spánku pomocí webového rozhraní. Potřeboval jsem tedy nastavit server Apache a PHP na Raspberry Pi. První věc, kterou byste měli při instalaci nového softwaru na Raspberry Pi vždy udělat, je zajistit, aby byl aktuální, zadáním:

sudo apt-get update

Poté se můžeme opravdu pustit do práce. Uděláme to instalací Apache2:

sudo apt -get install apache2 -y

to by mělo nainstalovat webový server Apache. Můžete to vyzkoušet pomocí prohlížeče na Raspberry pi a přejděte na:

localhost/

nebo navigací z prohlížeče jiného počítače na IP adresu vašeho Raspberry Pi. Chcete -li zjistit typ své IP adresy:

název hostitele -I

To povede k výchozí stránce webového serveru Apache. To lze změnit nahrazením index.html umístěného v adresáři/var/www/html/. Lze jej nahradit mým vlastním souborem index.html.

Dále nastavíme webový server Apache, aby mohl spouštět soubory PHP. Začněte zadáním:

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

nyní byste měli být schopni umístit soubor sleepset.php do souboru/var/www/html se souborem index.html.

Abyste mohli přejít na tuto stránku ve své vlastní síti, budete muset nastavit svůj Raspberry Pi se statickou IP adresou (nebo se můžete pokusit zjistit novou IP adresu, když ji vaše síť obnoví tu a tam). Aby to fungovalo, budete muset upravit několik souborů. Budete muset upravit soubor /etc/dhcpcd.conf následujícím způsobem:

rozhraní wlan0

static ip_address = 192.168.1.static routery = 192.168.1.1 static domain_name_servers = 192.168.1.1

Nahraďte informacemi o vaší síti. Jediné, co teď budete muset udělat, je restart.

sudo restart

Umístění souborů z odkazu na disk Google by mělo být následující:

  • index.html a sleepset.php by měly být umístěny v adresáři/var/www/html
  • sleepset.txt a sleeptrainer1_1.py by měly být umístěny v adresáři/home/pi/pythoncode (nápověda: tento adresář budete muset vytvořit)

Po umístění těchto souborů do správného adresáře je třeba soubor rc.local upravit tak, aby při spuštění běžel program sleeptrainer1_1.py. K úpravě souboru rc.local budete potřebovat přístup na úrovni root, zadejte tedy:

sudo nano /etc/rc.local

V editoru přejděte dolů a těsně před řádek 0 exit přidejte:

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

Zde si musíte pamatovat dvě věci:

  1. Použijte absolutní cestu k souboru, aby si LINUX nemyslel, že soubor sleeptraner1_1.py je umístěn ve stejném adresáři jako rc.local.
  2. Na konci nezapomeňte na ampersand (&). to umožní LINUXu spustit tento soubor na pozadí a pokračovat v bootování.

Nyní uložte soubor zadáním ctrl-x a poté y, když budete vyzváni k uložení, a poté ENTER.

Poté zadejte sudo reboot.

Tady někde by mělo být uvedeno, že (minimálně) byste měli změnit heslo pro Raspberry Pi pomocí příkazu passwd. Pokud jste to ještě neudělali, nyní by bylo vhodné.

Krok 4: Kód

Následuje kód ze souboru sleeptrainer1_1.py. Použil jsem objekt datetime k porovnání časů s časy přečtenými v souboru sleepset.txt. Textový soubor jsou jednoduše dva řádky, první na hodinu, druhý na minutu. sleeptrainer1_1.py spí jednu minutu mezi iteracemi smyčky, aby nedošlo k propojení procesoru. Zelené světlo původně vycházelo příliš jasně, takže jsem použil pulzní šířkovou modulaci, abych jej ztlumil, když jsem použil červenou barvu na žlutou.

Python kód:

importujte 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 (green1, 100) p2 = GPIO. PWM (green2, 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 (color == "blue"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1, GPIO. HIGH) GPIO.output (blue2, GPIO. HIGH) elif (color == "green"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (blue1 „GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color ==" žlutá "): p1.start (60) p2.start (60) GPIO.output (red1, GPIO. HIGH) GPIO.output (red2, GPIO. HIGH) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "off"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) p1.stop () p2.stop () while True: osadime = readdset () hodina, minuta = doba klidu if minute == 0: if dt (dt.now (). year, dt.now (). month, dt.now (). day, hour-2) <dt.now () <dt (dt.now ().rok, dt.now (). měsíc, dt.now (). den, hodina-1, minuta+30): ledlight („červená“) elif dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina-1, minuta+30) <dt.now () <dt (dt.now (). rok, dt.now (). měsíc, dt.now ().den, hodina, minuta): ledlight („žlutá“) elif dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina, minuta) <dt.now () <dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina+1, minuta): ledlight ("zelená") else: ledlight ("off") elif dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, ho ur-2) <dt.now () <dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina, minuta-30): ledlight ("červená") elif dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina, minuta-30) <dt.now () <dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina, minuta): ledlight („žlutý“) elif dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina, minuta) <dt.now () <dt (dt.now (). rok, dt.now (). měsíc, dt.now (). den, hodina+1, minuta): ledlight ("zelená") else: ledlight ("vypnuto") time.sleep (60)

Soubor index.html je základní formulář navržený v HTML. Trvá obsah dvou textových polí a předá je do souboru sleepset.php pro zpracování formulářů. Soubor PHP jednoduše přepíše soubor sleepset.txt aktualizovanými daty.

Krok 5: Dát to všechno dohromady

Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady

Po dokončení kódování a vytištění všech částí je čas na montáž. Při sestavování všeho jsem postupoval podle těchto kroků:

  1. Vyvrtejte dva malé otvory o velikosti RGB LED ve spodní části houkačky a do těchto otvorů umístěte LED diody.
  2. Vložte roh do otvoru v hlavě jednorožce a protáhněte jej, dokud nebude těsný. K upevnění houkačky použijte lepidlo zevnitř.
  3. Připojte Raspberry Pi Zero W k vnitřní straně hlavy jednorožce. (Možná použití horké lepicí pistole)
  4. Připojte hlavu jednorožce k základně jednorožce.
  5. Připojte napájecí kabel a připevněte celou sestavu ke zdi.
  6. Zapojte hodiny.

V tuto chvíli mám funkční hodiny dětského trenéra spánku.

Krok 6: O rok později…

O rok později …
O rok později …

O rok později:

Moje dívky spí o něco déle. Zvykli jsme si na probouzení malých dětí v našem pokoji se slovy: „Tati, světlo je zelené.“a to je skvělé. Stručně řečeno, probouzíme se pouze v sobotu v 5:30, když už to plánujeme.

Věci, které plánuji do budoucna zlepšit:

  • Možná přidání některých senzorů nebo jiných položek, jako je mikrofon a reproduktory.
  • Možná upravte kód tak, aby fungoval s reproduktorem a používal ho jako budík, protože moje děti brzy začnou chodit do školy.

Doporučuje: