Obsah:

Hodiny na spánok detí: 6 krokov (s obrázkami)
Hodiny na spánok detí: 6 krokov (s obrázkami)

Video: Hodiny na spánok detí: 6 krokov (s obrázkami)

Video: Hodiny na spánok detí: 6 krokov (s obrázkami)
Video: 6 kroků jak zrychlit běh 2024, November
Anonim
Tréningové hodiny pre deti
Tréningové hodiny pre deti
Tréningové hodiny pre deti
Tréningové hodiny pre deti
Tréningové hodiny pre deti
Tréningové hodiny pre deti
Tréningové hodiny pre deti
Tréningové hodiny pre deti

Potreboval som hodiny, ktoré by pomohli mojim 4 -ročným dvojčatám naučiť sa zaspať o niečo dlhšie (už mám dosť toho, že som sa musel v sobotu zobudiť o 5:30 ráno), ale ešte nevedia čítať čas. Po prelistovaní niekoľkých položiek na veľmi obľúbenom nákupnom webe som si pomyslel: „Ako ťažké by bolo vyrobiť si jeden ?!“

Tu je to, čo som si myslel, že v tomto projekte chcem. Na zobrazenie troch rôznych farieb by to použilo niektoré RGB LED diódy (väčšinou preto, že ich mám asi päťdesiat z iného projektu). Červená by znamenala vrátiť sa spať, na vstávanie je ešte priskoro. Žltá by znamenala, že môžu vstať a ticho sa hrať vo svojej izbe. Zelená, samozrejme, znamená, že môžete vstať. Tiež som chcel byť schopný prispôsobiť čas, pretože niektoré dni by som rád spal dlhšie (víkendy/prázdniny vs všedné dni a podobne).

Zásoby

Raspberry Pi Zero W

Dve RGB LED diódy

Šesť rezistorov 220 ohmov

Tu sa nachádzajú súbory (.stl, python, html)

Podľa potreby rôzne malé skrutky, drôty a malé diely.

Krok 1: 3D tlač

3D tlač
3D tlač
3D tlač
3D tlač
3D tlač
3D tlač

Moja dcéra má veľmi rada jednorožce, a preto som pre tento projekt remixoval Unicorn Nightlight od Riven02, ktorý je remixom hry Unicorn Trophy od Apachcreation, ktorú nájdete na Thingiverse.com a používa sa pod licenciou Creative Commons Non-Commercial. Základňu jednorožca som upravil tak, aby zodpovedala napájaciemu káblu pre malinu pi nula. Náhodou som okolo položil nejaký AMZ3D Red PLA, takže základňa a hlava jednorožca budú červené. Na klaksón som použil číry/priesvitný PLA. Použité súbory a nastavenia.stl sú:

Unicorn.stl

  • Výška vrstvy: 0,02
  • Hrúbka steny:.8
  • Počet liniek na stene: 2
  • Výplň: 15%
  • Vzor výplne: Mriežka

UnicornBase.stl

  • Výška vrstvy: 0,02
  • Hrúbka steny:.8
  • Počet liniek na stene: 2
  • Výplň: 15%
  • Vzor výplne: Mriežka

Horn.stl

  • Výška vrstvy: 0,02
  • Hrúbka steny: 0,8
  • Počet liniek na stene: 3
  • Výplň: 0

Krok 2: Okruh

Okruh
Okruh
Okruh
Okruh
Okruh
Okruh

Okruh je celkom ľahký. Vybral som šesť rôznych pinov GPIO na ovládanie zapnutia/vypnutia pre rôzne farby RGB. Tieto kolíky a zodpovedajúce farby LED sú:

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

Každý kolík je pripojený k odporu prostredníctvom odporu obmedzujúceho prúd 220 ohmov (s výnimkou zeme, samozrejme.) Odpájal som odpor v rade a zakryl ho zmršťovacou trubicou.

Krok 3: Príprava Raspberry Pi

Chcel som mať možnosť nastaviť časy pre hodiny trénera spánku pomocou webového rozhrania. Potreboval som teda nastaviť server Apache a PHP na Raspberry Pi. Prvá vec, ktorú by ste mali vždy urobiť pri inštalácii nového softvéru na Raspberry Pi, je uistiť sa, že je aktuálny, zadaním:

sudo apt-get aktualizácia

Potom sa môžeme skutočne pustiť do práce. Urobíme to inštaláciou Apache2:

sudo apt -get install apache2 -y

toto by malo nainštalovať webový server Apache. Môžete to otestovať pomocou prehliadača na Raspberry pi a navigáciou na:

localhost/

alebo navigáciou z prehliadača iného počítača na ip adresu vášho Raspberry Pi. Ak chcete nájsť typ svojej ip adresy:

názov hostiteľa -I

Ich vykonaním sa dostanete na predvolenú stránku webového servera Apache. Toto je možné zmeniť nahradením index.html umiestneného v adresári/var/www/html/. Je možné ho nahradiť vlastným súborom index.html.

Ďalej nastavíme webový server Apache, aby mohol spúšťať súbory PHP. Začnite zadaním:

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

Teraz by ste mali byť schopní umiestniť súbor sleepset.php do súboru/var/www/html so súborom index.html.

