Cuprins:
- Provizii
- Pasul 1: Imprimare 3D
- Pasul 2: Circuitul
- Pasul 3: Pregătirea Raspberry Pi
- Pasul 4: Codul
- Pasul 5: Puneți totul împreună
- Pasul 6: Un an mai târziu …
Video: Ceas de antrenament pentru somn pentru copii: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Am avut nevoie de un ceas pentru a-mi ajuta gemenii de 4 ani să învețe să doarmă puțin mai mult (am ajuns să mă trezesc sâmbăta la 5:30 dimineața), dar încă nu pot citi ora. După ce am parcurs câteva articole de pe un site de cumpărături foarte popular, m-am gândit: „Cât de greu ar fi să faci unul ?!”
Deci, iată ce am crezut că vreau în acest proiect. Ar folosi unele LED-uri RGB (mai ales pentru că am aproximativ cincizeci dintre ele dintr-un alt proiect) pentru a afișa trei culori diferite. Roșu ar însemna să te întorci la somn, e prea devreme să te trezești. Galbenul ar însemna că se pot ridica și se pot juca liniștiți în camera lor. Verde, desigur, înseamnă că te poți ridica. De asemenea, am vrut să pot regla timpul, pentru că aș vrea să dorm mai mult în câteva zile (weekend-uri / sărbători vs săptămâni și altele).
Provizii
Raspberry Pi Zero W
Două LED-uri RGB
Șase rezistențe de 220 Ohm
Fișiere (.stl, python, html) găsite aici
Diverse șuruburi mici, fire și piese mici, după cum este necesar.
Pasul 1: Imprimare 3D
Fiicei mele le plac foarte mult unicornii, așa că pentru acest proiect am remixat Unicorn Nightlight de la Riven02, care este un remix al Trofeului Unicorn al lui Apachcreation, care poate fi găsit pe Thingiverse.com și utilizat sub o licență non-comercială Creative Commons. Am modificat baza unicornului pentru a se potrivi cu un cablu de alimentare pentru zmeura pi zero. Întâmplător am avut câteva AMZ3D Red PLA așezate în jur, așa că baza și capul unicornului vor fi roșii. Am folosit PLA clar / translucid pentru corn. Fișierele și setările.stl pe care le-am folosit sunt:
Unicorn.stl
- Înălțimea stratului: 0,02
- Grosimea peretelui:.8
- Număr de linii de perete: 2
- Umplere: 15%
- Model de umplere: grilă
UnicornBase.stl
- Înălțimea stratului: 0,02
- Grosimea peretelui:.8
- Număr de linii de perete: 2
- Umplere: 15%
- Model de umplere: grilă
Horn.stl
- Înălțimea stratului: 0,02
- Grosimea peretelui: 0,8
- Număr de linii de perete: 3
- Completare: 0
Pasul 2: Circuitul
Circuitul este destul de ușor. Am ales șase pini GPIO diferiți pentru a controla pornirea / oprirea pentru diferitele culori ale RGB. Acei pini și culorile LED corespunzătoare sunt:
- Pinul 11 la RGB 1 ROȘU
- Pinul 13 la RGB 1 VERDE
- Pin 15 la RGB 1 ALBASTRU
- Pinul 16 la RGB 2 RED
- Pinul 18 la RGB 2 VERDE
- Pinul 36 la RGB 2 ALBASTRU
- Pinul 39 la sol
Fiecare pin este conectat la rezistor printr-un rezistor de limitare a curentului de 220 ohmi (cu excepția terenului, desigur.) Am lipit rezistorul în linie și l-am acoperit cu tuburi termocontractabile.
Pasul 3: Pregătirea Raspberry Pi
Am vrut să pot seta orele pentru ceasul antrenorului de somn folosind o interfață web. Așa că a trebuit să configurez un server Apache și PHP pe Raspberry Pi. Primul lucru pe care trebuie să-l faceți întotdeauna atunci când instalați un nou software pe un Raspberry Pi este să vă asigurați că este actualizat, tastând:
sudo apt-get update
După aceea, putem trece cu adevărat la treabă. Vom face asta instalând Apache2:
sudo apt-get install apache2 -y
aceasta ar trebui să instaleze serverul web Apache. Puteți testa acest lucru utilizând un browser de pe Raspberry pi și navigând la:
localhost /
sau navigând de la browserul altui computer la adresa IP a Raspberry Pi. Pentru a găsi tipul de adresă IP:
numele gazdei -I
Acest lucru va duce la o pagină implicită a serverului web Apache. Acest lucru poate fi schimbat prin înlocuirea index.html aflat în directorul / var / www / html /. Poate fi înlocuit cu propriul meu fișier index.html.
Apoi vom configura serverul web Apache pentru a putea rula fișiere PHP. Începeți prin tastarea:
sudo apt-get install php libapache2-mod-php -y
acum ar trebui să puteți plasa fișierul sleepset.php în / var / www / html cu fișierul index.html.
Pentru a naviga la această pagină în propria rețea, va trebui să configurați Raspberry Pi cu o adresă IP statică (sau puteți încerca să aflați noua adresă IP când rețeaua dvs. o reînnoiește din când în când). Va trebui să editați câteva fișiere pentru ca acest lucru să funcționeze. Va trebui să editați fișierul /etc/dhcpcd.conf cu următoarele:
interfață wlan0
static ip_address = 192.168.1. routere statice = 192.168.1.1 static domain_name_servers = 192.168.1.1
Înlocuiți cu informațiile de rețea. Singurul lucru pe care va trebui să-l faceți acum este repornirea.
sudo reboot
Plasarea fișierelor de pe link-ul Google Drive ar trebui să fie după cum urmează:
- index.html și sleepset.php trebuie plasate în directorul / var / www / html
- sleepset.txt și sleeptrainer1_1.py trebuie plasate în directorul / home / pi / pythoncode (indiciu: va trebui să creați acest director)
După plasarea acestor fișiere în directorul corect, fișierul rc.local trebuie modificat pentru a rula programul sleeptrainer1_1.py la pornire. Veți avea nevoie de acces la nivel de rădăcină pentru a modifica fișierul rc.local, deci tastați:
sudo nano /etc/rc.local
În editor, derulați în jos și chiar înainte de linia de ieșire 0, adăugați:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Există două lucruri de reținut aici:
- Utilizați calea fișierului absolut, astfel încât LINUX să nu creadă că fișierul sleeptraner1_1.py este situat în același director ca și rc.local.
- Nu uitați de ampersand (&) la sfârșit. acest lucru va permite LINUX să ruleze acest fișier în fundal și să continue bootarea.
Acum, salvați fișierul tastând ctrl-x și apoi y când vi se solicită să salvați, apoi ENTER.
Apoi tastați sudo reboot.
Ar trebui menționat undeva aici că (cel puțin) ar trebui să vă schimbați parola Raspberry Pi folosind comanda passwd. Dacă nu ați făcut încă acest lucru, acum ar fi un moment bun.
Pasul 4: Codul
Următorul este codul din fișierul sleeptrainer1_1.py. Am folosit un obiect datetime pentru a compara orele cu cele citite în fișierul sleepset.txt. Fișierul text este pur și simplu două rânduri, primul pentru oră, al doilea pentru minut. sleeptrainer1_1.py doarme un minut între iterații de buclă pentru a nu lega procesorul. Lumina verde ieșea inițial mult prea strălucitoare, așa că am folosit modulația lățimii pulsului pentru a o estompa când a fost folosită cu roșu pentru a face galben.
Cod Python:
importați RPi. GPIO ca GPIO
din datetime import datetime ca timp de import dt 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 (verde1, GPIO. OUT) GPIO.setup (verde2, GPIO. OUT) GPIO.setup (albastru1, GPIO. OUT) GPIO.setup (albastru2, GPIO. OUT) p1 = GPIO. PWM (verde1, 100) p2 = GPIO. PWM (verde2, 100) def readset (): setfile = open ("/ home / pi / pythoncode / sleepset.txt", 'r') a = setfile. readline () b = setfile.readline () a = int (a) b = int (b) return a, b def ledlight (color): if (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 (color == "blue"): 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 (color == "verde"): 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 (color == "galben"): 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 (color == "off"): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) p1.stop () p2.stop () în timp ce True: setime = readset () oră, minut = setime if minute == 0: if dt (dt.now (). year, dt.now (). month, dt.now (). day, hour-2) <dt.now () <dt (dt.now ()).an, dt.now (). lună, dt.now (). zi, oră-1, minut + 30): ledlight („roșu”) elif dt (dt.now (). an, dt.now ().lună, dt.now (). zi, oră-1, minut + 30) <dt.now () <dt (dt.now (). an, dt.now (). lună, dt.now (). zi, oră, minut): ledlight („galben”) elif dt (dt.now (). an, dt.now (). lună, dt.now (). zi, oră, minut) <dt.now () <dt (dt.now (). an, dt.now (). lună, dt.now (). zi, oră + 1, minut): ledlight („verde”) altceva: ledlight („oprit”) elif dt (dt.now (). an, dt.now (). lună, dt.now (). zi, ho ur-2) <dt.now () <dt (dt.now (). an, dt.now (). lună, dt.now (). zi, oră, minut-30): ledlight („roșu”) elif dt (dt.now (). year, dt.now (). month, dt.now (). day, hour, minute-30) <dt.now () <dt (dt.now (). year, dt.now (). lună, dt.now (). zi, oră, minut): ledlight („galben”) elif dt (dt.now (). an, dt.now (). lună, dt.now (). zi, oră, minut) <dt.now () <dt (dt.now (). an, dt.now (). lună, dt.now (). zi, oră + 1, minut): ledlight ("verde") altfel: ledlight ("oprit") time.sleep (60)
Fișierul index.html este un formular de bază conceput în HTML. Prinde conținutul a două casete de text și le trece în fișierul sleepset.php pentru gestionarea formularelor. Fișierul PHP suprascrie pur și simplu fișierul sleepset.txt cu date actualizate.
Pasul 5: Puneți totul împreună
Cu codificarea terminată și toate piesele tipărite, este timpul pentru asamblare. Am urmat acești pași pentru a pune totul împreună:
- Găsește două găuri mici dimensionate la LED-urile RGB din partea inferioară a claxonului și plasează LED-urile în aceste găuri.
- Așezați cornul în gaura din capul unicornului și trageți-l până când este strâns. Folosiți lipici din interior pentru a fixa claxonul.
- Atașați Raspberry Pi Zero W la interiorul capului de unicorn. (Folosind pistolul cu adeziv cald poate)
- Atașați capul unicornului la baza unicornului.
- Atașați cablul de alimentare și atașați întregul ansamblu la perete.
- Conectați ceasul.
În acest moment, am un ceas de antrenament pentru somn pentru copii.
Pasul 6: Un an mai târziu …
Un an mai târziu:
Fetele mele dorm încă puțin. Ne-am obișnuit să ne trezim cu copiii mici din camera noastră spunând: „Tati, lumina este verde”. și asta este minunat. Pe scurt, ne trezim doar la 5:30 AM într-o sâmbătă, când o planificăm mai mult.
Lucruri pe care intenționez să le îmbunătățesc în viitor:
- Poate adăugați niște senzori sau alte elemente, cum ar fi un microfon și difuzoare.
- Poate editați codul pentru a lucra cu un difuzor pe care să îl folosiți ca ceas cu alarmă, deoarece copiii mei vor începe școala în curând.
Recomandat:
Ceas Light Up pentru copii - Green Means Go! Roșu, stați în pat !!!: 5 pași (cu imagini)
Ceas Light Up pentru copii - Green Means Go! Roșu, stai în pat !!!: Înnebuneam fără să dormim suficient !!! Copilul nostru de 2 ani nu a putut înțelege cum să „aștepte cei 7” pe ceas înainte de a ieși din camera lui dimineață după dimineață. S-ar trezi devreme (adică ca la 5:27 dimineața - „există 7 !!!”
Ceas de noptieră conectat pentru copii: 12 pași
Ceas de nopți conectat pentru copii: urmând aceste instrucțiuni, veți putea construi un ceas care este activat prin mișcare și va afișa data, ora și evenimentul relevant al zilei. Va afișa un mod de noapte când este timpul să doarmă și când copiii se trezesc, își pot aminti rapid ce
Ceas de monitorizare a zonei ritmului cardiac de antrenament: 19 pași (cu imagini)
Antrenament Monitorizarea zonei ritmului cardiac: Colegiul este un moment agitat și haotic în viața celor de aceea este foarte important să vă mențineți nivelul de stres scăzut. O modalitate prin care ne place să facem acest lucru este să ne antrenăm, vă ajută să vă mențineți mintea limpede și corpul să se simtă sănătos. De aceea am creat un portabil
Ochelari cu cristale lichide pentru ambliopie (Ochelari de antrenament pentru ocluzie alternativă) [ATtiny13]: 10 pași (cu imagini)
Ochelari cu cristale lichide pentru ambliopie (Ochelari de antrenament pentru ocluzie alternativă) [ATtiny13]: Ambliopie (ochi leneș), o tulburare a vederii care afectează aproximativ 3% din populație, tratată de obicei prin patch-uri simple de ochi sau picături de atropină. Din păcate, aceste metode de tratament ocluzie un ochi mai puternic pentru perioade lungi de timp neîntrerupte, nu
Telecomandă pentru copii mici pentru video player pentru PC: 6 pași
Telecomandă video pentru copii mici pentru player video PC: Construiesc o telecomandă care se conectează la un computer cu USB. Telecomanda mare permite copilului meu să aleagă și să redea videoclipuri pe un computer vechi. Acesta este un proiect relativ simplu. Componenta de bază este fie o tastatură USB, fie o tastatură USB fără fir. Apoi