Obsah:
- Zásoby
- Krok 1: 3D tlač
- Krok 2: Okruh
- Krok 3: Príprava Raspberry Pi
- Krok 4: Kód
- Krok 5: Dajte to všetko dohromady
- Krok 6: O rok neskôr…
Video: Hodiny na spánok detí: 6 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Potreboval som hodiny, ktoré by pomohli mojim 4 -ročným dvojčatám naučiť sa zaspať o niečo dlhšie (už mám dosť toho, že som sa musel v sobotu zobudiť o 5:30 ráno), ale ešte nevedia čítať čas. Po prelistovaní niekoľkých položiek na veľmi obľúbenom nákupnom webe som si pomyslel: „Ako ťažké by bolo vyrobiť si jeden ?!“
Tu je to, čo som si myslel, že v tomto projekte chcem. Na zobrazenie troch rôznych farieb by to použilo niektoré RGB LED diódy (väčšinou preto, že ich mám asi päťdesiat z iného projektu). Červená by znamenala vrátiť sa spať, na vstávanie je ešte priskoro. Žltá by znamenala, že môžu vstať a ticho sa hrať vo svojej izbe. Zelená, samozrejme, znamená, že môžete vstať. Tiež som chcel byť schopný prispôsobiť čas, pretože niektoré dni by som rád spal dlhšie (víkendy/prázdniny vs všedné dni a podobne).
Zásoby
Raspberry Pi Zero W
Dve RGB LED diódy
Šesť rezistorov 220 ohmov
Tu sa nachádzajú súbory (.stl, python, html)
Podľa potreby rôzne malé skrutky, drôty a malé diely.
Krok 1: 3D tlač
Moja dcéra má veľmi rada jednorožce, a preto som pre tento projekt remixoval Unicorn Nightlight od Riven02, ktorý je remixom hry Unicorn Trophy od Apachcreation, ktorú nájdete na Thingiverse.com a používa sa pod licenciou Creative Commons Non-Commercial. Základňu jednorožca som upravil tak, aby zodpovedala napájaciemu káblu pre malinu pi nula. Náhodou som okolo položil nejaký AMZ3D Red PLA, takže základňa a hlava jednorožca budú červené. Na klaksón som použil číry/priesvitný PLA. Použité súbory a nastavenia.stl sú:
Unicorn.stl
- Výška vrstvy: 0,02
- Hrúbka steny:.8
- Počet liniek na stene: 2
- Výplň: 15%
- Vzor výplne: Mriežka
UnicornBase.stl
- Výška vrstvy: 0,02
- Hrúbka steny:.8
- Počet liniek na stene: 2
- Výplň: 15%
- Vzor výplne: Mriežka
Horn.stl
- Výška vrstvy: 0,02
- Hrúbka steny: 0,8
- Počet liniek na stene: 3
- Výplň: 0
Krok 2: Okruh
Okruh je celkom ľahký. Vybral som šesť rôznych pinov GPIO na ovládanie zapnutia/vypnutia pre rôzne farby RGB. Tieto kolíky a zodpovedajúce farby LED sú:
- Kolík 11 na RGB 1 ČERVENÝ
- Pin 13 na RGB 1 ZELENÝ
- Kolík 15 na RGB 1 MODRÝ
- Kolík 16 na RGB 2 ČERVENÝ
- Kolík 18 na RGB 2 ZELENÝ
- Pin 36 na RGB 2 MODRÝ
- Kolík 39 k zemi
Každý kolík je pripojený k odporu prostredníctvom odporu obmedzujúceho prúd 220 ohmov (s výnimkou zeme, samozrejme.) Odpájal som odpor v rade a zakryl ho zmršťovacou trubicou.
Krok 3: Príprava Raspberry Pi
Chcel som mať možnosť nastaviť časy pre hodiny trénera spánku pomocou webového rozhrania. Potreboval som teda nastaviť server Apache a PHP na Raspberry Pi. Prvá vec, ktorú by ste mali vždy urobiť pri inštalácii nového softvéru na Raspberry Pi, je uistiť sa, že je aktuálny, zadaním:
sudo apt-get aktualizácia
Potom sa môžeme skutočne pustiť do práce. Urobíme to inštaláciou Apache2:
sudo apt -get install apache2 -y
toto by malo nainštalovať webový server Apache. Môžete to otestovať pomocou prehliadača na Raspberry pi a navigáciou na:
localhost/
alebo navigáciou z prehliadača iného počítača na ip adresu vášho Raspberry Pi. Ak chcete nájsť typ svojej ip adresy:
názov hostiteľa -I
Ich vykonaním sa dostanete na predvolenú stránku webového servera Apache. Toto je možné zmeniť nahradením index.html umiestneného v adresári/var/www/html/. Je možné ho nahradiť vlastným súborom index.html.
Ďalej nastavíme webový server Apache, aby mohol spúšťať súbory PHP. Začnite zadaním:
sudo apt-get install php libapache2-mod-php -y
Teraz by ste mali byť schopní umiestniť súbor sleepset.php do súboru/var/www/html so súborom index.html.
Aby ste sa mohli na túto stránku dostať vo svojej vlastnej sieti, musíte svojmu Raspberry Pi nastaviť statickú adresu IP (alebo sa môžete pokúsiť zistiť novú adresu IP, keď ju sieť občas obnoví). Aby to fungovalo, budete musieť upraviť niekoľko súborov. Súbor /etc/dhcpcd.conf budete musieť upraviť nasledovne:
rozhranie wlan0
static ip_address = 192.168.1.static routery = 192.168.1.1 static domain_name_servers = 192.168.1.1
Nahraďte informáciami o svojej sieti. Jediná vec, ktorú musíte teraz urobiť, je reštartovať počítač.
sudo reštart
Umiestnenie súborov z odkazu na disk Google by malo byť nasledovné:
- index.html a sleepset.php by mali byť umiestnené v adresári/var/www/html
- sleepset.txt a sleeptrainer1_1.py by mali byť umiestnené v adresári/home/pi/pythoncode (rada: tento adresár budete musieť vytvoriť)
Po umiestnení týchto súborov do správneho adresára je potrebné súbor rc.local upraviť tak, aby pri spustení bežal program sleeptrainer1_1.py. Na úpravu súboru rc.local budete potrebovať prístup na koreňovej úrovni, zadajte teda:
sudo nano /etc/rc.local
V editore posuňte zobrazenie nadol a tesne pred riadok ukončenia 0 zadajte:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Tu si treba zapamätať dve veci:
- Použite absolútnu cestu k súboru, aby si LINUX nemyslel, že súbor sleeptraner1_1.py je umiestnený v rovnakom adresári ako rc.local.
- Nezabudnite na znak ampersand (&) na konci. to umožní LINUXU spustiť tento súbor na pozadí a pokračovať v zavádzaní.
Teraz uložte súbor zadaním ctrl-x a potom y po zobrazení výzvy na uloženie a potom klávesu ENTER.
Potom zadajte príkaz sudo reboot.
Tu niekde musí byť uvedené, že (minimálne) by ste si mali zmeniť heslo k Raspberry Pi pomocou príkazu passwd. Ak ste to ešte neurobili, teraz by bolo načase.
Krok 4: Kód
Nasleduje kód zo súboru sleeptrainer1_1.py. Na porovnanie časov s časmi načítanými v súbore sleepset.txt som použil objekt datetime. Textový súbor sú jednoducho dva riadky, prvý na hodinu, druhý na minútu. sleeptrainer1_1.py spí jednu minútu medzi iteráciami slučky, aby sa nezaviazal procesor. Zelené svetlo pôvodne vychádzalo príliš jasne, takže som použil moduláciu šírky impulzu, aby som ho stlmil, keď sa použil červený na žltý.
Python kód:
importujte RPi. GPIO ako GPIO
from datetime import datetime as dt import time 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 (green1, GPIO. OUT) GPIO.setup (green2, GPIO. OUT) GPIO.setup (blue1, GPIO. OUT) GPIO.setup (blue2, 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) 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. VYSOKÉ) elif (farba == "zelená"): 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 (farba == "žltá"): 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 () while True: osadime = readdset () hodina, minúta = vyrovnanie if minute == 0: if dt (dt.now (). year, dt.now (). month, dt.now (). day, hour-2) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina-1, minúta+30): ledlight („červená“) elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina-1, minúta+30) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now ().deň, hodina, minúta): ledlight („žltá“) elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina+1, minúta): ledlight ("zelená") else: ledlight ("off") elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, ho ur-2) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta-30): ledlight ("červená") elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta-30) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta): ledlight („žltá“) elif dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina, minúta) <dt.now () <dt (dt.now (). rok, dt.now (). mesiac, dt.now (). deň, hodina+1, minúta): ledlight („zelená“) else: ledlight („vypnuté“) time.sleep (60)
Súbor index.html je základný formulár navrhnutý v HTML. Prevezme obsah dvoch textových polí a odošle ich do súboru sleepset.php na spracovanie formulárov. Súbor PHP jednoducho prepíše súbor sleepset.txt aktualizovanými údajmi.
Krok 5: Dajte to všetko dohromady
Keď je kódovanie dokončené a všetky diely sú vytlačené, je čas na montáž. Pri zostavovaní všetkého som postupoval podľa týchto krokov:
- Vyvŕtajte dva malé otvory veľkosti RGB LED do spodnej časti rohu a vložte do nich diódy LED.
- Vložte roh do otvoru v hlave jednorožca a ťahajte ním, kým nie je tesný. Na zaistenie rohu použite lepidlo zvnútra.
- Pripojte Raspberry Pi Zero W k vnútornej strane hlavy jednorožca. (Možno použitie horúcej lepiacej pištole)
- Pripevnite hlavu jednorožca k základni jednorožca.
- Pripojte napájací kábel a pripevnite celú zostavu k stene.
- Pripojte hodiny.
V tomto mieste mám funkčné hodiny detského trénera spánku.
Krok 6: O rok neskôr…
O jeden rok neskor:
Moje dievčatá chvíľu spia. Zvykli sme si na prebúdzanie malých detí v našej izbe so slovami: „Oci, svetlo je zelené“. a to je skvelé. Stručne povedané, vstávame iba o 5:30 v sobotu, keď to už plánujeme.
Veci, ktoré plánujem v budúcnosti zlepšiť:
- Možno je potrebné pridať nejaké senzory alebo iné položky, ako napríklad mikrofón a reproduktory.
- Možno upravíte kód tak, aby fungoval s reproduktorom a slúžil ako budík, pretože moje deti čoskoro začnú chodiť do školy.
Odporúča:
IR teplomer pre spánok: 5 krokov
IR teplomer pre spánok: Tento Lazy Old Geek (L.O.G.) nedávno kúpil IR tepelný modul MLX90614 od AliExpress.com. Pozri obrázky Jedná sa o rovnaký typ senzora, aký sa používa v tých čelných a ušných teplomeroch uvedených na treťom obrázku. Hovorí sa im bezkontaktné, pretože
Ľahký spánok: 5 krokov (s obrázkami)
Pokojný spánok: Ahoj, volám sa Jakob. Som alergický na roztoče z domáceho prachu a mám astmu. Toto je inšpirácia pre tento projekt. Pre môj prvý rok MCT sme dostali úlohu vytvoriť projekt od začiatku s využitím všetkých znalostí, ktoré sme tento rok získali. Vybral som si
Svietiace hodiny pre deti - Zelená znamená, choďte! Červená, zostaňte na lôžku !!!: 5 krokov (s obrázkami)
Svietiace hodiny pre deti - Zelená znamená, choďte! Červená, zostaň na lôžku !!!: Zbláznili sme sa bez dostatočného spánku !!! Naše 2-ročné dieťa nemohlo pochopiť, ako " čakať na 7 " na hodinách, než ráno z rána vychádzal zo svojej miestnosti. Zobudil by sa skoro (myslím asi 5:27 - - "je 7 !!!"
Pripojené nočné hodiny pre deti: 12 krokov
Pripojené nočné hodiny pre deti: Podľa týchto pokynov budete môcť postaviť hodiny, ktoré sa aktivujú pohybom a budú zobrazovať dátum, čas a príslušnú udalosť dňa. Ukáže nočný režim, keď je čas spať a keď sa deti zobudia, rýchlo si spomenú, čo
Vypnutie, reštartovanie alebo dlhodobý spánok počítača podľa plánu: 6 krokov
Vypnutie, reštartovanie alebo dlhodobý spánok počítača podľa plánu: V tomto návode vám ukážem, ako podľa plánu vypnúť, reštartovať alebo prepnúť počítač do režimu hibernácie. Ak používate starší operačný systém, pozrite si upozornenie na konci než Windows XP