Tartalomjegyzék:
- Kellékek
- 1. lépés: 3D nyomtatás
- 2. lépés: Az áramkör
- 3. lépés: A Raspberry Pi előkészítése
- 4. lépés: A kód
- 5. lépés: Összerakni
- 6. lépés: Egy évvel később…
Videó: Gyermek alvási edzőóra: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Szükségem volt egy órára, hogy segítsen a 4 éves ikreimnek kicsit hosszabb ideig aludni (már elegem van abból, hogy szombaton reggel fél 5 -kor kell felkelnem), de még nem tudnak időt olvasni. Miután böngésztem néhány elemet egy nagyon népszerű vásárlási oldalon, azt gondoltam: "Milyen nehéz lenne csak elkészíteni ?!"
Tehát itt azt gondoltam, hogy szeretnék ebben a projektben. Néhány RGB LED -et használna (főleg azért, mert körülbelül ötven van egy másik projektből) három különböző szín megjelenítésére. A piros azt jelentené, hogy menj vissza aludni, korai még felkelni. A sárga azt jelentené, hogy felállhatnak és csendesen játszhatnak a szobájukban. A zöld természetesen azt jelenti, hogy felkelhetsz. Azt is szerettem volna, hogy beállíthassam az időt, mert szeretnék egyes napokon tovább aludni (hétvégén/ünnepnapokon és hétköznapokon).
Kellékek
Raspberry Pi Zero W
Két RGB LED
Hat 220 ohmos ellenállás
A fájlok (.stl, python, html) itt találhatók
Különféle csavarok, vezetékek és apró alkatrészek szükség szerint.
1. lépés: 3D nyomtatás
A lányom nagyon szereti az egyszarvúakat, ezért ehhez a projekthez a Riven02 Unicorn Nightlight-ját remixeltem, amely az Apachcreation Unicorn Trophy remixje, amely megtalálható a Thingiverse.com webhelyen és használható a Creative Commons Non-Commercial licenc alatt. Az unikornis alapot úgy módosítottam, hogy illeszkedjen a málna pi nulla tápkábeléhez. Történetesen AMZ3D Red PLA -t feküdtem körül, így az unikornis alapja és feje vörös lesz. A kürthöz tiszta/áttetsző PLA -t használtam. A használt.stl fájlok és beállítások a következők:
Unicorn.stl
- Rétegmagasság: 0,02
- Falvastagság:.8
- Falvonalak száma: 2
- Kitöltés: 15%
- Kitöltési minta: Rács
UnicornBase.stl
- Rétegmagasság: 0,02
- Falvastagság:.8
- Falvonalak száma: 2
- Kitöltés: 15%
- Kitöltési minta: Rács
Horn.stl
- Rétegmagasság: 0,02
- Falvastagság: 0,8
- Falvonalak száma: 3
- Kitöltés: 0
2. lépés: Az áramkör
Az áramkör nagyon egyszerű. Hat különböző GPIO tűt választottam az RGB különböző színeinek ki- és bekapcsolásához. Ezek a csapok és a megfelelő LED -színek:
- 11 -es tű az RGB 1 RED -hez
- 13. tű RGB 1 ZÖLD
- Rögzítse a 15. tűt az RGB 1 KÉK színhez
- 16. tű RGB 2 RED -re
- 18 -as érintkező az RGB 2 ZÖLD -hez
- 36 -os tű az RGB 2 KÉK -hez
- 39. pin a földhöz
Mindegyik tüske egy 220 ohmos áramkorlátozó ellenálláson keresztül csatlakozik az ellenálláshoz (természetesen a földelés kivételével.) Az ellenállást a sorba forrasztottam, és hőzsugorító csővel letakartam.
3. lépés: A Raspberry Pi előkészítése
Azt akartam, hogy webes felület segítségével beállíthassam az alvás -edző óra óráit. Tehát fel kellett állítanom egy Apache és PHP szervert a Raspberry Pi -n. Az első dolog, amit mindig meg kell tennie, amikor új szoftvert telepít a Raspberry Pi -re, hogy megbizonyosodjon arról, hogy az naprakész, és beírja:
sudo apt-get update
Ezek után tényleg belekezdhetünk az üzletbe. Ezt az Apache2 telepítésével tehetjük meg:
sudo apt -get install apache2 -y
ennek telepítenie kell az Apache webszervert. Ezt tesztelheti a Raspberry pi böngészőjével, és navigálhat a következőkre:
localhost/
vagy egy másik számítógép böngészőjéből navigálva a Raspberry Pi ip -címére. Az ip -cím típusának megkereséséhez:
hosztnév -Én
Ha ezeket elvégzi, az alapértelmezett Apache webszerver -oldalhoz vezet. Ezt a/var/www/html/könyvtárban található index.html lecserélésével lehet megváltoztatni. Lecserélhető saját index.html fájlommal.
Ezután beállítjuk az Apache webszervert PHP fájlok futtatására. Kezdje beírni:
sudo apt-get install php libapache2-mod-php -y
most már el kell helyeznie a sleepset.php fájlt a/var/www/html mappába az index.html fájllal együtt.
Ahhoz, hogy a saját hálózatában erre az oldalra navigáljon, be kell állítania a Raspberry Pi -t statikus ip -címmel (vagy csak megpróbálhatja kitalálni az új IP -címet, amikor a hálózat időnként megújítja). Ahhoz, hogy ez működjön, néhány fájlt szerkesztenie kell. Az /etc/dhcpcd.conf fájlt a következőkkel kell szerkesztenie:
wlan0 interfész
static ip_address = 192.168.1.static routers = 192.168.1.1 static domain_name_servers = 192.168.1.1
Cserélje ki hálózati információival. Az egyetlen dolog, amit most meg kell tennie, az újraindítás.
sudo újraindítás
A fájlok elhelyezése a Google meghajtó linkjéről a következőképpen történjen:
- Az index.html és a sleepset.php fájlokat a/var/www/html könyvtárba kell helyezni
- Az sleepset.txt és az sleeptrainer1_1.py fájlokat a/home/pi/pythoncode könyvtárba kell helyezni (tipp: létre kell hoznia ezt a könyvtárat)
Miután ezeket a fájlokat a megfelelő könyvtárba helyezte, az rc.local fájlt módosítani kell, hogy indításkor futtassa a sleeptrainer1_1.py programot. Az rc.local fájl módosításához gyökérszintű hozzáférésre lesz szüksége, ezért írja be:
sudo nano /etc/rc.local
A szerkesztőben görgessen lefelé, és közvetlenül a 0 kilépési sor előtt adja hozzá:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Itt két dologra kell emlékezni:
- Használja az abszolút fájlútvonalat, hogy a LINUX ne gondolja, hogy a sleeptraner1_1.py fájl ugyanabban a könyvtárban található, mint az rc.local.
- Ne felejtse el a végén az & karaktert (&). ez lehetővé teszi, hogy a LINUX futtassa ezt a fájlt a háttérben, és folytassa az indítást.
Most mentse el a fájlt, írja be a ctrl-x, majd az y billentyűt, amikor a rendszer kéri a mentést, majd az ENTER billentyűt.
Ezután írja be a sudo reboot parancsot.
Itt valahol meg kell említeni, hogy (legalább) meg kell változtatnia a Raspberry Pi jelszavát a passwd paranccsal. Ha még nem tette meg, akkor most jó alkalom lenne.
4. lépés: A kód
A következő kód a SleepTrainer1_1.py fájlból származik. Dátum -idő objektummal hasonlítottam össze az időt a sleepset.txt fájlban olvasottakkal. A szövegfájl egyszerűen két sorból áll: az első órát, a második percet tartalmaz. A sleeptrainer1_1.py egy percig alszik a ciklus -iterációk között, hogy ne kösse össze a processzort. A zöld fény eredetileg túl erősen világított, ezért impulzusszélesség -modulációval tompítottam, amikor pirossal használtam a sárgát.
Python kód:
importálja az RPi. GPIO -t GPIO -ként
dátum és idő dátum importálása dátum importálás idő 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 (piros2, GPIO. OUT) GPIO.setup (zöld1, GPIO. OUT) GPIO.setup (zöld2, GPIO. OUT) GPIO.setup (kék1, GPIO. OUT) GPIO.setup (kék2, GPIO. OUT) p1 = GPIO. PWM (zöld1, 100) p2 = GPIO. PWM (zöld2, 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 (piros2, 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 (szín == "zöld"): GPIO.output (piros1, GPIO. LOW) GPIO.output (piros2, GPIO. LOW) p1.start (100) p2.start (100) GPIO.output (kék1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (color == "yellow"): 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 (), míg True: settime = readset () óra, perc = beállításidő ha perc == 0: ha dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, óra-2) <dt.now () <dt (dt.now ().year, dt.now (). month, dt.now (). day, hour-1, minute+30): ledlight ("red") elif dt (dt.now (). year, dt.now ().hónap, dt.now (). nap, óra-1, perc+30) <dt.now () <dt (dt.now (). év, dt.now (). hónap, dt.now ().nap, óra, perc): ledlight ("sárga") elif dt (dt.now (). year, dt.now (). month, dt.now (). day, hour, minute) <dt.now () <dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, óra+1, perc): ledlight ("zöld") else: ledlight ("off") elif dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, ho ur-2) <dt.now () <dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, óra, perc-30): ledlight ("piros") elif dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, óra, perc-30) <dt.now () <dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, óra, perc): ledlight ("sárga") elif dt (dt.now (). év, dt.now (). hónap, dt.now ().nap, óra, perc) <dt.now () <dt (dt.now (). év, dt.now (). hónap, dt.now (). nap, óra+1, perc): ledlight ("zöld") else: ledlight ("off") time.sleep (60)
Az index.html fájl egy HTML formátumú alap űrlap. Két szövegdoboz tartalmát átveszi, és átadja a sleepset.php fájlnak űrlapkezelés céljából. A PHP fájl egyszerűen felülírja az sleepset.txt fájlt frissített adatokkal.
5. lépés: Összerakni
Miután befejezte a kódolást és kinyomtatta az összes alkatrészt, itt az ideje az összeszerelésnek. A következő lépéseket követtem az összesítés érdekében:
- Fúrjon két kis lyukat az RGB LED -ekhez a kürt alján, és helyezze a LED -eket ezekbe a lyukakba.
- Helyezze a kürtöt az egyszarvú fej lyukába, és húzza át, amíg szoros nem lesz. A kürt rögzítéséhez használjon belülről ragasztót.
- Csatlakoztassa a Raspberry Pi Zero W -t az egyszarvú fej belsejéhez. (Talán forró ragasztópisztoly használata)
- Csatlakoztassa az unikornis fejét az unikornis alapjához.
- Csatlakoztassa a tápkábelt, és rögzítse a teljes szerelvényt a falhoz.
- Csatlakoztassa az órát.
Ezen a ponton van egy működő Gyermek alvás edző órám.
6. lépés: Egy évvel később…
Egy évvel később:
A lányaim kicsit tovább alszanak. Már megszokhattuk, hogy arra ébredünk, hogy kisgyerekek a szobánkban azt mondják: "Apa, zöld a fény." és ez nagyszerű. Röviden, csak szombaton hajnali 5: 30 -kor kelünk fel, amikor már tervezzük.
Amit a jövőben tervezek fejleszteni:
- Talán hozzáadhat néhány érzékelőt vagy más elemet, például mikrofont és hangszórókat.
- Lehet, hogy szerkessze a kódot, hogy hangszóróval működjön, és ébresztőórának használja, mivel a gyerekeim hamarosan iskolába kezdenek.
Ajánlott:
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
Gyermek MP3 Music Box: 6 lépés (képekkel)
Gyerekek MP3 Music Box: Amikor új DIY projekteket kerestem az arduino környékén, találtam néhány jó ötletet az RFID -alapú MP3 -lejátszókról gyerekeknek. És van egy nagyszerű professzionális játékdoboz a piacon - ezek a srácok uralkodnak. Nagyszerű üzletet csináltak okos ötletükből. Jelölje be
A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel)
A számítógép szétszerelése egyszerű lépésekkel és képekkel: Ez az utasítás a számítógép szétszereléséről szól. A legtöbb alapvető alkatrész moduláris és könnyen eltávolítható. Fontos azonban, hogy szervezett legyen ezzel kapcsolatban. Ez segít elkerülni az alkatrészek elvesztését, és az újra összerakást is
Gyermek viselkedésmódosító: 5 lépés (képekkel)
Gyermek viselkedésmódosító: A gyermek viselkedésmódosító rögzíti, hogy gyermeke hányszor került bajba (más néven sztrájk), és amikor eléri a három évet, egy hangjelző kikapcsol, és egy LCD képernyő bejelenti, hogy földelve van