Ahududu Pi Gmail Bildirim Işık olun

  • Mark Lucas
  • 0
  • 3871
  • 665
reklâm

Bu hızlı ve kolay Raspberry Pi projesinde, bir Gmail e-posta bildiriminin nasıl aydınlatılacağını öğreneceksiniz. Okunmamış e-postalarınız varsa, bir Python betiği LED'i açar. Bu proje çok az parça gerektirir ve bir saatten daha kısa sürede tamamlanabilir! Elbette LED'inizi, MineCraft redstone bloğu veya şeffaf plastikten basılmış diğer 3D nesneler gibi istediğiniz şekilde giydirebilirsiniz. İşte 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ı
  • Dişi kanca

Herhangi bir Ahududu Pi bu proje için çalışacak - Pi Zero bile! Yalnızca bir GPIO pin gereklidir ve özellikle CPU yoğun değildir. Pi başlangıç ​​kitiniz varsa, bunu tamamlamak için yeterli parçadan daha fazlasına sahipsiniz..

Plan Oluştur


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 bir Python betiği, okunmamış e-postaları kontrol etmek ve LED'i buna göre açmak veya kapatmak için düzenli olarak çalışacaktır..

Donanım


LED'in pozitif anotunu (uzun bacak) dirençe ve ardından GPIO pimine 14 bağlayın. Herhangi bir GPIO pimini kullanabilirsiniz, ancak ilk önce pinout'a bakın, çünkü modeller arasında hafifçe değişir. Negatif katodu (düz kenarlı kısa bacak) toprağa bağlayın.

Pi Kurulumu


Pi'nizde bir işletim sistemi (OS) kuruluysa, çok fazla kurulum gerekmez (neye ihtiyacınız olduğundan emin değil misiniz? Bir tane nasıl yükleneceğini öğrenin. Ahududu Pi'ye Bir İşletim Sistemi Nasıl Kurulur? Bir Ahududu Üzerine Bir İşletim Sistemi Nasıl Kurulur? Pi İşte Ahududu Pi'nizde bir işletim sistemi kurmanın ve hızlı felaket kurtarma için mükemmel kurulumunuzu nasıl klonlayacağınız.). Yeni bir terminal aç (Sol üst > Menü > Aksesuarlar > terminal) Pi (bu 20 kısayol ile Linux Terminalinde Zaman Kazanın - bu 20 Kısayol ile Linux Terminalinde Zaman Kazanın - Bu 20 Kısayol ile Linux Terminalinde Zaman Kazanın! , işte bazı komut satırının beceriksizliğinin üstesinden gelmenize yardımcı olacak 20 kısayol var. Python betiğini saklamak için yeni bir klasör oluşturmanız gerekir. Follow komutunu girin:

pwd

Bu anlamına gelir “Çalışma Dizini Yazdır”, ve hangi klasörde olduğunu gösterecek (varsayılan olarak bu “/ Home / pi”). Belgeler klasörüne gidin ve adı verilen yeni bir dizin (klasör) oluşturun. “gmail_python”:

cd Belgeler / sudo mkdir gmail_python

“mkdir” komut anlamına gelir “Dizin oluştur”. Bundan sonra gelenler dizin ismi için kullanılacaktır. Şimdi dizininizi görebilmeniz gerekir:

ls

Bir hata yaptıysanız, bu dizini kolayca kaldırabilirsiniz:

sudo rm -r gmail_python

Şimdi yeni dizine gidin:

cd gmail_python /

Yeni bir Python betiği oluşturun:

sudo nano Instagram Hesabındaki Resim ve Videoları check_messages.py

Bu komut dosyasını oluşturacak ve Nano'da düzenlemeye hazır hale getirecektir. Elbette Vim gibi başka bir program kullanabilirsiniz, ancak bu tweet bunun hakkındaki duygularımı özetler:

Yaklaşık 2 yıldır Vim'i kullanıyorum, çünkü çoğunlukla nasıl çıkacağımı bulamıyorum..

- I Devloper (@iamdevloper) 17 Şubat 2014

