Sisukord:
- Tarvikud
- Samm: 3D -printimine
- 2. samm: vooluring
- 3. samm: Vaarika Pi ettevalmistamine
- 4. samm: kood
- Samm: pange see kõik kokku
- Samm: üks aasta hiljem…
Video: Laste une treeningkell: 6 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Mul oli vaja kella, mis aitaks mu 4 -aastastel kaksikutel veidi kauem magama õppida (mul on juba piisavalt, et pean laupäeviti ärkama kell 5.30 hommikul), kuid nad ei oska veel aega lugeda. Pärast väga populaarsel ostlemissaidil mõne eseme sirvimist mõtlesin: "Kui raske oleks lihtsalt seda teha ?!"
Nii et ma arvasin, et tahan seda projekti. See kasutaks kolme erinevat värvi kuvamiseks mõnda RGB LED -i (enamasti seetõttu, et mul on neid umbes viiskümmend teist projekti). Punane tähendaks tagasi magama jäämist, ärkamiseks on liiga vara. Kollane tähendaks, et nad saavad oma toas vaikselt püsti tõusta ja mängida. Roheline tähendab muidugi, et saate üles tõusta. Tahtsin ka kellaaega reguleerida, sest tahaksin mõnel päeval kauem magada (nädalavahetused/pühad vs tööpäevad jms).
Tarvikud
Vaarika Pi Zero W
Kaks RGB LED -i
Kuus 220 oomi takistit
Failid (.stl, python, html) leiti siit
Erinevad väikesed kruvid, juhtmed ja väikesed osad vastavalt vajadusele.
Samm: 3D -printimine
Minu tütar meeldib tõesti ükssarvikutele, nii et selle projekti jaoks remiksisin ma Riven02 Unicorn Nightlight'i, mis on Apachcreationi ükssarviku trofee remiks, mille leiate veebisaidilt Thingiverse.com ja mida saab kasutada Creative Commons Non-Commercial litsentsi alusel. Muutsin ükssarviku alust nii, et see sobiks vaarika pi nulli toitejuhtmega. Mul juhtus mõni AMZ3D Red PLA ümber istuma, nii et ükssarviku alus ja pea on punased. Sarve jaoks kasutasin selget/poolläbipaistvat PLA -d. Kasutatud.stl -failid ja seaded on järgmised:
Ükssarvik.stl
- Kihi kõrgus: 0,02
- Seina paksus:.8
- Seinajoonte arv: 2
- Täidis: 15%
- Täitmismuster: võre
UnicornBase.stl
- Kihi kõrgus: 0,02
- Seina paksus:.8
- Seinajoonte arv: 2
- Täidis: 15%
- Täitmismuster: võre
Sarv.stl
- Kihi kõrgus: 0,02
- Seina paksus: 0,8
- Seinajoonte arv: 3
- Täitmine: 0
2. samm: vooluring
Ring on üsna lihtne. Valisin RGB erinevate värvide sisse- ja väljalülitamiseks kuus erinevat GPIO tihvti. Need tihvtid ja vastavad LED -värvid on järgmised:
- Tihvt 11 kuni RGB 1 PUNANE
- Tihvt 13 kuni RGB 1 GREEN
- Tihvt 15 kuni RGB 1 SININE
- Pin 16 kuni RGB 2 RED
- Tihvt 18 kuni RGB 2 GREEN
- Pin 36 kuni RGB 2 SININE
- Tihvt 39 maapinnale
Iga tihvt on ühendatud takistiga 220 oomi voolu piirava takisti kaudu (välja arvatud muidugi maandus.) Jootsin takisti joonele ja katsin termokahaneva toruga.
3. samm: Vaarika Pi ettevalmistamine
Tahtsin, et veebiliidese abil oleks võimalik unetreeneri kellaajaid määrata. Nii et mul oli vaja Raspberry Pi -le seadistada Apache ja PHP -server. Esimene asi, mida peaksite Raspberry Pi -le uue tarkvara installimisel alati tegema, on veenduda, et see on ajakohane, tippides:
sudo apt-get update
Pärast seda saame tõesti asja kallale asuda. Seda teeme Apache2 installimisega:
sudo apt -get install apache2 -y
see peaks installima Apache veebiserveri. Saate seda testida, kasutades Raspberry pi brauserit ja navigeerides:
localhost/
või navigeerides teise arvuti brauserist oma Raspberry Pi ip -aadressile. IP -aadressi tüübi leidmiseks tehke järgmist.
hostinimi -mina
Seda tehes jõuab Apache veebiserveri vaikelehele. Seda saab muuta, asendades kataloogis/var/www/html/asuva indeksi.html. Selle saab asendada minu enda failiga index.html.
Järgmisena seadistame Apache veebiserveri PHP -failide käitamiseks. Alustage tippimisega:
sudo apt-get install php libapache2-mod-php -y
nüüd peaksite faili Sleeppset.php paigutama faili/var/www/html koos failiga index.html.
Oma võrgus sellele lehele navigeerimiseks peate oma Raspberry Pi seadistama staatilise ip -aadressiga (või võite lihtsalt proovida välja selgitada uue IP -aadressi, kui teie võrk seda aeg -ajalt uuendab). Selle toimimiseks peate paar faili redigeerima. Peate faili /etc/dhcpcd.conf muutma järgmiselt.
liides wlan0
staatiline ip_address = 192.168.1. staatilised ruuterid = 192.168.1.1 staatiline domeeninime_serverid = 192.168.1.1
Asendage see oma võrguteabega. Ainuke asi, mida peate nüüd tegema, on taaskäivitamine.
sudo taaskäivitamine
Failide paigutus Google Drive'i lingilt peaks olema järgmine:
- index.html ja sleepset.php tuleks paigutada kataloogi/var/www/html
- sleepset.txt ja sleeptrainer1_1.py tuleb paigutada kataloogi/home/pi/pythoncode (vihje: peate selle kataloogi looma)
Pärast nende failide õigesse kataloogi paigutamist tuleb faili rc.local muuta, et käivitada käivitamisel programm sleeptrainer1_1.py. Faili rc.local muutmiseks vajate juurtaseme juurdepääsu, seega tippige:
sudo nano /etc/rc.local
Kerige redaktoris alla ja lisage vahetult enne väljumisrea 0:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Siin tuleb meeles pidada kahte asja:
- Kasutage absoluutset failiteed, et LINUX ei arvaks, et fail sleeptraner1_1.py asub samas kataloogis kui rc.local.
- Ärge unustage lõpus märki (&). see võimaldab LINUXil seda faili taustal käivitada ja käivitamist jätkata.
Nüüd salvestage fail, tippides ctrl-x ja seejärel y, kui teil palutakse salvestada, ja seejärel sisestusklahvi.
Seejärel tippige sudo reboot.
Siin peaks kusagil mainima, et (vähemalt) peaksite oma Raspberry Pi parooli muutma, kasutades käsku passwd. Kui te pole seda veel teinud, oleks nüüd hea aeg.
4. samm: kood
Allpool on kood SleepTrainer1_1.py failist. Kasutasin kuupäeva- ja ajaobjekti, et võrrelda aegu failis sleepset.txt loetutega. Tekstifail koosneb lihtsalt kahest reast, esimene tund, teine minut. sleeptrainer1_1.py magab silmuse iteratsioonide vahel ühe minuti, et mitte protsessorit kinni siduda. Roheline tuli oli algselt liiga hele, nii et ma kasutasin impulsi laiuse modulatsiooni selle hämardamiseks, kui seda kasutati punasega kollaseks.
Pythoni kood:
RPi. GPIO importimine GPIO -na
kuupäevast ja ajast impordist datetime kui dt impordiajast GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (vale) red1 = 11 red2 = 16 green1 = 13 green2 = 18 blue1 = 15 blue2 = 36 GPIO.setup (red1, GPIO. OUT) GPIO.seadistus (punane2, GPIO. OUT) GPIO.seadistus (roheline1, GPIO. VÄLJAS) GPIO.seadistus (roheline2, GPIO. VÄLJAS) GPIO.seadistus (sinine1, GPIO. VÄLJAS) GPIO.seadistus (sinine2, GPIO. VÄLJU) p1 = GPIO. PWM (roheline1, 100) p2 = GPIO. PWM (roheline2, 100) def readset (): setfile = open ("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile. readline () b = setfile.readline () a = int (a) b = int (b) tagasta a, b def ledlight (värv): if (color == "red"): GPIO.output (red1, GPIO). HIGH) GPIO.output (punane2, GPIO. HIGH) p1.stop () p2.stop () GPIO.väljund (sinine1, GPIO. LOW) GPIO.output (sinine2, GPIO. LOW) elif (värv == "sinine")): GPIO.väljund (punane1, GPIO. LOW) GPIO.väljund (punane2, GPIO. LOW) p1.stop () p2.stop () GPIO.väljund (sinine1, GPIO. HIGH) GPIO.väljund (sinine2, GPIO. HIGH) elif (värv == "roheline"): GPIO.väljund (punane1, GPIO. LOW) GPIO.väljund (punane2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.väljund (sinine1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (värv == "kollane"): p1.start (60) p2.start (60) GPIO.output (punane1, GPIO. HIGH) GPIO.output (punane2, GPIO. HIGH) GPIO.väljund (sinine1, GPIO. LOW) GPIO.väljund (sinine2, GPIO. LOW) elif (värv == "väljas"): GPIO.väljund (punane1, GPIO. LOW) GPIO.väljund (punane2, GPIO. LOW) GPIO.väljund (sinine1, GPIO. LOW) GPIO.väljund (sinine2, GPIO. LOW) p1.stop () p2.stop () samas tõsi: settime = readset () tund, minut = settime kui minut == 0: kui dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund-2) <dt.now () <dt (dt.now ().aasta, dt.now (). kuu, dt.now (). päev, tund-1, minut+30): ledlight ("punane") elif dt (dt.now (). aasta, dt.now ().kuu, dt.now (). päev, tund-1, minut+30) <dt.now () <dt (dt.now (). aasta, dt.now (). kuu, dt.now ().päev, tund, minut): ledlight ("kollane") elif dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund, minut) <dt.now () <dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund+1, minut): ledlight ("roheline") else: ledlight ("off") elif dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, ho ur-2) <dt.now () <dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund, minut-30): LED-tuli ("punane") elif dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund, minut-30) <dt.now () <dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund, minut): ledlight ("kollane") elif dt (dt.now (). aasta, dt.now (). kuu, dt.now ().päev, tund, minut) <dt.now () <dt (dt.now (). aasta, dt.now (). kuu, dt.now (). päev, tund+1, minut): LED "roheline") muu: ledlight ("väljas") aeg. uni (60)
Fail index.html on HTML -is kujundatud põhivorm. See võtab kahe tekstivälja sisu ja edastab need vormi haldamiseks failile sleepset.php. PHP -fail kirjutab uuendatud andmetega lihtsalt faili sleeppset.txt üle.
Samm: pange see kõik kokku
Kui kodeerimine on lõpetatud ja kõik osad on trükitud, on aeg kokkupanekuks. Ma järgisin neid samme, et kõik kokku panna:
- Puurige sarve allservas kaks väikest RGB -valgusdioodide suurusega auku ja asetage LED -id nendesse aukudesse.
- Asetage sarv ükssarviku pea auku ja tõmmake see läbi, kuni see on pingul. Sarve kinnitamiseks kasutage seestpoolt liimi.
- Kinnitage Raspberry Pi Zero W ükssarviku pea siseküljele. (Võib -olla kuuma liimipüstoli kasutamine)
- Kinnitage ükssarviku pea ükssarviku aluse külge.
- Ühendage toitejuhe ja kogu komplekt seina külge.
- Ühendage kell.
Sel hetkel on mul toimiv laste unekoolitaja kell.
Samm: üks aasta hiljem…
Aasta hiljem:
Minu tüdrukud magavad natuke kauem. Oleme harjunud ärkama, et meie toas on väikesed lapsed ja ütlevad: "Isa, tuli on roheline." ja see on suurepärane. Lühidalt, ärkame alles laupäeval kell 5.30, kui me seda enam planeerime.
Asjad, mida kavatsen tulevikus parandada:
- Võib -olla lisada mõned andurid või muud esemed, näiteks mikrofon ja kõlarid.
- Võib -olla muutke koodi kõlariga töötamiseks, et seda äratuskellana kasutada, kuna mu lapsed alustavad varsti kooli.
Soovitan:
Laste MP3 -muusikakast: 6 sammu (piltidega)
Laste MP3 -muusikakast: arduino ümber uusi DIY -projekte otsides leidsin häid ideid lastele mõeldud RFID -põhiste MP3 -mängijate kohta. Ja turul on üks suurepärane professionaalne mänguasjakast - need poisid valitsevad. Nad tegid oma nutikast ideest suurepärase äri. Kontrollima
Ikea laste köögivalgustid Mod: 11 sammu (piltidega)
Ikea Kids Köögituled Mod: Minu tütarde teise sünnipäeva puhul otsustasime talle köögikomplekti hankida. Kuid ma tahtsin tõesti muuta selle, mille me talle andsime, ja olles inspireeritud sellest, mida mõned suurepärased tegijad olid teinud Ikea Duktigi köögiga, otsustasime selle hankida ja teha
Laste RGB LED -tähe öövalgus: 9 sammu (piltidega)
Laste RGB LED -tähe öövalgusti: mulle meeldib oma lastele projekte teha ja mulle meeldib ka projekte teha RGB -valgusdioodide abil, nii et ma mõtlesin oma lastetubadesse valgust tuvastava RGB -tähekujulise öövalguse. Öövalgus tuvastab, kas see on pimedas, ja lülitab sisse RGB LED -id
Laste köök, mis ütleb BEEP: 7 sammu (piltidega)
Laste köök, mis ütleb BEEP: Minu kaheaastasel tütrel oli kolmanda sünnipäeva puhul „väike” soov. Ta tahtis väikest kööki, mis ütleb piiks. "Mida sa tahad?" oli minu vastus. "Köök, mis ütleb piiksu, täpselt nagu emme köök!", Ütles ta … Niisiis, see oli inspiratsioon (ma
Laste fotoalbum koos reklaamkaardiga: 8 sammu (piltidega)
Laste fotoalbum koos Flashcard Commercial'iga: need juhendid näitavad, kuidas teha WiFi -automaatvärskendusega fotoalbumit koos laste flash -kaardi kommertsfunktsioonidega