Mündəricat:

Zəngli Saat Ağıllı İşıq: 8 addım (Şəkillərlə birlikdə)
Zəngli Saat Ağıllı İşıq: 8 addım (Şəkillərlə birlikdə)

Video: Zəngli Saat Ağıllı İşıq: 8 addım (Şəkillərlə birlikdə)

Video: Zəngli Saat Ağıllı İşıq: 8 addım (Şəkillərlə birlikdə)
Video: Smart Telefon saat əlavə məlumat 070 220 87 43 çatdırılma var 2024, Noyabr
Anonim
Yenilənmiş Zəngli Saat Ağıllı İşıq
Yenilənmiş Zəngli Saat Ağıllı İşıq
Yenilənmiş Zəngli Saat Ağıllı İşıq
Yenilənmiş Zəngli Saat Ağıllı İşıq
Yenilənmiş Zəngli Saat Ağıllı İşıq
Yenilənmiş Zəngli Saat Ağıllı İşıq

Bu layihədə tamamilə qırılmış bir küləkli zəngli saatı işə salıram. Saat üzü, saatın kənarındakı LED şeridi ilə işıqlandırılmış 12 LED ilə əvəz olunur. 12 LED, vaxtı bildirir və LED şeridi, təyin olunmuş vaxtda tam parlaqlığa çevrilərək, həyəcan siqnalı kimi çıxış etmək üçün proqramlaşdırılmışdır. Hər şey bir Raspberry Pi Zero tərəfindən idarə olunur, e -poçt aldığınız zaman işıq siqnalını telefon siqnalınızla avtomatik olaraq sinxronizasiya etmək və ya LED -lərin yanıb sönməsi kimi saysız -hesabsız inteqrasiya və genişləndirmə imkanlarına imkan verir.

Layihə nisbətən ucuz və ya yenidən istifadə olunan komponentlərdən istifadə edir - satın aldığım tək şey gərginlik tənzimləyicisi idi. LED şeridinin kəsilməsi kimi ətrafımda yatdığım hər şey. Bu Təlimat, sındırılmış saatıma necə yeni bir həyat verdiyimə dair sizə yol göstərəcək və inşallah özünüzə məxsus bir şeyi inkişaf etdirmək üçün ilham verə bilər.

Addım 1: hissələr

Hissələri
Hissələri
Hissələri
Hissələri
Hissələri
Hissələri

Raspberry Pi Zero -dan istifadə edəcəyimiz hər şeyi idarə etmək üçün kiçik olduğu üçün çox az xərc çəkir və WiFi -yə qoşula bilər, yəni real vaxt saatı kimi ehtiyacımız yoxdur və buna görə də kodu noutbukdan uzaqdan asanlıqla yeniləyə bilərik. Pi Zero W yoxdursa, USB WiFi dongle istifadə edərək WiFi şəbəkəsinə qoşulacağıq.

İşdə istifadə etdiyim hissələrin siyahısı, amma çox şeyi uyğun alternativlərlə əvəz etmək olar. Məsələn, Raspberry Pi əvəzinə layihəni idarə etmək üçün real vaxt saatı olan bir Arduino istifadə edə bilərsiniz.

İstifadə olunan hissələr

  • Köhnə zəngli saat
  • 30 sm isti ağ LED şeridi
  • 1x Raspberry Pi Zero + micro SD kart
  • 1x USB WiFi dongle + mikro USB -dən USB çeviriciyə
  • 12x LED
  • 12x 330ohm rezistorlar (dimmerli LEDlər istəsəniz daha yüksəkdən istifadə edin)
  • 1x TIP31a (və ya digər npn güc tranzistoru və ya MOSFET)
  • 1x 1k rezistor
  • 1x LM2596 DC-DC tənzimlənən buck çeviricisi (Raspberry Pi üçün 5V üçün 12V aşağı düşür)
  • 1x 12v enerji təchizatı (+ layihənizə daxil olma yolu)
  • Saat üzü üçün 10 sm x 10 sm ağac
  • Müxtəlif rəngli tellərin müxtəlif parçaları

Sahib olmaq üçün faydalı şeylər

  • Lehimləmə dəmir + lehim
  • İsti yapışqan
  • Multimetr
  • Çörək lövhəsi
  • Qadın başlıq pinləri
  • Micro SD kart oxuyucusu və ya çeviricisi
  • Kompüter
  • Pi'nin masaüstü mühitindən istifadə etmək istəyirsinizsə Mini HDMI adapteri + HDMI ekranı

