Mündəricat:

Uşaq yuxu təlim saatı: 6 addım (şəkillərlə)
Uşaq yuxu təlim saatı: 6 addım (şəkillərlə)

Video: Uşaq yuxu təlim saatı: 6 addım (şəkillərlə)

Video: Uşaq yuxu təlim saatı: 6 addım (şəkillərlə)
Video: Yazıq uşaq 😀 2024, Iyul
Anonim
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı
Uşaq yuxu təlim saatı

4 yaşındakı əkizlərimə bir az daha yatmağı öyrənmək üçün bir saata ehtiyacım var idi (şənbə günləri səhər 5.30 -da oyanmaq məcburiyyətində idim), amma hələ vaxt oxuya bilmirlər. Çox populyar bir alış -veriş saytında bir neçə maddəyə göz gəzdirdikdən sonra düşündüm: "Birini düzəltmək nə qədər çətin olar ?!"

Beləliklə, bu layihədə istədiyimi başa düşdüm. Üç fərqli rəngi göstərmək üçün bəzi RGB LED -lərdən istifadə edərdi (əksəriyyəti başqa bir layihədən təxminən əlli biri olduğu üçün). Qırmızı yuxuya getmək deməkdir, oyanmaq üçün çox tezdir. Sarı, ayağa qalxıb otaqlarında sakit oynaya biləcəklərini ifadə edərdi. Yaşıl, əlbəttə ki, qalxa biləcəyiniz deməkdir. Vaxtı da tənzimləyə bilmək istədim, çünki bəzi günlərdə daha uzun yatmaq istərdim (Həftə sonları/Bayramlar və Həftə içi və sair).

Təchizat

Raspberry Pi Zero W

İki RGB LED

Altı 220 Ohm rezistor

Burada tapılan fayllar (.stl, python, html)

Lazım gələrsə, müxtəlif kiçik vintlər, tellər və kiçik hissələr.

Addım 1: 3D çap

3D çap
3D çap
3D çap
3D çap
3D çap
3D çap

Qızım həqiqətən unicornları sevir, buna görə də bu layihə üçün Thingiverse.com saytında tapıla bilən və Creative Commons Qeyri-Kommersiya lisenziyası altında istifadə edilən Apachcreation-in Unicorn Trophy-in remixi olan Riven02-nin Unicorn Nightlight-ı remix etdim. Tək boynuzlu bazanı moruq pi sıfırına qoşmaq üçün dəyişdirdim. Ətrafımda bir az AMZ3D Qırmızı PLA var idi, buna görə də unicorn bazası və başı qırmızı olacaq. Buynuz üçün şəffaf/şəffaf PLA istifadə etdim. İstifadə etdiyim.stl faylları və parametrləri bunlardır:

Unicorn.stl

  • Lay hündürlüyü: 0.02
  • Divar qalınlığı:.8
  • Divar xətlərinin sayı: 2
  • Doldurma: 15%
  • Doldurma nümunəsi: Şəbəkə

UnicornBase.stl

  • Lay hündürlüyü: 0.02
  • Divar qalınlığı:.8
  • Divar xətlərinin sayı: 2
  • Doldurma: 15%
  • Doldurma nümunəsi: Şəbəkə

Horn.stl

  • Lay hündürlüyü: 0.02
  • Divar qalınlığı: 0.8
  • Divar xətlərinin sayı: 3
  • Doldurma: 0

Addım 2: Dövrə

Dövrə
Dövrə
Dövrə
Dövrə
Dövrə
Dövrə

Dövrə olduqca asandır. RGB -nin fərqli rəngləri üçün açma/söndürməni idarə etmək üçün altı fərqli GPIO sancağı seçdim. Bu pinlər və müvafiq LED rəngləri:

  • 11 -i RGB 1 RED -ə bağlayın
  • 13 -ü RGB 1 GREEN -ə bağlayın
  • 15 -i RGB 1 MAVİ -yə bağlayın
  • 16 -ı RGB 2 RED -ə bağlayın
  • 18 -i RGB 2 GREEN -ə bağlayın
  • 36 -nı RGB 2 MAVİ -yə bağlayın
  • Zəminə 39 vurun

Hər bir pin, 220 ohm cərəyan məhdudlaşdıran bir rezistor vasitəsilə rezistora bağlanır (əlbəttə ki, torpaq istisna olmaqla). Rezistoru xəttə lehimlədim və istilik büzücü borularla örtdüm.

Addım 3: Raspberry Pi Hazırlanması

Bir veb interfeysi istifadə edərək yuxu məşqçisi saatlarının vaxtını təyin etmək istədim. Buna görə Raspberry Pi üzərində bir Apache və PHP Server qurmalı oldum. Raspberry Pi -də yeni bir proqram qurarkən həmişə etməli olduğunuz ilk şey yazaraq güncəlləşdiyinə əmin olmaqdır:

sudo apt-get yeniləməsi

Bundan sonra həqiqətən işə başlaya bilərik. Apache2 quraşdıraraq bunu edəcəyik:

sudo apt -get apache2 -y quraşdırın

bu Apache veb serverini quraşdırmalıdır. Bunu Raspberry pi üzərindəki bir brauzerdən istifadə edərək yoxlaya bilərsiniz:

localhost/

və ya başqa bir kompüterin brauzerindən Raspberry Pi -nin ip ünvanına gedərək. IP ünvanınızı tapmaq üçün:

ev sahibi -I

Bunları etmək, standart Apache Web Server səhifəsinə səbəb olacaq. Bunu/var/www/html/qovluğunda yerləşən index.html əvəz etməklə dəyişdirmək olar. Öz index.html faylı ilə əvəz edilə bilər.

Sonra PHP fayllarını işə salmaq üçün Apache veb serverini quracağıq. Yazaraq başlayın:

sudo apt-get php libapache2-mod-php -y qurun

indi sleepset.php faylını index.html faylı ilə/var/www/html -ə yerləşdirə bilməlisiniz.

Öz səhifənizdə bu səhifəyə keçmək üçün Raspberry Pi -ni statik bir ip ünvanı ilə qurmalısınız (və ya şəbəkəniz indi və sonra yeniləyərkən yeni ip ünvanını anlamağa çalışa bilərsiniz). Bunun işləməsi üçün bir neçə faylı redaktə etməlisiniz. /Etc/dhcpcd.conf faylını aşağıdakılarla redaktə etməlisiniz:

wlan0 interfeysi

statik ip_address = 192.168.1. statik yönləndiricilər = 192.168.1.1 statik domain_name_servers = 192.168.1.1

Şəbəkə məlumatlarınızla əvəz edin. İndi etməniz lazım olan tək şey yenidən başlatmaqdır.

sudo yenidən başladın

Google sürücü bağlantısından faylların yerləşdirilməsi aşağıdakı kimi olmalıdır:

  • index.html və sleepset.php/var/www/html qovluğuna yerləşdirilməlidir
  • sleepset.txt və sleeptrainer1_1.py/home/pi/pythoncode qovluğuna yerləşdirilməlidir (işarə: bu qovluğu yaratmalı olacaqsınız)

Bu faylları düzgün qovluğa yerləşdirdikdən sonra rc.local faylının başlanğıcda sleeptrainer1_1.py proqramını işə salmaq üçün dəyişdirilməsi lazımdır. Rc.local faylını dəyişdirmək üçün kök səviyyəli girişə ehtiyacınız olacaq, belə yazın:

sudo nano /etc/rc.local

Redaktorda, aşağı diyirləyin və 0 -dan çıxmadan dərhal əvvəl əlavə edin:

python /home/pi/pythoncode/sleeptrainer1_1.py &

Burada iki şeyi xatırlamaq lazımdır:

  1. LINUX, sleeptraner1_1.py faylının rc.local ilə eyni qovluqda olduğunu düşünməməsi üçün mütləq filepath istifadə edin.
  2. Sonda işarəni (&) unutma. bu, LINUX -un bu faylı arxa planda işləməsinə və yükləməyə davam etməsinə imkan verəcəkdir.

İndi faylı ctrl-x və sonra y yazaraq yadda saxla və sonra ENTER yazın.

Sonra sudo reboot yazın.

Burada bir yerdə qeyd edilməlidir ki, (ən azı) passwd əmrindən istifadə edərək Raspberry Pi şifrənizi dəyişdirməlisiniz. Bunu hələ etməmisinizsə, indi yaxşı vaxt olardı.

Addım 4: Kod

Sleeptrainer1_1.py faylının kodu budur. Zamanları sleepset.txt faylında oxunanlarla müqayisə etmək üçün bir datetime obyekti istifadə etdim. Mətn faylı sadəcə iki sətirdir, birincisi saata, ikincisi dəqiqəyə görə. sleeptrainer1_1.py, prosessoru bağlamamaq üçün döngə təkrarlamaları arasında bir dəqiqə yatır. Yaşıl işıq əvvəlcə çox parlaq çıxdı, buna görə də qırmızı etmək üçün sarı etmək üçün nəbz genişliyi modulyasiyasından istifadə etdim.

Python kodu:

GPO olaraq RPi. GPIO idxal edin

datetime import datetime dt idxal vaxtı olaraq 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 led işığı (rəng) qaytar: əgər (color == "red"): GPIO.output (red1, GPIO. YÜKSƏK) 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. YÜKSEK) elif (rəng == "yaşıl"): GPIO.çıxış (red1, GPIO. LOW) GPIO.çıxış (qırmızı2, GPIO. LOW) p1.başlat (100) p2.başlat (100) GPIO.çıxış (mavi1), 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 () saat, dəqiqə = tənzimləmə vaxtı əgər dəqiqə == 0: əgər dt (dt.now (). il, dt.now (). ay, dt.now (). gün, saat-2) <dt.now () <dt (indi)).il, dt.now (). ay, indi ()).ay, dt.now (). gün, saat-1, dəqiqə+30) <dt.now () <dt (indi) (il., indi ().gün, saat, dəqiqə): işıq ("sarı") elif dt (dt.now (). il, dt.now (). ay, indi (). gün, saat, dəqiqə) <dt.now () <dt (dt.now (). il, dt.now (). ay, dt.now (). gün, saat+1, dəqiqə): led işığı ("yaşıl") başqa: led işığı ("off") elif dt (dt.now (). il, dt.now (). ay, dt.now (). gün, ho ur-2) <dt.now () <dt (dt.now (). il, dt.now (). ay, dt.now (). gün, saat, dəqiqə-30): led işıq ("qırmızı") elif dt (dt.now (). il, dt.now (). ay, dt.now (). gün, saat, dəqiqə-30) <dt.now () <dt (dt.now (). il, dt.now (). ay, dt.now (). gün, saat, dəqiqə): led işığı ("sarı") elif dt (dt.now (). il, dt.now (). ay, dt.now ().gün, saat, dəqiqə) <dt.now () <dt (dt.now (). il, dt.now (). ay, indi (). gün, saat+1, dəqiqə): işıq "yaşıl") başqa: işıq ("sönmüş") vaxt.yuxu (60)

İndex.html faylı HTML -də hazırlanmış əsas formadır. İki mətn qutusunun məzmununu alır və forma işlənməsi üçün sleepset.php faylına keçir. PHP faylı, yenilənmiş məlumatlarla birlikdə sleepset.txt faylının üzərinə yazır.

Addım 5: Hamısını bir araya gətirmək

Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək

Kodlaşdırma tamamlandıqdan və bütün hissələr çap edildikdən sonra montaj vaxtıdır. Hamısını bir araya gətirmək üçün bu addımları izlədim:

  1. Buynuzun altındakı RGB LED -lərinin ölçüsündə iki kiçik delik açın və LEDləri bu deliklərə yerləşdirin.
  2. Buynuzu unicorn başındakı çuxura qoyun və sıx olana qədər çəkin. Buynuzu möhkəmləndirmək üçün içəridən yapışqan istifadə edin.
  3. Tək boynuzlu başın içərisinə Raspberry Pi Zero W yapışdırın. (İsti yapışqan tabancasından istifadə etmək olar)
  4. Tək boynuzlu başı unicorn bazasına yapışdırın.
  5. Elektrik kabelini bağlayın və bütün qurğunu divara bağlayın.
  6. Saatı bağlayın.

Bu nöqtədə işləyən bir uşaq yuxu məşqçisi saatı var.

Addım 6: Bir il sonra…

Bir il sonra …
Bir il sonra …

Bir il sonra:

Qızlarım bir az sonra yatırlar. Otağımızdakı kiçik uşaqları "baba, işıq yaşıl" deyərək oyatmağa öyrəşmişik. və bu əladır. Uzun sözün qısası, artıq planlaşdırdığımız zaman yalnız şənbə günü səhər 5.30 -da oyanırıq.

Gələcəkdə yaxşılaşdırmağı planlaşdırdığım şeylər:

  • Bəlkə də bəzi sensorlar və ya mikrofon və dinamiklər kimi digər əşyalar əlavə edin.
  • Uşaqlarımın tezliklə məktəbə başlayacağı üçün zəngli saat kimi istifadə etmək üçün bir dinamiklə işləmək üçün kodu düzəldə bilərsiniz.

Tövsiyə: