- Gerekli Bileşenler
- ESP8266 HC-05 Bluetooth Modülü Devre Şeması
- HC-05 Bluetooth Modülü
- Seri Bluetooth Terminalini Kullanma (Android Uygulaması)
- NodeMCU ESP8266'nın Bluetooth arayüzüne programlanması
Günümüzde Bluetooth, dijital cihazların ayrılmaz bir parçası haline geldi ve Akıllı Telefon, Dizüstü Bilgisayar, PC, Kamera, Saatler, Spor Bantları ve daha pek çok cihazda yerleşik olarak geliyor. Bluetooth, keşfedildiğinden beri kablosuz iletişimde her zaman egemen protokole hakim olmuştur. Her ne kadar Bluetooth Teknolojisi temelde bir kablo değiştirme sistemi ama aynı zamanda mevcut veri ağlarına evrensel köprü ve çeşitli konfigürasyonlarda cihazların sayısı için bir ad hoc bağlantı mekanizmasını güçlendirir. Bluetooth modülü HC05 ve HC06'yı diğer birçok mikrodenetleyiciyle birlikte kablosuz olarak iletişim kurmaları için kullandık:
- Bluetooth HC-05 ile STM32F103C8 Mavi Hap arasında arayüz oluşturma: LED'i kontrol etme
- HC-05 Bluetooth modülünü AVR Mikrodenetleyici ile arayüzleme
- 8051 Mikrodenetleyici kullanan Android Kontrollü Robot
- Raspberry Pi GPIO'yu Bluetooth üzerinden Android Uygulamasını kullanarak kontrol etme
- Arduino ile Bluetooth Kontrollü Oyuncak Araba
Bugün, HC-05 Bluetooth Modülünü popüler Wi-Fi modülü ESP8266 ile arayüzleyeceğiz ve Bluetooth aracılığıyla komutlar göndererek bir LED'i kablosuz olarak kontrol edeceğiz. Bu LED, bir Ev Otomasyon Uygulaması oluşturmak için bir Röle ve bir AC cihazı ile değiştirilebilir.
Gerekli Bileşenler
Donanım:
- NodeMCU ESP8266
- HC-05 Bluetooth Modülü
Yazılım:
- Arduino IDE
- Seri Bluetooth Terminali (Android Uygulaması): Akıllı Telefonda Bluetooth Verilerini İzlemek İçin.
ESP8266 HC-05 Bluetooth Modülü Devre Şeması
Bluetooth modülü HC-05'i NodeMCU ESP8266 ile bağlamak için devre şeması çok basittir ve aşağıda gösterilmiştir:
ESP32 gibi dahili Bluetooth bulunmadığından, ESP8266 ile harici bir Bluetooth modülüne ihtiyaç vardır. ESP32, daha önce birkaç öğreticiyi ele aldığımız dahili Bluetooth Düşük Enerji (BLE) ve Klasik Bluetooth'a sahiptir:
- ESP32 BLE Sunucusu - Pil Seviyesi Göstergesi için GATT Hizmeti
- ESP32 BLE Client - Bir Ampulü Tetiklemek için Fitness Bandına Bağlanma
- ESP32'de Seri Bluetooth Nasıl Kullanılır
HC-05 Bluetooth Modülü
HC-05, bir seri Bluetooth modülüdür. AT komutları kullanılarak yapılandırılabilir. Üç farklı konfigürasyonda çalışabilir (Master, Slave, Loop back). Projemizde köle olarak kullanacağız. HC-05 modülünün özellikleri şunları içerir:
- Tipik -80dBm hassasiyet.
- Varsayılan baud hızı: 9600bps, 8 veri biti, 1 durdurma biti, eşlik yok.
- Otomatik eşleştirme pin kodu: "1234" veya "0000" varsayılan pin kodu.
- 6 iğneli.
- HC-05'e güç sağlamak için Vcc ve Gnd pinleri kullanılır.
- Mikrodenetleyici ile iletişim kurmak için Tx ve Rx pinleri kullanılır.
- HC-05 modülünü etkinleştirmek için pimi etkinleştirin. düşük olduğunda modül devre dışı bırakılır
- Durum pini durum göstergesi olarak işlev görür. Başka bir Bluetooth cihazıyla eşleştirilmediğinde / bağlanmadığında, LED sürekli olarak yanıp söner. Başka bir Bluetooth cihazına bağlandığında / eşleştirildiğinde, LED 2 saniyelik sabit bir gecikme ile yanıp söner.
Bluetooth modülü hakkında daha fazla bilgi edinmek için diğer Bluetooth ile ilgili projelerimizi inceleyin.
Seri Bluetooth Terminalini Kullanma (Android Uygulaması)
Bu uygulamayı kullanmak çok kolaydır ve birkaç adım gerektirir. Ekran görüntüleri aşağıda adımlarla verilmiştir. HC-05'i Smartphone ile eşleştirmeniz yeterli. Varsayılan kod "0000" veya "1234", ancak Çoğunlukla "1234" çalışıyor.
- Öncelikle uygulamayı indirip kurun Ardından HC-05 Modülünü bulmak için cihazlara gidin. Uygulamada aranan HC-05 Modülünü seçin. Bulunmazsa, HC-05'in düzgün şekilde güç alıp almadığını kontrol edin.
- HC-05'e tıkladıktan sonra bağlanacaktır. Şimdi mesaj kutusuna herhangi bir mesajı yazın ve gönderin. Arduino Seri Monitöründe yazdırılacaktır.
NodeMCU ESP8266'nın Bluetooth arayüzüne programlanması
NodeMCU ESP8266'yı ArduinoIDE kullanarak programlamak için, onu Mikro USB Kablosu kullanarak Dizüstü veya PC'den takın ve Arduino IDE'yi açın. Bu eğitim için, donanım serisi ve yazılım serisi kullanılacaktır. Donanım serisi, Arduino Seri Monitörüne veri okumak ve yazmak için kullanılacak ve Yazılım Seri, HC-05 ile iletişim kurmak için kullanılacaktır. Her zaman olduğu gibi tam kod ve Demo Video eğitimin sonunda verilmiştir.
Başlangıçta, bu eğitimde kullanılacağından Yazılım Seri kitaplığını dahil edin.
#Dahil etmek
Yazılım seri iletişimi için RX ve TX pinini tanımlayın, ayrıca NodeMCU'ya bağlı led pinini de tanımlayın. Pin D4'te bulunan NodeMCU'nun dahili LED'ini kullanıyoruz.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Yazılım ve Donanım Serisini 9600 baud hızında başlatın. Led Pinini çıkış olarak ayarlayın. Bir karşılama ve hata ayıklama mesajı yazdırın.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, ÇIKIŞ); Serial.println ("Başladı…");
Öncelikle, Bluetooth modülünden okuyun ve Bluetooth Modülü Telefondan “B” Alırsa, ardından NodeMCU'nun D4'üne bağlı Yanıp Sönen Led'i Başlat, aksi takdirde “S” alırsa yanıp sönmeyi durduracak bir durum tanımlayın . Burada delay () kullanmıyoruz. Ancak Arduino 'millis', Arduino'nun performansını engellememek için kullanılacaktır.
eğer (btSerial.available ()> 0) { char data = btSerial.read (); anahtar (veri) { 'B' durumu: ledB = "yanıp sönme"; kırmak; 'S' durumu: ledB = "durdur"; kırmak; varsayılan: ara; } }
Milis tanımlanır ve gecikmeyi 500ms olarak ayarlar, yani led her 500ms sonra yanıp söner. Ayrıca 'interval' değerini değiştirerek led gecikmesini yapılandırabilirsiniz. Lider durum değiştirilecek.
işaretsiz uzun currentMillis = millis ();
eğer (ledB == "yanıp sönme") { Serial.println ("yanıp sönme başladı"); eğer (currentMillis - previousMillis> = interval) { previousMillis = currentMillis; eğer (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
Ve bu, NodeMCU'nun Bluetooth kullanarak LED'i kablosuz olarak yanıp sönmesini programlamayı bitirecektir. Ayrıca, Bluetooth Ev otomasyon projesi yapmak için LED'in AC cihazlı bir Röle ile değiştirilebilmesi gibi LED ile farklı görevler yapmak için programı da değiştirebilirsiniz. Herhangi bir şüphe veya öneri olması durumunda lütfen forumumuza ulaşın veya aşağıdaki yorum yapın.