İlan
Bu hızlı ve kolay Raspberry Pi projesinde nasıl bir Gmail e-posta bildirim ışığı oluşturacağınızı öğreneceksiniz. Okunmamış e-postalarınız varsa, bir Python betiği LED'i açar. Bu proje çok az parça gerektiriyor ve bir saatten kısa sürede tamamlanabilir! Elbette LED'inizi MineCraft redstone bloğu veya şeffaf plastikle basılmış başka bir nesne 3D gibi istediğiniz gibi giydirebilirsiniz. Sonuç:
Neye ihtiyacın var
- 1 x Ahududu Pi
- 1 x breadboard
- 1 x 220 ohm direnç
- 1 x 5mm LED
- 1 x Gmail hesabı
- Erkek-dişi kanca telleri
Herhangi bir Raspberry Pi bu proje için çalışacaktır - Pi Zero bile! Yalnızca bir GPIO pinine ihtiyaç vardır ve özellikle CPU yoğun değildir. Eğer bir Pi başlangıç kiti bunu tamamlamak için fazlasıyla yeterli parçanız var.
Yapı Planı
Bu gerçekten basit bir proje. Pi üzerindeki bir GPIO (Genel Amaçlı Giriş Çıkışı) Pimine bir Işık Yayan Diyot (LED) bağlanır. Çok basit Python betiği okunmamış e-postaları kontrol etmek ve LED'i uygun şekilde açmak veya kapatmak için düzenli olarak çalışır.
Donanım
LED'in pozitif anodunu (uzun bacak) dirence ve ardından GPIO pin 14'e bağlayın. Herhangi bir GPIO pinini kullanabilirsiniz, ancak Pin yapısı Birincisi, modeller arasında biraz farklılık gösterdiğinden. Negatif katodu (düz kenarlı kısa bacak) toprağa bağlayın.
Pi Kurulumu
Pi'nize bir işletim sistemi (OS) yüklendiğinde, çok fazla kurulum gerekmez (neye ihtiyacınız olduğundan emin değil misiniz?) Nasıl yükleyeceğinizi buradan öğrenin Raspberry Pi'ye İşletim Sistemi Nasıl YüklenirRaspberry Pi'nize nasıl bir işletim sistemi yükleyeceğiniz ve hızlı olağanüstü durum kurtarma için mükemmel kurulumunuzu nasıl kopyalayacağınız aşağıda açıklanmıştır. Daha fazla oku ). Yeni bir terminal açın (Sol üst > Menü > Aksesuarlar > terminal) Pi üzerinde kodlama ninjası yapmak için kısayollar Bu 20 Kısayol ile Linux Terminalinde Zaman Kazanınİster bir terminal acemi olun, ister uzun zaman önce korkuyu aşan biri olun, burada komut satırının garipliğinin bazılarını aşmanıza yardımcı olabilecek 20 kısayol var. Daha fazla oku ). Python komut dosyasını saklamak için yeni bir klasör oluşturmanız gerekir. Aşağıdaki komutu girin:
pwd
Bu, “Çalışma Dizini Yazdır” anlamına gelir ve hangi klasörde olduğunuzu gösterir (varsayılan olarak bu “/ home / pi” dir). Belgeler klasörüne gidin ve “gmail_python” adlı yeni bir dizin (klasör) oluşturun:
cd Belgeleri / sudo mkdir gmail_python
“Mkdir” komutu, “Dizin Oluştur” anlamına gelir. Bundan sonraki her şey dizin adı için kullanılacaktır. Artık dizininizi görebilmeniz gerekir:
ls
Bir hata yaptıysanız, bu dizini kolayca kaldırabilirsiniz:
sudo rm -r Instagram Hesabındaki Resim ve Videoları gmail_python
Şimdi yeni dizine gidin:
cd gmail_python /
Yeni bir Python betiği oluşturun:
sudo nano check_messages.py
Bu, komut dosyasını oluşturur ve içinde düzenlemeye hazır olarak açar Nano. Tabii ki başka bir program kullanabilirsiniz. gayret, bu tweet bununla ilgili duygularımı özetlese de:
Yaklaşık 2 yıldır Vim kullanıyorum, çünkü nasıl çıkacağımı anlayamıyorum.
- I Am Devloper (@iamdevloper) Instagram Profilini Görüntüle 17 Şubat 2014
Şaka bir yana, şuna bir bak ikisi arasında karşılaştırma nano vs. vim: Terminal Metin Düzenleyicileri KarşılaştırıldıLinux, neredeyse hiç kimsenin Terminal'i kullanmak zorunda kalmadan kullanması için yeterince kolay olmasına rağmen, düzenli olarak kullanan veya nasıl kontrol edebileceğini merak eden bazılarımız var ... Daha fazla oku tam bir arıza için.
Basın CTRL + X Nano'dan çıkmak ve terminale geri dönmek için.
Python Kurulumu
Pi kurulduğuna göre, şimdi kod yazma zamanı. Bu proje mükemmel gerektirir Gmail Python Kütüphanesi tarafından Charlie Guo. Github'dan kütüphaneyi indirin ve içindekileri çıkarın. İçeride “gmail” adında bir klasör olmalıdır. Bu klasörün tamamını “/ home / pi / Documents / gmail_python” klasörüne kopyalayın.
Komut satırına geri dönün ve komut dosyanızı tekrar açın (yukarı tuşuna basarsanız önceden girdiğiniz komutlar arasında gezinebilirsiniz):
sudo nano check_messages.py
Bunun dosyayı oluşturmak için kullandığınız komutun aynısı olduğuna dikkat edin - bir dosya zaten varsa açılacaktır, aksi takdirde oluşturulacaktır. İşte Python:
ithalat gmail, RPi. GPIO olarak GPIO, zaman # içe aktarma modülleri GPIO.setwarnings (Yanlış) GPIO.setmode (GPIO.BCM) # Pi'ye hangi başlıkları kullanacağını söyler. GPIO.setup (14, GPIO.OUT) # Pi'ye bu raptiyenin g = gmail.login ('[email protected] ',' ŞİFRENİZ ') bir çıkış olduğunu söyleyin unread_messages = g.inbox (). posta (okunmamış = Doğru) okunmamış_mesajlardaki mesaj için toplam_mesajlar = 0: toplam_mesajlar + = 1 toplam_mesajlar> 0: # okunmamış e-postalar varsa GPIO.output'u (14, Doğru) açın aksi: # okunmamış e-posta yok, GPIO'yu kapatın. çıkış (14, Yanlış)
Bunun çalışması için kullanıcı adınızı ve şifrenizi girmeniz gerekecektir. İsterseniz gmail eklentisinin tam kaynak kodunu görüntüleyebilirsiniz. Bunu yapmaktan çekinmiyorsanız (veya iki öğeli kimlik doğrulaması kullanıyorsanız) kullanarak Gmail'e bağlanmanız gerekir. OAuth2. Bu, bu öğretici için biraz dahil, ancak Google'ın mükemmel bir başlangıç kılavuzu.
Kodu parçalayalım. İlk olarak bazı modüller içe aktarılır. Python'daki modüller, bir amaç için yazılan küçük kod parçalarıdır (Arduino IDE'deki kütüphanelere benzer). RPI'nin. GPIO, GPIO'ya erişmek için Pi'ye özgü bir modüldür, gmail daha önce indirdiğiniz modüldür ve zaman, zamanlama işlevleri sağlamak için Python'da yerleşik bir modüldür. Pi'ye pim 14'ün bir çıkış olduğunu ve “Broadcom Pim Numaralandırma” yı kullanmak istediğinizi söylemek için “GPIO.setmode” ve “GPIO.setup” kullanılırBCM hakkında daha fazla bilgi).
Bu hat, gmail hesabınıza bağlanır. “G” adlı bir nesne oluşturur ve daha önce içe aktarılan gmail modülünün oturum açma yöntemini çağırır. Gmail e-postanızı ve şifrenizi girmeyi unutmayın.
g = gmail.login ('[email protected] ',' ŞİFRENİZ ')
Şimdi tüm okunmamış mesajları alın ve “okunmamış mesajlar” adlı bir değişkende saklayın:
unread_messages = g.inbox (). posta (okunmamış = Doğru)
“Unread = True” nun parametre olarak nasıl iletildiğine dikkat edin - bunu, gönderen veya konu gibi farklı parametrelere göre almak için değiştirebilirsiniz. Kontrol et Uygulama Programlama Arabirimi (API) belgeleri daha fazla bilgi için.
Ardından, her iletinin üzerinde döngü oluşturmak için bir for döngüsü kullanılır:
okunmamış_mesajlardaki mesajlar için: total_messages + = 1
Döngüler için çok faydalıdır. Bir kod bloğunu birkaç kez tekrarlarlar, genellikle her seferinde biraz farklı bir değerle. Döngü için bu, okunmamış_mesajlardaki her iletiyi geçer ve “toplam_mesajlar” değişkenini artırır.
Son olarak, bazı basit “if” ifadeleri kullanılır. Okunmamış mesajlar varsa, LED'i açın, aksi halde kapatın.
Python'un büyük / küçük harfe duyarlı olduğunu ve beyaz boşluk kullandığını unutmayın. Kodun çalıştırılmasını sağlama konusunda sorun yaşıyorsanız, bu web sitesi. Python'unuzu yapıştırın ve “python kodunun üzerinde doğrula” düğmesine basın. Bu daha sonra Python'unuzda (varsa) hataların mevcut olduğunu söylemelidir.
Terminal'e geçin ve betiğinizi çalıştırın:
python check_messages.py
Bu komut komut dosyanızı çalıştıracaktır. Okunmamış durumunuzdaki bazı e-postaları manuel olarak okunmamış duruma getirmeyi ve komut dosyasını tekrar çalıştırmayı deneyin - gelen kutunuzu yansıtmak için LED'in açıldığını veya kapandığını görmelisiniz.
Cron Kurulumu
Komut dosyası çalıştığına göre artık otomatikleştirme zamanı. Bunu yapmanın en kolay yolu bir cron işidir. Cron işleri, otomatik yedeklemeler gibi görevleri ve komut dosyalarını zamanlamak için kullanılır. Crontab'ı açın (zamanlanmış görevlerin listesi):
crontab -e
Önceden ayarlanmış zamanlanmış görev yoksa, bu dosya boş olacaktır (öncesinde bir "#" bulunan belge veya yorumlar içerebilir). Burada zaten girişleriniz varsa, yeni komutunuzu yeni bir satıra girmeniz yeterlidir:
* * * * * python ~ / pi / Belgeler / gmail_python / check_messages.py
Beş “yıldız” (“* * * * *”) görevin ne sıklıkta yapılacağını belirtir (burada gerçekten süslü olabilirsiniz, örneğin her Çarşamba saat 2.00'de). Bu beş yıldız, görevin her dakika çalıştırılması gerektiğini belirtir. Bu izin verilen en küçük aralıktır (hakkında daha fazla bilgi edinin cronjob zamanlama Cron ve Crontab ile Linux'ta Görevleri ZamanlamaGörevleri otomatikleştirme yeteneği, zaten burada bulunan fütüristik teknolojilerden biridir. Her Linux kullanıcısı, kullanımı kolay bir arka plan hizmeti olan cron sayesinde zamanlama sistemi ve kullanıcı görevlerinden yararlanabilir. Daha fazla oku ). Sonra, “python” zamanlayıcıya komut dosyasını bir python dosyası olarak yürütmesini söyler. Son olarak, “~ / pi / Documents / gmail_python / check_messages.py” betiğinizin mutlak dosya yoludur - göreceli bir yol çalışmaz.
Artık kendi Gmail bildirim ışığınız olmalı! Farklı bir gereksinime veya filtreye dayanan iletileri aramak için bunu değiştirmek oldukça basit olacaktır (filtreleri nasıl kullanacağınızı buradan öğrenebilirsiniz Gmail Filtreleriyle Çözebileceğiniz 10 E-posta SorunuSizi deli eden taşan bir gelen kutusu mu? Gelen kutunuzdan hiç olmadığı kadar hızlı gitmek ister misiniz? Farkı görmek için bu parlak Gmail filtrelerinden bazılarını deneyin. Daha fazla oku ) veya farklı bir kod parçası yürütebilirsiniz - belki de e-postalara dayalı tweet'leri oluşturan bir Twitter botu oluşturabilirsiniz (Pi Twitter botu oluşturma hakkında daha fazla bilgi edinin Raspberry Pi Twitter Bot Nasıl YapılırTwitter, söyleyecek bir şeyi olmayan insanlardan gelen kısa mesajların dünyanın en büyük deposu - ve şimdi sizler tarafından desteklenen otomatik bir Twitter bot ile bu destansı projeye katkıda bulunabilirsiniz. Ahududu... Daha fazla oku ).
Sonuç olarak bildirim kutunuzu kodlarsanız, yorumlarda nasıl gittiğini bilmek isterim!
Joe, İngiltere Lincoln Üniversitesi Bilgisayar Bilimi mezunudur. Profesyonel bir yazılım geliştiricisidir ve uçağı uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video üretirken bulunabilir.