Sadržaj:

Dječji sat za vježbanje spavanja: 6 koraka (sa slikama)
Dječji sat za vježbanje spavanja: 6 koraka (sa slikama)

Video: Dječji sat za vježbanje spavanja: 6 koraka (sa slikama)

Video: Dječji sat za vježbanje spavanja: 6 koraka (sa slikama)
Video: Uspavanka Moja mala sovica - Leonora Surian 2024, Srpanj
Anonim
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja
Dječji sat za vježbanje spavanja

Trebao mi je sat da pomognem svojim četverogodišnjim blizancima da nauče spavati još malo (dosta mi je što sam se morala buditi subotom u 5:30 ujutro), ali još ne mogu čitati vrijeme. Nakon što sam pregledao nekoliko stavki na vrlo popularnoj web stranici za kupnju, pomislio sam: "Koliko bi bilo teško samo napraviti jednu ?!"

Pa evo što sam zaključio da želim u ovom projektu. Koristio bi neke RGB LED diode (uglavnom zato što ih imam pedesetak iz drugog projekta) za prikaz tri različite boje. Crveno bi značilo da se vratite na spavanje, prerano je za buđenje. Žuta bi značila da mogu ustati i mirno se igrati u svojoj sobi. Zeleno, naravno znači da možete ustati. Također sam želio moći prilagoditi vrijeme, jer bih želio duže spavati nekim danima (vikendi/praznici vs radni dani i slično).

Pribor

Malina Pi Zero W

Dvije RGB LED diode

Šest otpornika od 220 ohma

Ovdje su pronađene datoteke (.stl, python, html)

Razni mali vijci, žice i mali dijelovi po potrebi.

Korak 1: 3D ispis

3D ispis
3D ispis
3D ispis
3D ispis
3D ispis
3D ispis

Moja kći jako voli jednoroge, pa sam za ovaj projekt remiksirao Riven02 Unicorn Nightlight, koji je remiks Apachcreation's Unicorn Trophy, koji se može pronaći na Thingiverse.com i koristiti pod Creative Commons nekomercijalnom licencom. Izmijenio sam bazu jednoroga tako da stane kabel za napajanje za malinu pi zero. Slučajno mi je ležao AMZ3D Red PLA, pa će jednorog i glava biti crveni. Za trubu sam koristio prozirnu/prozirnu PLA.. Stl datoteke i postavke koje sam koristio su:

Jednorog.stl

  • Visina sloja: 0,02
  • Debljina stijenke:.8
  • Broj zidnih linija: 2
  • Ispuna: 15%
  • Uzorak ispune: Mreža

UnicornBase.stl

  • Visina sloja: 0,02
  • Debljina stijenke:.8
  • Broj zidnih linija: 2
  • Ispuna: 15%
  • Uzorak ispune: Mreža

Rog.stl

  • Visina sloja: 0,02
  • Debljina stijenke: 0,8
  • Broj zidnih linija: 3
  • Ispuna: 0

Korak 2: Krug

Krug
Krug
Krug
Krug
Krug
Krug

Krug je prilično jednostavan. Odabrao sam šest različitih GPIO pinova za kontrolu uključivanja/isključivanja za različite boje RGB -a. Ti pinovi i odgovarajuće LED boje su:

  • Pin 11 do RGB 1 CRVENO
  • Pin 13 na RGB 1 ZELENO
  • Pin 15 do RGB 1 PLAVI
  • Pin 16 do RGB 2 CRVENO
  • Pin 18 na RGB 2 ZELENO
  • Pin 36 u RGB 2 PLAVI
  • Pin 39 na masu

Svaki pin je spojen na otpornik kroz otpornik za ograničavanje struje od 220 ohma (s iznimkom naravno uzemljenja). Lemio sam otpornik u liniji i pokrio ga termoskupljajućom cijevi.

Korak 3: Priprema maline Pi

Htio sam moći postaviti vrijeme za sat trenera spavanja pomoću web sučelja. Pa sam morao postaviti Apache i PHP poslužitelj na Raspberry Pi. Prva stvar koju uvijek trebate učiniti pri instaliranju novog softvera na Raspberry Pi je provjeriti je li ažuriran upisivanjem:

sudo apt-get ažuriranje

Nakon toga zaista možemo pristupiti poslu. To ćemo učiniti instaliranjem Apache2:

sudo apt -get install apache2 -y

