Bluetooth aracılığıyla Android Akıllı Telefonla İletişim Kurmak İçin ESP32 Nasıl Kurulur ve Programlanır

Bluetooth Araciligiyla Android Akilli Telefonla Iletisim Kurmak Icin Esp32 Nasil Kurulur Ve Programlanir



ESP32, çok çeşitli yeteneklere sahip bir mikro denetleyici kartıdır. Dahili Wi-Fi ve Bluetooth modüllerine sahiptir. Bu modüllerin her ikisini de kullanarak ESP32'yi kablosuz olarak programlayabilirsiniz. Bununla ESP32 çevre birimlerini kontrol etmek için uzun kablolu bağlantılar konusunda endişelenmenize gerek yok.

Bu yazımızda ESP32 kartını Android telefona bağlayıp Bluetooth üzerinden veri iletişimini gerçekleştireceğiz. Ayrıca, ESP32'nin GPIO pinlerine bağlı bir LED'i doğrudan Android akıllı telefon üzerinden kontrol edeceğiz.

İçindekiler:







ESP32 Bluetooth LE nedir?

ESP32, hem Bluetooth Classic'i hem de akıllı Bluetooth olarak da bilinen Bluetooth Low Energy'yi destekleyen bir mikro denetleyici kartıdır. BLE veya akıllı Bluetooth, enerji tasarruflu iletişime özeldir veya kısa mesafeli iletişim veya küçük veri aktarımları için tasarlanmıştır.



ESP32'nin BLE işlevi, Bluetooth iletişimlerinde sunucu veya istemci olarak hareket etmesini sağlar. Okuma ve yazma hizmetleri gibi görevleri yerine getirebilir. Ayrıca bağlantıları şifreleyebilir ve UART-BLE geçiş modunda veri iletimi için Seri Bağlantı Noktası Profili (SPP) bağlantıları kurabilir. ESP32 Bluetooth, 4.2 protokollerini destekler; bu, Fiziksel Katman (PHY) ve Bağlantı Katmanı (LL) gibi farklı katmanlarla uyumlu olduğu anlamına gelir. Ayrıca diğerlerinin yanı sıra Ana Bilgisayar Denetleyici Arayüzü (HCI) desteği de vardır.



ESP32 Classic ve BLE Bluetooth için fark tablosunu kontrol edin.





Özellik Klasik Bluetooth Düşük Enerjili Bluetooth (BLE)
İletişim Türü Sürekli, iki yönlü iletişim Aralıklı, öncelikli olarak tek yönlü veri patlamaları
Operasyonel Aralık 100 metreye kadar ulaşabilir Tipik olarak 100 metrenin altında çalışır
Güç Kullanımı 1 Watt'a kadar tüketir 10 miliwatt ile 500 miliwatt arasında değişir
Aktarım Hızı Veri aktarım hızları saniyede 1 ila 3 Megabit arasında değişir Saniyede 125 Kilobit'ten saniyede 2 Megabit'e kadar destekler
Tepki Süresi Gecikme yaklaşık 100 milisaniye 6 milisaniyelik gecikmeyle hızlı yanıt
Ses Desteği Ses iletimi ile donatılmıştır Ses aktarma işlevinden yoksun

Daha fazlasını öğrenmek için bu ESP32 Bluetooth makalelerine göz atın.

Android Akıllı Telefon ile Bluetooth Üzerinden İletişim Kurmak İçin ESP32 Nasıl Programlanır

ESP32'yi Bluetooth protokolünü kullanarak bir Android telefonla iletişim kurabilecek şekilde programlamak için ESP32 Bluetooth seri kitaplığını ayarlamanız gerekir. Bunun için ESP32 kartının kurulu olduğu bir Arduino IDE kurulumunuzun olması gerekir.



ESP32 Bluetooth'u ayarladıktan sonra Bluetooth seri Android uygulamasını yüklemeniz gerekir. Bu, Bluetooth Seri iletişimini kullanarak bir Android telefondan ESP32'ye talimat göndermenize olanak tanır.

Bu adımların her birine daha yakından bakalım:

ESP32 Bluetooth'u Android Telefona Bağlama Adımları

ESP32 kartını Bluetooth iletişimi için programlamak için aşağıdaki adımları izleyin:

Adım 1: ESP32 Kartını Arduino IDE'ye Takma

ESP32'yi Arduino IDE'ye kurmak için bu makalede verilen kılavuzu takip etmeniz yeterlidir.

ESP32 Kartını Arduino IDE'ye Takma

Kurulumdan sonra ESP32 kartı Arduino IDE kullanılarak bağlanabilir ve programlanabilir.

Adım 2: ESP32 Bluetooth Kodunu yükleyin

ESP32 kartı kurulduktan sonra Arduino IDE'de önceden kurulmuş farklı kütüphaneleri ve bunların örneklerini göreceksiniz. Tüm bu kütüphaneler ESP32 kartıyla ilgilidir. Bluetooth seri iletişimi için ESP32'yi kullanacağız. BluetoothSeri.h kütüphane örnek kodu.

Örnek kodu açmak için Arduino IDE'yi açın ve şuraya gidin: Dosya > Örnekler > BluetoothSerial > SerialtoSerialBT

Bu örnek kodu açmak için ESP32 kartının seçili olduğundan emin olun.

Örnek kodu açtıktan sonra Arduino IDE pencerenizde aşağıdaki kodu göreceksiniz:

//Linuxhint'e Hoş Geldiniz

#include 'BluetoothSerial.h'

//#define USE_PIN // Eşleştirme sırasında PIN istiyorsanız bu açıklamayı kaldırın
yapı karakter * toplu iğne = '1234' ; // Özel bir eşleştirme PIN'i tanımlayın

Dize cihaz_adı = 'ESP32' ;

#if !tanımlanmış(CONFIG_BT_ENABLED) || !tanımlanmış(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth etkin değil! Etkinleştirmek için make menuconfig'i çalıştırın
#endif

#if !tanımlandı(CONFIG_BT_SPP_ENABLED)
#error Seri Bluetooth eksik veya etkin değil. Yalnızca ESP32 çipi için mevcuttur.
#endif

BluetoothSeri SeriBT ;

geçersiz kurmak ( ) {
Seri. başlamak ( 115200 ) ;
Seri BT. başlamak ( cihaz adı ) ; //Bluetooth cihaz adı
Seri. baskı ( 'Cihaz ' % S ' Başladı. \N Cihazınızı eşleştirmeye başlayın! \N ' , cihaz adı. c_str ( ) ) ;
//Serial.printf('%s MAC adresine sahip '%s' aygıtı başlatıldı.\nBluetooth ile eşleştirmeye başlayın!\n', aygıt_adı.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
Seri BT. setPin ( toplu iğne ) ;
Seri. baskı ( 'PIN kullanılıyor' ) ;
#endif
}

geçersiz döngü ( ) {
eğer ( Seri. mevcut ( ) ) {
Seri BT. yazmak ( Seri. Okumak ( ) ) ;
}
eğer ( Seri BT. mevcut ( ) ) {
Seri. yazmak ( Seri BT. Okumak ( ) ) ;
}
gecikme ( yirmi ) ;
}

Kodu yükledikten sonra ekranda aşağıdaki mesajı göreceksiniz. Bu mesaj ESP32 kartınızın eşleştirmeye hazır olduğunu açıklar.

Adım 3: Kod Açıklaması

Kod, gerekli kitaplıkların eklenmesi ve Bluetooth kullanılabilirliğinin kontrol edilmesiyle başladı. Ayrıca Bluetooth cihazı adı ve PIN'i için değişkenleri de ayarlar.

İçinde kurmak() fonksiyonu ile seri baud iletişimi tanımlanır ve Bluetooth cihazı kendi adıyla başlatılır. Eşleştirme sırasında kimlik doğrulama için özel bir PIN ayarlanabilir.

döngü() işlevi seri ve Bluetooth bağlantılarındaki verileri sürekli olarak kontrol eder. Bu, ESP32 ile eşleştirilmiş bir Bluetooth cihazı arasında iki yönlü iletişim kurmasına olanak tanır.

Adım 4: Android Uygulamasını Yükleyin

Kod yüklendikten sonraki adım, Android uygulamasını Bluetooth bağlantısı için yükleyip yapılandırmaktır.

Play Store'u açın ve yükleyin Seri Bluetooth Terminali başvuru.

Kurulumdan sonra akıllı telefonun Bluetooth ayarlarını açın ve telefonunuzu ESP32 Bluetooth ile bağlayın. Arduino IDE kodunda bir PIN tanımladıysanız, PIN'i girmeniz gerekir, aksi takdirde doğrudan bağlanacaktır.

Şimdi Seri Bluetooth uygulamasını açın ve Cihazlar seçenek.

Yeni açılan menüden ESP32 cihazını seçin. Bu liste, o anda etkin olan tüm Bluetooth cihazlarını gösterir.

Gördüğünüz gibi ESP32 Bluetooth Android akıllı telefonunuza bağlı.

Bağlantıyı test etmek için bir dize göndereceğiz. Burada iki farklı dize gönderdim.

Aynı iki dizenin Arduino IDE terminalinde de görüntüleneceğini fark edeceksiniz.

Şimdi bir adım daha ileri gidelim ve Android akıllı telefon aracılığıyla ESP32 Bluetooth kullanarak LED gibi harici bir çevre birimini kontrol edelim.

Adım 5: Bluetooth aracılığıyla Android Telefon Kullanarak LED'i Kontrol Edin

ESP32 ve Android Bluetooth kullanarak bir LED'i kontrol etmek için öncelikle yukarıdaki kodu değiştirin ve LED için bir GPIO pini tanımlayın. Bundan sonra LED'i AÇIK ve KAPALI duruma getirmek için değerleri ayarlamanız gerekir.

Devam etmek için aşağıdaki kodu yükleyin.

#include // Bluetooth seri iletişim kütüphanesini dahil et

#define LED_PIN 15 // LED pinini tanımlayın

BluetoothSeri SeriBT ; // BluetoothSerial nesnesi oluştur
bayt BT_INP ; // Bluetooth girişini saklayacak değişken

// SDK yapılandırmasında Bluetooth ve Bluedroid'in etkin olup olmadığını kontrol edin
#if !tanımlanmış(CONFIG_BT_ENABLED) || !tanımlanmış(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth etkin değil. Etkinleştirmek için make menuconfig'i çalıştırın.
#endif

geçersiz kurmak ( ) {
​ pin Modu ( LED_PIN , ÇIKTI ) ; // LED pinini çıkış olarak ayarladık
Seri. başlamak ( 115200 ) ;
Seri BT. başlamak ( 'ESP32' ) ; // Bluetooth'u 'ESP32' adıyla başlatıyoruz
Seri. baskı ( 'Bluetooth cihazı eşleşmeye hazır.' ) ; // Bluetooth'un hazır olduğunu belirtin
}

geçersiz döngü ( ) {
// Bluetooth'tan okunabilecek veri olup olmadığını kontrol edin
eğer ( Seri BT. mevcut ( ) ) {
BT_INP = Seri BT. Okumak ( ) ; // Bluetooth'tan gelen byte'ı oku
Seri. yazmak ( BT_INP ) ; // Okunan baytın seri monitöre yansıması
}

// Alınan Bluetooth verilerini kontrol edin ve LED durumunu ayarlayın
eğer ( BT_INP == '1' ) {
dijitalYazma ( LED_PIN , YÜKSEK ) ; // '1' alınırsa LED'i açın
} başka eğer ( BT_INP == '0' ) {
dijitalYazma ( LED_PIN , DÜŞÜK ) ; // '0' alınırsa LED'i kapat
}
}

Bu kod, Bluetooth kullanarak bir LED'i kontrol etmek için bir ESP32 mikro denetleyicisi içindir. Bluetooth iletişimi için bir kütüphane içerir. Daha sonra LED pinini tanımlar ve ESP32 isimli cihaz ile Bluetooth kurulumunu yapar. Ana döngü, Bluetooth verilerini okur ve alınan komuta göre LED'i AÇIK veya KAPALI konuma getirir (AÇIK için 1, KAPALI için 0).

Devre şeması

Devre şeması basittir, pime bağlı bir LED vardır D15 ESP32'nin. LED kontrolü için başka herhangi bir GPIO'yu tanımlayabilirsiniz.

İlgili: ESP32 Pin Çıkışı Referansı – Nihai Kılavuz

Donanım

Donanım olarak bir devre tahtasına, bir ESP32 kartına ve bir LED'e ihtiyacınız olacak. ESP32'yi sisteme bağlayın ve programı sisteme yükleyin.

Şimdi Android telefonun Bluetooth Seri iletişim uygulamasından 1 ve 0'ı gönderin.

Aynı girişi Android telefondan alınan Arduino IDE terminalinde de göreceksiniz.

Çıktı

Yüksek veya 1 değerini gönderdiğinizde LED yanacaktır, benzer şekilde Düşük değerini gönderdiğinizde LED KAPANACAKTIR.

Özel Bir Düğme Ayarlayın

Ayrıca Seri Bluetooth uygulamasının içinde özel bir düğme de ayarlayabilirsiniz. Örneğin YÜKSEK ve DÜŞÜK değerler butonu oluşturulabilir. Bu şekilde değerleri manuel olarak yazmanıza gerek kalmaz. Bunun yerine, kısayol düğmesine basmanız yeterlidir; ayarladığınız talimatı uygulayacaktır.

Not: Düğme ayarlarını açmak için düğmeye uzun basın.

YÜKSEK düğme değerini ayarlamak için aşağıdaki ayarları tanımlayın.

DÜŞÜK butonu değerine benzer şekilde aşağıdaki ayarları tanımlamanız gerekmektedir.

ESP32 kartını Bluetooth kullanarak bir Android telefona başarıyla bağladık. Artık onu kullanarak birçok proje oluşturabilirsiniz. Mesela ev aletlerinizi ESP32 Bluetooth'u kullanarak bir röle devresi üzerinden kontrol edebilirsiniz.

İlgili: Arduino IDE Kullanarak ESP32'li Röle

Çözüm

ESP32, Wi-Fi ve Bluetooth özelliklerine sahip gelişmiş bir mikro denetleyici kartıdır. Bu yerleşik modüllerin her ikisi de gelişmiş projeler tasarlamanıza ve çevre birimlerini kablosuz olarak kontrol etmenize yardımcı olur. Benzer şekilde ESP32'yi bir Android telefona bağlayıp farklı işlemler gerçekleştirebilirsiniz. Bunun için Bluetooth Seri Android uygulamasını yüklemeniz gerekecektir. Kurulduktan sonra ESP32 Bluetooth örnek kodunu açın ve panonuza yükleyin. Kod yüklendikten sonra, bunu bir Android telefon aracılığıyla panonuzla eşleştirebilirsiniz.