Satura rādītājs:

Bērnu miega treniņu pulkstenis: 6 soļi (ar attēliem)
Bērnu miega treniņu pulkstenis: 6 soļi (ar attēliem)

Video: Bērnu miega treniņu pulkstenis: 6 soļi (ar attēliem)

Video: Bērnu miega treniņu pulkstenis: 6 soļi (ar attēliem)
Video: Joka pēc alfabēts / Funny Alphabet 2024, Jūlijs
Anonim
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis
Bērnu miega treniņu pulkstenis

Man vajadzēja pulksteni, lai palīdzētu maniem 4 gadus vecajiem dvīņiem iemācīties gulēt nedaudz ilgāk (man jau ir pieticis ar to, ka sestdienās jāceļas 5:30 no rīta), bet viņi vēl nevar lasīt laiku. Pārlūkojot dažas preces ļoti populārā iepirkšanās vietnē, es nodomāju: "Cik grūti būtu to vienkārši izgatavot ?!"

Lūk, ko es sapratu, ka vēlos šajā projektā. Tas izmantotu dažas RGB gaismas diodes (galvenokārt tāpēc, ka man ir apmēram piecdesmit no cita projekta), lai parādītu trīs dažādas krāsas. Sarkans nozīmētu atgriezties gulēt, ir pāragri pamosties. Dzeltens nozīmētu, ka viņi var piecelties un mierīgi spēlēt savā istabā. Zaļš, protams, nozīmē, ka jūs varat piecelties. Es arī gribēju, lai varētu pielāgot laiku, jo dažās dienās (nedēļas nogalēs/brīvdienās vs darba dienās un tamlīdzīgi) gribētos gulēt ilgāk.

Piegādes

Raspberry Pi Zero W

Divas RGB gaismas diodes

Seši 220 omi rezistori

Faili (.stl, python, html) atrodami šeit

Dažādas mazas skrūves, vadi un mazas detaļas pēc nepieciešamības.

1. darbība: 3D drukāšana

3D druka
3D druka
3D druka
3D druka
3D druka
3D druka

Manai meitai ļoti patīk vienradži, tāpēc šim projektam es remiksēju Riven02's Unicorn Nightlight, kas ir remikss no Apachcreation's Unicorn Trophy, ko var atrast vietnē Thingiverse.com un izmantot saskaņā ar Creative Commons nekomerciālo licenci. Es pārveidoju vienradza pamatni, lai tas atbilstu strāvas vadam aveņu pi zero. Man gadījās uzlikt kādu AMZ3D Red PLA, tāpēc vienradza pamatne un galva būs sarkana. Ragam es izmantoju caurspīdīgu/caurspīdīgu PLA. Izmantotie.stl faili un iestatījumi ir:

Vienradzis.stl

  • Slāņa augstums: 0,02
  • Sienas biezums:.8
  • Sienu līniju skaits: 2
  • Piepildījums: 15%
  • Piepildījuma modelis: režģis

UnicornBase.stl

  • Slāņa augstums: 0,02
  • Sienas biezums:.8
  • Sienu līniju skaits: 2
  • Piepildījums: 15%
  • Piepildījuma modelis: režģis

Rags.stl

  • Slāņa augstums: 0,02
  • Sienas biezums: 0,8
  • Sienu līniju skaits: 3
  • Uzpilde: 0

2. solis: ķēde

Ķēde
Ķēde
Ķēde
Ķēde
Ķēde
Ķēde

Ķēde ir diezgan vienkārša. Es izvēlējos sešas dažādas GPIO tapas, lai kontrolētu dažādu RGB krāsu ieslēgšanu/izslēgšanu. Šīs tapas un atbilstošās LED krāsas ir:

  • Piespraude 11 līdz RGB 1 RED
  • Piespraude 13 līdz RGB 1 GREEN
  • Piespraust 15 līdz RGB 1 BLUE
  • Piespraude 16 līdz RGB 2 RED
  • Piespraude 18 līdz RGB 2 GREEN
  • Piespraust 36 līdz RGB 2 BLUE
  • Piespraudiet 39 pie zemes

Katra tapa ir savienota ar rezistoru caur 220 omu strāvas ierobežošanas rezistoru (protams, izņemot zemi.) Es pielodēju rezistoru rindā un pārklāju to ar termiski saraušanās cauruli.

3. darbība: Raspberry Pi sagatavošana

Es gribēju, lai varētu iestatīt miega trenera pulksteņa laiku, izmantojot tīmekļa saskarni. Tāpēc man bija jāiestata Apache un PHP serveris Raspberry Pi. Pirmā lieta, kas jums vienmēr jādara, instalējot jaunu programmatūru Raspberry Pi, ir pārliecināties, vai tā ir atjaunināta, ierakstot:

sudo apt-get update

Pēc tam mēs patiešām varam ķerties pie lietas. Mēs to darīsim, instalējot Apache2:

sudo apt -get install apache2 -y

tam vajadzētu instalēt Apache tīmekļa serveri. To var pārbaudīt, izmantojot Raspberry pi pārlūkprogrammu un dodoties uz:

localhost/

vai pārejot no cita datora pārlūkprogrammas uz jūsu Raspberry Pi ip adresi. Lai atrastu savu IP adreses veidu:

saimniekdatora nosaukums -es

To darot, tiks atvērta noklusējuma Apache tīmekļa servera lapa. To var mainīt, aizstājot index.html, kas atrodas direktorijā/var/www/html/. To var aizstāt ar manu index.html failu.

Tālāk mēs iestatīsim Apache tīmekļa serveri, lai varētu palaist PHP failus. Sāciet, ierakstot:

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

tagad jums vajadzētu būt iespējai ievietot failu sleepset.php mapē/var/www/html kopā ar failu index.html.

Lai pārietu uz šo lapu savā tīklā, jums ir jāiestata Raspberry Pi ar statisku IP adresi (vai arī varat vienkārši mēģināt izdomāt jauno IP adresi, kad jūsu tīkls šad un tad to atjauno). Lai tas darbotos, jums ir jārediģē pāris faili. Jums būs jārediģē /etc/dhcpcd.conf fails, veicot tālāk norādītās darbības.

interfeiss wlan0

static ip_address = 192.168.1. statiskie maršrutētāji = 192.168.1.1 statiskais domēna_vārda_serveris = 192.168.1.1

Aizstājiet ar tīkla informāciju. Vienīgais, kas jums tagad jādara, ir pārstartēt.

sudo atsāknēšana

Failu izvietojumam no Google diska saites jābūt šādam:

  • index.html un sleepset.php jāievieto direktorijā/var/www/html
  • sleepset.txt un sleeptrainer1_1.py jāievieto direktorijā/home/pi/pythoncode (mājiens: jums būs jāizveido šis direktorijs)

Pēc šo failu ievietošanas pareizajā direktorijā rc.local fails ir jāmaina, lai startēšanas laikā palaistu programmu sleeptrainer1_1.py. Lai mainītu rc.local failu, jums būs nepieciešama saknes līmeņa piekļuve, tāpēc ierakstiet:

sudo nano /etc/rc.local

Redaktorā ritiniet uz leju un tieši pirms izejas 0 rindas pievienojiet:

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

Šeit jāatceras divas lietas:

  1. Izmantojiet absolūto failu ceļu, lai LINUX nedomātu, ka fails sleeptraner1_1.py atrodas tajā pašā direktorijā kā rc.local.
  2. Beigās neaizmirstiet zīmi (&). tas ļaus LINUX palaist šo failu fonā un turpināt sāknēšanu.

Tagad saglabājiet failu, ierakstot ctrl-x un pēc tam y, kad tiek prasīts saglabāt, un pēc tam ievadiet.

Pēc tam ierakstiet sudo reboot.

Kaut kur šeit jāpiemin, ka (vismaz) jums vajadzētu nomainīt Raspberry Pi paroli, izmantojot komandu passwd. Ja vēl neesat to izdarījis, tagad būtu labs laiks.

4. solis: kods

Tālāk ir norādīts kods no faila sleeptrainer1_1.py. Es izmantoju datuma un laika objektu, lai salīdzinātu laiku ar failā sleepset.txt lasīto laiku. Teksta failā ir tikai divas rindas - pirmā stundai, otrā - minūtei. sleeptrainer1_1.py guļ vienu minūti starp cilpas atkārtojumiem, lai nesaistītu procesoru. Zaļā gaisma sākotnēji izgaismojās pārāk spilgti, tāpēc es izmantoju impulsa platuma modulāciju, lai to aptumšotu, kad to izmantoju ar sarkanu, lai padarītu dzeltenu.

Python kods:

importēt RPi. GPIO kā GPIO

no datuma importēšanas datuma laika kā dt importēšanas laiks 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 (zaļš1, GPIO. OUT) GPIO.setup (zaļš2, GPIO. OUT) GPIO.setup (zils1, GPIO. OUT) GPIO.setup (zils2, GPIO. OUT) p1 = GPIO. PWM (zaļš1, 100) p2 = GPIO. PWM (zaļš2, 100) def lasītājs (): setfile = open ("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile. readline () b = setfile.readline () a = int (a) b = int (b) atgriezt a, b def ledlight (krāsa): ja (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 (krāsa == "zila")): 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 (krāsa == "zaļa"): 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 (krāsa == "dzeltena"): 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 (krāsa == "izslēgts"): GPIO.output (red1, GPIO. LOW) GPIO.output (sarkans2, GPIO. LOW) GPIO.izvade (zils1, GPIO. LOW) GPIO.izvade (zils2, GPIO. LOW) p1.stop () p2.stop (), savukārt True: settime = readset () stunda, minūte = iestatīšanas laiks ja minūte == 0: ja dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, stunda-2) <dt.now () <dt (dt.now ()).gads, dt.now (). mēnesis, dt.now (). diena, stunda-1, minūte+30): ledlight ("sarkans") elif dt (dt.now (). gads, dt.now ().month, dt.now (). day, hour-1, minute+30) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now ().diena, stunda, minūte): ledlight ("dzeltens") elif dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, stunda, minūte) <dt.now () <dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, stunda+1, minūte): ledlight ("zaļa") else: ledlight ("off") elif dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, ho ur-2) <dt.now () <dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, stunda, minūte-30): ledlight ("sarkans") elif dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, stunda, minūte-30) <dt.now () <dt (dt.now (). gads, dt.now (). mēnesis, dt.now (). diena, stunda, minūte): ledlight ("dzeltens") elif dt (dt.now (). gads, dt.now (). mēnesis, dt.now (), diena, stunda, minūte) "zaļš") cits: LED gaismas ("izslēgts") laiks. miega režīms (60)

Fails index.html ir HTML veidota pamata veidlapa. Tas paņem divu tekstlodziņu saturu un nodod tos failam sleepset.php veidlapu apstrādei. PHP fails vienkārši pārraksta failu sleepset.txt ar atjauninātiem datiem.

5. solis: salieciet to visu kopā

Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā
Visu saliekot kopā

Kad kodēšana ir pabeigta un visas detaļas ir izdrukātas, ir pienācis laiks montāžai. Lai to visu apvienotu, es sekoju šīm darbībām:

  1. Izurbiet divus mazus caurumus pēc RGB gaismas diodēm raga apakšā un ievietojiet gaismas diodes šajos caurumos.
  2. Ievietojiet ragu vienradza galvas atverē un velciet to cauri, līdz tas ir cieši. Lai nostiprinātu ragu, izmantojiet līmi no iekšpuses.
  3. Piestipriniet Raspberry Pi Zero W vienradza galvas iekšpusē. (Varbūt izmantojot karstās līmes pistoli)
  4. Pievienojiet vienradza galvu vienradza pamatnei.
  5. Pievienojiet strāvas vadu un piestipriniet visu bloku pie sienas.
  6. Pievienojiet pulksteni.

Šajā brīdī man ir funkcionējošs bērnu miega trenera pulkstenis.

6. darbība: vienu gadu vēlāk…

Pēc viena gada …
Pēc viena gada …

Pēc viena gada:

Manas meitenes guļ mazliet ilgāk. Mēs esam pieraduši pamosties, ka mūsu istabā mazi bērni saka: "Tēti, gaisma ir zaļa." un tas ir lieliski. Īsi sakot, mēs pamodamies tikai pulksten 5:30 sestdienā, kad to vairs plānojam.

Lietas, kuras plānoju uzlabot nākotnē:

  • Varbūt pievienojiet dažus sensorus vai citus priekšmetus, piemēram, mikrofonu un skaļruņus.
  • Varbūt rediģējiet kodu, lai strādātu ar skaļruni, ko izmantot kā modinātāju, jo mani bērni drīz sāks skolas gaitas.

Ieteicams: