- ESP32 Bluetooth ile başlarken
- Bluetooth Low Energy (BLE) ve ESP32 Classic Bluetooth'u Anlama
- Arduino IDE'yi ESP32 için hazırlama
- ESP32 için Seri Bluetooth Programı
- ESP32 ile Seri Bluetooth'u Test Etme
HC-05 ve HC-06 gibi Bluetooth modülleri Arduino IDE ile kurulumu kolaydır ve kullanımı hızlıdır, ancak yüksek güç tüketimi gibi kendi sınırlamaları vardır ve eski Bluetooth V2.0 üzerinde çalışırlar. Ayrıca, son zamanlarda kendime yeni bir ESP32 DEV kiti aldım, bu modüller dahili Wi-Fi ve Bluetooth, geniş ADC ve DAC pinleri, Ses Desteği, SD Kart Desteği, Derin Uyku Modu vb. IoT projeleri oluşturmak için her şey.
Ve tıpkı herhangi bir hobinin seveceği gibi, ESP32 artık resmi olarak Arduino IDE tarafından destekleniyor. Daha önce Neil Kolbans Library ile büyük bir geçici çözüm yapmamız gerekiyordu, ancak şimdi bu adamın sıkı çalışması sayesinde ESP32'yi Arduino IDE ile programlama bir pasta yürüyüşü haline geldi. Bu nedenle, Arduino IDE'mi başlattım ve hiçbir şey anlamadığım birkaç örnek BLE programına gittim. Uzun süre gezinme ve youtubing yaptıktan sonra, ESP32 kullanarak Bluetooth Low Energy (BLE) ile çalışmanız gerekip gerekmediğini anlamanız gereken daha çok şey olduğunu fark ettim. BLE'yi ayrı makalelerde ele almaya karar verdim, bu yüzden burada Akıllı Telefon kullanarak bir LED'i değiştirmek için ESP32'nin Klasik Seri Bluetooth'unu kullanacağız.. BLE özelliklerini nasıl kullanacağınızı öğrenmekle ilgileniyorsanız, ESP32 BLE Sunucusu ve ESP32 BLE İstemcisi hakkındaki bu makaleye bakın.
ESP32 Bluetooth ile başlarken
Denemek istediğim ilk program, tıpkı eski güzel HC-05 günlerinde olduğu gibi, bir cep telefonu Bluetooth Terminal uygulamasından bir LED'i Açıp Kapatabileceğim basit bir programdı. Ancak, Bluetooth Low Energy (BLE) bunun için girintili olmadığı ortaya çıktı. Ayrıca ESP32 modülünde iki tür Bluetooth olduğunu keşfettim, biri Klasik Bluetooth ve diğeri BLE Bluetooth Düşük Enerji. Tamam, ama neden?…. neden iki tür Bluetooth'umuz var ve projem için ne kullanmalıyım?
Bluetooth Low Energy (BLE) ve ESP32 Classic Bluetooth'u Anlama
Adından da anlaşılacağı üzere Bluetooth Düşük Enerji, klasik Bluetooth'tan daha az güç tüketir. Önceden tanımlanmış periyodik güncellemeler ile ihtiyaç duyulan verilerin gönderilmesi ile sağlanır. Ancak klasik Bluetooth'un aksine, Dosyaları veya Müziği aktarmak için kullanılmaz. Telefonunuzun, eşleştirdiğiniz Bluetooth cihazının bir ses cihazı veya bir dizüstü bilgisayar veya telefon olduğunu otomatik olarak nasıl tanımladığını hiç merak ettiniz mi, kablosuz müzik çalarda veya fitness bandındaki pil seviyesinin otomatik olarak cihazının durum çubuğunda gösterildiğini de görmüş olabilirsiniz. Senin cep telefonun; tüm bunlar BLE cihazlarının özellikleriyle mümkündür. Bir BLE cihazı, Bluetooth V4.0 ile çalışır ve bir sunucu olarak veya bir istemci olarak düşük güçle çalışabilir.BLE işaretçiler, akıllı saatler, spor bantları vb. İçin ideal bir seçimdir.
Öte yandan klasik Bluetooth, dosyaları ve diğer verileri aktarmak için kullandığımız basit, düz eski Bluetooth'dur. Hemen hemen tüm BLE cihazları, kendisiyle ilişkili Klasik Bluetooth işlevine sahiptir. HC-05 gibi modüllerde kullanılan Bluetooth, Bluetooth SSP (Seri Bağlantı Noktası Protokolü) adı verilen klasik Bluetooth'un bir sürümüdür, yani Bluetooth, standart seri protokolü izleyerek çok fazla ek yük olmadan veri göndermeyi ve almayı kolaylaştırır. Bu eğitimin sonunda, ESP32'de Seri Bluetooth işlevinin nasıl kullanılacağını öğreneceğiz.
Bu makalede , ESP32'deki Seri Bluetooth işlevini bir Akıllı Telefonla eşleştirmek ve Play Store'daki mevcut herhangi bir Bluetooth Terminal uygulamasını kullanarak ESP32'ye komutlar göndermek ve yerleşik LED'i buna göre değiştirmek için kullanacağız.
Sonraki makalelerde ESP32 BLE'yi istemci kadar sunucu olarak da ele alacağız. BLE sunucusu, genellikle BLE verilerini diğer Bluetooth Cihazlarına göndermek için kullanılır ve BLE istemcisi, diğer BLE cihazlarını taramak için kullanılır, böylece işaret görevi görür.
Arduino IDE'yi ESP32 için hazırlama
Arduino IDE'nin varsayılan olarak ESP32 kartını desteklemediğini unutmayın; pano yöneticisini kullanarak indirip kurmanız gerekir. Bu ESP32 ile ilk programınızsa, ESP32 kartını Arduino'nuza eklemek ve bir test taslağı yüklemek için bu başlangıç eğitimini izleyin.
Ayrıca, ESP32 ile herhangi bir Mikroişlemci kullanmadan daha fazla proje yapabilirsiniz.
ESP32 için Seri Bluetooth Programı
ESP32 Bluetooth kullanarak bir LED'i değiştirmek için eksiksiz program bu sayfanın sonunda verilmiştir. Bu başlık altında, kodu küçük parçalara ayıralım ve onları anlamaya çalışalım. HC-05 gibi diğer Bluetooth modüllerini zaten kullandıysanız, bu ESP32 Bluetooth Classic örnek programının çok benzer olduğunu göreceksiniz.
Programın amacı, ESP32 kullanarak Seri Bluetooth bağlantısı başlatmak ve eşleştirilmiş cihazlardan gelen verileri dinlemektir. Gelen data '1' ise led'i yakıyoruz ve '0' ise led'i kapatmalıyız. Biz başlık dosyası ekleyerek programımızı başlamak BluetoothSerial bluetooth SSP olarak çalışmalarına ESP32 Bluetooth yapar.
#include "BluetoothSerial.h" // Seri Bluetooth için Başlık Dosyası, varsayılan olarak Arduino'ya eklenecektir
Bu kütüphanenin arkasında pek çok şey var ama biz işleri basitleştirmek için derinlere inmemeyi seçtik. Bir sonraki ihtiyacımız olan şey , Bluetooth ile ilgili işlemlerimiz için bir nesne. Burada benimkini ESP_BT olarak adlandırdım , ancak herhangi bir adı seçebilirsiniz.
BluetoothSerial ESP_BT; // Bluetooth için nesne
Sonra, void setup () işlevinin içinde. Biz baud hızı 9600 ile seri iletişimi başlar ve bir adla Bluetooth sinyalinin başlangıç. Burada "ESP32_LED_Control " olarak adlandırdım, bu, eşleştirmeye çalışırken telefonumuz tarafından bulunacak ad olacak. Sonunda Bluetooth sinyaline göre değiştireceğimiz için dahili LED pinini çıkış pini olarak ilan ettim.
geçersiz kurulum () { Serial.begin (9600); // Seri monitörü 9600'de başlatın ESP_BT.begin ("ESP32_LED_Control"); // Bluetooth Signal'inizin adı Serial.println ("Bluetooth Aygıtı Eşleşmeye Hazır"); pinMode (LED_BUILTIN, OUTPUT); // LED pininin çıktı olduğunu belirtin }
Sonsuz boşluk döngüsü işlevinin içinde, Bluetooth modülünden gelen herhangi bir veri olup olmadığını kontrol ederiz, eğer öyleyse veriler okunur ve gelen değişkene kaydedilir. Ayrıca, Arduino tarafından ne alındığını kontrol etmek için bu değeri Seri monitöre yazdırıyoruz.
if (ESP_BT.available ()) // Bluetooth'tan herhangi bir şey alıp almadığımızı kontrol edin { incoming = ESP_BT.read (); // Aldığımız şeyi okuyun Serial.print ("Alındı:"); Serial.println (gelen);
Şimdi, alınan veriler her ne olursa olsun gelen değişkende saklanır, böylece bu değişkeni beklenen değerle doğrudan karşılaştırabilir ve gerekli eylemi gerçekleştirebiliriz. Ancak Bluetooth'tan gönderilen değer karakter şeklinde olacak ve Arduino telefondan gönderilen karakterin Ondalık değerini okuyacaktır. Bizim durumumuzda char '0' için ondalık değer 48 olacak ve char '1' için ondalık değer 49 olacaktır. Her karakter için ondalık değerin ne olacağını anlamak için ASCII grafiğine bakabilirsiniz.
Burada , sırasıyla 0 ve 1'i kontrol etmek için gelen değişkeni 48 ve 49 ile karşılaştırdık. Eğer 1 ise, o zaman LED'i kapatırız ve ayrıca Bluetooth'a LED'in kapatıldığını ve 0 için tersini belirten bir onay mesajı yazdırırız.
eğer (gelen == 49) { digitalWrite (LED_BUILTIN, HIGH); ESP_BT.println ("LED AÇIK"); } if (gelen == 48) { digitalWrite (LED_BUILTIN, LOW); ESP_BT.println ("LED KAPALI"); }
ESP32 ile Seri Bluetooth'u Test Etme
ESP'nizi Arduino IDE'nize bağlayın ve başlangıç eğitiminde anlatıldığı gibi doğru kartı ve bağlantı noktasını seçin. Bir 3 olduğundan rd parti yönetim kurulu yöneticisi kodu derlenmiş ve yüklenmiş almak için biraz daha uzun sürebilir. Yüklendikten sonra Seri monitörleri başlatın (yalnızca hata ayıklama için) ve telefonunuzdaki Bluetooth ayarını açın. ESP32_LED_Control ile eşleştirilmiş bir Bluetooth cihazı bulmalısınız .
Artık akıllı telefonunuzdaki herhangi bir Bluetooth terminal uygulamasını açabilirsiniz, Google App Store'dan indirilen “Bluetooth Terminali” adlı uygulamayı kullanıyorum. Bluetooth uygulamasını az önce eşleştirdiğimiz cihaza bağlayın ve 1 yazın ve gönder'e basın.
ESP32 modülü, programımıza göre onu alıp LED'i açmalı ve ayrıca yukarıda gösterilen ekran görüntüsü gibi LED'in AÇIK konuma geldiğini belirten bir onay mesajı vermelidir. ESP32 Bluetooth tarafından alınan verileri ondalık formatta gösterecek olan Seri monitörü de kontrol edebilirsiniz; bu, Arduino'nuzun daha önce açıklandığı gibi 0 için 48 ve 1 için 49 okuyacağıdır. Terminal penceremin anlık görüntüsü aşağıda gösterilmektedir.
Benzer şekilde, mobil uygulamadan 0 göndererek de LED'i kapatabilmelisiniz. Tam çalışma aşağıdaki videoda gösterilmektedir. Umarım öğreticiyi anladınız ve yararlı bir şey öğrendiniz. Herhangi bir şüpheniz varsa, bunları aşağıdaki yorum bölümünde bırakmaktan çekinmeyin veya diğer teknik yardım için forumlarımızı kullanın.