Mundarija:

Bolalar uchun uyquni o'rgatish soati: 6 qadam (rasmlar bilan)
Bolalar uchun uyquni o'rgatish soati: 6 qadam (rasmlar bilan)

Video: Bolalar uchun uyquni o'rgatish soati: 6 qadam (rasmlar bilan)

Video: Bolalar uchun uyquni o'rgatish soati: 6 qadam (rasmlar bilan)
Video: 6 soatda uyquga to’yish va tez uyquga ketish bo’yicha 10 ta ajoyib sir! 2024, Noyabr
Anonim
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati
Bolalar uchun uyquni o'rgatish soati

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

3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish
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 davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
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:

  1. LINUX sleeptraner1_1.py fayli rc.local bilan bir xil katalogda joylashgan deb o'ylamasligi uchun mutlaq yo'lni ishlating.
  2. 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

Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash
Hammasini bir joyga to'plash

Kodlash tugallangach va barcha qismlar chop etilsa, yig'ish vaqti keldi. Hammasini birlashtirish uchun men quyidagi bosqichlarni bajarganman:

  1. Shoxning pastki qismidagi RGB LED -lariga mos keladigan ikkita kichik teshikni burang va LEDlarni shu teshiklarga joylashtiring.
  2. Shoxni bitta boshli tuynukning teshigiga joylashtiring va uni mahkam bo'lguncha torting. Shoxni mahkamlash uchun ichkaridan elim ishlating.
  3. Raspberry Pi Zero W ni bir boshli boshning ichki qismiga mahkamlang. (Issiq yopishtiruvchi tabancadan foydalanish mumkin)
  4. Yakkaxonning boshini bitta boshli tagiga mahkamlang.
  5. Elektr simini ulang va butun qurilmani devorga ulang.
  6. Soatni ulang.

Bu vaqtda menda bolalar uyqu uchun murabbiy soati bor.

6 -qadam: Bir yildan keyin …

Bir yildan keyin…
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: