Anasayfa » nasıl » Ahududu Pi ile bir LED Göstergesi oluşturun (E-posta, Hava Durumu veya Herhangi Bir Şey için)

    Ahududu Pi ile bir LED Göstergesi oluşturun (E-posta, Hava Durumu veya Herhangi Bir Şey için)

    Raspberry Pi, her türlü proje-hava durumu bildirimi, yeni e-posta vb. İçin gösterge ışığı eklemek için hoş bir kompakt platform oluşturur. Pi'nize bir LED modülünü nasıl bağlayacağınızı ve bazı temel bildirimleri nasıl ayarlayacağınızı gösterirken okumaya devam edin..

    Neden Bunu Yapmak İstiyorum??

    Çünkü eğlenceli. Projeden elde edeceğiniz faydayı ana hatlarıyla anlatan en üstte biraz bulanıklaştırdığımız bazı eğitmenlerin aksine, bu durumda bulanıklaştırma oldukça kısadır çünkü fayda sadece eğlenmektir..

    Ahududu Pi ile oynamak, elektronik ile denemek ve bazı programlama öğrenmek için mükemmel bir cihazdır. Kimse ihtiyaçlar mutfağında bir ortam yağmur göstergesi, örneğin bir bina inşa etmek eğlenceli bir egzersiz ve potansiyel fırtına günlerinde yanınızda şemsiyenizi getirmek için harika bir hatırlatmadır.

    Neye ihtiyacım var?

    Öğreticiyi takip etmek için birkaç şeye ihtiyacınız var. Öncelikle, önceki dersimizi takip ettiğinizi varsayıyoruz: Ahududu Pi ile Başlamak için HTG Kılavuzu (ve böylece Raspberry Pi’ye Rasbian’ı kurmak için gereken temel bilgilere sahip).

    Bu projeyi bir bütçeyle yapmak istiyorsanız, size en yeni model Raspberry Pi'nin iş için önemli bir sorumluluk olduğunu söyleyebiliriz ve attığınız eski bir Ahududu Pi'sindeki tozu atmanızı teşvik ederiz. Dolapta veya ucuz bir kullanılmış eBay veya benzeri kapalı almak. Bütçe, bir dişin içinde kalan bir Ahududu Pi 1 Model A veya Model B, eBay'i 10-15 dolara taktığında, bu proje için 35 dolarlık yeni nesil Pi satın almak için mükemmel bir seçimdir..

    Üzerine Raspbian yüklü bir Pi ünitesi olmasına ek olarak, aşağıdakilere ihtiyacınız olacaktır:

    • 1 LedBorg modülü (İngiltere’den ABD’ye 4 $ 'lık kargo bedeli ile $ 5.00.
    • 1 Clear Raspberry Pi Kılıfı Kendi Pi modelinizle uyumludur bu Ahududu Pi 1 Model B çantası.

    Not: Şeffaf / buzlu Pi kılıfı tamamen isteğe bağlıdır ancak şu anda opak bir kılıf kullanıyorsanız, LED göstergenizin içine gizlenecektir. LedBorg'u Raspberry Pi'nize bağlamak için, lambayı kesmek için bir delik açmanız veya Adafruit Industries'den koparma kiti gibi bir GPIO uzatma kablosunu kullanmanız gerekir. Koparma kablosu kullanıldığında, projenin masrafına yaklaşık 8 ABD doları eklenirken, LED'i eşyaların içine veya aydınlatmak istediğiniz bir şeyin altına daha kolay yerleştirebileceğiniz şekilde son ürünü özelleştirmek için daha fazla potansiyel sunar.

    LedBorg'u Kurma

    Kendinizi tamamen sıfırdan bir LED göstergesi oluşturabilseniz de (ve bir arama motoru sorgusu bunu yapan pek çok insanı yakalayacaktır) Piborg organizasyonu, bu kadar kompakt ve ucuz bir LED modülü, LedBorg üretti. Ahududu Pi LED gösterge projemiz için temel olarak kullanmaya karşı koyma.

    Modülün kurulumu, Pi'deki GPIO pinlerine doğrudan oturması için tasarlandığı gibi kolaydır. İlk önce Pi'nizi kapatın ve davayı açın.

    Kurulum işleminin en önemli kısmı, modülü LedBorg simgesinin Raspberry Pi kartındaki RCA modülüne en yakın olacak şekilde yönlendirmesidir (ve böylece LedBorg'un kenarı, çıkıntı ile Pi kartının kenarlarıyla aynı hizadadır) LedBorg'un bir kısmı Pi tahtasının üzerine sarkıyor ve kenarlarından değil). Yukarıdaki fotoğrafa bakın.

    Pi kartı açıkken, özellikle açık bir kasa kullanıyorsanız, yerleşik LED göstergelerini (USB bağlantı noktalarının yanında) gizlemek için mükemmel bir zaman olabilir. LedBorg göstergenizi okumak için kafa karıştırıcı olmasını istemezsiniz, çünkü güç ve ağ gösterge ışıkları çok parlaktır.

    Bizi beyaz bir elektrik bandı tabakasıyla kapattık. Bu, onları hala karara bağlayabilmemiz için yeterince küçümsüyordu ama LedBorg'dan çok daha kısıktılar, artık rahatsız edici değildi..

    LedBorg'u kurduktan ve isteğe bağlı olarak Pi'nin LED göstergelerini elektrik bandıyla kapattıktan sonra, kasayı geri kapatma zamanı geldi. Eğitimin bir sonraki aşamasına geçmeden önce Pi'nizi başlatın.

    LedBorg Yazılımını Kurmak

    PiBorg, LedBorg için hem bir GUI kontrolörü hem de LedBorg'a komut satırından erişmek için sürücüleri içeren harika bir yazılım paketi sunar..

    Başlamadan önce Rasbian sürümünüz ve Raspberry Pi anakartınızın revizyon numarası için doğru paketi aldığınızdan emin olmalısınız..

    Raspberry Pi tahtanızın montaj deliği yoksa, Revizyon 1'dir. Raspberry Pi'nizde montaj delikleri varsa (USB portlarında ve güç ve HDMI portu arasında bulunur), Revizyon 2'dir. Ayrıca, çekirdek versiyonunu da bilmeniz gerekir. Rasbian kurulumunuzdan. Terminali açın ve kontrol etmek için aşağıdaki komutu girin:

    uname -r

    Revizyon numarasına ve çekirdek numarasına sahip olduğunuzda, paketinizin bağlantısını almak için buradaki Paketler bölümünü ziyaret edebilirsiniz. Bizim durumumuzda 3.6.11 çekirdeğine sahip bir Revizyon 1 kartı kullanıyoruz, böylece raspbian-2013-02-09-rev1.zip dosyasını alacağız.

    Tüm yiyecekleri yerleştirmek için Pi'deki terminali açmamız gerekiyor. ve sonra LedBorg paketini kurmak için aşağıdaki komutları girin..

    Not: Üçüncü komuttaki URL'yi pano / çekirdek kombinasyonunuz için paketin URL’siyle değiştirmeniz gerekir..

    mkdir ~ / ledborg-setup
    cd ~ / ledborg kurulumu
    wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
    setup.zip dosyasını açın
    chmod + x install.sh
    ./install.sh

    Bu noktada, şimdi LedBorg sürücüleri ve yüklenen sürücüler için GUI sarmalayıcısı var. Raspbian masaüstünüzde GUI sarmalayıcısı için bir simge göreceksiniz:

    GUI sarmalayıcısını başlatmak için devam edin ve LedBorg simgesine tıklayın. Renk seçme arayüzüne şu şekilde davranacaksınız:

    Modülünüzün çalışır durumda olduğundan emin olmanın tam zamanı. Denemek için herhangi bir rengi seçin, siyah için tasarruf edin. Birkaç renk seçerek test edeceğiz:

    İyi görünüyor! Parlak ve proje için sipariş ettiğimiz kasanın buzlu plastiği orta düzeyde yayılma sunuyor. Devam etmeden önce LED modülüyle daha fazla oynamak istiyorsanız, Demo Modu'nu tıklayın:

    Demo modunda, çeşitli renklerdeki tüm renkler arasında geçiş yapabilir, yüksek / düşük çıkışı kontrol edebilir ve aksi halde LED modülünü adımlara yerleştirebilirsiniz.

    Demo Modu bölümünde, LedBorg'unuzu birçok göstergenin ilkine dönüştürebilirsiniz. Renkler bölümünde CPU seçildiğinde, Raspberry Pi'nin ARM işlemcisindeki yükü belirtmek için LED yeşilden sarıya kırmızıya dönmeye başlayacaktır. Bulunduğunuz sırada Hızı Yavaş olarak değiştirmenizi öneririz-Hızlı LED'i çok hızlı günceller ve CPU göstergesinin kullanışlı olmak yerine dikkatini dağıtmasını sağlar.

    Renkleri seçmek için GUI arayüzünü kullanmaya ek olarak, RGB değerlerini kullanarak terminalden renk seçebilirsiniz. Terminali açın ve LED'i kapatmak için aşağıdaki komutu girin:

    yankı "000"> / dev / ledborg

    LedBorg'un RGB değerlerini işleme şekli, 0'ın kanal kapalı olduğu, 1 kanalın yarı güç olduğu ve 2 kanalın tam güç olduğu anlamına gelir. Örneğin 001, Kırmızı kanalı% 0'a, Yeşil kanalı% 0'a ve Mavi kanalı% 50'ye ayarlar..

    Değeri 002 olarak değiştirin ve LED çıkışı mavi kalır ancak daha parlak hale gelir çünkü Mavi kanal şimdi% 100 çıkıştadır. Eflatun renk elde etmek için değeri tam güçte birleştirirken 202 ve Kırmızı ve Mavi değerlerini değiştirin..

    Artık LED'i manuel olarak nasıl kullanacağımızı öğrendiğimize göre, LED'imizi basit bir ışıktan gerçek bir göstergeye dönüştürmek için komut dosyalarını kullanmaya bakalım..

    LedBorg'unuzu Yağmur Göstergesi Olarak Yapılandırma

    Eğitimin bu kısmı için LedBorg LED modülümüzü, bulunduğumuz yerin hava tahminlerine dayanarak yağmur göstergesine dönüştürmek için birkaç şeyi bir araya getireceğiz. Sırasıyla o gün için yağmur yağma ihtimalini okuyacak bir hava durumu API'sini çağırmak için bir Python komut dosyası kullanacağız ve ardından tahmini yağmuru göstermek için LED'i kapalı maviden parlak maviye geçireceğiz.

    İlk önce, Weather Underground için bir API erişim anahtarı edinmemiz gerekiyor. Kişisel kullanım ve küçük gelişim projeleri için API ücretsizdir. Buradaki Hava Durumu API'si kayıt sayfasını ziyaret edin ve bir API anahtarı için kaydolun.

    API anahtarınızı aldıktan sonra, Weather Underground'ı ziyaret edin ve izlemek istediğiniz şehri arayın. Bizim durumumuzda, San Fransisco, CA'yı izleyeceğiz. San Fransisco'nun tahmin sayfası için URL:

    http://www.wunderground.com/US/CA/San_Francisco.html

    Amaçlarımız için önemli olan kısım URL’nin son kısmıdır: /CA/San_Francisco.html. Bunu, API aracının öngörme URL’sini düzenlemek için kullanacağız. Temel URL:

    http://api.wunderground.com/api/YOUR API KEY / tahmin / q / DEVLET / ŞEHİR.json

    Hava Durumu Yeraltı arama sonuçlarınızdan çektiğiniz URL’den API anahtarınızı, iki harfli durum kodunu ve şehir adını girerek herhangi bir ABD şehri için tahmin oluşturabilirsiniz..

    API anahtarınız ve eyalet / şehir ekli bir API URL'niz varsa, Pi'nizde Leafpad'i kullanarak ve aşağıdaki kodu yapıştırarak yeni bir metin belgesi oluşturarak aşağıdaki Python komut dosyasını düzenleyebilirsiniz:

    urllib2'den ithal urlopen
    json ithal

    Req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / tahmin / q / STATE / CITY.json')
    parsed_json = json.load (req)
    pop = int (parsed_json ['tahmini'] ['txt_forecast'] ['tahmin günü'] [0] ['pop'])

    # Aşağıdaki bir hata ayıklama değeridir.
    # Karma ve düzenleyin
    # test edilecek 0-100 arasındaki tamsayı
    # LED yanıtı.

    # pop = 0

    print 'Şu anki yağış olasılığı .'. format (pop)

    # Varsayılan ayar LED'i açmaktır.
    #% 20'nin üzerinde bir yağmur ihtimali için. Ayarlayabilirsiniz
    # "if pop> 20:" içindeki değer istediğiniz gibi.

    eğer pop> 20:
    LedBorg = açık ('/ dev / ledborg', 'w')
    LedBorg.write ( '002')
    Del LedBorg
    yazdır ('Rain!')
    Başka:
    LedBorg = açık ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    Del LedBorg
    yazdır ('Yağmur yok!')

    Dosyayı / home / pi / dizinine wunderground.py adıyla kaydedin. Terminali açın ve aşağıdaki komutu yazın:

    python wunderground.py

    API anahtarınızı ve eyalet / şehir kodlarınızı doğru girmişseniz, şuna benzeyen bir yanıtı geri alması gerekir:

    Eğer bölgeniz için yağış tahmin ediliyorsa, LedBorg çıktınız şöyle görünmelidir:

    Şimdi yağmurlu bir gün için senaryoyu düzgün şekilde test etmek için beklemek sıkıcı olurdu. Bugün bölgenizde yağmur yağma olasılığı yoksa ve LED ışığının yandığını görmek istiyorsanız, wunderground.py betiğini düzenleyin ve 13. satırdaki “pop = pop” geçiş değerini 60 gibi 20 değerinden büyük bir değerle değiştirin bizim tahminimiz geri döndü. İşiniz bittiğinde satırı tekrar “pop = pop” olarak değiştirmeyi unutmayın.

    Son adım, LED göstergesini güncel tutmak için az önce kaydettiğimiz betiği otomatik olarak çalıştırmak için bir cron işi ayarlamaktır. Bu görev hem bu komut dosyası hem de izleyen e-posta göstergesi için gerekli olduğundan, diğer komut dosyasını nasıl ayarlayacağınızı gösterdikten sonra bir cron işi ayarlayacağız.

    LedBorg'unuzu Gmail Göstergesi Olarak Yapılandırma

    Gelen kutusundaki yeni e-postayı görmekle gelen dopamin düzeltmesini kim sevmiyor? Eğitimin bu bölümünde LedBorg'u yeni bir Gmail göstergesi olarak nasıl kullanacağınızı göstereceğiz. Tıpkı geçen seferki gibi, LED'lerimizi sürmek için harici bir girişi (bu durumda API yerine Atom beslemesi) ve basit bir betiği birleştireceğiz..

    Bir Python RSS / Atom feed okuma aracı olan FeedParser'ı yükleyerek Python kurulumumuzun işlevselliğini biraz arttırmamız gerekiyor. Terminali açın ve aşağıdaki komutu girin:

    sudo easy_install feedparser

    Kurulum tamamlandıktan sonra Gmail kontrol komut dosyamızı oluşturmaya çalışabiliriz. Yine, Leafpad'i kullanarak, aşağıdaki metni editöre yapıştırın. Kontrol etmek istediğiniz Gmail hesabının kullanıcı adı ve şifresiyle eşleşmesi için kullanıcı adını ve şifreyi değiştirin..

    feedparser'ı içe aktar

    # Gmail kullanıcı adınızı girin
    # ve şifre. Dahil etme
    # @ gmail.com kısmı
    # Kullanıcı adınızı.

    username = "kullanıcı adı"
    şifre = "şifre"

    mail = int (feedparser.parse ("https: //" + kullanıcı adı + ":" + parola + "@ @ mail.google.com/gmail/feed/atom")PL"feed" EUROPLEX"fullcount"])

    # Aşağıdaki bir hata ayıklama değeridir.
    # Karma ve düzenleyin
    # sınamak için 0 veya 1 olan tam sayı
    # LED yanıtı.

    # mail = 0

    eğer posta> 0:
    LedBorg = açık ('/ dev / ledborg', 'w')
    LedBorg.write ( '020')
    Del LedBorg
    Yazdır ('Mail!')
    Başka:
    LedBorg = açık ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    Del LedBorg
    yazdır ('Posta yok!')

    Komut dosyasını gmailcheck.py olarak kaydedin. Terminali açın ve aşağıdaki komutu yazın:

    python gmailcheck.py

    Gmail gelen kutunuzda oturan bir e-postanız varsa, LED yeşile döner ve şöyle bir yanıt alırsınız:

    Gmail gelen kutunuzda posta varsa, LedBorg'unuz şöyle görünecektir:

    Tıpkı yağmur kontrol senaryosunda olduğu gibi, bir hata ayıklama değeri ekledik. Yeni bir e-postanız yoksa, gelen kutunuzu 1'e yükseltmek için kendinize bir e-posta gönderebilir ya da yorum karmasını düzenleyebilir ve komut dosyasını test etmek için hata ayıklama satırını “mail = 1” olarak değiştirebilirsiniz. Testi tamamladığınızda çizgiyi geri almayı unutmayın.

    Gmail komut dosyanızı bir zamanlamaya göre çalışacak şekilde ayarlamak için eğitimin bir sonraki bölümüne geçin.

    Komut Dosyanızı Çalıştırmak için Bir Cron İşi Ayarlama

    Şimdi oynayacağımız iki senaryo var ve LED göstergesinin güncel kalması için gün boyunca çalıştırılması için bir cron işi oluşturmamız gerekiyor..

    Yapmak istediğimiz ilk şey, önceki deneylerimizde şu anda açıksa, LED'i kapatmak. Terminal tipinde:

    yankı "000"> / dev / ledborg

    Hala komut satırında iken, cron editörünü açabilirsiniz. Daha önce hiç cron işi yapmamışsanız, burada kullanma kılavuzumuza göz atmanızı şiddetle tavsiye ederiz. Bununla birlikte, burada temel bir program hazırlayarak size rehberlik edeceğiz.

    Terminal tipinde:

    sudo crontab -e

    Bu Raspbian cron tablosunu Nano metin editöründe açacaktır. Aşağıya doğru kaydırmak için ok tuşlarını kullanın. Python komut dosyalarımız için tekrarlayan cron işini kuracağımız yer burasıdır.

    Yağmur betiğini ayarlamak istiyorsanız, cron tablosuna şu satırı girin:

    * / 5 * * * * python / home / pi / wunderground.py

    Çıkmak için CTRL + X tuşlarına basın; mevcut cron tablosunu kaydedip üzerine yazmak için, evet'i seçin. “* / 5 * * * *” cron tablosuna girdiğimiz değer, komut dosyasını her 5 dakikada bir, sonsuza dek çalışacak şekilde ayarlar.

    Her 5 dakikada bir, tahmin edilen yağmuru kontrol eden bir senaryo için iyi bir zaman aralığıdır - bunun biraz da agresif olduğunu iddia edebilirsiniz - ancak e-postanızın üstesinden gelmeye çalışıyorsanız, bildirim için biraz uzun bir süre . Gmail bildirim komut dosyası için zamanlamayı ayarlıyorsanız, cron tablosuna aşağıdaki satırı girin:

    * / 1 * * * * python / home / pi / wunderground.py

    Bu giriş, çok daha hızlı bir güncelleme bildirimi için her dakika gmailcheck.py komut dosyasını çalıştırır.


    Hepsi bu kadar! İf / else ifadelerini bizden kaldırarak ve yepyeni değişkenlerle deneyerek kendi Python komut dosyalarınızı deneyebilirsiniz. Veriler için bir giriş kaynağı bulabilirseniz, Python script-borsa ortalamalarınızda değişkene dönüştürebilirsiniz, polen sayımları, Twitter'dan bahseder, bunun için bir API varsa ortam LED göstergesine dönüştürebilirsiniz..

    Sonunda, bu proje üzerinde çalışırken kullandığım tüm harika kaynaklara teşekkür etmek istiyorum. Aktif bir şekilde programlar yazdığımdan bu yana on yıldan biraz fazla zaman geçti ve toz ve pas atmak için birkaç darbeye ihtiyaç vardı. / R / LearnPython’a katkıda bulunanlar Weather Underground için API çıktısı almamı sağladı, Mitch Tech’in Michael’ın Gmail Atom beslemesiyle nasıl ilgilendiğini inceleyerek LedBorg’un ayrıştırmasını kolaylaştırdı ve Python öğrenme modüllerini Code Academy’de inceleyin. daha önce hiç kullanmadığım bir dilin temel sözdizimini ve yapısını almanın harika bir yolu.