Addım 2: Raspberry Pi qurmaq

Raspberry Pi qurmaq
Raspberry Pi qurmaq
Raspberry Pi qurmaq
Raspberry Pi qurmaq

Əməliyyat sistemi

Raspberry Pi ekrana bağlı olmayacağından, masa üstü mühiti olmayan Raspbian Buster Lite istifadə etməyi seçdim. Raspberry Pi -dən daha yenisinizsə, masa üstü ilə birlikdə gələn standart Raspbian Buster -ə sadiq qalmaq istəyə bilərsiniz. Əməliyyat sisteminizi necə quracağınızdan əmin deyilsinizsə, bu əla bir qaynaqdır. Hər iki əməliyyat sistemi Raspberry Pi veb saytından yüklənə bilər.

Hal -hazırda, Pi -ni Micro USB güc girişi ilə gücləndirin. USB WiFi kilidini də bağlayın.

Raspberry Pi ilə söhbət

Hər şeyi paketlədikdən sonra kodu dəyişdirmək istəsəniz Pi -yə daxil olmaq olduqca çətindir. SSH -dən istifadə edərək Pi -yə qoşulun və başqa bir kompüterdən idarə edin. Varsayılan olaraq bu aktiv deyil, ancaq SD kartınızın açılış hissəsində ssh adlı bir qovluq yaratmaqla edə bilərik. Pi-yə artıq daxil olmusunuzsa, bunu Terminalda sudo raspi-config yazaraq İnterfeys Seçimləri> SSH-ə gedərək aktiv etmək üçün Bəli seçərək də edə bilərsiniz.

İndi Pi -yə başqa bir kompüterdə qoşula bilərsiniz. Mac və ya Linux -da terminal tətbiqinizi istifadə edə bilərsiniz, lakin Windows -un əksər versiyalarında PuTTY kimi bir SSH müştəri quraşdırmalı olacaqsınız. Ssh pi@ yazaraq Pi -yə qoşulun, burada host adınız Pi ünvanınızın IP ünvanı ilə əvəz olunur. Varsayılan ana adı raspberrypi.localdır. Sizdən hələ dəyişməmisinizsə, moruq olan bir parol istəyəcək.

Lazım olan əşyaların quraşdırılması

Əvvəlcə sudo apt update və sonra sudo apt full-upgrade işlədərək hər şeyin aktual olduğundan əmin olun.

Pi tipli GPIO pinlərini idarə etmək üçün nələrə ehtiyac duyduğumuzdan əmin olmaq üçün sudo apt-get install python-rpi.gpio və sudo apt-get install python3-rpi.gpio. Bunlar artıq Raspbian tam versiyasına quraşdırılmalıdır.

Kod

İşləmək üçün yükləmək üçün kod budur. Bir masa üstü mühitindən istifadə edirsinizsə, bunları Sənədlər qovluğuna yapışdırın.

SSH əmr satırından istifadə edirsinizsə, cd ~/Documents yazaraq enter düyməsini basaraq ev qovluğunuza gedin. Nano test1.py ilə test1.py adlı yeni bir fayl yaradın. Yüklənmiş test1.py faylının kodunu yapışdıra biləcəyiniz nano mətn redaktoru açılacaq. Fayl saxlamaq üçün CTRL-O düyməsini basın və redaktordan çıxmaq üçün CTRL-X düyməsini basın. Qalan fayllar üçün prosesi təkrarlayın.

Addım 3: LED şeridinin quraşdırılması

LED şeridinin quraşdırılması
LED şeridinin quraşdırılması
LED şeridinin quraşdırılması
LED şeridinin quraşdırılması

Əvvəlcə nə qədər ehtiyacınız olduğunu görmək üçün LED şeridini açın, bu uzunluğu qeyd edin və göstərildiyi kimi şeridi növbəti kəsmə nöqtəsində kəsin. Şerit yerə yapışmadan əvvəl telləri zolağa lehimləmək daha asandır. Bu, bunu necə edəcəyinizə dair olduqca yaxşı bir bələdçidir, amma əmin deyilsinizsə, yalnız zolağınızı kəsdiyiniz parça üzərində lehimlə birləşməyi tətbiq edərdim. Müsbət lehim nöqtəsinə bir tel lehimləyin və bir tel mənfi. Saatınıza yapışdırmadan əvvəl LED şeridinizin işlədiyini yoxlayın.

İstifadə etdiyim LED şeridi öz -özünə yapışan dəstəyi itirməmişdən əvvəl istifadə edildiyindən, zolağı saat kənarının kənarına düzəltmək üçün isti yapışqan istifadə etməli oldum. Həddindən artıq uzunluğunuz varsa, tellərin bağlandığı yeri örtün. Şeridi daha sonra qurmaq istəyə bilərsiniz, ancaq saatda yığışdırmağı daha asan tapdım.

Addım 4: LED şeridinə nəzarət

LED şeridinə nəzarət
LED şeridinə nəzarət

LED şeridinin bağlanması

LED şeridi 12V -da işləyir, buna görə birbaşa Pi -dən enerji almaq olmaz. Onlara nəzarət etmək üçün yuxarıda göstərildiyi kimi Pi -yə bağlı olan bir güc tranzistoru (məsələn, TIP31a) istifadə edəcəyik. Əvvəlcə bunların hamısını bir çörək taxtasında yoxlamağı məsləhət görürəm.

  • GPIO 19 -u 1k rezistor vasitəsilə bazaya qoşun
  • Emitent GND -yə qoşulmalıdır
  • Kollektoru LED şeridinin mənfi terminalına bağlayın
  • Müsbət LED şerit terminalını +12V -ə qoşun

Test

Komanda satırında sənədlər qovluğuna (cd ~/Documents) daxil olun və python test1.py yazın və daxil edin. LED şeridinin artdığını və parlaqlığının azaldığını görməlisiniz. Proqramdan çıxmaq üçün CTRL-C düyməsini basın. Proqramdakı sürəti və parlaqlıqları dəyişdirmək üçün faylı (nano test1.py) redaktə edə bilərsiniz.

GPIOimport zamanı GPIO.setmode (GPIO. BCM) kimi RPi. GPIO idxal edin # BCM pinout GPIO.setwarnings istifadə edin (Yanlış) # Digər şeylər üçün istifadə olunan pinlər haqqında xəbərdarlıqlara məhəl qoymayın ledStripPin = 19 # LED şeridi bu pindən idarə olunur GPIO.setup (ledStripPin, GPIO. OUT) # LEDStripPin -i çıxış pwm olaraq təyin edin = GPIO. PWM (ledStripPin, 100) 100Hz tezliyi ilə LEDStripPin üzərində # PWM dutyCycle = 0 # İlkin parlaqlıq faiz pwm.start (dutyCycle) olaraq sınayın: Doğru: üçün dutyCycle aralığında (0, 101, 1): # pwm'i dəyişdirin. DutyCycle (dutyCycle) vaxtını dəyişin. (95, -1, -1) dc aralığında yuxu (0.05): # pwm'i aşağı salın. ChangeDutyCycle (dc) zamanı.yuxu (0.05) Klaviatura kəsilməsi istisna olmaqla: # Çıxmaq üçün CTRL-C düyməsini basın və sonra: pwm.stop () # pwm GPIO.cleanup () # GPIO pinlərini təmizləyin

Addım 5: Saatın üzünü düzəldin

Saat üzünü düzəltmək
Saat üzünü düzəltmək
Saat üzünü düzəltmək
Saat üzünü düzəltmək
Saat üzünü düzəltmək
Saat üzünü düzəltmək

Saatınız üçün taxta parçanı saatınıza uyğun şəkildə aşağıya doğru kəsin. Cəbhədən təxminən 3 sm məsafədə istirahət etməyimi təmin etdim. LED -lərinizin diametrini (ümumiyyətlə 3 mm və ya 5 mm) bir -birindən 30 dərəcə aralı 12 delik açın. Ön tərəfi aşağıya zımpara edin və seçdiyiniz bir finişi tətbiq edin. Arxa tərəfdən LED -ləri önə doğru istiqamətləndirmək üçün yerləşdirin. Pozitiv terminal (daha uzun tel) içəriyə baxan LEDləri yerində saxlamaq üçün isti yapışqan istifadə etdim. Saat üzünün ölçüsü bütün mənfi terminalları birlikdə lehimləyə biləcəyimi (yuxarıya bax) demək idi, buna görə bütün 12 LED -i GND -yə bağlamaq üçün yalnız bir tel lazım idi. Sonra, hər bir LED -ə bir tel lehimləyin.

Bunu bir çörək taxtasında sınamaq istəyirsinizsə, əvvəlcə hər bir LED ilə Pi GPIO pinlərindən birinə bağlamadan əvvəl bir rezistor (330ohm olduqca standartdır) istifadə etməyi unutmayın. Xoşbəxt olduğunuz bir parlaqlıq səviyyəsinə çatmaq üçün istifadə etdiyiniz rezistorun dəyəri ilə oynayın. Bir t-ayaqçı, Pi pinlərini çörək taxtasına ayırmaq üçün həqiqətən faydalıdır, bunun üçün başlıq pinlərini lehimləməlisiniz. Test2.py istifadə edin (python test2.py istifadə edərək işləyin), ancaq proqramı əvvəlcə redaktə etdiyinizə və hər bir LED üçün istifadə etdiyiniz Pi -nin GPIO pinlərini daxil etdiyinizə əmin olun.

GPO olaraq RPi. GPIO idxal edin

idxal vaxtı GPIO.setmode (GPIO. BCM) # BCM pinout istifadə GPIO.setwarnings (Yanlış) # Başqa şeylər üçün istifadə olunan sancaqlar haqqında xəbərdarlıqlara məhəl qoyma # Bir, iki,… müvafiq pin nömrəsi ilə hourPin = [bir, iki, üç, dörd, beş, altı, yeddi, səkkiz, doqquz, on, on bir, on iki] # LED-lər i (0, 12) aralığında 1-12 arasında bağlanır: GPIO.setup (hourPin , GPIO. OUT) # Bütün hourPins -i çıxış kimi təyin edin GPIO.output (hourPin , 0) # Bütün LED -lərin söndürüldüyünə əmin olun: True isə: i aralığında (0, 12) GPIO.output (hourPin [i)], 1): zaman aralığı (0, 12) GPIO.output (hourPin , 0): time.sleep (0.05): KeyboardInterrupt istisna olmaqla time.sleep (0.05): # Çıxmaq üçün CTRL-C düyməsini basın və sonra: GPIO.cleanup () # GPIO sancaqlarını təmizləyin

Addım 6: Pi -ni gücləndirin

Pi -ni gücləndirmək
Pi -ni gücləndirmək

İndiyə qədər istifadə etmək üçün istifadə etdiyimiz mikro USB kabeldən xilas olmaq üçün Pi Zero -ya 5V keçməyin asan bir yoluna ehtiyacımız var. LM7805 xətti gərginlik tənzimləyicisi kimi 12V -dan 5V -a qədər aşağı düşən bir çox həll yolu var, lakin bunlar o qədər də səmərəli deyil, bunun əvəzinə LM2596 çipini istifadə edərək daha səmərəli tənzimlənən buck çeviricisini istifadə etməyi seçdim. Bununla əlaqədar olaraq, çıxış gərginliyi 5V -a endirilənə qədər potensiometrini əymək məcburiyyətində qalacaqsınız, buna görə də gərginliyi ölçmək üçün bir üsula ehtiyacınız olacaq.

LM2596-dan istifadə etmək çox sadədir: +12V-u IN +-ə, IN-ə qoşun. Pi, OUT+ -ı Pi'nin 5V pinlərindən birinə bağlayaraq 5V -ə birbaşa qoşula bilər, ancaq bunu etməzdən əvvəl çıxış gərginliyini 5V -ə dəyişdiyinizə əmin olun, yoxsa Pi -ni qızardacaqsınız!

Addım 7: Dövrəni və Qablaşdırmanı tamamlayın

Dövrəni və Qablaşdırmanı tamamlayın
Dövrəni və Qablaşdırmanı tamamlayın
Dövrəni və Qablaşdırmanı tamamlayın
Dövrəni və Qablaşdırmanı tamamlayın
Dövrəni və Qablaşdırmanı tamamlayın
Dövrəni və Qablaşdırmanı tamamlayın
Dövrə və Qablaşdırmanı tamamlayın
Dövrə və Qablaşdırmanı tamamlayın

İndi yuxarıdakı ümumi dövrədə birlikdə göstərilən dövrənin hər üç elementini əhatə etdik. Məkana qənaət etmək və dövrəni daha səliqəli etmək üçün zolağınızı zolaqlı lövhəyə və ya prototip lövhəsinə qoyun. Əvvəlcə ən kiçik komponentləri, rezistorları, sonra güc tranzistorunu, hər hansı bir konnektoru və nəhayət telləri lehimləyin. Hər şey üçün yeriniz olduğundan əmin olmaq üçün lehim etməzdən əvvəl dövrə planlaşdırın.

Hər şeyi prototipləşdirən bir PCB -yə bağladım və qadın başlıq pinlərindən istifadə etdim ki, Pi birbaşa PCB -yə quraşdırılsın. Saat üzündəki LEDlər lövhənin bir tərəfindəki rezistorlar vasitəsilə bağlanır və lövhənin digər tərəfində güc tranzistoru üçün yer saxladım və daha sonra əlavə etmək istədiyim digər sxemlər üçün pulsuz olaraq saxladım.

Saatı saata bağlayın və elektronikanın hər şeyə uyğun olduğundan əmin olun. Hər şey mənim üçün çox sıx idi, buna görə yenidən düzəltmək lazımdır. Arxa bağlamadan əvvəl hər şeyin işlədiyini yoxlamaq üçün enerji təchizatını qoşun və SSH -dən test1.py və test2.py -ni işə salın.

Addım 8: Kodu yükləyin + Bitirin

Kodu yükləyin + Bitirin
Kodu yükləyin + Bitirin
Kodu yükləyin + Bitirin
Kodu yükləyin + Bitirin
Kodu yükləyin + Bitirin
Kodu yükləyin + Bitirin

Kod

Nəhayət, hələ etməmisinizsə, kodu yükləyin və istədiyiniz kimi uyğunlaşdırın (nano filename.py istifadə edərək). SSH üzərindən Pi -yə qoşulmağın faydası, saatı açmadan kodu yeniləyə biləcəyinizdir.

Addım 2 -dən gələn bu python proqramları aşağıdakıları edir:

  • light_clock_simple.py sadəcə LED -lərdəki saatı göstərir və LED şeridini müəyyən vaxtlarda yuxarı və aşağı söndürür.
  • light_clock_pwm.py yuxarıdakı kimidir, eyni zamanda LED -lərin parlaqlığını azaltmağa imkan verir və dəqiqələri saatlarla fərqli bir parlaqlıqda göstərir. Hər ikisinin də parlaqlıq səviyyələri ilə oynamaq lazımdır ki, ikisi arasındakı ziddiyyət nəzərə çarpar

Bunlar koda əlavə etmək üçün möhkəm bir əsas təmin etməlidir, məsələn, işıq siqnalını gecikdirmək üçün bir düymə əlavə etmək istəyə bilərsiniz.

Pi çəkmələri zamanı proqramı işə salmaq üçün terminaldan crontab -e ilə açıla bilən crontab faylının sonuna '@reboot nohup python light_clock_pwm.py &' əlavə etməliyik. Sudo shutdown -r ilə işlədiyini yoxlamaq üçün Raspberry Pi -ni yenidən başladın.

Potensial əlavələr

Əlavə edilə biləcək əlavə funksionallıq haqqında bəzi fikirlər

  • Mürgülə düyməsi əlavə olunur
  • Lampa rejimi əlavə olunur
  • IFTTT -yə qoşulma (məsələn, telefon siqnalı sönəndə/e -poçt alındıqda yanıb -sönə bilər)
  • Toxunma qabiliyyəti əlavə edərək saatı bir toxunma lampasına çevirin

PWM -dən istifadə edərkən bəzən aşağı parlaqlıqda LED -in bir qədər titrədiyini görə bilərsiniz. Bunun səbəbi, Pi'nin PWM proqramından istifadə etməsidir, buna görə CPU prosesləri vəzifə dövrünə təsir edə bilər. Daha az işləyən proseslər buna kömək edir, buna görə də Raspbian Lite əməliyyat sistemindən istifadə etdim. Hardware PWM də bir neçə sancaqda mövcuddur, buna görə də titrəmə bir problemi sübut edirsə, bu araşdırılacaq bir şey ola bilər.

Ümid edirəm ki, bu Təlimatlandırıcı məlumatlı məlumatı tapmısınız və ya köhnə bir zəngli saatı dəyişdirmək və ya öz layihəniz üçün kod elementlərindən istifadə etməkdən ilham alırsınız.

LED Şerit Sürət Çağırışı
LED Şerit Sürət Çağırışı
LED Şerit Sürət Çağırışı
LED Şerit Sürət Çağırışı

LED Strip Speed Challenge -da İkinci Mükafat

Tövsiyə: