Mündəricat:

Pumpkin Pi Trick-or-Treat Tracker: 5 addım
Pumpkin Pi Trick-or-Treat Tracker: 5 addım

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 addım

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 addım
Video: TRiCK or TREAT inside our HOUSE!! Halloween Doors with Mom & Dad! DIY neighborhood costumes routine 2024, Iyul
Anonim
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker

Müəllif tərəfindən daha çox izlənilir:

Bir Raspberry Pi İstilik Monitorunu necə qurmaq olar
Bir Raspberry Pi İstilik Monitorunu necə qurmaq olar
Bir Raspberry Pi İstilik Monitorunu necə qurmaq olar
Bir Raspberry Pi İstilik Monitorunu necə qurmaq olar
Google Cədvəllərindən Tablosuna məlumat axını
Google Cədvəllərindən Tablosuna məlumat axını
Google Cədvəllərindən Tablosuna məlumat axını
Google Cədvəllərindən Tablosuna məlumat axını
İstilik Sensorları Şəbəkəsi
İstilik Sensorları Şəbəkəsi
İstilik Sensorları Şəbəkəsi
İstilik Sensorları Şəbəkəsi

Birdən çox şəkildə faydalı olan sürətli bir Halloween layihəsi axtarırsınız? Pi Zero WH -ni yaxşı istifadə etmək istəyirsiniz? Gələn il nə qədər konfetə ehtiyacınız olduğunu təyin etmək üçün məlumatlardan istifadə etmək istərdinizmi?

Pumpkin Pi Trick-or-Treat Tracker qurmağa hazır olun! Dekorasiya və insan izləyicisi olaraq ikiqat olan bu Pi-in-a-Balqabaq, hərəkət aşkar edildikdə rəngini və axınlarını dəyişir. Mütləq sıfırdan başlayaraq, bu layihə bir araya gətirmək üçün günortadan artıq çəkməməlidir - Halloween zamanı!

Təchizat

  • SD Kartlı Pi Zero WH
  • PIR Hərəkət Sensoru
  • RGB LED
  • 220 ohm rezistorlar
  • (3) Bağlama xətləri (F/F, M/F, M/M)
  • Portativ Batareya
  • Saxta Balqabaq

Addım 1: Avadanlıq Montajı

Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı

Pi -ni işə saldıqdan sonra hərəkət sensoru və LED -ləri bağlamalıyıq. Pi -nin bu anda gücə bağlı olmadığından əmin olun.

Hərəkət sensorumuz onu 3.3V gücə, yerə və bir məlumat pininə bağlamağımızı tələb edir. 3.3V sensor pinini Pi -nin 1 -ci pininə, Torpaq sensoru pinini Pi -nin 6 -cı pininə və Məlumat sensoru pinini Pi -nin 16 -cı pininə bağladım. İlk şəkil Pi və hərəkət sensoru üçün tam əlaqəni göstərir.

LED -lər hərəkət sensorundan bir qədər çətindir, çünki onlara və ya Pi -yə zərər vermədən düzgün işləməsi üçün bir rezistor tələb olunur. Üç 220 ohm rezistor istifadə etdim, amma 220 və 330 ohm rezistorlar ümumiyyətlə LED -lərlə istifadə olunur.

Hər şeyi bağlamaq üçün aşağıdakıları edə bilərsiniz:

  • LED ayaqlarını rezistorlara lehimləyin və sonra telləri Pi -yə keçirin
  • Hər şeyi birləşdirmək üçün bir çörək taxtası və bağlama xətləri istifadə edin
  • Hər şeyi bağlamaq üçün bağlama xətləri və elektrik lentindən istifadə edin (mənim etdiyim kimi).

LEDimizi 11, 13 və 15 sancaqlarına bağlayacağıq. Bu, hərəkət sensöründən bir qədər çətindir, çünki LED -in ayaqları müəyyən bir rəngə uyğundur! Uzun ayaq GND; və ən azından LED -də ayaqlarım Qırmızı, GND, Mavi, Yaşıl oldu. Göyü Pi pin 11 -ə, Yaşıl Pi pin 13 -ə, Qırmızı isə Pi pin 15 -ə bağladım. İkinci şəkil son dövrə bağlantılarını göstərir.

Addım 2: İlkin vəziyyət

İlkin vəziyyət
İlkin vəziyyət
İlkin vəziyyət
İlkin vəziyyət

Əlbəttə ki, LED ilə hərəkət aşkar edildiyini görə bilərik, amma konfetimizi oğurlamaq üçün düşmüş neçə hiyləgərin necə olduğunu necə izləyəcəyik?

Hər dəfə hərəkət başlayanda və aşkarlanmağı dayandıranda tablosuna axın edəcəyik. Bu tablosuna internet bağlantısı olan hər yerdən daxil olmaq mümkün olduğundan, kiminsə ön qapıya/konfet qabına yaxınlaşıb -yaxınlaşmadığını uzaqdan izləyə bilərik.

Addım 1: İlkin Dövlət Hesabına Qeydiyyat https://iot.app.initialstate.com saytına daxil olun və yeni bir hesab yaradın.

Addım 2: ISStreamer qurun

Baş Dövlət Python modulunu Raspberry Pi -yə quraşdırın. Əmr əmrində (əvvəlcə Pi -yə SSH yazmağı unutmayın) aşağıdakı əmri işlədin:

$ cd/ev/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Addım 3: Bir az Automagic olun

Addım 2 -dən sonra ekranda aşağıdakı çıxışa bənzər bir şey görəcəksiniz:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Şifrə: ISStreamer Python Asan Quraşdırmaya Başlayırıq! Bu bir neçə dəqiqə çəkə bilər, bir az qəhvə götürün:) Ancaq geri dönməyi unutmayın, sonra suallarım olacaq! Easy_install tapıldı: setuptools 1.1.6 Tapılan pip: /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip 1.5.6 pip əsas versiyası: 1 pip kiçik versiya: 5 ISStreamer tapıldı, yenilənir … Tələblər artıq yenidir: ISStreamer /Library/Python/2.7/site-packages-də Təmizlənir … Avtomatik olaraq nümunə bir skript əldə etmək istəyirsiniz? [y/N] Nümunəni harada saxlamaq istəyirsiniz? [default:./is_example.py] Zəhmət olmasa istifadə etdiyiniz İlkin Dövlət tətbiqini seçin: 1. app.initialstate.com 2. [YENİ!] iot.app.initialstate.com Seçim 1 və ya 2 daxil edin: iot.app daxil edin.initialstate.com istifadəçi adı: iot.app.initialstate.com parolunu daxil edin:

Bir nümunə skriptini avtomatik olaraq almaq istədikdə y yazın. Bu, məlumatları Başlanğıc vəziyyətə ötürə biləcəyimizi təmin etmək üçün işləyə biləcəyimiz bir sınaq skriptini yaradacaq. Növbəti əmr nümunə faylını harada saxlamaq istədiyinizi soruşacaq. Varsayılan yeri qəbul etmək üçün xüsusi bir yerli yol yaza və ya enter düyməsini vura bilərsiniz. Nəhayət, istifadə edəcəyiniz Başlanğıc Dövlət tətbiqindən soruşulacaq. Bu yaxınlarda bir hesab yaratmısınızsa, 2 -ci seçimi seçin, istifadəçi adınızı və şifrənizi daxil edin. Bundan sonra quraşdırma tamamlanacaq.

Addım 4: Giriş düymələri

Yaradılmış nümunə skriptə nəzər salaq. $ nano is_example.py 15 -ci sətirdə, streamer = Streamer (bucket_… ilə başlayan bir xətt görəcəksiniz. Bu sətirlər "Python Stream Example" adlı yeni bir məlumat paketi yaradır və hesabınızla əlaqələndirilir. eyni sətirdə access_key =”…” parametri. Bu uzun məktub və rəqəmlər, İlkin Dövlət hesabınıza giriş açarınızdır. Veb brauzerinizdə Başlanğıc Vəziyyət hesabınıza daxil olsanız, sağ üstdəki istifadəçi adınızı vurun və sonra gedin "Ayarlarım" a daxil olsanız, eyni giriş açarını səhifənin altındakı "Axın Giriş Açarları" altında tapa bilərsiniz.

Hər dəfə bir məlumat axını yaratdığınız zaman, bu giriş açarı həmin məlumat axını hesabınıza yönləndirəcək (buna görə açarınızı heç kimlə paylaşmayın).

Addım 5: Nümunəni işə salın

Başlanğıc Vəziyyət hesabınıza məlumat axını yarada biləcəyimizdən əmin olmaq üçün test skriptini işə salın. Aşağıdakıları işə salın:

$ python is_example.py

Addım 6: Mənfəət

Veb brauzerinizdə İlkin Dövlət hesabınıza qayıdın. Günlük rafınızda solda "Python Stream Örneği" adlı yeni bir məlumat paketi görünməli idi (səhifəni yeniləməyiniz lazım ola bilər). Test məlumatlarını görmək üçün bu kovanı və sonra Dalğalar simgesini vurun.

Addım 3: Python Script

Bir skript yaradın və mətn redaktorunu aşağıdakı əmrlə açın:

nano vistors.py

Kodu buradan mətn redaktoruna kopyalayın və yapışdırın.

Hər hansı bir işə başlamazdan əvvəl bir neçə düzəliş etməli və ssenarimizdə baş verənləri nəzərdən keçirməliyik.

GPO olaraq RPi. GPIO idxal edin

ISStreamer -dən yuxu idxalı. Streamer idxalı Streamer # Pi -yə deyin ki, GPIO.setmode (GPIO. BCM) nömrələmə sistemindən istifadə edəcəyik # D1 və LED -in PIN ilə bağlı olduğu pinlər = 23 MAVİ = 17 YEŞİL = 27 QIRMIZI = 22 # Hərəkət sensoru pinimizi giriş GPIO.setup (PIN, GPIO. IN) olaraq təyin edin # LED pinlərimizi GPIO.setup (QIRMIZI, GPIO. OUT) GPIO.çıxış (QIRMIZI, 0) GPIO.setup (GREEN) olaraq göstərin, GPIO. OUT) GPIO.output (GREEN, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO.output (BLUE, 0)

1-21-ci sətirlər başlanğıc üçündür. Əvvəlcə Pi -nin GPIO interfeysini və skriptimizi yatdırmağın yolunu idxal edirik. Sonra əvvəlki səhifədə quraşdırdığımız Başlanğıc Vəziyyət axınını idxal edirik.

GPIO.setmode, pinlər üçün hansı nömrələmə sistemindən istifadə etdiyimizi təyin edir. Fiziki yerdən çox Pi nömrələmə sistemindən istifadə edirik. Əvvəlki diaqramda olduğu kimi, seçdiyimiz sancaqlar 23, 17, 27 və 22 idi. Daha sonra hərəkət pinini giriş, LED pinlərini isə çıxış olaraq təyin edirik.

# İlkin Vəziyyət paketi adı (göstərilir)

BUCKET_NAME = ": jack_o_lantern: Tracker və ya Tracker'ı Davala" # Başlanğıc Vəziyyət düyməsi (gizli) BUCKET_KEY = "trickortreat" # Başlanğıc Vəziyyət giriş açarı ACCESS_KEY = "Sizin_Access_Key" # Olmadığını və ya olmamasını təmin etməyimizi təmin edən dəyişənlər. ardıcıl iki dəfə hərəkət # Bu, göndərilən hadisələrə və işləmə gücünə qənaət edir artıqRecordedMotion = False artıqRecordedNoMotion = Yanlış sayğac = 0 # Başlanğıc Vəziyyəti Başlatın axıncı = Axınçı (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) LED sarı GPIO.output (QIRMIZI, 1) GPIO.output (GREEN, 1)

23-41-ci sətirlər vacibdir, çünki Başlanğıc Vəziyyəti başlatırıq və LED-i sarıya qoyuruq. Başlanğıc vəziyyətinə giriş açarınızı 28 sətirinə qoyun.

# Müddətsiz döngə

Doğru olarkən: # Hərəkət sensoru yuxarı çəkərsə (hərəkəti algılarsa): GPIO.input (PIN) == 1: print "Hərəkət aşkarlandı" # Hələ axın etməmişiksə: hələ deyilsəRecordedMotion: counter = counter + 1 # LED -i qırmızı GPIO.output (QIRMIZI, 1) GPIO.output (YAŞIL, 0) # Stream to Initial State streamer.log (": hayalet: ya: şokolad_bar:?", ": şokolad_bar: Müalicə Vaxtı!") streamer.log (": konfet: Aç İnsanlar?: Şirniyyat:", sayğac) streamer.flush () nowRecordedMotion = True allaqachonRecordedNoMotion = Yanlış başqa: # 1 saniyəlik yuxu üçün skripti dayandırın (1) başqa: çap edin "Heç bir hərəkət aşkarlanmadı" # Hələ axın etməmişiksə: hələ deyilsəRecordedNoMotion: # LED -i sarı GPIO.output (QIRMIZI, 1) GPIO.output (YEŞİL, 1) # Stream to Initial State streamer.log (": ghost: or:ocolate_bar:? ",": no_pedestrians: Around No One ") streamer.flush () nowRecordedNoMotion = True allaqachonRecordedMotion = False else: # 1 saniyəlik yuxu üçün skripti dayandırın (1)

43-77-ci sətirlər kodun ətidir. Hərəkət aşkar edilərsə, skript "Müalicə Vaxtı!" artıq yayımlanıb. Əks təqdirdə, Başlanğıc vəziyyətinə göndərilir və LED qırmızıya çevrilir; varsa, skript 1 saniyə gözləyir və sonra hərəkət sensorundan yenidən oxuyur. Eyni hərəkət heç bir hərəkət aşkar edilmədikdə də keçərlidir.

Kodu sınamağın vaxtı gəldi! Düzəliş edilmiş faylınızı 28 -ci sətirdə giriş açarınızla saxladığınızdan əmin olun və sonra terminala daxil olun:

python ziyarətçiləri.py

LEDin yandığını və "Hərəkət aşkarlanmadığını" əmr satırına çap etməyə başladığını görməlisiniz. Əlinizi hərəkət sensoru üzərində yelləməyə çalışın - indi qırmızı işıq görməlisiniz və "Hərəkət aşkarlandı" çap etməyə başlayır!

İndi oxularımızın Başlanğıc Dövlətə axın edildiyini yoxlamaq üçün.

Addım 4: Hiylə və ya müalicə tablosuna keçin

Hiylə və ya müalicə paneli
Hiylə və ya müalicə paneli

Başlanğıc vəziyyətinə keçin və tablosuna baxın! "? Trick or Treat Tracker" adlı bir vedrə görməlisiniz. Əlinizi hərəkət sensoru yaxınlığında yelləyin və yeniləməsini seyr edin!

Göstərici lövhəm, son dəyəri və hadisə sayının histogramını əks etdirən 2 Xülasə Faylından ibarətdir, beləliklə sensorun nə vaxt işə salındığını görə bilərəm.

Burada nəzərə alınması lazım olan bəzi şeylər var:

  • Yəqin ki, eyni adamın hərəkət sensoru qarşısında iki dəfə - qapınıza gedərkən və geri dönərkən keçəcəyini nəzərə alaraq "Ac İnsanlar" sayını 2 -yə bölmək istəyirsiniz. Bunu "= math.round (([Ac İnsanlar?]/2), 0)") tənliyini istifadə edərək Real Zamanlı İfadələrlə edə bilərsiniz.
  • Hərəkət sensörünüzün nə qədər həssas göründüyünü yoxlaya və buna uyğun olaraq səkiyə yerləşdirə bilərsiniz. Qapıdan kiminsə qapıda dayandığı zaman işə düşməyəcək qədər uzaqda saxlamağı təklif edirəm.
  • Birinin yaxınlaşdığını söyləmək üçün mətn xəbərdarlıqları da qura bilərsiniz.
  • Tablosuna bir az ürkütücü bir şəxsiyyət vermək üçün bir fon şəkli seçin!

Tövsiyə: