İçindekiler:
Video: ESP32 ile Bluetooth(BLE) Nasıl Kullanılır: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
#####NOT#####
Bu Talimatlarda gösterilen yöntem eski ve modası geçmiş. En son yöntem için bu videoyu izleyin.
###############
ESP32, kapsamlı bir özellik listesine (Wikipedia) sahip olmakla birlikte, göze çarpan en büyük özelliği, BLE destekli yerleşik bluetooth v4.2'dir. Ancak bu ifade yanıltıcı olabilir, donanım varken Bluetooth kullanımı için yazılım desteği eksik. (Geliştirme aşamasındadır)
BLE'nin ne olduğunu bilmeyenler için Bluetooth Low Energy anlamına gelir. "Klasik" Bluetooth'a kıyasla önemli ölçüde daha düşük güç tüketimini artıran bir bluetooth protokolüdür.
Bu Talimatlarda, bir ESP32 kartından BLE üzerinden telefonunuza veri göndermek için sınırlı (yazılım) kaynaklarını nasıl kullanabileceğinizi göstereceğim.
Birkaç Feragatname…
Bu kılavuza devam etmeden önce bahsetmem gereken birkaç not var.
Not 1: Bluetooth desteği henüz yok derken arduino geliştirme ortamından bahsediyorum.
Destek, resmi SDK'nın yanı sıra IDF'de de mevcut olabilir, ancak bunlar için herhangi bir yetkin talimat bulamadım.
Not 2: Kullandığım yöntem, BLE'nin ideal olarak nasıl çalışması gerektiği değil, bir geçici çözümdür. BLE'de hizmet oluşturmaya yönelik kütüphane destekleri, arduino ortamı için burada değil.
Güvenilir bir şekilde yapabileceğiniz tek şey, adını duyuran bir Beacon oluşturmaktır. Bir YouTube yorumu bunu çok zarif bir şekilde ifade etti: "LOL, acımasız bir hack. Ama ne yapabilirsin?"
Not 3: Gönderebileceğiniz tek veri türü string'dir.
Diğer türden verileri dizeye ve dizeden kodlamaya ve kodunu çözmeye çok iyi karar verebilirsiniz, ancak bu, bu kılavuzun kapsamı dışındadır.
Adım 1: Örnek Yapı
Sadece açıklama için buradaysanız, bu adımı atlayabilirsiniz, ancak üzerinden geçmek size biraz daha netlik kazandırabilir..
İlk önce örnek bir proje oluşturacağım ve ardından nasıl çalıştığını ve Bluetooth iletişimini nasıl çoğaltabileceğinizi açıklamaya çalışacağım. Akıllı telefonunuza canlı yayın gönderen taşınabilir bir sıcaklık sensörü oluşturacağız. Derleme, tek bir li-po üzerinde günlerce çalışabilir ve BLE'nin faydalarını kolayca gösterir.
Modülü bardak altlığı olarak kullanarak içeceklerinizi izole edebilir ve içeceğiniz optimum sıcaklığa ulaştığında bildirim alabilirsiniz. Çünkü 40 derecenin üzerinde bir çay içmek zorunda kalsaydınız bu bir gülünç olurdu.
İhtiyacınız olan tek donanım bir ESP32 kartı ve bir dijital sıcaklık sensörüdür. Kartım harici pili destekliyor, bu yüzden bu projeyi taşınabilir hale getirmek için eski bir cihazdan kurtardığım bir 3.7v li-po kullanıyorum.
Donanım
Sıcaklık sensörünün bağlantıları basittir. Kırmızı kablo 3.3v'ye, siyah toprağa (gnd), sarı ise kartımda D9 olarak işaretlenen GPIO 2'ye bağlanır. Kırmızı ve sarı kablo arasına 4.7k ohm'luk bir direnç bağlayın. Direnci kullanmıyorum, bunun yerine sensörümle birlikte gelen 3 pinli takılabilir bir terminal kullanıyorum. Yerleşik bir yukarı çekme direncine sahiptir.
Li-po gerçekten bir JST konektörü kullanılarak bağlanmalıdır, ancak bir tane satın almaktan rahatsız olmadım, bu yüzden konektöre bazı (dişiden dişiye) atlama kablolarını bağladım ve akü terminallerine başka bir çift lehimledim. Bu, güvenilir bir bağlantı ve geçici bir güç anahtarı sağlar.
Şimdi bir proje muhafazası olarak, daha büyük bir tabakadan kesilmiş bir Strafor disk kullanıyorum. Bu harika bir yalıtkan yapar. Çok daha küçük başka bir disk üstte ama biraz yana sıkışmış. Bu, ekstra uzunluktaki kabloları sarmak içindir, böylece her yere sarkmazlar. Yapıştırıcınızı bolca kullandıktan ve sensör probu için küçük bir delikten sonra, yazılıma geçmeye hazırsınız.
Yazılım
Henüz arduino IDE kurulu değilse, indirmek için bu bağlantıya gidin. Arduino yazılımı varsayılan olarak çeşitli ESP32 kartları için kart tanımlarıyla birlikte gelmez. Bu bağlantıya gitmelerini ve dosyaları bir zip halinde indirmelerini sağlamak için. Bunları şu konuma açmanız gerekir:
C:/Kullanıcılar//Belgeler/Arduino/donanım/espserrif/ESP32
Kullanıcı adınız PC'nizde nerede. Çeşitli dosyaların ESP32 klasörü altında bulunduğundan ve başka bir klasör altında olmadığından emin olun.
Şimdi arduino yazılımını başlatırsanız ve araçlar->panolara giderseniz, aşağı kaydırdığınızda çeşitli ESP32 panoları görmelisiniz.
Çoğu dijital sıcaklık sensörü, mikro denetleyicilerle iletişim kurmak için OneWire protokolünü kullanır, bu nedenle kitaplığı almamız gerekir. Sketch->include library->manage library'e gidin ve onewire için arama yapın ve çok fazla yazar içeren kütüphaneyi kurun. Tek kablolu hub'a ihtiyacınız yok. Boşver.
Şimdi bu adıma ekli kodu indirebilir ve açabilirsiniz (sıcaklık-example.ino).
Benden farklı bir sensör kullanıyorsanız, kodu buna göre değiştirmeniz gerekecektir. getTemp() altındaki kodu değiştirin. Sadece son sıcaklığı şeklinde döndürün
Dönüş;
Sıcaklığı içeren şamandıra nerede.
Kartı takın, araçların altından doğru kartı ve bağlantı noktasını seçin ve yükle düğmesine basın.
Kod yüklenmeyi reddederse sensörün bağlantısını kesin ve GPIO 0'ı toprağa bağlayın. Yüklemeden sonra bağlantıları geri yükleyin.
ESP'niz artık kahvenizin sıcaklığını dünyaya haykırıyor olmalı ama sizin onu anlayabilecek birine ihtiyacınız var.
Android Uygulaması
Üzgünüm iPhone kullanıcıları (…gerçekten değil).
Apk'yı buradan indirin ve kurun. Uygulamayı başlattığınızda çok basit bir arayüz ile karşılaşacaksınız.
'Reklam desteklenmiyor' diyen bir hata mesajı alırsanız, Tamam'ı tıklayın ve yok sayın, ancak 'BLE desteklenmiyor' mesajını alırsanız, telefonunuzda Bluetooth 4.0 veya üstü yoktur ve çalışamaz. uygulama.
Telefonunuzdaki Bluetooth'un açık olduğundan emin olun ve esp kapsama alanında olduğu ve açık olduğu sürece 'Taramayı Başlat'ı tıklayın, bir miktar sıcaklık değeri alıyor olmalısınız.
Olası hatalar:
- -1000:: Bu, cihazınızın ESP'yi bulamadığı anlamına gelir. Bluetooth'un açık olduğundan emin olun ve ESP'yi yeniden başlatmayı deneyin.
- SNA:: Bu, telefonunuzun ESP'den veri aldığı, ancak ESP'nin GPIO 2'de bir sıcaklık sensörü bulamadığı anlamına gelir. Bağlantıların güvenli olduğundan emin olun, doğru değerde bir direnç kullanıp kullanmadığınıza bakın. Pano şemalarınızla GPIO 2'ye bağlı olduğunuzu ve D2 olarak işaretlenmiş bir pime bağlı olmadığınızı iki kez kontrol edin.
2. Adım: Açıklama
BLE normalde nasıl çalışır, bir cihazın adını bir işaret gibi tanıtması, bu adın herkes tarafından görülebilmesi ve cihazı tanımlamak için kullanılmasıdır. Ardından cihaz, bağlandıklarında başkaları tarafından görülen çeşitli hizmetler oluşturabilir. Bu hizmetler farklı veri akışlarına sahip olabilir.
Örn. 'Weather Station' adlı bir cihaz, altında 'Sıcaklık', 'Nem' ve 'Rüzgar' gibi servis vermiş olabilir. Akıllı telefonunuz gibi başka bir BLE cihazı cihazları taradığında, Hava İstasyonunu görecek ve ona bağlandığında, farklı servislere karşılık gelen veri akışlarını alabilecektir.
Şu anda bizim için mevcut olan kütüphaneler (ESP32 için), başkalarının keşfedebileceği bir işaret yaratmamıza izin veriyor, ancak bunun kapsamı bu. Hizmetler oluşturamayız veya herhangi bir cihaz buna bağlanamaz.
Yani servis oluşturmadan nasıl veri gönderiyorum, Beacon Stuffing adlı WiFi protokolüne benzer bir teknik kullanarak. Bu, işaret adının kendisine gönderilecek verileri dahil ettiğim anlamına gelir. Bu, diğer cihazların beacon'a bağlanmasını gerektirmeden verilerin reklamını yapmamı sağlıyor.
ble.begin(beaconMsg); //beaconMsg, reklamı yapılan addır
SimpleBLE kitaplığını, ESP formatında kendi adıyla bir işaret oluşturmak için kullanıyoruz. "ESP"nin adın başında her zaman değişmeden kaldığı ve her 100 milisaniyede bir getValue() işlevi tarafından döndürülen en son verilerle değiştirildiği yer.
float getValue(){dönüş sensörüValue;}
Android uygulaması, 'ESP' ile başlayan BLE cihaz adlarını arar, bulunduğunda adı böler ve yalnızca sondaki verileri görüntüler.
İletişim tek yönlüdür, uygulama hiçbir şeyi geri göndermez.
3. Adım: Sonuç
Günün sonunda, bu yöntem düzgün bir şekilde uygulanmış bir BLE kitaplığının yerini almaz, ancak Arduino'ya tam BLE desteği gelene kadar bazı projeleri devretmek yeterli olabilir. Umarım bu Eğitilebilirler size biraz yardımcı olmuştur.
BÜYÜK DFRobot.com'a bana şu ürünleri gönderdiği için teşekkürler:
- ESP32 FireBeetle Kurulu
- FireBeetle Genişleme Kalkanı
- DS18B20 Sıcaklık Sensörü
Geçenlerde bu kütüphaneyi buldum. ReadME, veri almak için diğer BLE cihazlarına bağlanabileceğinizi iddia ediyor (Kendinizin reklamını yapamazsınız). Denemedim ama ilginizi çekerse bakabilirsiniz.
Proje videosunu şu adresten kontrol edebilirsiniz: YouTube
Önerilen:
Arduino ile RFID-RC522 Modülü Nasıl Kullanılır: 5 Adım
Arduino ile RFID-RC522 Modülü Nasıl Kullanılır: Bu Eğitilebilir Kitapta, RFID modülünün etiketleri ve yongaları ile birlikte temel çalışma prensibi hakkında bir adım atacağım. Ayrıca RGB LED'li bu RFID modülünü kullanarak yaptığım bir projeden kısa bir örnek vereceğim. Ins'imle her zamanki gibi
Rotary Encoder: Nasıl Çalışır ve Arduino İle Nasıl Kullanılır: 7 Adım
Döner Kodlayıcı: Nasıl Çalışır ve Arduino ile Nasıl Kullanılır: Bu ve diğer harika öğreticileri ElectroPeak'in resmi web sitesinde okuyabilirsinizGenel BakışBu eğitimde, döner kodlayıcıyı nasıl kullanacağınızı öğreneceksiniz. İlk olarak, rotasyonel kodlayıcı hakkında bazı bilgiler göreceksiniz ve ardından nasıl yapılacağını öğreneceksiniz
ESP32 Bluetooth Eğitimi - ESP32'nin Dahili Bluetooth'u Nasıl Kullanılır: 5 Adım
ESP32 Bluetooth Eğitimi | ESP32'nin Dahili Bluetooth'u Nasıl Kullanılır: Merhaba arkadaşlar ESP32 Kartı WiFi & Bluetooth her ikisi de ama çoğunlukla Projelerimiz için genellikle sadece Wifi kullanıyoruz, Bluetooth kullanmıyoruz. Bu yüzden bu talimatta ESP32 & Temel Projeleriniz için
Mac Terminal Nasıl Kullanılır ve Temel İşlevler Nasıl Kullanılır: 4 Adım
Mac Terminali Nasıl Kullanılır ve Temel Fonksiyonlar Nasıl Kullanılır: Size MAC Terminalini nasıl açacağınızı göstereceğiz. Ayrıca size Terminal içinde ifconfig, dizinleri değiştirme, dosyalara erişim ve arp gibi birkaç özelliği göstereceğiz. Ifconfig, IP adresinizi ve MAC reklamınızı kontrol etmenizi sağlar
WiFi Üzerinden Blynk İle LED'i Kontrol Etmek İçin ESP32 Nasıl Kullanılır: 7 Adım (Resimlerle)
WiFi Üzerinden Blynk ile LED'i Kontrol Etmek için ESP32 Nasıl Kullanılır: Bu eğitim, WiFi üzerinden Blynk ile LED'i kontrol etmek için ESP32 geliştirme kartını kullanacak. Blynk, Arduino, Raspberry Pi ve benzerlerini İnternet üzerinden kontrol etmek için iOS ve Android uygulamalarına sahip bir Platformdur. Oluşturabileceğiniz bir dijital gösterge panosudur