Mündəricat:
- Təchizat
- Addım 1: Raspberry Pi qurmaq
- Addım 2: Elektronikaya qoşulun
- Addım 3: Verilənlər Bazası Dizaynı
- Addım 4: Arduino Quraşdırması
- Addım 5: Raspberry Pi Backend
- Addım 6: Dava
Video: Məni Oyandır - Ağıllı Zəngli Saat: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Məni oyandır, ağıllı bir işıq olaraq da istifadə edilə bilən ağıllı bir zəngli saatdır.
Daxili ledstrip otağınıza daxil olan təbii işığı simulyasiya edir. Bu, gününüzə sakit və təbii bir şəkildə başlamağa imkan verir.
Zəngli saat, vaxtı oxumaq üçün 4*7 seqmentli ekran, sevdiyiniz musiqi ilə oyanmaq üçün dinamiklər, toxunma düyməsi, LED şeridinin parlaqlığını uyğunlaşdırmaq üçün bir ldr və ekrana baxmaq üçün istifadə edə biləcəyiniz bir temperatur sensoru ilə də təchiz olunmuşdur. otağınızın temperaturu.
Təchizat
Tam ödədiyim qiymətlərin siyahısını burada tapa bilərsiniz:
Mikro nəzarətçilər və kompüterlər:
Raspberry Pi 4I moruq pi 4 4GB istifadə etdi, lakin hər hansı bir moruq pi modeli 3+ yaxşı olmalıdır
Arduino Uno
Arduino, 4*7 seqmentli saat ekranını idarə etmək üçün istifadə olunur.
Sensorlar:
- TMP36: temperatur sensoru
- LDR: İşıqdan asılı rezistor
Aktuatorlar:
- WS2801: Fərdi olaraq ünvanlı ledstrip
- LCD ekran: 16*2 LCD ekran.
- 4*7 seqmentli saat ekranı
IC -lər:
- 74HC595: LCD ekran üçün Shiftregister
- MCP3008: 8-bit analoqdan rəqəmsal çeviriciyə
- Məntiq səviyyəsi çeviricisi: raspi və arduino arasında ünsiyyət qurmaq üçün istifadə olunur
Başqa şeylər:
- Dinamikləri gücləndirmək üçün adafruit MAX9744 gücləndiricisi
- İstənilən dinamik, Visaton 4Ohm 8Watt tam diapazonlu dinamikdən istifadə etdim (Art. No. 2240)
- Gücləndiricini gücləndirmək üçün 9 voltluq enerji təchizatı
- Led zolağını və digər komponentləri təmin etmək üçün 5 voltluq bir enerji təchizatı. Leddəki hər bir ledin 60mA -nı boğa biləcəyini unutmayın, buna görə enerji təchizatınızın kifayət qədər olduğundan əmin olun.
- Bir neçə 220 Ohm rezistor
- Çantanıza qoymaq üçün kiçik bir çörək taxtası.
Alətlər:
- Bir lehimləmə dəmiri.
- Davanı düzəltmək üçün bir şey (taxta effekti əldə etmək üçün PLA və PETG ilə 3D printerdən və bəzi vinil etiketlərdən istifadə etdim.)
Addım 1: Raspberry Pi qurmaq
Moruq pi bizim əsas mikro nəzarətçimizdir.
Raspberry pi yerli veb serverimizi, verilənlər bazamızı idarə edir, led zolağını, dinamikləri,…
1 -ci hissə: Raspbian qurmaq
Raspbian qurmaq üçün bu təlimatı istifadə edin:
SSH -nin aktiv olduğundan əmin olun
2 -ci hissə: Bağlanmaq
İnternetə qoşulmaq üçün moruq pi terminalına giriş əldə etməlisiniz. Macun istifadə etməyi məsləhət görürəm. Terminal tipində:
wpa_passphrase "Şəbəkəniz" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"Şəbəkəniz" wifi şəbəkənizin adıdır və "YourSSID" şəbəkənizin paroludur.
Şəbəkəni əlavə etdikdən sonra Raspberry Pi -ni yenidən başladın.
'Ping 8.8.8.8' əmrini yazın, şəbəkəniz qurulduqda və işləyirsə cavab alsanız google serverlərinə bir paket göndərəcək!
3 -cü hissə: Lazım olan proqramları quraşdırın
Bu layihəni işə salmaq üçün bəzi əlavə proqramlar quraşdırmalıyıq.
Başlamadan əvvəl hər şeyin təkmilləşdirildiyinə əmin olmaq üçün bu 2 əmri işlədin.
sudo apt yeniləmə
sudo apt upgrade
Bu bir müddət çəkə bilər.
Apache
sudo apt install apache2 -y
sudo apt php libapache2-mod-php -y quraşdırın
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php -mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
Python borusu
Bəzi python kitabxanalarını işə salmaq üçün pip quraşdırmalıyıq
pip3 mysql-connector-python qurun
pip3 flask-socketio qurun
pip3 flask-cors quraşdırın
pip3 gevent quraşdırın
pip3 gevent-websocket quraşdırın
Addım 2: Elektronikaya qoşulun
2 sxem əlavə etdim, 1 test məqsədləri üçün bir çörək taxtası sxemidir. İlk sxem qurmağı və kodu işə salmağa çalışmağı məsləhət görürəm.
Aşağıdakı fritzing fayllarını əlavə etdim.
Addım 3: Verilənlər Bazası Dizaynı
Bu mənim hazırladığım verilənlər bazası sxemidir. Sözlər holland dilindədir, amma hər cədvəli ətraflı izah edəcəyəm.
Cədvəl 1: tblMuziek
Bu olduqca sadə bir masa. Sənətçinin adını, mahnı adını və mahnının fayl adını saxlayır.
Cədvəl 2: tblLedstrip
Bu cədvəl, LED zolağının vəziyyətini saxlayır. Smartlight funksiyası üçün buna ehtiyacımız var.
Cədvəl 3: tblSensoren
Bu cədvəl həyəcan siqnalımızdakı sensorları izləyir. Sensorun adını və MCP3008 kanalını saxlayırıq
Cədvəl 4: tblMeting
Bu cədvəldə sensorlarımızın dəyərləri vaxtları ilə birlikdə saxlanılır.
Cədvəl 5: tblWekker
Bu cədvəl zəngli saatınızın parolunu və adını saxlayır (məsələn, yataq otağı) Bu cədvəl məcburi deyil, ancaq evinizdə 1 -dən çox zəngli saatınız olacağını güman etdiyim üçün əlavə etdim.
Cədvəl 6: tblAlarm
Bu, bəlkə də ən vacib cədvəldir. Qurduğunuz həyəcanı və saatın nə etməli olduğunu izləyir (hansı mahnını ifa etmək, hansı ardıcıllığa səbəb olmaq, hansı günlərdə sönmək lazımdır …). 2 tarixi izləmək çox vacibdir. Zəngli saatın hansı saatda sönməsi lazım olduğunu saxlamaq üçün 1 tarix istifadə olunur. Digəri isə həyəcan siqnalı son dəfə nə vaxt çaldı. Hansı iş gününün başlamalı olduğunu bilmək üçün 7 rəqəmdən ibarət bir varchar istifadə etdim. İlk rəqəm Bazar ertəsi, ikinci Çərşənbə axşamıdır,… 1 -dirsə, o zaman sönməlidir, 0 olarsa olmamalıdır. Misal: 1111100, bu siqnalın Bazar ertəsi, Çərşənbə, Çərşənbə, Cümə axşamı və Cümə günləri sönməsi deməkdir.
Addım 4: Arduino Quraşdırması
Bu addım çox asandır. Arduino faylını yükləyə biləcəyiniz növbəti addımda mənim github -a bir keçid olacaq.
Proqram nə edir?
Proqram, serial məlumatlarının pi -dən daxil olmasını gözləyir.
Məlumat əldə edildikdən sonra ipdən ayrılır və pi -yə bir təsdiq göndərir.
String bu kimi bir şey olacaq: '1201' bu 12:01 olduğu anlamına gəlir. Ümumi bir anod 7 seqmentli ekran istifadə etdim, bu rəqəmlərin yüksək olması və A, B, C, D, E, F, G və DP -nin açılması üçün aşağı olması deməkdir. Ümumi bir katoddan istifadə edirsinizsə, HIGH -u LOW -a və LOW -u HIGH -a dəyişməlisiniz.
Burada 7 seqmentli ekranın necə işlədiyinə dair daha çox məlumat olan bir link var. (kitabxanadan istifadə etməklə):
www.instructables.com/id/Using-a-4-digit-7…
Kitabxanadan istifadə etmədən 7 seqmentli ekran haqqında bir link:
create.arduino.cc/projecthub/SAnwandter1/p…
Addım 5: Raspberry Pi Backend
Kodumu Github istifadə edərək yükləyə bilərsiniz. (https://github.com/VanHevelNico/WakeMeUp)
Proqramı necə qurmaq olar:
Arxa plitə istifadə edərək pitonda yazılmışdır. Bu proqramı (app.py) avtomatik olaraq başlatan bir xidmət edə bilərsiniz.
Ön kodunu əvvəllər endirdiyimiz apache serverinin html faylına qoymalısınız. (/var/html)
Proqram necə işləyir?
Zəngli saat açıldıqda saatınızın ip ünvanına gedin (lcd -də göstəriləcək)
Brauzerinizdə həmin ip ünvanına gedən kimi kompüteriniz müştəri ilə əlaqə qurduğunu söyləyərək arxa tərəfə socket.io sorğusu göndərəcək. Arxa tərəf bunu alanda aşağıda izah edəcəyim bir neçə mövzu başlayacaq.
Qurmaq
Bu lazım olan bütün obyektləri intialize edir.
GetTemp
Bu mcp3008 kanal 0 -ı oxuyur və ikili məlumatları həqiqi temperatura çevirir və cari tarix və saatı məlumat bazasına qoyur.
GetTempGrafiek
Bu, temperatur sensörünün keçmiş 20 dəyərini alır və onu ön ucuna yayır.
tijd_sturen
Bu üsul cari vaxtı alır və dəqiqənin dəyişib -dəyişmədiyini yoxlayır. Proqram dəyişdirilərsə, serial vaxtından istifadə edərək yeni vaxtı arduinoya göndərir
çekAlarmen
Bu ən vacib üsuldur. Açılan bütün həyəcan siqnallarını alır və bu həyəcan siqnallarından hər hansı birinin indiki vaxtdan 5 dəqiqə əvvəl keçməli olub -olmadığını yoxlayır (bu, hər bir siqnalın lazım olduğu anda sönməsini təmin etmək üçün buferdir). Siqnal sönməli olsa, musiqiyə, lentə başlayacağıq … Gücə həssas olan rezistoru davamlı oxuyuruq və dəyəri 1000 -dən aşağı düşəndə (fsr basıldığını oxuyun) Siqnalı çeviririk və həyəcan siqnalını yeniləyirik. verilənlər bazası. Siqnalın sonuncu dəfə açıldığı tarixi cari tarixə qoyduq.
statusLight
Bu üsul, LED zolağının dəyərini çıxarır və lazım olduqda led şeridi işə salır.
lichtAanpassen
Bu ledstrip və həyəcan işığının ziddiyyət təşkil etməməsini təmin etmək üçün əlavə bir üsuldur.
Addım 6: Dava
Dosyalarımın linkini burada tapa bilərsiniz:
Kassanı çap etmək üçün 3d printerdən istifadə etdim. 4 fərqli hissədə çap olunur:
- Dinamik üçün deşikləri və 7 seqmentli ekran üçün bəzi divarları olan ön plaka
- Şəffaf PETG -də led zolaq üçün xarici üzük.
- Orta hissə
- Arxa panel lcd üçün bir çuxur və kabellər üçün bir çuxur.
Orijinal modeldə 7 seqmentli ekran üçün heç bir çuxur yox idi, lakin buna ehtiyac var, çünki əks halda 7 seqmentli ekranın işığı yanmaz.
Gördüyünüz kimi bütün komponentləri taxdıqdan sonra son nəticənin daha yaxşı görünməsi üçün taxta görünüşlü vinil stikerlərdən istifadə etdim. Saat ekranı stikerdə parlayır və bu da çox gözəl görünüşlü bir effekt yaradır.
Tövsiyə:
Soda qablarından əkiz zəngli saat: 7 addım (şəkillərlə)
Soda qutularından əkiz zəngli zəngli saat: Bu təlimat soda qutusundan əkiz zəngli zəngli saatın necə hazırlanacağını göstərir. Layihədə mürəkkəbin çıxarıldığı soda qutularından istifadə olunur (Bağlantı: Soda qutularından mürekkep çıxarılması). Bu zəngli saatı tam işlək hala gətirmək üçün DIY Quartz saat modulu birləşdirildi
Səsli bir zəngli saat: 3 addım
Səs -küylü bir zəngli saat: Tayvanda 13 yaş tələbəsiyəm. Arduino ilə ilk dəfə bir şeylər qururam, əgər mənə bu işi necə yaxşılaşdıracağımı söyləyə bilərsənsə, lütfən mənim üçün şərhlər burax ki, daha yaxşısını edim. ) Bu saat yuxuya gedəndə səni oyada bilər, amma mən
Arduino OLED Zəngli Saat hazırlamaq: 5 addım
Arduino OLED Üzük Saatı hazırlamaq: Kiçik bir OLED ekran aldım, təmizliyi və aydınlığı diqqətimi çəkir. Amma bununla nə edim? Əslində məsələ onu necə göstərə bilərəm … Lol. Ən çox sevdiyim film seriyası olan Üzüklərin Efendisinin afişasına baxanda
Arduino ilə Zəngli Zəngli Saat: 13 Addım (Şəkillərlə)
Arduino ilə Zəngli Zəngli Saat: Səni bilmirəm, amma sadə bir zəngli saat məni oyatmağa qadir deyil. Yuxudan oyanmaq üçün işığa, səsə və hətta yumşaq bir şilləyə ehtiyacım var. Zəngli saat məni cəlb etmir, buna görə də özümü oyatmağa layiq biri olmağa qərar verdim
"Müdrik Saat 2" nin (Bir çox Əlavə Xüsusiyyətləri olan Arduino əsaslı Zəngli Saat) montajı: 6 addım
"Müdrik Saat 2" nin (Bir çox Əlavə Xüsusiyyətə malik Arduino əsaslı Zəngli Saat) Quraşdırılması: Bu dərslik, açıq mənbəli (hardware və proqram) layihə olan Wise Clock 2 üçün dəstin necə yığılacağını göstərir. Tam bir Wise Clock 2 dəsti burada əldə edilə bilər. Xülasə olaraq, bu, Wise Clock 2 -nin edə biləcəyi şeydir (cari açıq mənbə proqramı ilə