Şaka bir yana, iki nano ve vim arasındaki bu karşılaştırmayı inceleyin: Terminal Metin Düzenleyicileri Karşılaştırıldı nano ve vim: Terminal Metin Düzenleyicileri Karşılaştırıldı Linux, Terminal'i kullanmak zorunda kalmadan pratik olarak herkesin kullanması için yeterince kolay hale gelmiş olmasına rağmen, bazı düzenli olarak kullanan ya da nasıl kontrol edebileceğimizi merak eden bir kişi….

Basın CTRL + X Nano'dan çıkmak ve terminale geri dönmek için.

Python Kurulumu


Şimdi Pi ayarlandı, kodu yazma zamanı geldi. Bu proje, Charlie Guo'nun mükemmel Gmail Python Kütüphanesi'ni gerektirir. Kütüphaneyi Github'dan indirin ve içeriğini çıkarın. İçinde denilen bir klasör olmalı “gmail”. Bu klasörün tamamına kopyala “/ Home / pi / Belgeler / gmail_python”.

Komut satırına geri dönün ve komut dosyanızı tekrar açın (yukarı tuşuna basarsanız daha önce girdiğiniz komutlar arasında gezinebilirsiniz):

sudo nano Instagram Hesabındaki Resim ve Videoları check_messages.py

Bunun, dosyayı oluşturmak için kullandığınız komutun nasıl olduğuna dikkat edin - eğer bir dosya zaten varsa, açılacaktır, aksi takdirde yaratılacaktır. İşte Python:

GPI, GPI olarak RPI.GPIO, zaman # import modülleri GPIO.setwarnings (Yanlış) GPIO.setmode (GPIO.BCM) #, Pi 'ye hangi başlıkların kullanılacağını söyleyin (14, GPIO.OUT) # pin bir çıktı g = gmail.login ('[email protected] ',' SİZİN ŞİFRE ') unread_messages = g.inbox (). mail (unread = True) total_messages = unread_messages içindeki mesaj için 0 total_messages> 0: # okunmamış e-postalar var, GPIO.output (14, True) ışığını aç: başka okunmamış e-postalar yok, GPIO.output'u kapat (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 yapmakta kendinizi rahat hissetmiyorsanız (veya iki faktörlü kimlik doğrulaması kullanıyorsanız) OAuth2 kullanarak Gmail’e bağlanmanız gerekir. Bu, bu eğitim için biraz ilgili, ancak Google'ın mükemmel bir başlangıç ​​kılavuzu var..

Kodu çözelim. İlk önce bazı modüller ithal edilir. Python'daki modüller, bir amaç için yazılmış küçük kod parçalarıdır (Arduino IDE'deki kütüphanelere benzer). RPi.GPIO, GPIO'ya erişmek için Pi'ye özel bir modül, gmail daha önce indirdiğiniz modüldür ve zamanlama işlevleri sağlamak için zaman Python'a yerleşik bir modüldür. şimdi “GPIO.setmode” ve “GPIO.setup” Pi’ye pin 14’ün bir çıktı olduğunu ve kullanmak istediğinizi “Broadcom Pin Numarası” (BCM hakkında daha fazla bilgi).

Bu hat, gmail hesabınıza bağlanır. Adı verilen bir nesne oluşturur. “g”, ve daha önce içe aktarılan gmail modülünün giriş yöntemini çağırır. Gmail e-posta adresinizi ve şifrenizi girmeyi unutmayın.

g = gmail.login ('[email protected] ',' SİZİN ŞİFRE ')

Şimdi tüm okunmamış mesajları al ve onları bir değişkende sakla “okunmamış mesajlar”:

unread_messages = g.inbox (). mail (okunmamış = Gerçek)

Nasıl olduğunu fark et “okunmamış = Doğru” parametre olarak iletilir - bunu, gönderen veya konu gibi farklı parametrelere dayalı mesajları almak için değiştirebilirsiniz. Daha fazla bilgi için Uygulama Programlama Arabirimi (API) belgelerine bakın..

Daha sonra, her mesajın üzerinde bir for döngüsü kullanılır:

unread_messages içindeki mesaj için: total_messages + = 1

Çünkü döngüler çok kullanışlıdır. Bir kod bloğunu birkaç kez tekrarlarlar, genellikle her seferinde biraz farklı bir değere sahiptirler. Bu for döngüsü unread_messages içindeki her iletinin üzerinden geçer ve “TOTAL_MESSAGES” değişken.

Sonunda, bazı basit “Eğer” ifadeler kullanılır. Okunmamış mesajlar varsa, LED'i açın, aksi takdirde kapalı.

Python'un büyük / küçük harfe duyarlı olduğunu ve beyaz boşluk kullandığını unutmayın. Kodun çalıştırılmasıyla ilgili sorun yaşıyorsanız, bu web sitesini deneyin. Python'unuzu yapıştırın ve tuşuna basın. “python kodunu doğrula” buton. Bu daha sonra Python'unuzda (varsa) hataların olduğunu size söylemelidir..

Terminal'e geçin ve betiğinizi çalıştırın:

python Instagram Hesabındaki Resim ve Videoları check_messages.py

Bu komut, komut dosyanızı çalıştırır. Okunmamış durumundaki e-postaları el ile değiştirmeyi deneyin ve komut dosyasını yeniden çalıştırın; gelen kutunuzu yansıtacak şekilde LED'in yandığını veya kapandığını görmelisiniz..

Cron Kurulumu

Şimdi senaryo çalışıyor ve onu otomatikleştirme zamanı geldi. Bunu yapmanın en kolay yolu bir cron işi. Cron işleri, otomatik yedekleme gibi görevleri ve komut dosyalarını zamanlamak için kullanılır. Crontab'ı açın (zamanlanmış görevlerin listesi):

crontab -e

Önceden ayarlanmış bir zamanlanmış görev yoksa, bu dosya boş olacaktır (bundan önce bir dokümantasyon veya yorum içerebilir. “#”). Buraya zaten girdileriniz varsa, yeni komutunuzu yeni bir satıra girmeniz yeterlidir:

* * * * * python ~ / pi / Belgeler / gmail_python / check_messages.py

Beş “yıldızlar” (“* * * * *”) Görevin ne sıklıkta çalıştırılacağını belirtin (burada gerçekten, örneğin her Çarşamba saat 2: 00'de bir fantezi). 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 (cronjob zamanlaması hakkında daha fazla bilgi edinin Cron ve Crontab ile Linux'ta Görevlerin Zamanlanması Nasıl Cron ve Crontab ile Linux'ta Görevlerin Zamanlanması Görevlerin otomatikleştirilebilmesi, burada bulunan fütüristik teknolojilerden biridir. kullanıcı, kullanımı kolay bir arka plan hizmeti olan cron sayesinde programlama ve kullanıcı görevlerinden faydalanabilir.). Sonraki, “piton” programlayıcıya betiği python dosyası olarak çalıştırmasını söyler. En sonunda, “~ / Pi / Belgeler / gmail_python / check_messages.py” betiğinize mutlak dosya yoludur - göreceli bir yol çalışmaz.

Şimdi kendi Gmail bildirim ışığına sahip olmalısın! Farklı bir gereksinime veya filtreye dayalı mesajları aramak için bunu değiştirmek oldukça basit olurdu (burada filtreleri nasıl kullanacağınızı öğrenin. 10 Gmail Filtreleri ile Çözebileceğiniz E-posta Sorunları 10 Gmail Filtreleri ile Çözebileceğiniz E-posta Sorunları - Gelen kutunuzda hiç olmadığı kadar hızlı bir şekilde çalışmak ister misiniz? Farkı görmek için bu harika Gmail filtrelerinin bazılarını deneyin.) Veya farklı bir kod parçası yürütün - belki de e-postalara dayalı tweets yapan bir Twitter botu oluşturabilirsiniz (hakkında daha fazla bilgi edinin. Bir Pi Twitter botu inşa etmek Ahududu Pi Twitter Bot Nasıl Yapılır? Bir Ahududu Pi Oluşturmak Twitter Bot Twitter, söylenecek hiçbir şeyi olmayan kişilerden gelen dünyanın en büyük kısa mesaj deposu - ve şimdi de otomatik olarak bu epik projeye katkıda bulunabilirsiniz. Twitter bot, Ahududu tarafından desteklenmektedir ...).

Ancak bildirim kutucuğunuzu kodlarsanız, yorumlarda nasıl göründüğünü bilmek isterim!




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.