Aby ste sa mohli na túto stránku dostať vo svojej vlastnej sieti, musíte svojmu Raspberry Pi nastaviť statickú adresu IP (alebo sa môžete pokúsiť zistiť novú adresu IP, keď ju sieť občas obnoví). Aby to fungovalo, budete musieť upraviť niekoľko súborov. Súbor /etc/dhcpcd.conf budete musieť upraviť nasledovne:

rozhranie wlan0

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

Nahraďte informáciami o svojej sieti. Jediná vec, ktorú musíte teraz urobiť, je reštartovať počítač.

sudo reštart

Umiestnenie súborov z odkazu na disk Google by malo byť nasledovné:

  • index.html a sleepset.php by mali byť umiestnené v adresári/var/www/html
  • sleepset.txt a sleeptrainer1_1.py by mali byť umiestnené v adresári/home/pi/pythoncode (rada: tento adresár budete musieť vytvoriť)

Po umiestnení týchto súborov do správneho adresára je potrebné súbor rc.local upraviť tak, aby pri spustení bežal program sleeptrainer1_1.py. Na úpravu súboru rc.local budete potrebovať prístup na koreňovej úrovni, zadajte teda:

sudo nano /etc/rc.local

V editore posuňte zobrazenie nadol a tesne pred riadok ukončenia 0 zadajte:

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

Tu si treba zapamätať dve veci:

  1. Použite absolútnu cestu k súboru, aby si LINUX nemyslel, že súbor sleeptraner1_1.py je umiestnený v rovnakom adresári ako rc.local.
  2. Nezabudnite na znak ampersand (&) na konci. to umožní LINUXU spustiť tento súbor na pozadí a pokračovať v zavádzaní.

Teraz uložte súbor zadaním ctrl-x a potom y po zobrazení výzvy na uloženie a potom klávesu ENTER.

Potom zadajte príkaz sudo reboot.

Tu niekde musí byť uvedené, že (minimálne) by ste si mali zmeniť heslo k Raspberry Pi pomocou príkazu passwd. Ak ste to ešte neurobili, teraz by bolo načase.

Krok 4: Kód

Nasleduje kód zo súboru sleeptrainer1_1.py. Na porovnanie časov s časmi načítanými v súbore sleepset.txt som použil objekt datetime. Textový súbor sú jednoducho dva riadky, prvý na hodinu, druhý na minútu. sleeptrainer1_1.py spí jednu minútu medzi iteráciami slučky, aby sa nezaviazal procesor. Zelené svetlo pôvodne vychádzalo príliš jasne, takže som použil moduláciu šírky impulzu, aby som ho stlmil, keď sa použil červený na žltý.

Python kód:

importujte RPi. GPIO ako 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. VYSOKÉ) elif (farba == "zelená"): 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 (farba == "žltá"): 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, minúta = vyrovnanie if minute == 0: if dt (dt.now (). year, dt.now (). month, dt.now (). day, hour-2) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina-1, minúta+30): ledlight („červená“) elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina-1, minúta+30) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now ().deň, hodina, minúta): ledlight („žltá“) elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina+1, minúta): ledlight ("zelená") else: ledlight ("off") elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, ho ur-2) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta-30): ledlight ("červená") elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta-30) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta): ledlight („žltá“) elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina+1, minúta): ledlight („zelená“) else: ledlight („vypnuté“) time.sleep (60)

Súbor index.html je základný formulár navrhnutý v HTML. Prevezme obsah dvoch textových polí a odošle ich do súboru sleepset.php na spracovanie formulárov. Súbor PHP jednoducho prepíše súbor sleepset.txt aktualizovanými údajmi.

Krok 5: Dajte to všetko dohromady

Dávať to všetko dokopy
Dávať to všetko dokopy
Dávať to všetko dokopy
Dávať to všetko dokopy
Dávať to všetko dokopy
Dávať to všetko dokopy

Keď je kódovanie dokončené a všetky diely sú vytlačené, je čas na montáž. Pri zostavovaní všetkého som postupoval podľa týchto krokov:

  1. Vyvŕtajte dva malé otvory veľkosti RGB LED do spodnej časti rohu a vložte do nich diódy LED.
  2. Vložte roh do otvoru v hlave jednorožca a ťahajte ním, kým nie je tesný. Na zaistenie rohu použite lepidlo zvnútra.
  3. Pripojte Raspberry Pi Zero W k vnútornej strane hlavy jednorožca. (Možno použitie horúcej lepiacej pištole)
  4. Pripevnite hlavu jednorožca k základni jednorožca.
  5. Pripojte napájací kábel a pripevnite celú zostavu k stene.
  6. Pripojte hodiny.

V tomto mieste mám funkčné hodiny detského trénera spánku.

Krok 6: O rok neskôr…

O jeden rok neskor …
O jeden rok neskor …

O jeden rok neskor:

Moje dievčatá chvíľu spia. Zvykli sme si na prebúdzanie malých detí v našej izbe so slovami: „Oci, svetlo je zelené“. a to je skvelé. Stručne povedané, vstávame iba o 5:30 v sobotu, keď to už plánujeme.

Veci, ktoré plánujem v budúcnosti zlepšiť:

  • Možno je potrebné pridať nejaké senzory alebo iné položky, ako napríklad mikrofón a reproduktory.
  • Možno upravíte kód tak, aby fungoval s reproduktorom a slúžil ako budík, pretože moje deti čoskoro začnú chodiť do školy.

Odporúča: