INHOUDSOPGAWE:

Kinderslaapklok: 6 stappe (met foto's)
Kinderslaapklok: 6 stappe (met foto's)

Video: Kinderslaapklok: 6 stappe (met foto's)

Video: Kinderslaapklok: 6 stappe (met foto's)
Video: Waarom heb je helemaal geen 8 uur slaap nodig? 2024, Julie
Anonim
Kinders slaap opleiding klok
Kinders slaap opleiding klok
Kinders slaap opleiding klok
Kinders slaap opleiding klok
Kinders slaap opleiding klok
Kinders slaap opleiding klok
Kinders slaap opleiding klok
Kinders slaap opleiding klok

Ek het 'n horlosie nodig gehad om my 4 -jarige tweeling 'n bietjie langer te leer slaap (ek het genoeg gehad om Saterdae om 17:30 wakker te word), maar hulle kan nog nie tyd lees nie. Nadat ek deur 'n paar items op 'n baie gewilde winkelsentrum geblaai het, het ek gedink: "Hoe moeilik sou dit wees om net een te maak ?!"

So hier is wat ek gedink het ek wou hê in hierdie projek. Dit sal 'n paar RGB -LED's gebruik (meestal omdat ek ongeveer vyftig van 'n ander projek het) om drie verskillende kleure te vertoon. Rooi sou beteken dat jy weer moet slaap, dit is te vroeg om wakker te word. Geel sou beteken dat hulle kan opstaan en rustig in hul kamer kan speel. Groen beteken natuurlik dat jy kan opstaan. Ek wou ook die tyd aanpas, want ek sou sommige dae langer wou slaap (naweke/vakansiedae vs weekdae en so).

Voorrade

Framboos Pi Zero W

Twee RGB LED's

Ses 220 Ohm weerstand

Lêers (.stl, python, html) word hier gevind

Verskeie klein skroewe, drade en klein onderdele soos benodig.

Stap 1: 3D -drukwerk

3D druk
3D druk
3D druk
3D druk
3D druk
3D druk

My dogter is baie lief vir eenhoorns, so vir hierdie projek het ek Riven02 se Unicorn Nightlight, wat 'n remix is van Apachcreation se Unicorn Trophy, weer gemeng, wat op Thingiverse.com gevind kan word en onder 'n Creative Commons-nie-kommersiële lisensie gebruik kan word. Ek het die eenhoringbasis aangepas om 'n netsnoer vir die framboos pi zero te pas. Ek het toevallig 'n paar AMZ3D Rooi PLA gelê, so die eenhoringbasis en kop sal rooi wees. Ek het duidelike/deurskynende PLA vir die horing gebruik. Die.stl lêers en instellings wat ek gebruik het, is:

Unicorn.stl

  • Laaghoogte: 0,02
  • Muurdikte:.8
  • Wall Line telling: 2
  • Aanvulling: 15%
  • Aanvullingspatroon: rooster

UnicornBase.stl

  • Laaghoogte: 0,02
  • Muurdikte:.8
  • Wall Line telling: 2
  • Aanvulling: 15%
  • Aanvullingspatroon: rooster

Horn.stl

  • Laaghoogte: 0,02
  • Muurdikte: 0,8
  • Wall Line telling: 3
  • Invul: 0

Stap 2: Die stroombaan

Die stroombaan
Die stroombaan
Die stroombaan
Die stroombaan
Die stroombaan
Die stroombaan

Die kring is redelik maklik. Ek het ses verskillende GPIO -penne gekies om die aan/uit vir die verskillende kleure van die RGB te beheer. Die penne en die ooreenstemmende LED -kleure is:

  • Speld 11 aan RGB 1 ROOI vas
  • Speld 13 vas aan RGB 1 GROEN
  • Speld 15 vas aan RGB 1 BLOU
  • Speld 16 aan RGB 2 ROOI vas
  • Speld 18 vas aan RGB 2 GROEN
  • Speld 36 aan RGB 2 BLOU
  • Speld 39 aan die grond vas

Elke pen word aan die weerstand gekoppel deur 'n stroombegrensende weerstand van 220 ohm (natuurlik met die uitsondering van grond).

Stap 3: Raspberry Pi -voorbereiding

Ek wou in staat wees om tye vir die slaap afrigter klok stel met behulp van 'n web -koppelvlak. Ek moes dus 'n Apache- en PHP -bediener op die Raspberry Pi opstel. Die eerste ding wat u altyd moet doen wanneer u nuwe sagteware op 'n Raspberry Pi installeer, is om seker te maak dat dit op datum is deur te tik:

sudo apt-get update

Daarna kan ons regtig aan die gang kom. Ons sal dit doen deur Apache2 te installeer:

sudo apt -get install apache2 -y

dit moet die Apache -webbediener installeer. U kan dit toets deur 'n blaaier op die Raspberry pi te gebruik en na:

localhost/

of deur van die blaaier van 'n ander rekenaar na die IP -adres van u Raspberry Pi te gaan. Soek u ip -adres:

gasheernaam -I

As u dit doen, sal dit lei tot 'n standaard Apache -webbedienerbladsy. Dit kan verander word deur index.html in die/var/www/html/gids te vervang. Dit kan vervang word met my eie index.html lêer.

Vervolgens stel ons die Apache -webbediener op om PHP -lêers te kan uitvoer. Begin deur te tik:

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

jy behoort nou die sleepset.php -lêer in die/var/www/html met die index.html -lêer te kan plaas.

Om na hierdie bladsy in u eie netwerk te gaan, moet u u Raspberry Pi opstel met 'n statiese ip -adres (of u kan probeer om die nuwe ip -adres uit te vind wanneer u netwerk dit nou en dan hernu). U moet 'n paar lêers wysig sodat dit kan werk. U moet die /etc/dhcpcd.conf -lêer wysig met die volgende:

koppelvlak wlan0

statiese ip_address = 192.168.1.static routers = 192.168.1.1 static domain_name_servers = 192.168.1.1

Vervang deur u netwerkinligting. Die enigste ding wat u nou moet doen, is om weer te begin.

sudo herlaai

Die plasing van die lêers vanaf die Google Drive -skakel moet soos volg wees:

  • index.html en sleepset.php moet in die gids/var/www/html geplaas word
  • sleepset.txt en sleeptrainer1_1.py moet in die gids/home/pi/pythoncode geplaas word (wenk: u moet hierdie gids skep)

Nadat u hierdie lêers in die korrekte gids geplaas het, moet die rc.local -lêer gewysig word om die sleeptrainer1_1.py -program by die aanvang van die program uit te voer. U benodig toegang op wortelvlak om die rc.local-lêer te verander, tik dus:

sudo nano /etc/rc.local

Rol af in die redakteur, en voeg net voor die afrit 0 -lyn by:

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

Hier is twee dinge om te onthou:

  1. Gebruik die absolute filepath sodat LINUX nie dink dat die sleeptraner1_1.py -lêer in dieselfde gids as rc.local geleë is nie.
  2. Moenie die ampersand (&) aan die einde vergeet nie. Dit sal LINUX in staat stel om hierdie lêer op die agtergrond te laat loop en verder te begin.

Stoor die lêer nou deur ctrl-x te tik en dan y wanneer u gevra word om dit te stoor en dan ENTER.

Tik dan sudo reboot.

Daar moet êrens hier genoem word dat u (ten minste) u Raspberry Pi -wagwoord moet verander met behulp van die passwd -opdrag. As u dit nog nie gedoen het nie, sal dit 'n goeie tyd wees.

Stap 4: Die kode

Die volgende is die kode uit die sleeptrainer1_1.py -lêer. Ek het 'n datetime -voorwerp gebruik om tye te vergelyk met die wat in die sleepset.txt -lêer gelees is. Die tekslêer is eenvoudig twee reëls, die eerste vir uur, die tweede vir minute. sleeptrainer1_1.py slaap 'n minuut tussen lus -herhalings om die verwerker nie vas te maak nie. Die groen lig het oorspronklik te helder uitgekom, so ek het polswydte -modulasie gebruik om dit te demp wanneer dit met rooi gebruik word om geel te maak.

Python -kode:

voer RPi. GPIO in as GPIO

vanaf datetime invoer datetime as dt invoer tyd GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Onwaar) red1 = 11 rooi2 = 16 groen1 = 13 groen2 = 18 blou1 = 15 blou2 = 36 GPIO.setup (rooi1, 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. HOOG) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blou1, GPIO. LOW) GPIO.output (blou2, GPIO. LOW) elif (kleur == "blou"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1, GPIO. HIGH) GPIO.output (blou2, GPIO. HOOG) elif (kleur == "groen"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (blou1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "yellow"): 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 () terwyl True: settime = readset () uur, minuut = setime as minuut == 0: as dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur-2) <dt.now () <dt (dt.now ().jaar, dt.now (). maand, dt.now (). dag, uur-1, minuut+30): ledlight ("rooi") elif dt (dt.now (). jaar, dt.now ().maand, dt.nu (). dag, uur-1, minuut+30) <dt.now () <dt (dt.now (). jaar, dt.now (). maand, dt.now ().day, hour, minute): ledlight ("geel") elif dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur, minuut) <dt.now () <dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur+1, minuut): ledlight ("groen") anders: ledlight ("af") elif dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, ho ur-2) <dt.now () <dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur, minuut-30): ledlight ("rooi") elif dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur, minuut-30) <dt.now () <dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur, minuut): ledlight ("geel") elif dt (dt.now (). jaar, dt.now (). maand, dt.now ().dag, uur, minuut) <dt.now () <dt (dt.now (). jaar, dt.now (). maand, dt.now (). dag, uur+1, minuut): ledlight ("groen") anders: ledlight ("af") tyd. slaap (60)

Die lêer index.html is 'n basiese vorm wat in HTML ontwerp is. Dit bevat die inhoud van twee tekskassies en stuur dit na die sleepset.php -lêer vir vormhantering. Die PHP -lêer skryf eenvoudig die sleepset.txt -lêer oor met bygewerkte data.

Stap 5: Alles saamvoeg

Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit

Met die kodering klaar en al die dele gedruk, is dit tyd vir montering. Ek het hierdie stappe gevolg om alles bymekaar te sit:

  1. Boor twee klein gaatjies wat ooreenstem met die RGB LED's onder in die horing en plaas die LED's in hierdie gate.
  2. Plaas die horing in die gat in die eenhoringkop en trek dit deur totdat dit styf is. Gebruik gom aan die binnekant om die horing vas te maak.
  3. Bevestig die Raspberry Pi Zero W aan die binnekant van die eenhoringkop. (Miskien met warmlijmpistool)
  4. Bevestig die eenhoringkop aan die eenhoringbasis.
  5. Bevestig die netsnoer en bevestig die hele eenheid aan die muur.
  6. Koppel die horlosie.

Op hierdie punt het ek 'n funksionerende slaapklok vir kinders.

Stap 6: 'n Jaar later …

Een jaar later …
Een jaar later …

Een jaar later:

My meisies slaap nog 'n bietjie. Ons het gewoond geraak daaraan dat kinders in ons kamer wakker word en sê: "Pappa, die lig is groen." en dit is wonderlik. Lang storie kort, ons word eers om 05:30 op 'n Saterdag wakker as ons dit meer beplan.

Dinge wat ek in die toekoms wil verbeter:

  • Miskien voeg u sensors of ander items soos 'n mikrofoon en luidsprekers by.
  • Miskien wysig u die kode om saam met 'n luidspreker te werk om as 'n wekker te gebruik, aangesien my kinders binnekort met skool begin.

Aanbeveel: