Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

8 Aralık 2021 Çarşamba

ESP32 Bluetooth modülü nasıl kullanılır

 

Arduino IDE ile ESP32 Bluetooth modülü nasıl kullanılır proje

ESP32 geliştirme kartı, dahili bir Bluetooth modülüne sahiptir. Bu yazımda sizlere Arduino IDE ile ESP32 Bluetooth modülünü nasıl kullanacağınızı göstereceğim Ve bu makalenin sonunda, GPIO pinlerine bağlı harici LED'leri kontrol etmek için Arduino IDE ile ESP32 Bluetooth modülünü kullanabileceksiniz.

ESP32 dev board pinout ile ilgili makalede tartıştığımız gibi , ESP32 kartı dahili Wi-Fi modülü ile birlikte dahili bir Bluetooth modülü ile birlikte gelir. Bu, Arduino IDE ile ESP32 Bluetooth modülünü kullanan mobil cihazlarla iletişimi oldukça kolay ve verimli hale getirir.

 

ESP32 Bluetooth modülü proje detayları:

Bu projede, ESP32 kartı ve akıllı telefon arasındaki Bluetooth iletişimini kullanarak ESP32'nin GPIO pinlerinden birine bağlı harici LED'leri kontrol edeceksiniz. 

Not : LED'leri kontrol etmek için Seri Bluetooth terminali adlı bir mobil uygulama kullanacağım.

Gerekli malzemeler:
  • ESP32 Modülü
  • Arduino IDE'si
  • Mikro USB kablosu
  • Jumper Tel
  • 1 x 100-ohm dirençler
  • 1 x LED
  • Bluetooth Seri Monitör Uygulaması
ESP32 dahili Bluetooth modülünü kullanarak LED'i kontrol etmek için Devre Şeması
ESP32 dahili Bluetooth modülünü kullanarak LED'i kontrol etmek için Devre Şeması

 

Adım 1 : ESP32 kartını bir mikro USB kablosuyla PC'nize bağlayın. Kart bağlandığında kart üzerindeki dahili KIRMIZI LED yanar.

Adım 2 : PC'nizde Arduino uygulamasını açın, üst menüden Araçlar > Pano'ya gidin ve “ ESP32 Arduino” seçeneğine tıklayın. Şimdi kullandığınız ESP32 kartının türünü seçin. Ben seçmiş ESP32 dev modülü .

Adım 3 : Şimdi Araçlar>Port'a gidinve kartın PC'ye bağlı olduğu portu seçin (örnek COM4).

Adım 4 : Aşağıda verilen ESP32 Bluetooth programını Arduino IDE'ye yapıştırın/yazın.

#include "BluetoothSerial.h"
BluetoothSeri SeriBT;
char alınanChar ;// alınan değer bu değişkende CHAR olarak saklanacak
const char turnON = 'AÇIK' ;
const char turnOFF = 'OFF' ;
const int LEDpin = 15 ;
geçersiz kurulum () {
Seri. başla ( 115200 ) ;
SeriBT. başlamak ( "ESP32_Bluetooth" ) ; //Bluetooth cihaz adı
Seri. println ( "Cihaz başladı, şimdi bluetooth ile eşleştirebilirsiniz!" ) ;
Seri. println ( "Göndermeyi AÇMAK için: AÇIK" ) ;//seri monitörde yazdır
Seri. println ( "Göndermeyi KAPALI konuma getirmek için: KAPALI" ) ; // seri monitörde yazdır
pinMode ( LEDpin, ÇIKIŞ ) ;
}
boşluk döngüsü () {
if ( Seri. mevcut ()) {
SeriBT. yaz ( Seri. oku ()) ;
}
if ( SerialBT. mevcut ()) {
alınanChar = ( char ) SerialBT. oku () ;
SeriBT. print ( "Alınan:" ) ;// BT uygulamasına yaz
SeriBT. println ( receivedChar ) ; BT uygulamasında // yazma
Seri. print ( "Alınan:" ) ;//seri monitörde yazdır
Seri. println ( receivedChar ) ; seri monitörde // baskı
gecikme ( 10 ) ;
if ( alınanChar == aç )
{
SeriBT. println ( "LED AÇIK:" ) ;// BT uygulamasına yaz
Seri. println ( "LED AÇIK:" ) ;//seri monitöre yaz
digitalWrite ( LEDpin, HIGH ) ;// LED'i AÇIN
gecikme ( 20 ) ;
}
if ( alınanChar == turnOFF )
{
SeriBT. println ( "LED KAPALI:" ) ;// BT uygulamasına yaz
Seri. println ( "LED KAPALI:" ) ;//seri monitöre yaz
digitalWrite ( LEDpin, LOW ) ;// LED'i kapat
gecikme ( 20 ) ;
}
}
}

Adım 6 : Kodu yüklemek için yükleme seçeneğine tıklayın. Yükleme işlemi sırasında BOOT düğmesini basılı tutmayı unutmayın.

Adım 7: Arduino IDE'deki seri monitörü Araç>Seri Monitör'e giderekveya Ctrl+Shift+M tuşlarına basarak açın.

Adım 8: ESP32 kartındaki RESET düğmesine basın.

Adım 9: Şimdi LED'i kontrol etmek için kullanacağımız mobil cihaza geçme zamanı. Bluetooth Seri Terminal Uygulamasını indirin.

Bluetooth Seri Terminal Uygulaması
Bluetooth Seri Terminal Uygulaması

 

Adım 10: Ardından ESP32 kartını mobil cihazla eşleştirin.Bluetooth modülünü kullanarak ESP32 kartını mobil cihazla eşleştirme

ESP32 kartını mobil cihazla eşleştirme
Bluetooth Seri Terminal uygulamasında Menü>Cihazlar'a göz atın
Bluetooth Seri Terminal uygulamasında Menü>Cihazlar'a göz atın

Adım 12: Bağlanmak istediğiniz ESP32 kartının adını seçin.  ESP32 Bluetooth ”u seçeceğim .

Bluetooth Terminal Uygulamasında ESP32 kartını seçin
Bluetooth Terminal Uygulamasında ESP32 kartını seçin

Adım 13: Artık ESP32 kartı mobil cihaza bağlı olduğu için seri data göndererek onunla haberleşebiliriz.

  • “AÇIK” gönder: LED'i AÇMAK için
  • “KAPALI” gönder: LED'i KAPATMAK için

 

Kod Açıklaması:

#include "BluetoothSerial.h"
  • #include , programımıza dış kütüphaneleri dahil etmek için kullanılır. Bu, kullanıcıya geniş bir standart C kitaplığı grubuna (önceden oluşturulmuş işlev grupları) ve ayrıca özellikle ESP32 kartı için yazılmış kitaplıklara erişim sağlar.
  • Burada, ESP32 kartını diğer mobil cihazlara bağlamamıza yardımcı olan işlevleri kullanmamıza izin veren <BluetoothSerial.h> kitaplığını ekledik.

BluetoothSeri SeriBT;

Bluetooth yığınlarını (denetleyici ve ana bilgisayar) başlatmak ve Bluetooth üzerinden seri iletişim kurmak için BluetoothSerial sınıfında bir nesne oluşturun.

 

alınan charChar;

Bluetooth Seri terminali tarafından gönderilen değeri depolamak için bir char değişkeni

 

const char turnON = 'AÇIK' ;
const char turnOFF = 'OFF' ;

TurnOn ve turnoff değişkenlerini saklamak için değişken.

const int LEDpin = 15 ;

Değişkeni GPIO PIN'ine atayın.

 

void setup() işlevinin içinde:

Seri. başla ( 115200 ) ;
  • Arduino kartı ve Arduino IDE arasındaki seri veri iletişimini başlatmak için Serial.begin() işlevi kullanılır.
  • Serial.begin () fonksiyonu, seri veri iletimi için bir iletişim hızını ayarlamak için bağımsız değişken “veri hızı” alır. Burada veri hızını saniyede 115200 bit olarak ayarlıyoruz.
  • Desteklenen baud hızları  300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 31250, 38400, 57600 ve 115200'dür.

SeriBT. başlamak ( "ESP32_Bluetooth" ) ;

Bu satır, Bluetooth seri iletişimini “ ESP32_bluetooth  adıyla başlatır .NOT :Bu satırı kullanarak ESP32 kartı Bluetooth modülünün adını değiştirebilirsiniz.

 

pinMode ( LEDpin, ÇIKIŞ ) ;

Burada LEDpin GPIO pin modunu OUTPUT olarak başlatıyoruz.

 

void loop() fonksiyonunun içinde:

Void loop () işlevi deyimi ise iki ana durumlarda oluşur

if ( Seri. mevcut ()) {
SeriBT. yaz ( Seri. oku ()) ;
}

 

İlk if ifadesi, verilerin seri portta alınıp alınmadığını kontrol etmek için kullanılır. Veri alınıyorsa, Bluetooth aracılığıyla bağlı cihaza gönderin.

 

if ( Seri BT. mevcut ())
{
.....
}

İkinci if ifadesinde ise Bluetooth seri portundan veri alınıp alınmadığını kontrol ediyoruz.

Şimdi her iki if ifadesinin de yürütülmesi, ESP32 kartı ile mobil cihaz arasındaki bağlantının iyi çalıştığı anlamına gelir.

 

alınanChar = ( char ) SerialBT. oku () ;

Başlat receivedChar mobil cihaz tarafından gönderilen verileri değişkenle.

 

SeriBT. print ( "Alınan:" ) ;// BT uygulamasına yaz
SeriBT. println ( receivedChar ) ; BT uygulamasında // yazma

Bluetooth seri bağlantı noktası tarafından alınan veriler hakkında Bluetooth seri monitör uygulamasında başarılı mesajı yazdırın.

 

Seri. print ( "Alınan:" ) ;//seri monitörde yazdır
Seri. println ( receivedChar ) ; seri monitörde // baskı

Ayrıca, seri port tarafından alınan veriler hakkında Arduino seri monitöründe başarılı mesajı yazdırın.

 

gecikme ( 20 ) ;

Alınan veriler arasındaki herhangi bir gecikmenin üstesinden gelmek için programın yürütülmesini 20 milisaniye geciktirin.

Şimdi, LED'e bağlı GPIO pinini kontrol etmek için if ifadesinin iki örneği vardır.

 

if ( alınanChar == aç ){
SeriBT. println ( "LED AÇIK:" ) ;// BT uygulamasına yaz
Seri. println ( "LED AÇIK:" ) ;//seri monitöre yaz
digitalWrite ( LEDpin, HIGH ) ;// LED'i AÇIN
gecikme ( 20 ) ;
}
  • İlk if ifadesi, mobil cihazdan alınan değeri turnON ("ON" olarak başlatılır) değişkeniyle karşılaştırır.
  • Alınan değer “AÇIK” ise, hem seri monitörde hem de Bluetooth seri monitör uygulamasında LED'in AÇILDIĞI hakkında bir başarı mesajı yazdırılır. Ayrıca, LEDpin YÜKSEK olarak ayarlanmıştır , bu da yeşil LED'in AÇILMASI ile sonuçlanır.

 

if ( alınanChar == turnOFF ){
SeriBT. println ( "LED KAPALI:" ) ;// BT uygulamasına yaz
Seri. println ( "LED KAPALI:" ) ;//seri monitöre yaz
digitalWrite ( LEDpin, LOW ) ;// LED'i kapat
gecikme ( 20 ) ;
}
  • İkinci if ifadesi, mobil cihazdan alınan değeri turnOFF ("OFF" olarak başlatılır) değişkeniyle karşılaştırır.
  • Alınan değer "KAPALI" ise, hem seri monitörde hem de Bluetooth seri monitör uygulamasında LED'in KAPALI olduğuna dair bir başarı mesajı yazdırılır. Ayrıca, LEDpin DÜŞÜK olarak ayarlanmıştır , bu da yeşil LED'in KAPALI konuma gelmesine neden olur.

 AMAÇ : To ESP32 kartına bağlı harici LED kontrol .

Arduino IDE ile ESP32 bluetooth modülü kullanılarak yeşil LED AÇILDIYeşil LED, ESP32 Bluetooth modülü kullanılarak AÇILDI

Yeşil LED KAPALI
Yeşil LED KAPALI