ovo bi trebalo instalirati Apache web poslužitelj. To možete testirati pomoću preglednika na Raspberry pi -u i otići na:

localhost/

ili navigacijom s preglednika drugog računala na IP adresu vaše Raspberry Pi. Da biste pronašli vrstu svoje IP adrese:

naziv hosta -I

To će dovesti do zadane stranice Apache web poslužitelja. To se može promijeniti zamjenom index.html koji se nalazi u/var/www/html/direktoriju. Može se zamijeniti vlastitom datotekom index.html.

Zatim ćemo postaviti Apache web poslužitelj za pokretanje PHP datoteka. Počnite upisivanjem:

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

sada biste trebali moći postaviti datoteku sleepset.php u/var/www/html s datotekom index.html.

Da biste došli do ove stranice u vlastitoj mreži, morat ćete postaviti Raspberry Pi sa statičkom IP adresom (ili možete jednostavno pokušati otkriti novu IP adresu kad je vaša mreža povremeno obnavlja). Morat ćete urediti nekoliko datoteka da bi ovo funkcioniralo. Morat ćete urediti datoteku /etc/dhcpcd.conf sa sljedećim:

sučelje wlan0

statička ip_adresa = 192.168.1.statički usmjerivači = 192.168.1.1 statički poslužitelji_ime_domene_192.168.1.1

Zamijenite mrežnim podacima. Jedino što sada trebate učiniti je ponovno podizanje sustava.

sudo ponovno podizanje sustava

Položaj datoteka s veze Google pogona trebao bi biti sljedeći:

  • index.html i sleepset.php trebaju biti smješteni u/var/www/html direktorij
  • sleepset.txt i sleeptrainer1_1.py trebaju biti smješteni u direktorij/home/pi/pythoncode (savjet: morat ćete stvoriti ovaj direktorij)

Nakon postavljanja ovih datoteka u ispravan direktorij, datoteku rc.local potrebno je izmijeniti za pokretanje programa sleeptrainer1_1.py pri pokretanju. Za izmjenu datoteke rc.local trebat će vam pristup na razini korijena, pa upišite:

sudo nano /etc/rc.local

U uređivaču se pomaknite prema dolje i neposredno prije izlaznog retka 0 dodajte:

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

Ovdje morate zapamtiti dvije stvari:

  1. Koristite apsolutni put datoteke tako da LINUX ne misli da se datoteka sleeptraner1_1.py nalazi u istom direktoriju kao i rc.local.
  2. Ne zaboravite ampersand (&) na kraju. to će omogućiti LINUX -u da pokrene ovu datoteku u pozadini i nastavi s pokretanjem.

Sada spremite datoteku upisivanjem ctrl-x, a zatim y kada se prikaže upit za spremanje, a zatim ENTER.

Zatim upišite sudo reboot.

Ovdje negdje treba spomenuti da biste (barem) trebali promijeniti lozinku za Raspberry Pi pomoću naredbe passwd. Ako to još niste učinili, sada bi bilo dobro vrijeme.

Korak 4: Kôd

Slijedi kôd iz datoteke sleeptrainer1_1.py. Koristio sam objekt datetime za usporedbu vremena s onima pročitanim u datoteci sleepset.txt. Tekstualna datoteka je jednostavno dva retka, prvi za sat, drugi za minutu. sleeptrainer1_1.py spava jednu minutu između ponavljanja petlje kako ne bi vezao procesor. Zeleno svjetlo izvorno je ispalo previše svijetlo, pa sam upotrijebio modulaciju širine impulsa da ga prigušim kada se koristi s crvenom za žutu.

Python kod:

uvezite RPi. GPIO kao GPIO

od datuma uvoza datum i vrijeme kao dt vrijeme uvoza GPIO.način rada (GPIO. BOARD) GPIO.upozorenja (lažno) crvena1 = 11 crvena2 = 16 zelena1 = 13 zelena2 = 18 plava1 = 15 plava2 = 36 GPIO.postavka (crvena1, GPIO. OUT) GPIO.setup (crvena2, GPIO. OUT) GPIO.setup (zelena1, GPIO. OUT) GPIO.setup (zelena2, GPIO. OUT) GPIO.setup (plava1, GPIO. OUT) GPIO.setup (plava2, 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) vrati a, b def svjetlo (boja): if (boja == "crvena"): GPIO.izlaz (crveno1, GPIO. VISOKO) GPIO.izlaz (crvena2, GPIO. VISA) p1.stop () p2.stop () GPIO.izlaz (plava1, GPIO. LOW) GPIO.izlaz (plava2, GPIO. LOW) elif (boja == "plava"): GPIO.izlaz (crvena1, GPIO. LOW) GPIO.izlaz (crvena2, GPIO. LOW) p1.stop () p2.stop () GPIO.izlaz (plava1, GPIO. HIGH) GPIO.izlaz (plava2, GPIO. VISOKO) elif (boja == "zelena"): GPIO.izlaz (crvena1, GPIO. LOW) GPIO.izlaz (crvena2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.izlaz (plava1, GPIO. LOW) GPIO.izlaz (plava2, GPIO. LOW) elif (boja == "žuta"): p1.start (60) p2.start (60) GPIO.izlaz (crvena1, GPIO. HIGH) GPIO.izlaz (crveno2, GPIO. HIGH) GPIO.izlaz (plavo1, GPIO. LOW) GPIO.izlaz (plavo2, GPIO. LOW) elif (boja == "isključeno"): GPIO.izlaz (crveno1, GPIO. LOW) GPIO.izlaz (crveno2, GPIO. LOW) GPIO.izlaz (plavo1, GPIO. LOW) GPIO.izlaz (plavo2, GPIO. LOW) p1.stop () p2.stop () dok je True: settime = readset () sat, minuta = settime ako je minuta == 0: ako je dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat-2) <dt.now () <dt (dt.now ()).godina, dt.now (). mjesec, dt.now (). dan, sat-1, minuta+30): ledlight ("crveno") elif dt (dt.now (). year, dt.now ()), mjesec, dt.now (). dan, sat-1, minuta+30) <dt.now () <dt (dt.now (). godina, dt.now (). mjesec, dt.now ().dan, sat, minuta): LED svjetlo ("žuto") elif dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat, minuta) <dt.now () <dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat+1, minuta): ledlight ("zeleno") else: ledlight ("off") elif dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, ho ur-2) <dt.now () <dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat, minuta-30): ledlight ("crveno") elif dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat, minuta-30) <dt.now () <dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat, minuta): ledlight ("žuto") elif dt (dt.now (). year, dt.now (). month, dt.now ()).dan, sat, minuta) <dt.now () <dt (dt.now (). year, dt.now (). month, dt.now (). day, hour+1, minute): ledlight ("zeleno") else: ledlight ("off") time.sleep (60)

Datoteka index.html osnovni je oblik dizajniran u HTML -u. On uzima sadržaj dvaju tekstualnih okvira i prosljeđuje ih u datoteku sleepset.php radi obrade obrasca. PHP datoteka jednostavno prepisuje datoteku sleepset.txt ažuriranim podacima.

Korak 5: Sve spojite

Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno

Kad je kodiranje završeno i svi su dijelovi ispisani, vrijeme je za montažu. Slijedio sam ove korake za sastavljanje svega:

  1. Izbušite dvije male rupe veličine do RGB LED dioda na dnu trube i postavite LED u te rupe.
  2. Stavite rog u rupu u glavi jednoroga i provucite ga dok se ne stegne. Za pričvršćivanje roga upotrijebite ljepilo iznutra.
  3. Pričvrstite Raspberry Pi Zero W na unutarnju stranu glave jednoroga. (Možda pomoću pištolja za vruće ljepilo)
  4. Pričvrstite glavu jednoroga na bazu jednoroga.
  5. Priključite kabel za napajanje i pričvrstite cijeli sklop na zid.
  6. Uključite sat.

U ovom trenutku imam dječji sat za vježbanje dječjeg sna.

Korak 6: Godinu dana kasnije…

Jedna godina kasnije …
Jedna godina kasnije …

Jedna godina kasnije:

Moje cure spavaju još malo. Navikli smo se buditi malu djecu u svojoj sobi govoreći: "Tata, svjetlo je zeleno." i to je super. Ukratko, budimo se tek u 5:30 ujutro u subotu kad to više planiramo.

Stvari koje planiram poboljšati u budućnosti:

  • Možda ćete dodati neke senzore ili druge stavke poput mikrofona i zvučnika.
  • Možda uredite kôd kako biste radili sa zvučnikom i koristili ga kao budilicu jer će mi djeca uskoro krenuti u školu.

Preporučeni: