Mündəricat:

Ağıllı divar təqvimi: 5 addım
Ağıllı divar təqvimi: 5 addım

Video: Ağıllı divar təqvimi: 5 addım

Video: Ağıllı divar təqvimi: 5 addım
Video: Heydər Əliyev və Həyat yoldaşını Birdə belə görün #azerbaijan #president #prezident #xeberler #xeber 2024, Iyul
Anonim
Ağıllı divar təqvimi
Ağıllı divar təqvimi

Həyat yoldaşımla mənim üçün vacib tarixləri qeyd etdiyimiz klassik kağız divar təqvimi var idi. Hadisələri qeyd etmək üçün ağıllı telefonlarımızda Google təqvimindən də istifadə edirik, buna görə bu ikiqat iş demək idi. Xatırlatmalarımızı, hadisələrimizi və digər məlumatlarımızı əks etdirəcək bir növ ağıllı divar təqvimi qurmağa qərar verdim. Ətrafımda müxtəlif köhnə elektron hissələr olduğu üçün məqsədim onları mümkün qədər çox istifadə etmək və təqvimi mümkün qədər az xərclə qurmaq idi.

Bu təlimatda sizə bir neçə Google hesabından hadisələri əks etdirərək ağıllı divar təqviminin necə qurulacağını göstərəcəyəm. Həm də vaxtı, tarixi, hava, temperatur və bəzi əlavə məlumatları göstərəcək. Otaqda hərəkət aşkar edildikdə ekranın açılması, lakin bir neçə dəqiqəlik hərəkətsizlikdən sonra sönməsi üçün ona Pasif İnfraqırmızı Sensor (PIR) hərəkət sensoru quraşdırılmış Raspberry Pi kompüteri ilə təchiz olunacaq. Bu dərslik internetdə tapdığım bir neçə digər dərslərə əsaslanır və daha yaxşı başa düşmək üçün onlara bağlantılar verəcəyəm. Bəzi əsas proqramlaşdırma biliklərinə ehtiyac var (HTML, Python, …).

Addım 1: Hardware

Daha əvvəl də qeyd edildiyi kimi, xərcləri aşağı salmaq üçün bir çox köhnə elektron hissəni yenidən istifadə etməyə çalışdım. Ancaq satın almalı olduğum bəzi əşyalar, buna görə də tikinti üçün lazım olanların hamısını sadalayacağam.

- Raspberry Pi dəsti. Əvvəlcə başqa bir layihədən köhnə model 2 -dən istifadə etdim. İşlədi, amma veb səhifəni düzəltmək və yenidən yükləmək mənə çox vaxt apardı, nəticədə daha səlis işləyən 3 -cü modelə keçdim https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313 & _nkw = moruq+pi+kit & _sacat = 0

- LCD ekran. Ekranı köhnə noutbukumdan istifadə etdim, buna görə yalnız bunun üçün LVDS sürücü lövhəsi və enerji təchizatı almalıydım https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ sürücü+LVDS+lövhə və _sacat = 0

-Elektronika üçün plastik saxlama qutusu

- Passiv infraqırmızı hərəkət sensoru

- AM2302 temperatur/rütubət sensoru

- LCD çərçivə üçün qara plastik sürüşmə bağlayıcı

- Müxtəlif kabellər (HDMI, DC gücü üçün 5.5 mm, lehimsiz çörək taxtası tullanan kabellər,…)

Addım 2: LCD Ekranın yaradılması

LCD Ekranın yaradılması
LCD Ekranın yaradılması
LCD Ekranın yaradılması
LCD Ekranın yaradılması
LCD Ekranın yaradılması
LCD Ekranın yaradılması

LCD ekranını köhnə köhnəlmiş noutbukumdan istifadə etdim. Bunun necə ediləcəyinə dair bir neçə dərs var, bunları izlədim:

www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-your-broken-Lap/

Köhnə noutbukumun qapağını sökdüm, LCD ekranı çıxardım və sonra düzgün LVDS sürücü lövhəsini sifariş etdim. Satıcıya LCD -nin arxa tərəfində tapıla bilən məhsul kodunu verdim, mənim vəziyyətimdə LP171WE3 (TL) (A2) - son şəkildəki sağ alt etiketə baxın və sonra mənə uyğun LVDS göndərdi. Diqqət yetirin, ekran üçün enerji təchizatına da ehtiyacınız olacaq, buna görə satıcıdan da göndərməsini xahiş edin. Sürücü lövhəsinə yaxşı uyğunlaşmaq və LCD -nin arxa tərəfinə bağlamaq üçün 14.5 × 7.5 × 2 sm ölçüsündə gözəl bir plastik qutu aldım.

İndi LCD displey metal çərçivəyə malikdir, bu da çox da gözəl görünmür. Əvvəlcə qara rəngə boyadım, amma boya soyulmağa başladı. Beləliklə, adətən kağız vərəqləri bağlamaq üçün istifadə olunan dörd qara plastik sürüşmə bağlayıcı götürdüm, onları müvafiq olaraq kəsdim və çərçivəni örtmək üçün bağladım. Bu yaxşı görünürdü, buna görə köhnə Raspberry Pi və Voila'ya HDMI bağladığım bütün kabelləri bağladım - işlədi! Ekranda bir şəkil var idi, buna görə də növbəti mərhələyə keçməyə hazır idim - ekranda hansı məlumatları göstərəcəyimi və necə göstərəcəyimi.

Addım 3: Proqramın qurulması

Təqvim necə qurulacağına dair bəzi ipuçlarını internet üzərindən axtaranda bu səhifədən ilham aldım https://dakboard.com/site. Hazır məhsulu (ekran, kompüter və işləyən proqram təminatı) təmin edir, eyni zamanda DIY həlli üçün əla bir dərsliyə malikdirlər (https://blog.dakboard.com/diy-wall-display/). Bu təlimatı ən azı birinci hissədə Raspberry-də sistemin hazırlanması və qurulması ilə bağlı təlimatları izləməyi məsləhət görürəm ki, brauzer açılışda istədiyiniz veb səhifəni avtomatik yükləsin.

Bu çox yaxşı işlədi, amma istəklərimə uyğun olaraq daha çox uyğunlaşdırıla bilən bir həll axtarırdım. Öz veb serverimi qurmağa və təqvimdən başqa əlavə məlumatları göstərəcək bir veb səhifəsi yaratmağa qərar verdim. Wordpress.org -u seçmişəm, çünki yaxşı sənədləşdirilmişdir və sizə kömək etmək üçün yaxşı dəstəyə və geniş ictimaiyyətə malikdir. Wordpress-in Raspberry Pi-də necə qurulacağına dair təlimat budur: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. Wordpress quraşdırıldıqda, ana səhifəmi tərtib etməyin vaxtı gəldi. Bir çox təqdim olunan mövzudan birini istifadə edə və ya sıfırdan dizayn edə bilərsiniz. Hər halda, bunun üçün bəzi HTML proqramlaşdırma biliklərinə ehtiyac var.

Səhifəmi sol tərəfdə (https://sl.wordpress.org/plugins/google-calendar-events/), sağ tərəfdə isə vaxt və tarixin göstəriləcəyi şəkildə tərtib etdim (https://www.timeanddate.com/clocks/free.html və https://www.arclab.com/en/kb/htmlcss/display-date-time-javascript-php-ssi.html). Hava proqnozu Sloveniya şəhərləri üçün proqnoz vidceti təqdim edən bu səhifədən (https://www.1a-vreme.si/vremensko-okno/) ibarətdir, amma düşünürəm ki, digər ölkələr üçün də vidjetlər internetdə tapıla bilər. Bu fəslin sonunda izah edildiyi kimi, temperatur AM2302 sensoru (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0) vasitəsilə toplanır. Aşağıda hər hansı bir hadisəyə neçə gün qaldığını göstərən sadə gündəlik geri sayım sayğacı var (uşaqlarımın bilməsi maraqlıdır, neçə gün bir şey gözləməli olacaqlar). Sağ üst kənarda təsadüfi olaraq ailəmin seçilmiş şəkillərinə sürüşdürən MetaSlider plagini (https://wordpress.org/plugins/ml-slider/) var. Əlavə olaraq daha gözəl bir fon üçün təsadüfi bir şəkil göstərmək üçün Background Slider pluginindən (https://sl.wordpress.org/plugins/background-slider-master/) istifadə etdim.

Daha əvvəl də qeyd edildiyi kimi, otaq temperaturu AM2302 sensoru ilə toplanır. İstiliyin necə alınacağına dair bir çox dərslər var, bunları izlədim: https://www.modmypi.com/blog/am2302-temphumidity-sensor. Daha sonra DHT Sensor komponentini (https://www.home-assistant.io/components/sensor.dht/) istifadə edərək dəyərləri oxumaq və dərc etmək daha asan olduğu üçün bu köməkçini işləyən başqa bir Raspberry Pi-yə köçürdüm.. Ev köməkçisi müxtəlif hava komponentlərindən istifadə edərək xarici temperaturu da toplaya bilər, YR.no komponentindən istifadə etdim (https://www.home-assistant.io/components/sensor.yr/). Bununla, bu komponentlərdən daxili/xarici temperaturu toplamaq və sonra divar təqvimimdə görünən bir mətn sənədinə yazmaq üçün bir avtomatlaşdırma skript yazdım. Home Assistant haqqında daha çox məlumat üçün ana səhifəyə baxın (https://www.home-assistant.io/).

Addım 4: İsteğe bağlı - Ekranı söndürmək

İndi təqvimimizi istədiyimiz kimi qurub işə salırıq. Ancaq ekranın 7/24 açılmasını istəmirik. Yalnız kimsə evdə olanda bunu davam etdirmək istəyirik. Gecə yarısında tualetə gedəndə çox işıqlı olmasını istəmirik! Beləliklə, kimsə qarşısında dayandığını anlamaq üçün infraqırmızı sensoru bağlayacağıq və nə vaxt açılacağını müəyyən edəcəyik.

Nəzərə alın ki, proqramlaşdırma bacarıqlarım kifayət qədər məhduddur, buna görə də bunları müxtəlif onlayn forum və dərslərdən seçdiyim üçün optimal ola bilməz, amma mahiyyətcə işləyir. Yenə də hər hansı bir tövsiyə hələ də müsbət qarşılanır. Əvvəlcə monitoru əl ilə açmaq/söndürmək üçün testdən başlayacağıq. Bunun üçün iki fayl yaradacağıq (məsələn monitor_on.sh və monitor_off.sh) və içərisində bir kod yazacağıq. Bunun ən asan yolu, SSH və yazaraq Raspberry -ə daxil olmaqdır

sudo nano monitor_on.sh

və aşağıdakı kodu yazın

tvservice -üstünlük verilir;

startx/usr/bin/graphical_launcher `fgconsole`

Saxlamaq və çıxmaq üçün CTRL+X düymələrini basın, sonra ikinci faylı yaradın

sudo nano monitor_off.sh

və aşağıdakı kodu yazın

tv xidməti -off;

Yenidən saxlamaq və çıxmaq üçün CTRL+X düymələrini basın. Bu yeni yaradılan faylları icra edilə bilən hala gətirin:

sudo chmod +x monitor_on.sh

sudo chmod +x monitor_off.sh

İndi bu əmrlərin işlədiyini yoxlamaq üçün yazın

sudo./monitor_off.sh

sudo./monitor_on.sh

İndi monitor bağlanmalı və buna uyğun olaraq açılmalıdır. Raspberry Pi 2 -də monitorun açılmasının təxminən 10 saniyə çəkdiyini gördüm. Raspberry Pi 3-də 1-2 saniyə çəkir. Sonra bu skriptləri işə salan infraqırmızı sensoru bağlayacağıq. Yenə də Raspberry Pi və PIR-in necə qurulacağına dair bir çox dərslər var, bunları izlədim: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. Əsasən, nano redaktoru (məsələn, motion_sensor.py) istifadə edərək bir fayl yaradın və ona uyğun Python kodunu yazın. Dosyamın nümunəsi aşağıda verilmişdir:

RPi. GPIO -nu GPIOimport zamanı kimi idxal et time.time () SHUTOFF_DELAY = 180 # seconds while True: i = GPIO.input (17) if i == 0: #Hərəkət sensörünün çıxışı LOW olduqda, monitoru söndürməyin və time.time ()> (last_motion_time + SHUTOFF_DELAY): "Daxil olmayın" yazdırın, iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'], shell = True) elif i == 1: #Hərəkət sensöründən çıxanda YÜKSƏKdir, monitoru ONprint "Daxil edən aşkarlandı" yandırın, itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () off_off və dt.datetime.now (). hour> 5 və dt.detime. indi (). saat <23: turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'], shell = Doğru) _name_ == '_main _' olarsa: cəhd edin: main () KeyboardInterrupt istisna olmaqla: GPIO.cleanup ()

Qeyd edək ki, "GPIO.setup (17, GPIO. IN)", PIR -dən çıxış pininin Raspberry Pi üzərindəki pin 17 -yə qoşulduğunu göstərir. Hansı pin, GPIO.setmode (GPIO. BOARD) və ya GPIO.setmode (GPIO. BCM) təyin etməyinizdən asılıdır. Fərq burada izah olunur: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering. GPIO. BOARD qarşısında # nömrəm var, buna görə nəzərə alınmır və GPIO. BCM istifadə olunur.

Xətti qeyd edin

SHUTOFF_DELAY = 180 #saniyə

Burada, son hərəkət aşkar edildikdən sonra, monitorun söndürülməmişdən əvvəl nə qədər açıldığı göstərilir. Bu faydalıdır, çünki monitorun yanında gəzərkən daim sönməsini/açılmasını istəmirəm, ancaq sönməzdən əvvəl bir müddət açıq qalmasını istəyirəm. 180 saniyəlik bir fasilə seçdim ki, monitor son hərəkət aşkar edildikdən təxminən 3 dəqiqə sonra sönər.

Nəhayət, bu xətt

off_off və dt.datetime.now (). saat> 6 və dt.datetime.now (). saat <23:

monitorun yalnız 6: 00-23: 00 arasında açıldığını, buna görə də gecə vaxtı məni narahat etmədiyini bildirir. Xətlər

çap "Daxil olmayın", i

çap "Daxil olan aşkarlandı", i

yalnız skript sınamaq üçündür, işlədikdən sonra onları silə bilərsiniz. İndi skript sınayın:

sudo python motion_sensor.py

Sensorun üstündən dalğalansanız, "Daxil olan aşkarlandı" mesajlarını görməlisiniz, əks halda "Daxil olan yoxdur" olacaq. Bu skript sınandıqda və işləyərkən onu açılışdan başlayacaq şəkildə qurun:

sudo nano ~/.config/lxsession/LXDE-pi/autostart

və aşağıdakı sətri əlavə edin

@sudo/usr/bin/python /home/pi/motion_sensor.py

Əlbəttə ki, yaratdığınız Python skriptinin düzgün fayl adını göstərməlisiniz.

Addım 5: Təqvimi asın

Hər şey hazır olduqda, təqvimi divara asmağın vaxtı gəldi!

Əvvəlcə Raspberry Pi -ni LCD ekranın arxasında gizlətməyi düşünürdüm ki, yalnız bir kabelə (DC gücü) ehtiyac olsun. Ancaq Raspberry 5V və LCD ekran 12V ilə işlədiyi üçün əlavə transformatora ehtiyacım olacaq. Ayrıca, Moruq çantası olduqca qalındır, yəni LCD divardan təxminən 3 santimetr aralıda olacaq. Mən bunu tərk etdim və yalnız LCD elektronikasını LCD arxasında qoydum ki, indi divardan 1 santimetrdən az məsafədə olsun. İki ədəd 5 metr uzunluğunda bir kabel aldım, biri HDMI və biri 5, 5 mm DC enerji təchizatı üçün. Hər iki kabel də divar kimi ağ rəngdədir, yəni çox fərqlənmirlər. LCD -ni divara taxdım və qarşıdakı divardakı soyuducunun üstünə Moruq qoydum, buna görə də gizlidir, amma yenə də asanlıqla əldə edilə bilər.

Tövsiyə: