Përmbajtje:

Ora e trajnimit të gjumit për fëmijë: 6 hapa (me fotografi)
Ora e trajnimit të gjumit për fëmijë: 6 hapa (me fotografi)

Video: Ora e trajnimit të gjumit për fëmijë: 6 hapa (me fotografi)

Video: Ora e trajnimit të gjumit për fëmijë: 6 hapa (me fotografi)
Video: 5 gabimet më të mëdha të prindërve që dëmtojnë shendetin mendor të fëmijëve 2024, Korrik
Anonim
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë
Ora e trajnimit të gjumit për fëmijë

Më duhej një orë për të ndihmuar binjakët e mi 4 vjeçarë të mësonin të flinin pak më gjatë (më është mjaftuar të zgjohem në orën 5:30 të mëngjesit të Shtunave), por ata nuk mund ta lexojnë akoma kohën. Pasi shfletova disa artikuj në një sit pazari shumë të njohur, mendova: "Sa e vështirë do të ishte të krijosh një të tillë ?!"

Pra, ja çfarë kuptova se doja në këtë projekt. Do të përdorte disa LED RGB (kryesisht sepse kam rreth pesëdhjetë prej tyre nga një projekt tjetër) për të shfaqur tre ngjyra të ndryshme. E kuqja do të thotë të kthehesh në gjumë, është shumë herët për t'u zgjuar. E verdha do të thotë që ata mund të ngrihen dhe të luajnë në heshtje në dhomën e tyre. E gjelbër, natyrisht do të thotë që mund të ngrihesh. Unë gjithashtu doja të isha në gjendje të rregulloja kohën, sepse do të doja të fle më gjatë në disa ditë (Fundjavë/Pushime vs Ditët e Javës dhe të tjera).

Furnizimet

Raspberry Pi Zero W

Dy LED RGB

Gjashtë rezistencë 220 Ohm

Skedarët (.stl, python, html) gjenden këtu

Vida të ndryshme të vogla, tela dhe pjesë të vogla sipas nevojës.

Hapi 1: Shtypja 3D

Shtypje 3D
Shtypje 3D
Shtypje 3D
Shtypje 3D
Shtypje 3D
Shtypje 3D

Vajza ime është me të vërtetë si njëbrirësh, kështu që për këtë projekt kam ripërpunuar Unicorn Nightlight të Riven02, i cili është një remix i Trofeut të Unicorn të Apachcreation, i cili mund të gjendet në Thingiverse.com dhe të përdoret nën një licencë jo-komerciale Creative Commons. Ndryshova bazën e njëbrirëshit për të përshtatur një kordon të rrymës për mjedrën pi zero. Më ndodhi që kisha një AMA3D Red PLA të shtrirë përreth, kështu që baza dhe koka e njëbrirëshit do të jenë të kuqe. Kam përdorur PLA të qartë/të tejdukshme për bririn. Skedarët.stl dhe cilësimet që kam përdorur janë:

Njëbrirësh.stl

  • Lartësia e Shtresës: 0.02
  • Trashësia e murit:.8
  • Numri i vijave të murit: 2
  • Mbush: 15%
  • Modeli i mbushjes: Rrjeta

UnicornBase.stl

  • Lartësia e Shtresës: 0.02
  • Trashësia e murit:.8
  • Numri i vijave të murit: 2
  • Mbush: 15%
  • Modeli i mbushjes: Rrjeta

Bri.stl

  • Lartësia e Shtresës: 0.02
  • Trashësia e murit: 0.8
  • Numri i vijave të murit: 3
  • Mbush: 0

Hapi 2: Qarku

Qarku
Qarku
Qarku
Qarku
Qarku
Qarku

Qarku është mjaft i lehtë. Zgjodha gjashtë kunja të ndryshme GPIO për të kontrolluar ndezjen/fikjen për ngjyrat e ndryshme të RGB. Ato kunjat dhe ngjyrat përkatëse LED janë:

  • Vendosni 11 në RGB 1 KUQ
  • Vendosni 13 në RGB 1 GREEN
  • Vendosni 15 në RGB 1 BLUE
  • Vendosni 16 në RGB 2 KUQ
  • Vendosni 18 në RGB 2 GREEN
  • Kunjoni 36 në RGB 2 BLUE
  • Mbërtheni 39 në Tokë

Çdo kunj është i lidhur me rezistencën përmes një rezistence kufizuese të rrymës 220 ohm (me përjashtim të tokës natyrisht.) Unë e bashkova rezistencën në linjë dhe e mbulova me tuba të tkurrjes së nxehtësisë.

Hapi 3: Përgatitja e Raspberry Pi

