Mundarija:
- Ta'minotlar
- 1 -qadam: 3D bosib chiqarish
- 2 -qadam: O'chirish davri
- 3 -qadam: Raspberry Pi tayyorlash
- 4 -qadam: Kod
- 5 -qadam: Hammasini bir joyga to'plash
- 6 -qadam: Bir yildan keyin …
Video: Bolalar uchun uyquni o'rgatish soati: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Menga 4 yoshli egizaklarga uxlashni o'rganishga yordam beradigan soat kerak edi (men shanba kuni ertalab soat 5:30 da uyg'onishim kerak edi), lekin ular hali vaqt o'qiy olishmaydi. Juda mashhur xaridlar saytida bir nechta narsalarni ko'rib chiqqach, men o'yladim: "Bitta mahsulot yasash qanchalik qiyin bo'lardi ?!"
Mana, men bu loyihada nimani xohlayotganimni aniqladim. Uch xil rangni ko'rsatish uchun u ba'zi RGB LED -laridan foydalanadi (asosan, ularning elliktasi boshqa loyihadan). Qizil rang uyquga qaytishni anglatadi, uyg'onishga hali erta. Sariq degani, ular o'rnidan turib, o'z xonasida jim o'ynashi mumkin. Yashil, albatta, siz turishingiz mumkin degan ma'noni anglatadi. Men ham vaqtni sozlashni xohlardim, chunki men ba'zi kunlarda ko'proq uxlashni xohlardim (Dam olish kunlari/Dam olish kunlari va boshqalar).
Ta'minotlar
Raspberry Pi Zero W
Ikkita RGB LED
Oltita 220 Ohm qarshilik
Bu erda topilgan fayllar (.stl, python, html)
Zarur bo'lganda, har xil kichik vintlar, simlar va kichik qismlar.
1 -qadam: 3D bosib chiqarish
Mening qizim chindan ham yakkaxonlarga o'xshaydi, shuning uchun men ushbu loyiha uchun Thingiverse.com saytida topiladigan va Creative Commons notijorat litsenziyasi ostida ishlatiladigan Apachcreation's Unicorn Trophy remixi bo'lgan Riven02 ning Unicorn Nightlight-ni remix qildim. Men malina pi nol uchun quvvat kabeliga mos keladigan yagona boshli taglikni o'zgartirdim. Menda tasodifan AMZ3D Red PLA yotardi, shuning uchun bitta boshli taglik va bosh qizil bo'ladi. Men shox uchun aniq/shaffof PLA ishlatardim. Men ishlatgan.stl fayllari va sozlamalari:
Unicorn.stl
- Qatlam balandligi: 0,02
- Devor qalinligi:.8
- Devor chizig'i soni: 2
- To'ldirish: 15%
- To'ldirish shakli: tarmoq
UnicornBase.stl
- Qatlam balandligi: 0,02
- Devor qalinligi:.8
- Devor chizig'i soni: 2
- To'ldirish: 15%
- To'ldirish shakli: tarmoq
Horn.stl
- Qatlam balandligi: 0,02
- Devor qalinligi: 0,8
- Devor chizig'i soni: 3
- To'ldirish: 0
2 -qadam: O'chirish davri
O'chirish juda oson. Men RGB -ning turli ranglarini yoqish/o'chirishni boshqarish uchun oltita GPIO pinini tanladim. Bu pinlar va ularga mos keladigan LED ranglari:
- 11 RGB 1 RED ga ulang
- 13 -raqamli RGB 1 -Yashil
- 15 RGB 1 BLUE -ga ulang
- 16 -RGB 2 RED -ga ulang
- 18 -ni RGB 2 GREEN -ga ulang
- 36 RGB 2 BLUE -ga ulang
- 39 -sonli erga ulang
Har bir pin 220 ohmli cheklovli rezistor orqali rezistorga ulanadi (albatta, erdan tashqari). Men rezistorni navbat bilan lehimlab qo'ydim va uni issiqlik o'tkazgich trubkasi bilan yopdim.
3 -qadam: Raspberry Pi tayyorlash
Men veb -interfeys yordamida uyqu vaqtini belgilashni xohlardim. Shunday qilib, men Raspberry Pi -da Apache va PHP serverini o'rnatishim kerak edi. Raspberry Pi -ga yangi dasturiy ta'minot o'rnatishda har doim qilishingiz kerak bo'lgan birinchi narsa - bu yozib yangilanganligiga ishonch hosil qilish.
sudo apt-get yangilanishi
Shundan so'ng, biz haqiqatan ham ishni boshlashimiz mumkin. Biz buni Apache2 -ni o'rnatish orqali qilamiz:
sudo apt -get apache2 -y ni o'rnating
bu Apache veb -serverini o'rnatishi kerak. Siz buni Raspberry pi -dagi brauzer yordamida sinab ko'rishingiz va quyidagi manzilga o'tishingiz mumkin.
localhost/
yoki boshqa kompyuter brauzeridan Raspberry Pi -ning IP -manziliga o'tish orqali. IP manzil turini topish uchun:
mezbon nomi -I.
Bularni bajarish Apache veb -serverining standart sahifasiga olib keladi. Buni/var/www/html/katalogida joylashgan index.html o'rnini bosish orqali o'zgartirish mumkin. Uni o'z index.html fayli bilan almashtirish mumkin.
Keyin PHP fayllarini ishga tushirish uchun Apache veb -serverini o'rnatamiz. Yozishdan boshlang:
sudo apt-get php libapache2-mod-php -y ni o'rnating
sleepset.php faylini/var/www/html -ga index.html fayli bilan joylashtirishingiz kerak.
O'z sahifangizda ushbu sahifaga o'tish uchun siz Raspberry Pi -ni statik IP -manzil bilan o'rnatishingiz kerak bo'ladi (yoki siz tarmoqni hozir va keyin yangilab turganda, yangi IP -manzilni aniqlashga harakat qilishingiz mumkin). Buning uchun bir nechta fayllarni tahrir qilishingiz kerak bo'ladi. Siz /etc/dhcpcd.conf faylini quyidagicha tahrir qilishingiz kerak bo'ladi:
wlan0 interfeysi
statik ip_adress = 192.168.1.statik yo'riqnoma = 192.168.1.1 statik domen_adi_serverlari = 192.168.1.1
Tarmoq ma'lumotlari bilan almashtiring. Sizga kerak bo'lgan yagona narsa - bu qayta yuklash.
sudo qayta yuklash
Google diskidagi havoladan fayllarni joylashtirish quyidagicha bo'lishi kerak:
- index.html va sleepset.php/var/www/html katalogiga joylashtirilishi kerak
- sleepset.txt va sleeptrainer1_1.py/home/pi/pythoncode katalogiga joylashtirilishi kerak (maslahat: siz ushbu katalogni yaratishingiz kerak bo'ladi)
Ushbu fayllarni to'g'ri katalogga joylashtirgandan so'ng, rc.local faylini ishga tushirishda sleeptrainer1_1.py dasturini ishga tushirish uchun o'zgartirish kerak. Rc.local faylini o'zgartirish uchun sizga ildiz darajasida ruxsat kerak bo'ladi, shuning uchun yozing:
sudo nano /etc/rc.local
Tahrirlovchini pastga aylantiring va 0 -chiqishidan oldin, quyidagilarni qo'shing:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Bu erda eslash kerak bo'lgan ikkita narsa bor:
- LINUX sleeptraner1_1.py fayli rc.local bilan bir xil katalogda joylashgan deb o'ylamasligi uchun mutlaq yo'lni ishlating.
- Oxirida ampersand (&) yozishni unutmang. bu LINUX -ga ushbu faylni fonda ishga tushirishga va yuklashni davom ettirishga imkon beradi.
Endi faylni ctrl-x, keyin y yozib saqlang, so'ngra ENTER kiriting.
Keyin sudo reboot yozing.
Bu erda, hech bo'lmaganda, passwd buyrug'i yordamida Raspberry Pi parolini o'zgartirish kerakligini eslatib o'tish kerak. Agar siz buni hali qilmagan bo'lsangiz, hozir yaxshi vaqt bo'lardi.
4 -qadam: Kod
Quyida sleeptrainer1_1.py faylining kodi keltirilgan. Vaqtni sleepset.txt faylida o'qilganlar bilan solishtirish uchun datetime obyektidan foydalandim. Matnli fayl ikki satrdan iborat bo'lib, birinchisi soat, ikkinchisi daqiqa. sleeptrainer1_1.py protsessorni bog'lamaslik uchun pastadir takrorlanishi orasida bir daqiqa uxlaydi. Yashil chiroq dastlab juda porloq edi, shuning uchun men qizil rang bilan sariq rangda ishlatilganda pulsatsiya kengligi modulyatsiyasini ishlatardim.
Python kodi:
RPi. GPIO -ni GPIO sifatida import qilish
datetime import datetime dan dt import vaqti sifatida 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) a, b def lampasini qaytaring (rang): agar (rang == "qizil"): GPIO. chiqish (qizil1, GPIO. YUQORI) GPIO.output (red2, GPIO. HIGH) p1.stop () p2.stop () GPIO.output (blue1, GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (rang == "ko'k")): GPIO.output (red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) p1.stop () p2.stop () GPIO.output (blue1, GPIO. HIGH) GPIO.output (blue2, GPIO). YUQORI) elif (rang == "yashil"): GPIO. chiqish (qizil1, GPIO. LOW) GPIO. chiqish (qizil2, GPIO. LOW) p1.boshlanish (100) p2.boshlanish (100) GPIO. chiqish (ko'k1), GPIO. LOW) GPIO.output (blue2, GPIO. LOW) elif (rang == "sariq"): 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 () soat, daqiqa = sozlash agar daqiqa == 0: agar dt (dt.now (). yil, dt.now (). oy, dt.now (). kun, soat-2) <dt.now () <dt (hozir)).yil, dt.now (). oy, hozir ()). oy, dt.now (). kun, soat-1, daqiqa+30) <dt.now () <dt (hozir) (yil..kunduzi, soat, daqiqa): chiroq ("sariq") elif dt (dt.now (). yil, dt.now (). oy, dt.now (). kun, soat, daqiqa) <dt.now () <dt (dt.now (). yil, hozir () dt (dt.now (). yil, dt.now (). oy, dt.now (). kun, ho ur-2) <dt.now () <dt (dt.now (). yil, dt.now (). oy, dt.now (). kun, soat, daqiqa-30): chiroq ("qizil") elif dt (dt.now (). yil, dt.now (). oy, hozir (). kun, soat, daqiqa-30) <dt.now () <dt (hozir) dt.now (). oy, dt.now (). kun, soat, daqiqa): svetofor ("sariq") elif dt (dt.now (). yil, dt.now (). oy, dt.now ().kunduz, soat, daqiqa) <dt.now () <dt (hozir (hozir)) "yashil") boshqa: chiroq ("o'chirilgan") vaqt. uyqu (60)
Index.html fayli HTML -da yaratilgan asosiy shakldir. U ikkita matn qutisining tarkibini oladi va ularni formalar bilan ishlash uchun sleepset.php fayliga uzatadi. PHP fayli shunchaki sleepset.txt faylini yangilangan ma'lumotlar bilan qayta yozadi.
5 -qadam: Hammasini bir joyga to'plash
Kodlash tugallangach va barcha qismlar chop etilsa, yig'ish vaqti keldi. Hammasini birlashtirish uchun men quyidagi bosqichlarni bajarganman:
- Shoxning pastki qismidagi RGB LED -lariga mos keladigan ikkita kichik teshikni burang va LEDlarni shu teshiklarga joylashtiring.
- Shoxni bitta boshli tuynukning teshigiga joylashtiring va uni mahkam bo'lguncha torting. Shoxni mahkamlash uchun ichkaridan elim ishlating.
- Raspberry Pi Zero W ni bir boshli boshning ichki qismiga mahkamlang. (Issiq yopishtiruvchi tabancadan foydalanish mumkin)
- Yakkaxonning boshini bitta boshli tagiga mahkamlang.
- Elektr simini ulang va butun qurilmani devorga ulang.
- Soatni ulang.
Bu vaqtda menda bolalar uyqu uchun murabbiy soati bor.
6 -qadam: Bir yildan keyin …
Bir yildan keyin:
Mening qizlarim birozdan keyin uxlaydilar. Biz xonamizda kichkina bolalarni uyg'otishga odatlanib qolganmiz: "Dadam, chiroq yashil". va bu ajoyib. Qisqa qilib aytganda, biz shanba kuni ertalab soat 5:30 da uyg'onamiz.
Men kelajakda yaxshilashni rejalashtirgan narsalar:
- Ehtimol, datchiklar yoki mikrofon va karnay kabi boshqa elementlarni qo'shish.
- Ehtimol, signalni uyg'otuvchi sifatida ishlatish uchun karnay bilan ishlash uchun kodni tahrir qiling, chunki mening bolalarim yaqinda maktabga kirishadi.
Tavsiya:
Bolalarga vaqt haqida o'rgatish uchun RGB soati: 4 qadam
RGB soat bolalarga vaqt haqida o'rgatadi: Kecha men 5 yoshli bolamga vaqtni qanday his qilishim mumkinligi haqida fikr keldim, aniqki, bolalar keyingi voqealar haqida tasavvurga ega bo'lishlari uchun kundalik voqealarga e'tibor qaratmoqdalar. Odatda biroz tartibsiz va deyarli hech qachon tartibda bo'lmaydi
Bolalar uchun Nasa boshqaruv paneli: 10 qadam (rasmlar bilan)
Bolalar uchun Nasa boshqaruv paneli: Men buni kunduzgi parvarishlash bilan shug'ullanadigan singlim uchun qurdim. U qariyb uch yil oldin men ishlab chiqargan qurbonni ko'rdi va menga juda yoqdi, shuning uchun men uni Rojdestvo sovg'asi uchun qurdim. Mening boshqa loyihamga havola qiling: https: //www.
Pensiya soati / hisoblash / Dn soati: 4 qadam (rasmlar bilan)
Pensiya soati / hisoblash / Dn soati: Menda tortmasida 8x8 o'lchamli LED nuqta matritsali displeylar bor edi va ular bilan nima qilish kerakligi haqida o'yladim. Boshqa ko'rsatmalardan ilhomlanib, men kelajakdagi sana/vaqtni sanash uchun orqaga/yuqoriga ko'rsatish ekranini yaratish g'oyasini oldim va agar belgilangan vaqt
Retro prototipi, o'rgatish uchun ajoyib: 14 qadam (rasmlar bilan)
Retro prototipi, o'rgatish uchun ajoyib: Siz hech qachon " Breadboard " kelganmi? Mana, non taxtalari nima haqida bo'lganiga misol. Elektronikaning dastlabki kunlarida komponentlar katta va og'ir edi. Ularda tranzistorlar yoki integrallashgan tsirklar yo'q edi
Ajax veb -saytini asinxron kirish shakli bilan o'rgatish: 6 qadam (rasmlar bilan)
Ajax veb -saytini asenkron kirish formasi bilan o'rgatish: Muammo: o'rgimchak asboblari AJAX kirish autentifikatsiyasiga ruxsat bermaydi. Bu ko'rsatma sizga Python va Mechanize moduli yordamida AJAX formasi orqali qanday kirishni ko'rsatib beradi. O'rgimchaklar - bu tobora ommalashib borayotgan veb -avtomatlashtirish dasturlari