Sisukord:

Laste une treeningkell: 6 sammu (piltidega)
Laste une treeningkell: 6 sammu (piltidega)

Video: Laste une treeningkell: 6 sammu (piltidega)

Video: Laste une treeningkell: 6 sammu (piltidega)
Video: 6 урок "Начни свою христианскую жизнь" - Торбен Сондергаард. 2024, November
Anonim
Laste une treeningkell
Laste une treeningkell
Laste une treeningkell
Laste une treeningkell
Laste une treeningkell
Laste une treeningkell
Laste une treeningkell
Laste une treeningkell

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

3D printimine
3D printimine
3D printimine
3D printimine
3D printimine
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

Ringkond
Ringkond
Ringkond
Ringkond
Ringkond
Ringkond

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:

  1. Kasutage absoluutset failiteed, et LINUX ei arvaks, et fail sleeptraner1_1.py asub samas kataloogis kui rc.local.
  2. Ä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

Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema
Kõike kokku panema

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:

  1. Puurige sarve allservas kaks väikest RGB -valgusdioodide suurusega auku ja asetage LED -id nendesse aukudesse.
  2. Asetage sarv ükssarviku pea auku ja tõmmake see läbi, kuni see on pingul. Sarve kinnitamiseks kasutage seestpoolt liimi.
  3. Kinnitage Raspberry Pi Zero W ükssarviku pea siseküljele. (Võib -olla kuuma liimipüstoli kasutamine)
  4. Kinnitage ükssarviku pea ükssarviku aluse külge.
  5. Ühendage toitejuhe ja kogu komplekt seina külge.
  6. Ühendage kell.

Sel hetkel on mul toimiv laste unekoolitaja kell.

Samm: üks aasta hiljem…

Aasta hiljem…
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: