HM-10 Bluetooth Modülü ve Arduino
Pinout diyagramı HM-10
HM-10 Bluetooth modülü, seri iletişim olarak bilinen tek bir iletişim yöntemine sahiptir. Cihazın kullanılması için her zaman üçüncü taraf bir cihaza bağlıdır. Tüm bu iğneler:
Pin Yapılandırma Ayrıntıları
VCC
Modülün güç girişine güç vermek için, VCC pini gücün pozitif terminaline bağlanır.
GND
Topraklama pimi, her DC devresinde güç ve diğer cihazların düzgün çalışması için ortak bir topraklama yapmak için her zaman önemlidir. GND pini, gereksinimi yerine getirmeye yardımcı olacaktır.
RX
HC10, veri gönderme ve alma için UART iletişim protokolünü takip eder. RX, verilerin Arduino / mikrodenetleyiciden alınmasına yardımcı olacaktır.
TX
TX, verileri Bluetooth'tan Arduino / mikrodenetleyiciye gönderecektir.
Durum
Bu pin sadece eyalet temsili içindir. Oluşturulan Bluetooth bağlantısı için durum pininde YÜKSEK bir çıkış sinyali olacaktır, aksi takdirde düşük olacaktır.
BRK
BRK, Bluetooth'un başka bir modülle bağlantısını kesmeye yardımcı olan kesintiyi temsil eder. Bağlantıyı kesmek için üzerine DÜŞÜK giriş sinyalini uygulayın.
Buton
Cihaz üzerinde BRK pini gibi bağlantıyı kesen bir düğme bulunmaktadır.
LED
Yerleşik led görselleştirme içindir. Bu, Bluetooth cihazının mevcut durumunu anlamaya yardımcı olur.
HM-10 BT Modül Özellikleri
- HM-10, en son 4.0 Bluetooth teknolojisine sahiptir.
- HM-10 ile bayt göndermede sınır yoktur.
- Bu modül ile çalışma durumunda bile güç tüketimi çok daha azdır.
- HC10 modülü, açık bir alanda 100 metre aralığında 2.5GHz frekans bandını kullanır.
- Sadece bağlantıların kesilmesiyle Master veya Slave olarak kullanılabilir.
- Modül, her TTL / CMOS cihazında ortak olan yalnızca 2-3.7V'de çalışır.
- Tek bir modülün 256Kb flash belleği ve 8Kb SRAM'ı vardır.
- Modül içerisinde UART haberleşmesi ile kullanılabilen yerleşik GPIO pinleri bulunmaktadır,
- GFSK (Gaussian Frequency Shift Keying), modül için verilerin aktarılmasına yardımcı olur.
- Cihaz, proje gereksinimine göre dahili ayarın yapılmasına yardımcı olan veri ve komut modu sunar.
HM-10 Bluetooth Modülü Uygulamaları
- Kulaklıklar ve fareler gibi her ticari cihaz, düşük güç tüketimi nedeniyle artık HM-10 kullanıyor.
- Dizüstü bilgisayarların çoğunda ayrıca 4.0 Bluetooth var.
- IoT'de sürekli veri gönderme cihazları da sınırsız özelliği nedeniyle HM-10'a sahiptir.
- Robotlar gibi her iki yönlü iletişim cihazı, uzaktan kumandalı arabalar geliştirme düzeyinde HM-10 kullanıyor.
HM-10 nasıl kullanılır
HM-10'un kullanımı diğer modüller gibi çok daha kolaydır. Modül doğrudan seri iletişim ile kullanılabilir, ancak bazen iletişim sırasında sorunla karşı karşıya kalır. Sorunları önlemek için kitaplıkları dijital pinlerle kullanmak daha iyidir. dış kitaplıkları kullanarak, programlama bazı geliştiriciler için karmaşık hale gelebilir. HM-10 modülü çoğunlukla Arduino'ya yardımcı olur çünkü bu kartla modül üzerinde yapılan çok iş vardır. HM-10'u kullanmak için aşağıdaki kütüphane iletişim kurmaya yardımcı oluyor.
#include <AltSoftSerial.h>
HM-10'u kullanırken kartın bazen Bluetooth'u etkileyebilecek seri iletişimi kullanması gerekebilir. Herhangi bir kesintiyi önlemek için dijital pinler bu kütüphanenin kullanımı ile Bluetooth ile iletişim kurabilir. Cihaz hem bağımlı hem de ana olarak hareket edebilir, ancak her iki modun da çalıştırılması için bazı talimatlar vardır.
Arduino nano ile arayüz oluşturan HM-10 Bluetooth Modülü
Arduino'nun Dijital pinlerini HM-10 ile kullanmak için aşağıdaki bağlantının kurulması gerekir.
Kitaplığın varsayılan olarak her seri iletişim modülünün izlemesi gereken bazı gereksinimleri vardır. Sadece belirli pinlerin seri olarak çalışmasına izin verir.
Farklı geliştirme panolarının seri pimleri
Farklı panolar için bunlar:
Yazı tahtası | İletim | Teslim almak | PWM kullanılabilir |
---|---|---|---|
Arduino Uno / Nano. | 9 | 8 | 10 |
Arduino Leonardo. | 5 | 13 | Yok |
Arduino Mega. | 46 | 48 | 44, 45 |
Teensy 3.0 ve 3.1. | 21 | 22 | 22 |
Teensy 2.0. | 9 | 10 | Yok |
Teensy ++ 2.0. | 25 | 4 | 26, 27 |
Sanguino. | 13 | 14 | 12 |
Kablolama-S. | 5 | 6 | 12 |
Slave / Master olarak HM-10 Bluetooth Modülü
Cihaz, varsayılan modda Slave / Master olarak hareket edecektir. Modülü slave olarak kullanmak için aşağıdaki kod yardımcı olacaktır.
#include <AltSoftSerial.h> AltSoftSerial bluetoothSerial; boolean NL = true; void setup() { Serial.begin(9600); while (!Serial) ; bluetoothSerial.begin(9600); } void loop() { char Serialdata; if (Serial.available()) { Serialdata = Serial.read(); bluetoothSerial.print(Serialdata); if (Serialdata!=10 & Serialdata!=13 ) { bluetoothSerial.write(Serialdata); } if (NL) { Serial.print("\r\n>"); NL = false; } Serial.write(Serialdata); if (Serialdata==10) { NL = true; } } if (bluetoothSerial.available()) { Serialdata = bluetoothSerial.read(); Serial.print(Serialdata); } }
Kod, Arduino ve Bluetooth arasındaki iletişim içindir. Kod, meşgul olduğunda Bluetooth ile iletişim kurmanıza yardımcı olacaktır. Bu yöntemle, veri modu ve komut moduna aynı kod kullanılarak erişilebilir.
HM-10 Komut ve Veri Modu
Cihaz bir veri ve komut modu olarak hareket edecektir, ancak komut moduna geçmek için bazı prosedürleri izlemesi gerekecektir. Komut modunda, cihaz slave'den master'a değiştirilebilir. Önce Arduino com portunu açın, ardından HC10 ile başka bir Bluetooth cihazı arasındaki bağlantıyı kesin, bu üç yöntemle yapılabilir.
- Tahtadaki düğme
- BRK pinine Yüksek giriş uygulayarak
- Cihazı yeniden başlatarak.
Bağlantı kesildikten sonra, cihaz tekrar bağlanacak ve com portundan tanınabilir. Şimdi komutu girin:
AT
Ardından bağlantıyı doğrulayacak bir "tamam" mesajı görünecektir.
AT Komutları
Artık aşağıdaki komutlar farklı işlevler için kullanılabilir.
KOMUTLAR | DETAY |
---|---|
AT | Komut moduna girmek için |
AT + NAME? | Mevcut modül adını verir |
AT + NAMEnewname | Modülün adını değiştirmek için bu komutu kullanın |
AT + ADDR? | HM-10 modülünün MAC adresini döndürür |
+ VERS?
+ VERR AT? | Modülün sürümünü döndürür |
AT + SIFIRLA | Dinlenme, bağlantıyı yeniden başlatmaya yardımcı olur |
AT + YENİLEME | Tüm ayarları tek bir komutla sıfırlamak için |
+ BAUD AT? | Baud hızlarının ayarlanması hakkında bilgi almak için |
AT + BAUDx | Baud hızı için yeni değerin ayarlanmasına yardımcı olacaktır |
AT + NOTI | Bildirim durumunu görüntülemek için |
AT + NOT0, AT + NOT1 | Bildirimleri açıp kapatmaya yardımcı olur. |
AT + NOTI? | Bildirim durumunu 0 ve 1 biçiminde görüntülemeye yardımcı olur |
AT + PASS? | Eşleştirmede şifrenin sorgulanması için |
AT + GEÇİŞ | Yeni Şifre belirlemek için |
AT + ROLE? | Modülün Modlarını kontrol etmek için |
AT + ROLEx | X'i bağımlı birim için 0 ve ana birim için 1 ile değiştirerek modları değiştirmek için |
AT + IMME? | Bağlantı kuran yöntemler seri monitörde görüntülenebilir |
AT + IMMEx | Otomatik bağlantı için X'i ve manuel ile 1'i değiştirin. |
AT + SIFIRLA | HM-10'u yeniden başlatacak |
AT + YENİLEME | Fabrika ayarlarına sıfırla |
Güvenlik sorunu
Güvenlik, modülde önemli bir sorun değildir. Yalnızca tek bir cihazla iletişim kurabilir. modül veri göndermeye devam eder ve diğer uçtan onay alır. Bağlantının kesilmesi durumunda cihaz bağlantısı kesilir ve veri aktarımını durdurur. Cihaz, diğer cihazlarla eşleşmek için de şifreyi kullanır. Otomatik ve manuel olmak üzere iki iletişim yöntemi vardır. Manuel yöntem, bilinmeyen herhangi bir cihazla bağlantıyı önlemeye yardımcı olur ve bu da onu daha güvenli hale getirir.
HM-10 Bluetooth Modülü Örneği
Bu örnekte, cihaz bir LED'i kontrol etmek için kullanılacaktır. Arduino'da yerleşik LED'ler de kullanılabilir. İlk önce devreyi aşağıdaki şemaya göre bağlar.
Şimdi verileri Bluetooth cihazına göndermek için önceden tasarlanmış herhangi bir mobil uygulama kullanılabilir Kullanılabilir ancak üçüncü taraf uygulamaları kullanmak için önce talimatlarını okuyun. Bu uygulamaların her bir düğme için her zaman özel talimatları vardır. Ardından aşağıdaki Arduino kodunun verdiği talimatı ayarlayın.
#include <AltSoftSerial.h> AltSoftSerial bluetoothSerial; boolean NL = true; void setup() { Serial.begin(9600); while (!Serial) ; bluetoothSerial.begin(9600); pinMode(13, OUTPUT); } void loop() { char Serialdata; if (Serial.available()) { Serialdata = Serial.read(); bluetoothSerial.print(Serialdata); if (Serialdata!=10 & Serialdata!=13 ) { bluetoothSerial.write(Serialdata); } if (NL) { Serial.print("\r\n>"); NL = false; } Serial.write(Serialdata); if (Serialdata==10) { NL = true; } } if (bluetoothSerial.available()) { Serialdata = bluetoothSerial.read(); if(Serialdata == 1) digitalWrite(13, HIGH); // Change the 1 according to the mobile app instructions else digitalWrite(13, LOW); Serial.print(Serialdata); } }
Bluetooth'tan gelen sinyal bir olduğunda sadece basit bir işlem yapmak ve LED çıkışını YÜKSEK yapmaktır.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.