- Bluetooth İletişimi için Gerekli Paketleri Yükleme:
- Bluetooth üzerinden Raspberry Pi ile Cihazları Eşleştirme:
- Devre şeması:
- Android Uygulaması BlueTerm ile LED'i Kontrol Etme:
- Programlama Açıklaması:
Raspberry Pi, internet üzerinden kesintisiz kablosuz iletişim yeteneği nedeniyle IoT projeleri için çok popülerdir. Raspberry Pi 3 dahili Wi-Fi ve Bluetooth'a sahiptir ve Bluetooth çok popüler bir kablosuz iletişim Protokolüdür. Bu yüzden bugün, Bluetooth kullanarak bir Android uygulaması aracılığıyla Raspberry Pi GPIO Pinini Kontrol edeceğiz.
Burada dahili Bluetooth'a sahip olmayan Raspberry 2 Pi Model B'yi kullanıyoruz, bu yüzden basit bir USB Bluetooth dongle kullanıyoruz. Bunun dışında GPIO kontrolünü göstermek için sadece bir dirence (220R) ve bir LED'e ihtiyacımız var. Burada kablosuz iletişim için RFCOMM Bluetooth protokolünü kullanıyoruz.
Python'da Bluetooth için programlama, soket programlama modelini takip eder ve Bluetooth cihazları arasındaki iletişim RFCOMM soketi aracılığıyla yapılır. RFCOMM (Radyo Frekansı İletişimi), benzetilmiş RS-232 seri bağlantı noktaları sağlayan ve Seri Bağlantı Noktası Emülasyonu olarak da adlandırılan bir Bluetooth Protokolüdür. Bluetooth seri bağlantı noktası profili bu protokole dayanmaktadır. RFCOMM, geniş desteği ve halka açık API'si nedeniyle Bluetooth uygulamalarında çok popülerdir. L2CAP protokolüne bağlıdır.
Bir önceki projemizde de Bluetooth modülü HC-06 kullandık: Raspberry Pi kullanan ses kontrollü LED'ler. Ayrıca, bazı iyi IoT Projeleri ile birlikte önceki Raspberry Pi Projelerimizi de kontrol edin.
Bluetooth İletişimi için Gerekli Paketleri Yükleme:
Başlamadan önce, Raspberry Pi'de Bluetooth iletişimini kurmak için bazı yazılımlar yüklememiz gerekiyor. Raspberry Pi ile birlikte Raspbian Jessie yüklü bir hafıza kartına sahip olmalısınız. Raspbian OS'yi yüklemek ve Raspberry Pi'yi kullanmaya başlamak için bu makaleye bakın. Bu yüzden şimdi aşağıdaki komutları kullanarak Raspbian'ı güncellememiz gerekiyor:
sudo apt-get update sudo apt-get yükseltme
O zaman Bluetooth ile ilgili birkaç paket kurmamız gerekiyor:
sudo apt-get bluetooth blueman bluez yükle
Ardından Raspberry Pi'yi yeniden başlatın:
sudo yeniden başlatma
BlueZ açık kaynaklı bir proje ve resmi Linux Bluetooth protokol yığınıdır. Tüm temel Bluetooth protokollerini destekler ve artık resmi Linux Kernel'in bir parçası haline gelir.
Blueman, Bluetooth cihazlarını yönetmek ve kontrol etmek için Masaüstü arayüzü sağlar.
Son olarak, Python dilini kullanarak RFCOMM aracılığıyla veri gönderip alabilmemiz için Bluetooth iletişimi için python Kitaplığına ihtiyacımız var:
sudo apt-get install python-bluetooth
Ayrıca Raspberry Pi için GPIO destek kitaplıklarını yükleyin:
sudo apt-get install python-rpi.gpio
Artık Raspberry Pi'de Bluetooth iletişimi için gerekli paketlerin kurulumunu tamamladık.
Bluetooth üzerinden Raspberry Pi ile Cihazları Eşleştirme:
Raspberry Pi ile cep telefonu gibi Bluetooth Cihazlarını eşleştirmek çok kolaydır. Burada Android Smart telefonumuzu Raspberry Pi ile eşleştirdik. Bluetooth cihazlarımızı yönetmek için "bluetoothctl" adlı bir komut satırı yardımcı programı sağlayan BlueZ'yi Pi'ye daha önce kurmuştuk. Ancak bundan önce, USB Bluetooth dongle'ınızı Raspberry Pi ile bağlayın ve aşağıdaki komutu kullanarak algılanıp algılanmadığını kontrol edin:
lsusb
Şimdi bluetoothctl yardımcı programını aşağıdaki komutla açın:
sudo bluetoothctl
'Help' yazarak bluetoothctl yardımcı programının tüm komutlarını kontrol edebilirsiniz. Şimdilik aşağıdaki komutları verilen sırayla girmemiz gerekiyor:
# power on # ajan açık # keşfedilebilir # eşleştirilebilir # tarama açık
Son "tara" komutundan sonra, listede Bluetooth cihazınızı (Cep telefonu) göreceksiniz. Cep telefonunuzda Bluetooth'un açık olduğundan ve yakındaki cihazlar tarafından görülebilir olduğundan emin olun. Ardından cihazınızın MAC adresini kopyalayın ve verilen komutu kullanarak eşleştirin:
çift
Ardından, Terminal konsolunuzda Parola veya Pin girmeniz istenir, ardından parolayı buraya yazın ve enter tuşuna basın. Ardından, istendiğinde cep telefonunuza aynı parolayı yazın ve artık Raspberry Pi ile başarıyla eşleştirildiniz. Tüm bu süreci sonunda verdiğimiz videomuzda da anlattık.
Daha önce de belirtildiği gibi, Cep telefonunu eşleştirmek için Masaüstü arayüzünü de kullanabilirsiniz. Blueman'ı kurduktan sonra, Raspberry Pi masaüstünüzün sağ tarafında aşağıda gösterildiği gibi eşleştirmeyi kolayca yapabileceğiniz bir Bluetooth simgesi göreceksiniz.
Devre şeması:
Devre şeması çok basit, sadece bir LED'i 220 Ohm'luk bir dirençle Raspberry Pi'nin PIN 40'ına (GPIO 21) bağladık:
Android Uygulaması BlueTerm ile LED'i Kontrol Etme:
Şimdi Cep Telefonunu eşleştirdikten sonra, Bluetooth Seri Adaptörü kullanarak Raspberry Pi ile iletişim kurmak için bir Android Uygulaması yüklememiz gerekiyor. Daha önce de belirtildiği gibi, RFCOMM / SPP protokolü Bluetooth üzerinden seri iletişimi taklit eder, bu yüzden burada bu protokolü destekleyen BlueTerm Uygulamasını yükledik.
Ayrıca, RFCOMM soketi aracılığıyla iletişimi destekleyen diğer herhangi bir Bluetooth Terminal Uygulamasını da kullanabilirsiniz.
Şimdi BlueTerm Uygulamasını indirip kurduktan sonra , aşağıda verilen Python Programını terminalden çalıştırın ve eşleştirilmiş raspberrypi cihazını aynı anda BlueTerm Uygulamasından bağlayın.
Başarılı bağlantıdan sonra, aşağıda gösterildiği gibi Uygulamanın sağ üst köşesinde bağlandı: raspberrypi göreceksiniz:
Şimdi, sırasıyla GPIO pinini YÜKSEK ve DÜŞÜK yapmak için BlueTerm uygulamasından '1' veya '0' girebilirsiniz, bu da bu pime bağlı LED'i AÇIK ve KAPALI konuma getirir. Programdan çıkmak için 'q' tuşuna basın. Sen olabilir Google Sesle Yazma Klavye kullanmak için Ses kullanarak GPIO kontrol etmek. Sonunda verilen videodaki tüm demoyu kontrol edin.
Bluetooth üzerinden bir Android Uygulaması kullanarak GPIO Pinini kablosuz olarak bu şekilde kontrol edebilirsiniz. Ayrıca Bluetooth'un Arduino ile nasıl kullanılacağını da kontrol edin.
Programlama Açıklaması:
Android Uygulaması ile Raspberry Pi GPIO'yu Kontrol Etmek İçin Python Programı çok basit ve açıklayıcıdır. Sadece Bluetooth RFCOMM iletişimiyle ilgili kod hakkında biraz bilgi edinmemiz gerekiyor. Öncelikle Bluetooth'u Python diliyle kontrol etmemizi sağlayan Bluetooth soket kitaplığını içe aktarmamız gerekiyor; kütüphaneyi bir önceki bölümde aynı şekilde kurduk.
Bluetooth'u içe aktar
Bluetooth iletişiminden sorumlu kod aşağıdadır:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, adres = server_socket.accept () print "Bağlantı kabul edildi", adres 1: data = client_socket.recv (1024)
Burada onları satır satır anlayabiliriz:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Bluetooth RFCOMM iletişimi için soket oluşturma.
server_socket.bind (("", bağlantı noktası): - Sunucu, ana bilgisayar üzerindeki komut dosyasını bağlantı noktasına '' bağlar.
server_socket.listen (1) : Sunucu, her seferinde bir bağlantıyı kabul etmeyi dinler.
client_socket, address = server_socket.accept () : Sunucu, istemcinin bağlantı isteğini kabul eder ve mac adresini değişken adresine atar , client_socket , istemcinin soketidir
data = client_socket.recv (1024): Client_socket istemci soketi aracılığıyla veri alır ve onu değişken verilere atar. Bir seferde maksimum 1024 karakter alınabilir.
Son olarak, tüm programlamadan sonra, aşağıdaki kodu kullanarak istemci ve sunucu bağlantısını kapatın:
client_socket.close () server_socket.close ()
Diğer tüm kodlar kolay ve açıklayıcıdır. Aşağıdaki kodun tamamını kontrol edin. Bu projeyi değiştirmeye çalışın ve diğer birçok şeyi kablosuz olarak kontrol etmek için kullanabilirsiniz, örneğin Röleleri kullanarak ev aletlerini kontrol edebilir veya bir Robot arabayı android telefon üzerinden kontrol edebilirsiniz.