
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51




Маған 4 жасар егіздердің ұйықтауын үйренуге көмектесетін сағат керек болды (сенбіде таңертең 5: 30 -да оянуға тура келді), бірақ олар әлі уақытты оқи алмайды. Сауда сайтында бірнеше заттарды қарап шыққаннан кейін, мен: «Оны жасау қаншалықты қиын болар еді?» - деп ойладым.
Міне, мен бұл жобада өзіме керек нәрсені ойладым. Ол үш түрлі түсті көрсету үшін кейбір RGB светодиодтарын (көбінесе менде басқа жобадан елу шақтысы бар болғандықтан) қолданады. Қызыл түс ұйықтауды білдіреді, оянуға әлі ерте. Сары олардың орнында тұрып, өз бөлмесінде тыныш ойнай алатынын білдіреді. Жасыл, әрине, сіз тұра аласыз. Мен сондай -ақ уақытты реттегім келді, өйткені мен кейбір күндері ұзақ ұйықтағым келеді (демалыс/мереке және демалыс күндері және т.б.).
Жабдықтар
Raspberry Pi Zero W
Екі RGB жарық диоды
Алты 220 Ом резисторы
Бұл жерден табылған файлдар (.stl, python, html)
Қажет болса, әр түрлі кішкентай бұрандалар, сымдар және кішкене бөлшектер.
1 -қадам: 3D басып шығару



Менің қызым шын мәнінде бірмүйізділерге ұқсайды, сондықтан бұл жоба үшін мен Thiveiverse.com сайтынан табуға болатын және Creative Commons коммерциялық емес лицензиясы бойынша қолданылатын Apachcreation Unicorn Trophy ремиксі болып табылатын Riven02's Unicorn Nightlight ремиксін жасадым. Мен таңқурай pi нөлге арналған қуат сымына сәйкес келетін бірмүйізді негізді өзгерттім. Менде AMZ3D Red PLA болды, сондықтан бір мүйізді негізі мен басы қызыл болады. Мен мүйіз үшін мөлдір/мөлдір ПЛА қолдандым. Мен қолданған.stl файлдары мен параметрлері:
Unicorn.stl
- Қабат биіктігі: 0,02
- Қабырғаның қалыңдығы:.8
- Қабырға сызығының саны: 2
- Толтыру: 15%
- Толтыру үлгісі: тор
UnicornBase.stl
- Қабат биіктігі: 0,02
- Қабырғаның қалыңдығы:.8
- Қабырға сызығының саны: 2
- Толтыру: 15%
- Толтыру үлгісі: тор
Horn.stl
- Қабат биіктігі: 0,02
- Қабырғаның қалыңдығы: 0,8
- Қабырға сызығының саны: 3
- Толтыру: 0
2 -қадам: Цикл



Схема өте оңай. Мен RGB әр түрлі түстерін қосу/өшіруді басқару үшін алты түрлі GPIO түйреуішін таңдадым. Бұл түйреуіштер мен сәйкес жарықдиодты түстер:
- 11 RGB 1 ҚЫЗЫЛға бекітіңіз
- 13 RGB 1 GREEN -ге бекітіңіз
- 15 RGB 1 BLUE -ге бекітіңіз
- 16 RGB 2 RED -ге бекітіңіз
- 18 RGB 2 GREEN -ге бекітіңіз
- 36 RGB 2 BLUE -ге бекітіңіз
- Жерге 39 бекітіңіз
Әр түйреуіш резисторға 220 Ом ток шектеу резисторы арқылы қосылады (әрине жерді қоспағанда). Мен резисторды желіммен дәнекерледім және оны қысқыш құбырмен жауып қойдым.
3 -қадам: Raspberry Pi дайындау
Мен веб -интерфейс арқылы ұйықтайтын жаттықтырушы сағатының уақытын белгілей алғым келді. Сондықтан маған Raspberry Pi -де Apache және PHP серверін орнату қажет болды. Raspberry Pi -ге жаңа бағдарламалық жасақтаманы орнатқанда әрқашан істеу керек нәрсе - бұл теру арқылы оның жаңартылғанына көз жеткізу.
sudo apt-get жаңартуы
Осыдан кейін біз шынымен бизнеске кірісе аламыз. Біз мұны Apache2 орнату арқылы жасаймыз:
sudo apt -get apache2 -y орнатыңыз
бұл Apache веб -серверін орнатуы керек. Сіз мұны Raspberry pi браузерінің көмегімен тексере аласыз және келесіге өтіңіз:
localhost/
немесе басқа компьютердің шолғышынан Raspberry Pi -дің IP мекенжайына өту арқылы. IP адресінің түрін табу үшін:
хост атауы -I.
Бұл әрекетті орындау әдепкі Apache Web Server бетіне әкеледі. Мұны/var/www/html/каталогында орналасқан index.html ауыстыру арқылы өзгертуге болады. Оны менің index.html файлымен алмастыруға болады.
Содан кейін біз PHP файлдарын іске қосу үшін Apache веб -серверін орнатамыз. Теруден бастаңыз:
sudo apt-get php libapache2-mod-php -y орнатыңыз
Сіз енді sleepset.php файлын/var/www/html ішіне index.html файлымен орналастыра аласыз.
Бұл желіге өз бетіңізбен өту үшін сізге Raspberry Pi -ді тұрақты IP -мекен -жаймен орнату қажет болады (немесе сіз желі жаңартылған кезде жаңа IP -адресті анықтап көруге болады). Бұл жұмыс істеу үшін сізге бірнеше файлды өңдеу қажет. /Etc/dhcpcd.conf файлын келесілермен өңдеу қажет:
wlan0 интерфейсі
статикалық ip_adress = 192.168.1.статикалық маршрутизаторлар = 192.168.1.1 статикалық domain_name_servers = 192.168.1.1
Желі туралы ақпаратты ауыстырыңыз. Енді сізге қажет жалғыз нәрсе - қайта жүктеу.
sudo қайта жүктеу
Google дискісінің сілтемесінен файлдарды орналастыру келесідей болуы керек:
- index.html және sleepset.php файлдарын/var/www/html каталогына орналастыру керек
- sleepset.txt және sleeptrainer1_1.py файлдарын/home/pi/pythoncode каталогына орналастыру керек (кеңес: бұл каталогты жасау керек)
Бұл файлдарды дұрыс каталогқа орналастырғаннан кейін rc.local файлын іске қосу кезінде sleeptrainer1_1.py бағдарламасын іске қосу үшін өзгерту қажет. Rc.local файлын өзгерту үшін сізге түбірлік деңгейдегі қатынас қажет болады, сондықтан теріңіз:
sudo nano /etc/rc.local
Редакторда төмен жылжыңыз және 0 жолынан шықпас бұрын мынаны қосыңыз:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Бұл жерде екі нәрсені есте сақтау қажет:
- LINUX sleeptraner1_1.py файлы rc.local каталогында орналасқан деп ойламайтындай абсолютті жолды пайдаланыңыз.
- Соңында амперсанды (&) қоюды ұмытпаңыз. бұл LINUX -ке бұл файлды фонда іске қосуға және жүктеуді жалғастыруға мүмкіндік береді.
Енді файлды ctrl-x теру арқылы сақтаңыз, содан кейін сақтау сұралған кезде y, содан кейін ENTER.
Содан кейін sudo reboot теріңіз.
Мұнда бір жерде Rawberry Pi құпия сөзін passwd пәрмені арқылы өзгерту керектігін айту керек. Егер сіз мұны әлі жасамаған болсаңыз, қазір жақсы уақыт болар еді.
4 -қадам: Кодекс
Төменде sleeptrainer1_1.py файлының коды берілген. Мен уақытты sleepset.txt файлында оқылғандармен салыстыру үшін datetime нысанын қолдандым. Мәтіндік файл екі жолдан тұрады, біріншісі - сағат, екіншісі - минут. sleeptrainer1_1.py процессорды байланыстырмау үшін циклді қайталау арасында бір минут ұйықтайды. Жасыл жарық бастапқыда тым жарқын болды, сондықтан мен қызыл түспен сары түске айналдыру үшін импульстің ені модуляциясын қолдандым.
Python коды:
GPO ретінде RPi. GPIO импорттау
datetime импорттық датадан dt импорттық уақыт ретінде GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Жалған) қызыл1 = 11 қызыл2 = 16 жасыл1 = 13 жасыл2 = 18 көк1 = 15 көк2 = 36 GPIO. орнату (қызыл1, 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) a, b def жарық диодты қайтару (түс): егер (түс == «қызыл»): GPIO. шығысы (қызыл1, GPIO. ЖОҒАРЫ) GPIO. шығысы (қызыл2, GPIO. HIGH) p1.stop () p2.stop () GPIO. шығысы (көк1, GPIO. ТӨМЕН) GPIO. шығысы (көк2, GPIO. LOW) elif (түс == «көк»): GPIO. шығысы (red1, GPIO. LOW) GPIO. шығысы (red2, GPIO. LOW) p1.stop () p2.stop () GPIO. шығысы (көк1, GPIO. HIGH) GPIO. шығысы (көк2, GPIO. ЖОҒАРЫ) elif (түс == «жасыл»): GPIO.шығу (қызыл1, GPIO. ТӨМЕН) GPIO.шығу (қызыл2, GPIO. ТӨМЕН) p1.бастау (100) p2.бастау (100) GPIO.шығу (көк1), 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 () True: settime = readset () сағат, минут = реттеу уақыты if минут == 0: егер dt (dt.now (). жыл, dt.now (). ай, dt.now (). күн, сағат-2) <dt.now () <dt (dt.now ().жыл, қазір (қазір) (ай), қазір ()). ай, қазіргі уақытта (). күн, сағат-1, минут+30) <қазіргі уақытта () <dt (қазір).күн, сағат, минут): жарық шамы («сары») elif dt (dt.now (). жыл, dt.now (). ай, dt.now (). күн, сағат, минут) <dt.now () <dt (dt.now (). жыл, dt.now (). ай, dt.now (). күн, сағат+1, минут): жарық шамы («жасыл») басқа: жарық шамы («өшірулі») elif dt (dt.now (). жыл, dt.now (). ай, dt.now (). күн, хо ur-2) <dt.now () <dt (dt.now (). жыл, dt.now (). ай, dt.now (). күн, сағат, минут-30): жарық шамы («қызыл») elif dt (dt.now (). жыл, dt.now (). ай, dt.now (). күн, сағат, минут-30) <dt.now () <dt (dt.now (). жыл, dt.now (). ай, қазір ()).күн, сағат, минут) <dt.now () <dt (nt.now (). жыл, dt.now (). ай, dt.now (). күн, сағат+1, минут): жарық шамы («жасыл») басқа: жарық шамы («өшірулі») уақыт. ұйықтау (60)
Index.html файлы HTML -де жасалған негізгі форма болып табылады. Ол екі мәтін ұясының мазмұнын қабылдайды және пішінді өңдеу үшін sleepset.php файлына жібереді. PHP файлы sleepset.txt файлын жаңартылған деректермен қайта жазады.
5 -қадам: Барлығын біріктіру



Кодтау аяқталғаннан кейін және барлық бөліктер басып шығарылғаннан кейін, құрастыру уақыты келді. Мен бәрін біріктіру үшін келесі қадамдарды орындадым:
- Мүйіздің төменгі жағындағы RGB светодиодтарына сәйкес келетін екі кішкене тесік бұрғылаңыз және жарықдиодтарды осы тесіктерге қойыңыз.
- Мүйізді бір мүйізді басы бар тесікке салыңыз және оны тығыз болғанша тартыңыз. Мүйізді бекіту үшін ішінен желімді қолданыңыз.
- Raspberry Pi Zero W бірмүйізді басының ішкі жағына бекітіңіз. (Мүмкін ыстық желім пистолетін қолдану мүмкін)
- Жалғыз мүйізді басын біртұтас негізге бекітіңіз.
- Қуат сымын жалғап, бүкіл жинақты қабырғаға бекітіңіз.
- Сағатты қосыңыз.
Бұл кезде менде балалардың ұйықтайтын жаттықтырушы сағаты жұмыс істейді.
6 -қадам: Бір жылдан кейін …

Бір жылдан кейін:
Менің қыздарым ұйықтап жатыр. Біз бөлмеміздегі кішкентай балаларды оятуды үйрендік, әке, жарық жасыл. және бұл керемет. Ұзын сөздің қысқасы, біз сенбі күні таңғы сағат 5.30 -да оянамыз, енді оны жоспарлаған кезде.
Болашақта жақсартуды жоспарлап отырған нәрселер:
- Мүмкін сенсорлар немесе микрофон мен динамиктер сияқты басқа элементтер қосылады.
- Мүмкін кодты өңдеушімен ойнатқыш ретінде пайдалану үшін динамикпен жұмыс жасаңыз, себебі менің балаларым жақында мектепті бастайды.
Ұсынылған:
Жаттығу машинасы USB ойын контроллері: 8 қадам (суреттермен)

Жаттығу машинасы USB ойын контроллері: Өзін -өзі және отбасында жаттығуларды ынталандыру үшін мен стандартты USB ойын контроллері адаптеріне еліктейтін адаптер жасадым, бірақ эллиптикалық машинада немесе жаттығу велосипедінде педаль арқылы ойын қозғалысының жылдамдығын басқарады. Бұл жарыс ойындары үшін әсіресе жақсы. Бұл
Балаларға арналған жарық сағаты - Green Means Go! Қызыл, төсекте болыңыз !!!: 5 қадам (суреттермен)

Балаларға арналған жарық сағаты - Green Means Go! Қызыл, төсекте бол !!!: Біз ұйқысыз ұйқысыз жынды болдық !!! Біздің 2 жасар бала " 7-ді қалай күтуді " түсіне алмады. таңертеңнен таңертең бөлмесінен шықпас бұрын. Ол ерте оянатын еді (мен таңғы 5:27 деймін - " 7 бар !!! "
Аяққа арналған жаттығу машинасы: 7 қадам

Аяққа арналған жаттығу машинасы: Аяғыңызды қарсылыққа қарсы айналдыру физиотерапия үшін қажет жаттығулар болып табылады, олар әдетте " терабанды " қарсылықты қамтамасыз ету үшін серпімді, бірақ бұл ұйымдастыру үшін үлкен азап. Сіз ха
Ұйқыға арналған құлаққап: 5 қадам

Ұйқыға арналған құлаққап: Бұл жоба акустикалық қойылыммен жасалған SleepPhone -ға негізделген, ол ыңғайлы және жұқа етіп жасалған, сондықтан сіз төсекте жатқанда сүйікті музыкаңызды, подкастты немесе асмрды тыңдай аласыз. жасаңыз (А
Certamen викториналық жаттығу машинасы: 12 қадам (суреттермен)

Certamen Quiz Practice Machine: Классикалық Лиганың Certamen викториналық командалық сайысы грек/рим пәндері бойынша викториналық сұрақтарды қамтиды. Жекелеген қатысушылар жауап болған кезде дыбыстық сигналдарды басады. Құрылғы түймелердің алдын -ала орындалу ретін бақылайды