Doja të isha në gjendje të caktoja oraret për orën e trainerit të gjumit duke përdorur një ndërfaqe në internet. Kështu që më duhej të krijoja një Apache dhe PHP Server në Raspberry Pi. Gjëja e parë që duhet të bëni gjithmonë kur instaloni softuer të ri në një Raspberry Pi është të siguroheni që është i përditësuar duke shtypur:

përditësim sudo apt-get

Pas kësaj, ne me të vërtetë mund të fillojmë biznesin. Ne do ta bëjmë atë duke instaluar Apache2:

sudo apt -get install apache2 -y

kjo duhet të instalojë serverin në internet Apache. Ju mund ta provoni këtë duke përdorur një shfletues në Raspberry pi dhe duke lundruar në:

localhost/

ose duke lundruar nga shfletuesi i një kompjuteri tjetër në adresën tuaj IP të Raspberry Pi. Për të gjetur llojin e adresës tuaj IP:

emri i hostit -I

Bërja e këtyre do të çojë në një faqe të paracaktuar të Apache Web Server. Kjo mund të ndryshohet duke zëvendësuar index.html të vendosur në drejtorinë/var/www/html/. Mund të zëvendësohet me skedarin tim index.html.

Tjetra ne do të vendosim serverin në internet Apache që të jetë në gjendje të ekzekutojë skedarët PHP. Filloni duke shtypur:

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

tani duhet të jeni në gjendje të vendosni skedarin sleepset.php në/var/www/html me skedarin index.html.

Në mënyrë që të lundroni në këtë faqe në rrjetin tuaj, do t'ju duhet të konfiguroni Raspberry Pi tuaj me një adresë IP statike (ose thjesht mund të provoni të kuptoni adresën e re IP kur rrjeti juaj ta rinovojë atë herë pas here). Ju do të duhet të redaktoni disa skedarë që kjo të funksionojë. Ju do të duhet të redaktoni skedarin /etc/dhcpcd.conf me sa vijon:

ndërfaqja wlan0

statike ip_address = 192.168.1.streuterët statikë = 192.168.1.1 serverët e domain_name statik = 192.168.1.1

Zëvendësoni me informacionin e rrjetit tuaj. E vetmja gjë që ju duhet të bëni tani është rindezja.

rindez sudo

Vendosja e skedarëve nga lidhja e diskut në Google duhet të jetë si më poshtë:

  • index.html dhe sleepset.php duhet të vendosen në drejtorinë/var/www/html
  • sleepset.txt dhe sleeptrainer1_1.py duhet të vendosen në drejtorinë/home/pi/pythoncode (aluzion: do të duhet të krijosh këtë drejtori)

Pas vendosjes së këtyre skedarëve në drejtorinë e duhur, skedari rc.local duhet të modifikohet për të ekzekutuar programin sleeptrainer1_1.py gjatë fillimit. Ju do të keni nevojë për qasje në nivelin rrënjë për të modifikuar skedarin rc.local, kështu që shkruani:

sudo nano /etj/rc.local

Në redaktues, lëvizni poshtë dhe pak para daljes 0, shtoni:

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

Ka dy gjëra për të kujtuar këtu:

  1. Përdorni skedarin absolut të skedarëve në mënyrë që LINUX të mos mendojë se skedari sleeptraner1_1.py ndodhet në të njëjtën drejtori me rc.local.
  2. Mos harroni ampersand (&) në fund. kjo do të lejojë që LINUX ta ekzekutojë këtë skedar në sfond dhe të vazhdojë nisjen.

Tani, ruani skedarin duke shtypur ctrl-x dhe pastaj y kur ju kërkohet të ruani dhe pastaj ENTER.

Pastaj shtypni sudo reboot.

Duhet të përmendet diku këtu që (të paktën) duhet të ndryshoni fjalëkalimin tuaj Raspberry Pi duke përdorur komandën passwd. Nëse nuk e keni bërë ende këtë, tani do të ishte një kohë e mirë.

Hapi 4: Kodi

Më poshtë është kodi nga skedari sleeptrainer1_1.py. Kam përdorur një objekt datetime për të krahasuar kohët me ato të lexuara në skedarin sleepset.txt. Skedari i tekstit është thjesht dy rreshta, e para për orë, e dyta për minutë. sleeptrainer1_1.py fle për një minutë midis përsëritjeve të lakut për të mos e lidhur procesorin. Drita jeshile fillimisht po dilte shumë e ndritshme, kështu që unë përdor modulimin e gjerësisë së pulsit për ta zbehur atë kur përdoret me të kuqe për të bërë të verdhë.

Kodi Python:

importoni RPi. GPIO si GPIO

nga dataetime import dataetime si dt koha e importit 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. leximi () b = setfile.readline () a = int (a) b = int (b) ktheni a, b def ledlight (ngjyra): nëse (ngjyra == "e kuqe"): GPIO.output (red1, GPIO LART HIGH) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "blu"): GPIO.putput (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.putput (blue1, GPIO. HIGH) GPIO.putput (blu2, GPIO. E LART) elif (ngjyra == "jeshile"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (blue1, GPIO. LOW) GPIO.output (blu2, GPIO. LOW) elif (ngjyra == "e verdhë"): p1.start (60) p2.start (60) GPIO.output (red1, GPIO. HIGH) GPIO.output (red2, GPIO. HIGH) GPIO.putput (blu1, GPIO. LOW) GPIO.putput (blue2, GPIO. LOW) elif (color == "off"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) GPIO.output (blu1, GPIO. LOW) GPIO.putput (blue2, GPIO. LOW) p1.stop () p2.stop () ndërsa True: settime = readset () orë, minutë = settime nëse minutë == 0: nëse dt (dt.now (). viti, dt.now (). muaji, dt.now (). ditë, orë-2) <dt.now () <dt (dt.now (), viti, dt. tani (). muaji, dt. tani (). ditë, orë-1, minutë+30): dritë e përparme ("e kuqe") elif dt (dt. tani (). viti, dt. tani (muaj..ditë, orë, minutë): drita e përparme ("e verdhë") elif dt (dt.now (). viti, dt.now (). muaji, dt.now (). ditë, orë, minutë) <dt.now () <dt (dt.now (). viti, dt.now (). muaji, dt.now (). ditë, orë+1, minutë): ledlight ("jeshile") tjetër: ledlight ("off") elif dt (dt. tani (). viti, dt. tani (). muaji, dt. tani (). ditë, ho ur -2 elif dt (dt.now (). vit, dt.now (). muaj, dt.now (). ditë, orë, minutë-30) <dt.now () <dt (dt.now () vit, dt. tani (). muaji, dt. tani (). ditë, orë, minutë): drita e përparme ("e verdhë") elif dt (dt. tani (). viti, dt. tani (). muaji, dt. tani ().ditë, orë, minutë) <dt.një () <dt (dt.now (). vit, dt.now (). muaj, dt.now (). ditë, orë+1, minutë): dritë e përparme ("jeshile") tjetër: koha e dritës ("fikur"). gjumi (60)

Skedari index.html është një formë themelore e krijuar në HTML. Ai merr përmbajtjen e dy kutive të tekstit dhe i kalon ato në skedarin sleepset.php për trajtimin e formave. Skedari PHP thjesht mbishkruan skedarin sleepset.txt me të dhëna të përditësuara.

Hapi 5: Vendosja e të gjitha së bashku

Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku

Me kodimin e përfunduar dhe të gjitha pjesët e shtypura, është koha për montim. Kam ndjekur këto hapa për t'i bashkuar të gjitha:

  1. Shponi dy vrima të vogla me madhësinë e LED -ve RGB në pjesën e poshtme të bririt dhe vendosni LEDS në këto vrima.
  2. Vendoseni bririn në vrimën në kokën e njëbrirëshit dhe tërhiqeni atë derisa të jetë i ngushtë. Përdorni zam nga brenda për të siguruar bririn.
  3. Lidhni Raspberry Pi Zero W në pjesën e brendshme të kokës së njëbrirëshit. (Ndoshta duke përdorur armë me ngjitës të nxehtë)
  4. Bashkangjitni kokën e njëbrirëshit në bazën e njëbrirëshit.
  5. Bashkangjit kordonin e rrymës dhe bashkojeni të gjithë montimin në mur.
  6. Lidheni orën.

Në këtë pikë unë kam një orë funksionale të Trajnerit të Gjumit të Fëmijëve.

Hapi 6: Një vit më vonë…

Një vit më vonë…
Një vit më vonë…

Një vit më vonë:

Vajzat e mia po flenë pak më gjatë. Ne jemi mësuar të zgjohemi me fëmijë të vegjël në dhomën tonë duke thënë: "Babi, drita është e gjelbër". dhe kjo është e mrekullueshme Shkurt, ne zgjohemi vetëm në 5:30 të Shtunën kur e planifikojmë më.

Gjërat që kam në plan të përmirësoj në të ardhmen:

  • Ndoshta shtimi i disa sensorëve ose artikujve të tjerë si mikrofoni dhe altoparlantët.
  • Ndoshta modifikoni kodin për të punuar me një altoparlant për ta përdorur si një orë me zile pasi fëmijët e mi do të fillojnë shkollën së shpejti.

Recommended: