Sadržaj:
- Supplies
- Korak 1: 3D štampanje
- Korak 2: Krug
- Korak 3: Priprema maline Pi
- Korak 4: Kôd
- Korak 5: Sastavite sve zajedno
- Korak 6: Godinu dana kasnije…
Video: Dječji sat za vježbanje spavanja: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Trebao mi je sat da pomognem svojim četverogodišnjim blizancima da nauče spavati još malo (dosta mi je što sam se morao buditi subotom u 5:30 ujutro), ali još ne mogu čitati vrijeme. Nakon što sam pregledao nekoliko stavki na vrlo popularnoj web lokaciji za kupovinu, pomislio sam: "Koliko bi bilo teško samo napraviti jednu ?!"
Evo šta 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đe sam hteo da mogu da prilagodim vreme, jer bih voleo da spavam duže nekim danima (vikendom/praznicima vs radnim danima i slično).
Supplies
Raspberry Pi Zero W
Dva RGB LED -a
Šest otpornika od 220 ohma
Ovdje se nalaze datoteke (.stl, python, html)
Razni mali vijci, žice i sitni dijelovi po potrebi.
Korak 1: 3D štampanje
Moja kćerka zaista voli jednoroge, pa sam za ovaj projekt remiksirao Riven02 Unicorn Nightlight, koji je remiks Apachcreation Unicorn Trophy-a, koji se može pronaći na Thingiverse.com i koristiti pod Creative Commons nekomercijalnom licencom. Modificirao 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:
Unicorn.stl
- Visina sloja: 0,02
- Debljina zida:.8
- Broj zidnih linija: 2
- Ispuna: 15%
- Uzorak ispune: Mreža
UnicornBase.stl
- Visina sloja: 0,02
- Debljina zida:.8
- Broj zidnih linija: 2
- Ispuna: 15%
- Uzorak ispune: Mreža
Horn.stl
- Visina sloja: 0,02
- Debljina zida: 0,8
- Broj zidnih linija: 3
- Ispuna: 0
Korak 2: 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 CRVENI
- Pin 18 na RGB 2 ZELENO
- Pin 36 za RGB 2 PLAVI
- Pin 39 na masu
Svaki pin je spojen na otpornik kroz otpornik za ograničenje struje od 220 ohma (s izuzetkom 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 da provjerite je li ažuriran upisivanjem:
sudo apt-get update
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 server. To možete testirati korištenjem preglednika na Raspberry pi -u i navigacijom do:
localhost/
ili prelaskom s preglednika drugog računara na IP adresu vaše Raspberry Pi. Da biste pronašli vrstu svoje IP adrese:
hostname -I
To će dovesti do zadane stranice Apache web servera. 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 server da može pokretati PHP datoteke. Započ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 otišli na ovu stranicu u vlastitoj mreži, morat ćete postaviti svoj Raspberry Pi sa statičkom IP adresom (ili možete samo 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 /etc/dhcpcd.conf datoteku sa sljedećim:
interfejs wlan0
static ip_address = 192.168.1.static routers = 192.168.1.1 static domain_name_servers = 192.168.1.1
Zamijenite mrežnim podacima. Jedino što sada trebate učiniti je ponovno pokretanje.
sudo reboot
Položaj datoteka sa veze Google diska 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/home/pi/pythoncode direktorij (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 osnovnom nivou, pa upišite:
sudo nano /etc/rc.local
U uređivaču se pomaknite prema dolje i neposredno prije redaka za izlaz 0 dodajte:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Ovdje morate zapamtiti dvije stvari:
- Koristite apsolutni put datoteke tako da LINUX ne misli da se datoteka sleeptraner1_1.py nalazi u istom direktoriju kao i rc.local.
- Ne zaboravite ampersand (&) na kraju. ovo će omogućiti LINUX -u da pokrene ovu datoteku u pozadini i nastavi pokretanje.
Sada spremite datoteku upisivanjem ctrl-x, a zatim y kada se od vas zatraži da spremite, a zatim pritisnite ENTER.
Zatim upišite sudo reboot.
Ovdje negdje treba napomenuti 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 objekat datetime za upoređivanje vremena sa onima pročitanim u datoteci sleepset.txt. Tekstualna datoteka je jednostavno dva reda, prvi za sat, drugi za minute. sleeptrainer1_1.py spava jednu minutu između iteracija petlje kako ne bi vezao procesor. Zeleno svjetlo je isprva 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 datetime import datetime kao dt vrijeme uvoza 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 (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 (zelena1, 100) p2 = GPIO. PWM (zelena2, 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 ledlight (boja): if (boja == "crvena"): GPIO.izlaz (crveno1, GPIO. VISOKO) GPIO.izlaz (crveno2, GPIO. HIGH) p1.stop () p2.stop () GPIO.izlaz (plavo1, GPIO. LOW) GPIO.izlaz (plavo2, 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. HIGH) 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, minut = 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 ().mesec, dt.now (). dan, sat-1, minut+30) <dt.now () <dt (dt.now (). godina, dt.now (). mjesec, dt.now ().dan, sat, minut): 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, minut-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 (). godina, dt.now (). mjesec, dt.now ().dan, sat, minut) <dt.now () <dt (dt.now (). godina, dt.now (). mjesec, dt.now (). dan, sat+1, minuta): LEDlight ("zeleno") else: ledlight ("off") time.sleep (60)
Datoteka index.html je osnovni oblik dizajniran u HTML -u. On uzima sadržaj dva tekstualna okvira i prosljeđuje ih u datoteku sleepset.php radi obrade obrasca. PHP datoteka jednostavno prepisuje datoteku sleepset.txt ažuriranim podacima.
Korak 5: Sastavite sve zajedno
Kada je kodiranje završeno i svi dijelovi odštampani, vrijeme je za montažu. Slijedio sam ove korake za sastavljanje svega:
- Izbušite dvije male rupe veličine do RGB LED -a na dnu trube i postavite LED -ove u ove rupe.
- Stavite rog u rupu u glavi jednoroga i provucite ga dok se ne stegne. Za pričvršćivanje roga upotrijebite ljepilo iznutra.
- Pričvrstite Raspberry Pi Zero W na unutrašnjost glave jednoroga. (Možda pomoću pištolja za vruće ljepilo)
- Pričvrstite glavu jednoroga na bazu jednoroga.
- Priključite kabel za napajanje i pričvrstite cijeli sklop na zid.
- Uključite sat.
U ovom trenutku imam funkcionalan dječji sat za treniranje sna.
Korak 6: Godinu dana kasnije…
Godinu dana kasnije:
Moje cure spavaju još malo. Navikli smo se buditi malu djecu u svojoj sobi govoreći: "Tata, svjetlo je zeleno." i to je odlično. Ukratko, budimo se samo u subotu u 5:30 ujutro 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čuje se:
Prvi dječji sat - sa tajmerom za paljenje: 16 koraka (sa slikama)
Prvi satovi za mališane - s mjeračem vremena za paljenje: Ovaj vodič vam pokazuje kako napraviti izmjenjiva lica na satu - koja mogu sadržavati slike vašeg djeteta, fotografije porodice/kućnog ljubimca - ili bilo što drugo - što ste mislili da bi bilo lijepo povremeno mijenjati. Jednostavno pričvrstite prozirni staklo na željenu ar
USB kontroler igre za vježbanje na mašini za vježbanje: 8 koraka (sa slikama)
USB kontroler za igre uređaja za vježbanje: Da bih potaknuo vježbanje u sebi i u porodici, napravio sam adapter koji emulira standardni adapter za USB kontroler igre, ali kontrolira brzinu kretanja igre pedaliranjem na eliptičnoj mašini ili sobnom biciklu. Posebno je lijep za trkačke igre. To je
Osvijetlite dječji sat - Green znači Go! Crveno, ostani na krevetu !!!: 5 koraka (sa slikama)
Osvijetlite dječji sat - Green znači Go! Crveno, ostani u krevetu !!!: Ludili smo bez dovoljno sna !!! Naš dvogodišnjak nije mogao razumjeti kako "čekati sedmu" na satu prije nego što je izašao iz svoje sobe ujutro nakon jutra. Probudio bi se rano (mislim oko 5:27 ujutro - " ima 7 !!! "
Uređaj za vježbanje ovjesa lanaca za vježbanje poluge tijela: 3 koraka
Uređaj za vježbanje ovjesa lanaca za vježbanje poluge tijela: Lanci su jednostavna, jeftina i prenosiva teretana za cijelo tijelo. Ažuriranje: Pogledajte Lashing Strap TRX Clone Instructable za lakšu, jeftiniju alternativu. Uvod: Šta su vježbe suspenzije (poluge za tijelo)? Vježbe vješanja
Sat za praćenje zone pulsa za vježbanje: 19 koraka (sa slikama)
Obuka Nadgledanja zone mjerenja otkucaja srca: Fakultet je užurbano i haotično vrijeme u životu, zato je vrlo važno održavati nizak nivo stresa. Jedan od načina na koji to volimo je vježbanje, koje pomaže da vaš um bude jasan, a tijelo zdravo. Zato smo stvorili prenosivi