- Gerekli malzemeler:
- Devre şeması:
- Ahududu Python Programı:
- Raspberry Pi ve Telegram bot ile LED'leri kontrol etme:
Telegram, tüm mobil kontrol amacımız için Raspberry Pi ile birleştirmek için en uygun uygulamadır. Çok iyi geliştirici desteğine sahip ve Telegram Botlarının performansını artırmak için yakında piyasaya sürülecek birçok özelliğe sahip. Önceki eğitimimizde ahududu pi için nasıl bir telgraf botu kurabileceğimizi ve onunla sohbet etmemiz ve görüntüleri, belgeleri ve Ses dosyalarını paylaşmamız gerektiğini öğrendik.
Şimdi, Telegram kullanarak Raspberry Pinlerindeki GPIO pinlerini nasıl kontrol edebileceğimizi öğrenerek bir sonraki adıma geçeceğiz, böylece botumuz için bazı donanım desteği sağlayacağız. Bu eğitimde, dört LED'i Raspberry Pi GPIO pinlerine bağlayacağız ve bunları Telegram'daki doğal dili (sohbet gibi) kullanarak değiştireceğiz. İlginç değil mi? Başlayalım.
Gerekli malzemeler:
- Dört LED (herhangi bir renk)
- Raspberry Pi (internet bağlantılı)
- Breadboard
- Bağlantı telleri
Ön Koşullar:
Öğreticiye devam etmeden önce Raspberry Pi'nizin internete bağlı olduğundan emin olun ve Pi'nizde python programları çalıştırabilirsiniz. Ayrıca Raspberry Pi Pi ile Telegram botunun nasıl kurulacağını öğrenmek için önceki öğreticiyi okuyun, çünkü projeye devam etmek için bu şeylere aşina olduğunuzu varsayacağım.
Raspberry Pi'de yeniyseniz, Raspberry Pi Giriş makalemizi ve diğer Raspberry Pi Öğreticilerimizi takip edin.
Devre şeması:
Raspberry Pi ve Telegram Android Uygulamasını kullanarak LED'leri Kontrol Etmek için Devre Şeması, dört LED ve bazı bağlantı kablolarından başka bir şey değildir. Raspberry Pi GPIO pinleri 3.3V TTL üzerinde çalıştığı için mevcut sınırlayıcı dirençlere ihtiyacımız olmayacak. Aşağıdaki devreyi takip edin ve LED'inizi bağlayın.
Aşağıdaki tablo, dört led bağlantısı için pin numarasını ve GPIO numarasını belirlemenize yardımcı olacaktır.
Led Terminal |
PIN numarası |
GPIO Numarası |
Yeşil Anot |
Toplu iğne 31 |
GPIO 6 |
Kırmızı Anot |
Toplu iğne 33 |
GPIO 13 |
Sarı Anot |
Toplu iğne 35 |
GPIO 19 |
Beyaz Anot |
Toplu iğne 37 |
GPIO 26 |
Dördünün de katot |
Toplu iğne 39 |
Zemin |
Aşağıda, yukarıda verilen Tabloya göre dört LED'in bağlandığı Devre şeması verilmiştir:
Bağlantılarınız bir kez, donanım kurulumunuz aşağıdaki gibi görünmelidir.
Ahududu Python Programı:
Donanım hazır olduğunda Python Programına geçebiliriz. Bu programda Telegram botundan gönderilen verileri (mesajı) okumalı ve buna göre LED'i değiştirmeliyiz. Daha doğal hale getirmek için, her bir cümleyi kontrol etmek ve bu cümleyi programımız içinde kodlamak yerine kelimeleri kontrol edip ona göre ilerleyebiliriz.
Böylece program öncelikle iki kelimeyi kontrol edecek, bunlar açık ve kapalı. Bu iki kelimeden birini algıladıktan sonra, beyaz, sarı, yeşil ve kırmızı gibi diğer anahtar kelimeleri arayacaktır . İlgili renk LED'i yalnızca kelime algılandığında değiştirilecektir. Ayrıca, tespit edilen kelimelerin telgraf botuna bir mesaj göndermesi için bir dizi güncelleyeceğiz.
Programın tamamı bu sayfanın altında bulunabilir; Hemen aşağıda programı küçük anlamlı hurdalara bölerek açıkladım.
Bu programın çalışması için, Raspberry Pi'mize indirilen ve içe aktarılan telepota ihtiyacımız var. Önceki eğitimimizde ışınlanmayı Raspberry Pi'mizin içine zaten indirmiştik, bu yüzden şimdi onu aşağıda gösterildiği gibi GPIO kitaplığı ile birlikte programımıza aktarmamız gerekiyor.
RPi.GPIO'yu GPIO olarak içe aktar telepot.loop'tan telepot içe aktar MessageLoop
Bu programı kullanarak led ışıkları kontrol edeceğiz ve ledlerin rengi Beyaz, Sarı, Kırmızı ve Yeşil olacaktır. Devre şemasında gösterilen pimlere bağlanırlar; Bize izin bu LED'ler için pim adlarını tanımlamak programdaki bunları kullanmak, böylece onların rengine göre.
beyaz = 26 sarı = 19 kırmızı = 13 yeşil = 6
Bir sonraki adım, tüm bu LED pinlerini çıkış pinleri olarak tanımlamak ve aşağıdaki satırları kullanarak bunları varsayılan olarak kapalı olarak tanımlamak olacaktır.
#LED Beyaz GPIO.setup (beyaz, GPIO.OUT) GPIO.output (beyaz, 0) #Off başlangıçta #LED Sarı GPIO.setup (sarı, GPIO.OUT) GPIO.output (sarı, 0) #Off başlangıçta #LED Kırmızı GPIO.setup (kırmızı, GPIO.OUT) GPIO.output (kırmızı, 0) #Off başlangıçta #LED yeşil GPIO.setup (yeşil, GPIO.OUT) GPIO.output (yeşil, 0) #Off başlangıçta
Önceki eğitimimizde öğrendiğimiz gibi, Raspberry bot tarafından yapılması gereken tüm eylemler, işlev eylemi içinde tanımlanacaktır. Burada botun mobilden gönderilen mesajı dinlemesini, bazı anahtar kelimelerle karşılaştırmasını ve buna göre LED'i değiştirmesini sağlamalıyız.
Cep telefonundan gönderdiğimiz her mesaj için bir sohbet kimliği ve komutu olacaktır. Bu sohbet kimliği, program tarafından gönderene yanıt vermek için gereklidir. Bu yüzden sohbet kimliğini ve mesajı aşağıda gösterildiği gibi kaydediyoruz.
chat_id = msg command = msg
Şimdi, telefondan gönderdiğimiz her şey, değişken komutunda dize olarak kaydedilecektir. Yani, tek yapmamız gereken bu değişkendeki anahtar kelimeleri kontrol etmek. Python'da işleri kolaylaştıran bir komut var. Örneğin, komut değişkeninde depolanan dizede “açık” sözcüğünün bulunup bulunmadığını kontrol etmemiz gerekirse, aşağıdaki satırı kullanabiliriz.
komutta 'açık' ise:
Benzer şekilde , tüm anahtar kelimeleri kontrol ederiz, bir "açık" aldığımızda, kullanıcının bahsettiği rengi kontrol etmeye devam ederiz. Bu aynı zamanda aynı anahtar kelimeleri karşılaştırarak aynı komutlarla yapılır. Ayrıca kullanıcıya durum mesajı olarak yanıtlanabilen mesaj adlı bir dizeyi de güncelliyoruz.
komutta 'açık' ise: mesaj = "açık" ise komutta: mesaj = mesaj + "beyaz" GPIO.output (beyaz, 1) komutta "sarı" ise: mesaj = mesaj + "sarı" GPIO.output (sarı, 1) komutta 'kırmızı' ise: mesaj = mesaj + "kırmızı" GPIO.output (kırmızı, 1) komutta 'yeşil' ise: mesaj = mesaj + "yeşil" GPIO.output (yeşil, 1) komutta 'tümü' ise: mesaj = mesaj + "tümü" GPIO.output (beyaz, 1) GPIO.output (sarı, 1) GPIO.output (kırmızı, 1) GPIO.output (yeşil, 1) mesaj = mesaj + "ışık (lar)" telegram_bot.sendMessage (chat_id, mesaj)
Yukarıda gösterildiği gibi, 'yeşil', 'beyaz', 'kırmızı', 'sarı' ve 'tümü' ve 'açık' gibi anahtar kelimeleri tek başına ararız. İş bittikten sonra kullanıcıya ne olduğu hakkında bir mesaj gönderiyoruz. Aynı yöntem ışıkları kapatmak için kullanılabilecek iyi kapatır.
komutta 'kapalı' ise: mesaj = "Kapalı" ise komutta "beyaz" ise: mesaj = mesaj + "beyaz" GPIO.output (beyaz, 0) komutta "sarı" ise: mesaj = mesaj + "sarı" GPIO.output (sarı, 0) komutta 'kırmızı' ise: mesaj = mesaj + "kırmızı" GPIO.output (kırmızı, 0) komutta 'yeşil' ise: mesaj = mesaj + "yeşil" GPIO.output (yeşil, 0) 'hepsi' komutta ise: mesaj = mesaj + "tümü" GPIO.output (beyaz, 0) GPIO.output (sarı, 0) GPIO.output (kırmızı, 0) GPIO.output (yeşil, 0) mesaj = mesaj + "ışık (lar)" telegram_bot.sendMessage (chat_id, mesaj)
Raspberry Pi ve Telegram bot ile LED'leri kontrol etme:
LED'lerinizi bağlayın ve programınızı python'da başlatın. Botunuzun Token adresini değiştirdiğinizden emin olun. Ve istediğiniz komutları yazmaya başlayın. Örneğin kırmızı ve sarı ışığı yakmak için aşağıdaki komutlardan herhangi birini kullanabilirsiniz.
1. Kırmızı ve Sarı Işığı Açın
2. Sağdaki Kırmızı ve Sarı rengi açın
3. Kırmızı ve sarıda
4.Please koymak üzerine sarı ve kırmızı ışıkta
Görebildiğiniz gibi, bot yalnızca Anahtar Kelimeleri arar ve Cümledeki diğer kelimeleri yok sayar, bu şekilde onunla doğal bir şekilde konuşabilirsiniz. Projenin tam çalışması bu sayfanın sonunda verilen videoda bulunabilir.
Devam et! projenizle oynayın ve eğlenin. Şimdi onu tamamen yeni bir seviyeye taşıyabilirsiniz. Her iki öğretici birleştirildiğinde, Akıllı telefonumuzdan dünyanın herhangi bir yerindeki herhangi bir donanımı kontrol etme gücüne sahibiz ve ayrıca Raspberry Pi'mizden mesaj, Ses, Görüntü ve hatta belge şeklinde girdi / sonuç alma gücüne sahibiz. LED'leri Röleler ve AC cihazlarla değiştirirseniz, Akıllı Telefon kontrollü Ev Otomasyonu olabilir. Öyleyse yaratıcılığınızı kullanın ve kendi harika projelerinizi oluşturun…
Umarım projeyi beğenmişsinizdir ve benzer bir şey yapmaktan zevk almışsınızdır. Yorum bölümünden herhangi bir sorununuz olursa bana bildirin, size yardımcı olmaktan memnuniyet duyarım. Ayrıca harika fikrinizi benimle paylaşın ve neler inşa edebileceğimize bir bakalım.