İçindekiler:

Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprü: 9 Adım (Resimlerle)
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprü: 9 Adım (Resimlerle)

Video: Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprü: 9 Adım (Resimlerle)

Video: Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprü: 9 Adım (Resimlerle)
Video: BUNU YAŞAMAYAN YOKTUR 😂 #emirbeşli #shorts 2024, Temmuz
Anonim
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprüsü
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprüsü
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprüsü
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprüsü
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprüsü
Basit WiFi'den BLE'ye (Bluetooth Düşük Enerji) Köprüsü

4 Aralık 2017 Güncellemesi -- Feather nRF52 eskizleri ve hata ayıklama ipuçları gözden geçirildi. Kutuya monte edilmiş köprü resimleri eklendi

Bu basit proje, Nordic'in TX Notify ile UART'ını uygulayan herhangi bir Bluetooth Düşük Enerji (BLE) modülüne WiFi erişimi sağlar. Wifi2BLE köprüsü tamamen şeffaftır. Sadece WiFi verilerini BLE cihazına iletir ve BLE cihazının verilerini tekrar WiFi bağlantısına iletir.

Ücretsiz pfodDesignerV3, Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 ve V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend ve Flora Boards dahil olmak üzere birçok BLE modülünde Nordic UART Hizmeti uygulamak için kod üretir., Adafruit Bluefruit LE SPI (yani Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE veya Bluefruit LE SPI Friend) ve kendi servisinizi programlamanıza izin veren diğer panolar.

Bu Wifi2BLE köprüsü, lehim yapabilen deneyimsiz inşaatçılar için uygundur. Yalnızca iki kart, bir şerit kablo ve iki direnç kullanır

Her pano için ayrıntılı testin yanı sıra, bu talimat, daha fazla arıza bulma ipucu içeren bir Yardım - Çalışmıyor adımı içerir.

Bu talimatlar çevrimiçi olarak da mevcuttur

Neden Bu Proje?

Bu proje, BLE'nin (Bluetooth Düşük Enerji) sahip olduğu bir takım sorunları çözmektedir.

  • Yalnızca yeni cep telefonları ve bilgisayarlar BLE'yi destekler. Wifi2BLE köprüsü, WiFi bağlantısı olan herhangi bir mobil veya bilgisayarın BLE cihazına bağlanmasına ve kontrol etmesine olanak tanır.
  • BLE sınırlı menzile sahiptir. Wifi2BLE köprüsü, BLE cihazına evin herhangi bir yerinden (WiFi bağlantısının olduğu yerde) ve dışarıdan İnternet üzerinden erişmenizi sağlar.
  • BLE uygulamaları oluşturmak, Android veya iOS öğrenmenizi gerektirir. Wifi2BLE köprüsü, herhangi bir terminal programı aracılığıyla evrensel bir telnet bağlantısı sağlar. Dahası, kendi özel arayüzünüzü oluşturmak için WiFi modülüne kolayca bir web sayfası ekleyebilirsiniz.
  • BLE V5, yazılım en son Bluetooth spesifikasyonunu yakaladığında tüm ev BLE cihazlarınızı bağlamak için ağ ağı vaat ediyor. Wifi2BLE köprüsü, bir BLE V5 cihazı kullanır ve bu nedenle, bu ev ağına ulaştığında internet erişimi sağlar.

Bu proje için benim hemen kullanımım, evin herhangi bir yerinden kontrol edilmesini sağlamak için WiFi ağına salon odası BLE ışık kontrolünü eklemek. Bu öğretici, WiFi üzerinden BLE kartlarını kontrol etme örneği olarak pfodApp kullanıyor olsa da, bu projeyi tamamlamak için pfodApp satın almanız gerekmez.

Adım 1: Parça Listesi

Maliyet 30 Kasım 2017 itibariyle, nakliye + küçük bir plastik muhafaza hariç 60 ABD Doları

Adafruit Feather nRF52 Bluefruit LE – nRF52832 – ~25 ABD Doları

Adafruit HUZZAH ESP8266 Breakout - ~US$10

Ayrı dişi uçlu Şerit Kablo – Bus Korsan Kablosu ~US$5 https://www.sparkfun.com/products/9556 VEYA 10-pin IDC Soket Rainbow Breakout Kablosu ~US$4 https://www.sparkfun.com/products/ 9556 VEYA benzeri

Break Away Erkek Başlıklar - Sağ Açı – ~ 2 ABD Doları

USB'den TTL'ye 3V3 Seri Kablo – ~US$10 https://www.sparkfun.com/products/12977 (Pinleri etiketli olduğu için tercih edilir) VEYA https://www.sparkfun.com/products/12977 (pinler DEĞİLDİR) etiketli)

USB A'dan Mikro B'ye kablo – ~ 4 ABD Doları https://www.sparkfun.com/products/12977 (3 fit uzunluğunda) VEYA ~ 3 ABD Doları https://www.sparkfun.com/products/12977 (6 inç uzunluğunda) VEYA ~2 ABD Doları https://www.sparkfun.com/products/12977 (6 inç uzunluğunda) VEYA ~5 ABD Doları https://www.sparkfun.com/products/12977 (6 fit uzunluğunda) VEYA benzeri

2 x 100 ohm direnç – ~ 1 ABD Doları

USB güç kaynağı (500mA veya daha fazla) – ~6 ABD Doları https://www.sparkfun.com/products/12890 VEYA ~7 ABD Doları https://www.adafruit.com/product/1994 VEYA benzeri

Arduino IDE V1.8.5 ve onu çalıştıracak bir bilgisayar.

Plastik bir kutu için Jaycar UB5'ten (mavi) 83mm x 54mm x 31mm ~A$4 kullandım

Adım 2: Wifi2BLE Devresi

Wifi2BLE Devresi
Wifi2BLE Devresi

Wifi2BLE devresi yukarıda gösterilmiştir. Bir pdf versiyonu burada. Gördüğünüz gibi devre çok basit. Sadece 4 kablo ve iki adet 100 ohm koruma direnci. HUZZAH ESP8266 veya Feather nRF52'yi programladıktan sonra TX / RX hatlarını yanlış bağlamanız durumunda koruma dirençleri vardır.

NOT: TX ve RX pinleri için Feather nRF52 kartı işaretlemesi doğru değildir. TX pini aslında DFU pininin yanındakidir ve RX pini MISO pininin yanındakidir

TX/RX hatlarını yukarıda gösterildiği gibi bağladığınızdan emin olun. Neyse ki koruma dirençleri işini yaptı ve ben panoların neden birbirini tutmadığını çözerken panolar zarar görmedi.

3. Adım: Wifi2BLE Yapısı

Wifi2BLE İnşaat
Wifi2BLE İnşaat
Wifi2BLE İnşaat
Wifi2BLE İnşaat
Wifi2BLE İnşaat
Wifi2BLE İnşaat

Programlama için fişinin çekilmesine izin vermek için HUZZAH ESP8266'ya lehimlenen dik açılı başlık pimleri. İki kartı bağlamak için şerit kablonun dört teli kullanılır. Dişi pim konektörlerini tutun ve şerit kablonun diğer ucunu kesin. Şerit kablomun Sparkfun USB - TTL programlama kablosuyla aynı renkleri vardı, bu yüzden ona uygun kabloyu seçtim. GND için Siyah, 5V+ için Kırmızı, TX için Turuncu (ESP8266 RX'e bağlanır) ve RX için Kahverengi (ESP8266 TX'e bağlanır)

Koruma dirençlerini Feather nRF52 kartının arkasına bağladım. (Direnç kodlarını bilen gözlemci inşaatçılar, 100 ohm yerine elimdeki iki adet 68 ohm'luk direnç kullandığımı görecekler) ve sonra bunları bir miktar streç filmle yalıttım.

Kırmızı kablo, HUZZAH ESP8266 modülüne güç sağlamak için USB 5V'yi almak için Feather nRF52 USB pimine lehimlenmiştir ve Siyah kablo, Feather nRF52 GND pimine lehimlenmiştir.

Aşağıda açıklandığı gibi modülleri programlamak, plastik bir kutuya koymak ve bir USB güç kaynağını Feather nRF52'ye takmak dışında her şey var.

Adım 4: Wifi2BLE Programlama

Wifi2BLE Programlama
Wifi2BLE Programlama
Wifi2BLE Programlama
Wifi2BLE Programlama
Wifi2BLE Programlama
Wifi2BLE Programlama

HUZZAH ESP8266'nın Programlanması

Kalkanı programlamak için https://github.com/esp8266/Arduino'da Installing With Boards Manager altında verilen talimatları izleyin. Araçlar → Pano menüsünden Pano Yöneticisini açarken, Katkıda Bulundu'yu seçin ve esp8266 platformunu yükleyin. Bu proje, ESP8266 sürüm 2.3.0 kullanılarak derlenmiştir. Diğer sürümlerin kendi hataları olacaktır ve bu kodla çalışmayabilir.

NOT: Adafruit Board kurulumunu KULLANMAYIN çünkü burada kullanılan taslak bu kod altında derlenmeyecektir.

Arduino IDE'yi kapatıp yeniden açın ve şimdi Araçlar → Pano menüsünden “Adafruit HUZZAH ESP8266” seçeneğini seçebilirsiniz.

Ayrıca pfodESP8266WiFiBufferedClient kitaplığının en son sürümünü de yüklemeniz gerekir. Bu kitaplık, ESP8266.com IDE eklentisi V2.3 ile çalışır. (Daha önce pfodESP2866WiFi kitaplığını kurduysanız, o kitaplık dizinini tamamen silin.)

  • a) Bu pfodESP8266WiFiBufferedClient.zip dosyasını bilgisayarınıza indirin, masaüstünüze veya kolayca bulabileceğiniz başka bir klasöre taşıyın.
  • b) Ardından Arduino 1.8.5 IDE menü seçeneği Sketch → Import Library → Add Library kullanarak kurulumu yapın. (Arduino, kütüphane zaten mevcut olduğu için yüklemenize izin vermiyorsa, eski pfodESP8266BufferedClient klasörünü bulun ve silin ve ardından bunu içe aktarın)
  • c) Arduino IDE'yi durdurun ve yeniden başlatın ve Dosya->Örnekler altında şimdi pfodESP8266BufferedClient görmelisiniz.

Ağ ssid ve parolasını ve IP ve bağlantı noktasını ayarlama

pfodESP8266BufferedClient kitaplığını kurduktan sonra, Arduino IDE'yi açın ve bu çizimi, Wifi_Bridge.ino'yu IDE'ye kopyalayın. Modülü programlamadan önce ağınızın ssid ve şifresini ayarlamanız ve kullanılmayan bir IP seçmeniz gerekir.

Bu üç satırı Wifi_Bridge.ino'nun üst kısmına yakın bir yerde düzenleyin

char ssid = "**** ***"; karakter şifresi = "*************"; char staticIP = "10.1.1.180";

Yerel ağımı taramak ve halihazırda kullanılan IP'yi belirlemek için Fing (Android veya iOS) uygulamasını kullanıyorum. 0,180 ila 0,254 aralığında kullanılmayan bir IP seçmek genellikle güvenlidir.

Başlangıç olarak portNo'yu telnet bağlantısı için standart port olan 23 olarak bırakabilirsiniz.

Bu değişiklikleri yaptıktan sonra ESP8266'yı programlayabilirsiniz.

HUZZAH ESP8266'nın Programlanması

HUZZAH ESP8266'yı programlamak için USB'yi Seri kabloya fotoğrafta gösterildiği gibi bağlayın. Fotoğrafı ve kablolamanızı kontrol edin. Ayrıca ESP8266 Programlama İpuçlarına bakın (espcomm başarısız oldu)

Sparkfun USB - TTL 3V3 Seri Kablosunu kullanıyorum çünkü üzerinde TX ve RX uçları işaretli. TX kablosunun RX pimine takıldığından ve RX kablosunun yukarıda gösterildiği gibi TX pimine takıldığından emin olun. Adafruit kablosunu kullanıyorsanız, terminalleri işaretli değil ancak renk kodlu, kırmızı güç, siyah toprak, yeşil TX ve beyaz RX.

USB - Seri kablosunu bilgisayarınıza takın ve Araçlar → Bağlantı Noktası menüsünde COM bağlantı noktasını seçin. CPU Frekansı, Flash Boyutu ve Yükleme Hızını varsayılan ayarlarında bırakın.

Ardından GPIO0 düğmesini basılı tutup Sıfırla düğmesini tıklatarak ve ardından GPIO0 düğmesini bırakarak Adafruit HUZZAH ESP2866 modülünü programlama moduna getirin. GPIO0 ledi loş olarak yanmalıdır. Ardından Dosya → Yükle'yi seçin veya programı derlemek ve yüklemek için Sağ Ok düğmesini kullanın. Yükleme sırasında bir hata mesajı alırsanız, kablo bağlantılarınızın doğru pinlere takılı olup olmadığını kontrol edin ve tekrar deneyin.

Programlama tamamlandığında modül üzerindeki Kırmızı Led yanmalıdır. Bu, yerel ağınıza başarıyla bağlandığını ve sunucuyu bir bağlantıyı kabul etmek için başlattığını gösterir.

HUZZAH ESP2866'nın Test Edilmesi

HUZZAH ESP2866'yı test etmek için, programlama kablosunu bağlı bırakın ve Arduino IDE Tools → Seri Monitör'ü açın ve 9600 baud'u ayarlayın (sağ alt köşe). Ardından bilgisayarınızda bir terminal programı açın, Windows için TeraTerm ve Mac için CoolTerm kullanıyorum ve Wifi_Bridge.ino taslağında ayarladığınız IP ve portNo'ya bağlanıyorum.

Bağladığınızda modül üzerindeki Kırmızı Led bağlantı olduğunu gösterecek şekilde yanıp sönmeye başlamalıdır. Artık bilgisayarlarınızın terminal penceresine yazabilmeli ve karakterler Arduino IDE'nin monitör penceresinde görünmelidir ve bunun tersi de geçerlidir.

Wifi Bağlantı Zaman Aşımı

Wifi_Bridge.ino kodunun bir bağlantı süresi vardır.

uint32_t bağlantıZaman aşımı = 60000; // 60sn bağlantı zaman aşımı

HUZZAH ESP8266 modülüne 60 saniye boyunca WiFi verisi gelmezse modüller bağlantıyı keser ve yenisini bekler. Bu, modülün, kötü WiFi bağlantısı, yönlendiricideki güç kaybı veya istemcinin zorla kapatılması nedeniyle istemcinin kaybolması durumunda meydana gelen 'yarı kapalı' bağlantılardan kurtulmasını sağlar. Daha fazla ayrıntı için bkz. Yarı Açık (Bırakılan) TCP/IP Soket Bağlantılarının Algılanması.

Bu bağlantı zaman aşımı 60 sn olarak ayarlanmıştır. ancak ihtiyaca göre azaltılabilir veya artırılabilir. 0'a ayarlamak, tavsiye edilmeyen hiçbir zaman zaman aşımına uğramamak anlamına gelir.

Feather nRF52'nin Programlanması

Feather nRF52'yi programlamak için, Feather nRF52 için Arduino Board desteğini indirme ve yükleme talimatlarını izleyin. Kartı USB kablosuyla bağlayıp programlayamadığınızı kontrol edin.

NOT: Feather'ı programlamaya çalışmadan önce HUZZAH ESP8266 modülünü Feather nRF52'den çıkarın

Feather nRF52'yi bir BLE cihazına bağlamak iki adımdan oluşur. Önce cihazdaki MAC adresini (ve türünü) belirleyip, TX Notify ile Nordic UART hizmetini desteklediğini kontrol edin ve ardından bu adresi ve türü köprü taslağına aktarın.

Adım 5: Bir BLE Cihazına Bağlantı

Bir BLE Cihazına Bağlantı
Bir BLE Cihazına Bağlantı
Bir BLE Cihazına Bağlantı
Bir BLE Cihazına Bağlantı
Bir BLE Cihazına Bağlantı
Bir BLE Cihazına Bağlantı

HUZZAH ESP8266 programlandıktan sonra Feather nRF52 çizimine bağlanmak istediğiniz cihazın BLE adresini ve tipini kodlamanız gerekmektedir. Bu iki aşamalı bir süreçtir. I) Nordic UART Hizmetini (TX Notify) uygulayan yakındaki BLE cihazlarını bulmak için tarama programını çalıştırın ve ardından bu cihaza bağlanmasını sağlamak için tarayıcının çıktısını Feather köprüsü taslağına kopyalayın.

BLE Çevre Birimleri için Tarama

Uyumlu BLE çevre birimlerini belirlemek için central_bleuart_scanner.ino programını Feather nRF52'nize yükleyin. Bu program sürekli olarak yeni cihazları tarar ve ardından TX Notify ile Nordic UART hizmetini destekleyip desteklemediklerini kontrol eder.

İskandinav UART Hizmeti

Nordic UART Hizmeti, Hizmet UUID'si ve RX ve TX özellikleri olmak üzere üç bölümden oluşur. İşte RedBear NanoV2 için pfodDesignerV3 tarafından oluşturulan bazı örnek kodlar

BLEService uartService = BLEService("6E400001B5A3F393E0A9E50E24DCCA9E");

BLEKarakteristik rxKarakteristik = BLEKarakteristik("6E400002B5A3F393E0A9E50E24DCCA9E", BLEWrite, BLE_MAX_LENGTH); BLECharacteristic txCharacteristic = BLECharacteristic("6E400003B5A3F393E0A9E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH);

pfodDesignerV3, bir dizi BLE modülü için örnek kod oluşturabilir. Ancak 'standart' bir UART bağlantısı için BLE spesifikasyonu olmadığından, tüm modüller Nordic UART hizmetini kullanmaz. Örneğin HM-10 modülleri (Itead BLE kalkanı), RFduno ve Romeo BLE kendi benzersiz uart hizmetlerini kullanır ve bu nedenle Feather nRF52'ye bağlanmaz.

Aşağıdaki kartlar bağlanacaktır: - Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 ve V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend ve Flora Boards, Adafruit Bluefruit LE SPI (yani Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE veya Bluefruit LE SPI Friend) Özel Servisler ile kodlanabilen panolar veya BLEPeripheral kitaplığını kullanabilen panolar.

Burada kullanılan örnek kart, pfodDesignerV3 tarafından üretilen kodlu Arduino/Genuino 101'dir. Ücretsiz pfodDesignerV3, pfodApp menüleri oluşturmanıza ve ardından (ücretli) pfodApp kullanarak Android cep telefonunuzda tam menüyü göstermek için gerekli Arduino kodunu oluşturmanıza olanak tanır. pfodApp ayrıca Wifi, Bluetooth Classic, BLE ve SMS ile bağlanacak ve bu Wifi2BLE köprüsü üzerinden bağlanabilecek. Ancak kontrol uygulamanız olarak pfodApp kullanmak istemeseniz bile, BLE kartınız için bir Nordic UART hizmet kodu oluşturmak için pfodDesignerV3'ü kullanabilirsiniz.

Bu öğretici bağlantı, Arduino/Genuino 101 BLE'yi kurmayı ve pfodDesignerV3 ile basit bir LED açma/kapama kontrolü oluşturmayı açıklar. pfodDesignerV3 tarafından üretilen çizim Arduino101_led_control.ino'dur.

Arduino/Genuino 101'i Arduino101_led_control.ino ile programlamak, pfodApp ile bağlantı kurmanıza ve Android cep telefonunuzda aşağıdaki ekranı görüntülemenize izin verecektir.

Ancak bu sadece bir örnek ve bu projeyi tamamlamak için pfodApp satın almanıza gerek yok. Önemli olan kısım, ücretsiz pfodDesignerV3 uygulamasının bir Nordic UART Hizmeti uygulayan Arduino/Genuino 101 için kod oluşturmasıdır. Bu yüzden onu tarayalım.

Ancak bu sadece bir örnek ve bu projeyi tamamlamak için pfodApp satın almanıza gerek yok. Önemli olan kısım, ücretsiz pfodDesignerV3 uygulamasının bir Nordic UART Hizmeti uygulayan Arduino/Genuino 101 için kod oluşturmasıdır. Bu yüzden onu tarayalım.

Nordik UART Hizmeti için Tarama

HUZZAH ESP8266 modülünün Feather nRF52 ile bağlantısı kesildiğinde, Feather nRF52'yi central_bleuart_scanner.ino ile programlayın ve ardından Arduino IDE Tools → Seri Monitör'ü açın ve baud hızını 9600'e ayarlayın. Arduino/Genuino 101'in çalıştırılması aşağıdaki şekilde gösterilen çıktıyı verir. Yukarıdaki ilk ekran görüntüsü.

Gördüğünüz gibi, tarayıcı iki BLE cihazı buldu, üzerinde bir Nordic UART servisi bulunan bir Arduino/Genuino 101, ANCAK TX özelliği Notify'ı desteklemiyordu. Tarayıcı ayrıca bir RFduino BLE modülü buldu, ancak RFduino Nordic UART Hizmetini kullanmıyor, bunun yerine kendi modülünü kullanıyor. Bluetooth Komitesi bunun için 'standart' bir UART Hizmeti belirtmediği için suçu üstleniyor, bunun yerine her üreticiyi kendi hizmetini oluşturmaya bırakıyor.

Yukarıda ele alındığı gibi, 101 kodu pfodDesignerV3 tarafından öncelikle pfodApp ile kullanım için oluşturulmuştur. pfodApp, Feather nRF52 uart kodu kadar TX Notify hakkında seçici değildir. pfodApp, programlandığı gibi 101 ile çalışır, ancak Feather nRF52, TX Notify'da ısrar eder, bu nedenle Feather'ı tatmin etmek için kodda küçük bir değişiklik gerekir.

Arduino IDE'de Arduino101_led_control.ino'yu açın ve en üstte bu iki satırı bulacaksınız. İkinci satır sadece özelliğin bir açıklamasıdır ve işlemi etkilemez.

BLECharacteristic txCharacteristic = BLECharacteristic("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLEIndicate, BLE_MAX_LENGTH);BLEDescriptor txNameDescriptor = BLEDescriptor("2901", "TX –"); (Indicate)

Onları değiştir

BLEKarakteristik txKarakteristik = BLEKarakteristik("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor("2901", "TX - (Bildir)");

Ardından 101'i bu düzenlenmiş sürüm Arduino101_Notify_led_control.ino ile yeniden programlayın. Ardından Feather nRF52 tarayıcıyı (central_bleuart_scanner.ino) yeniden çalıştırdığınızda, Seri Monitör yukarıdaki ikinci ekran görüntüsünü gösterir.

Artık Genuino 101 için hata yok ve tarayıcı, 101'e bağlanacak şekilde Feather nRF52 köprü taslağı için gereken kodu yazdırıyor. Tarayıcı, menzil içinde bulduğu her cihazı kontrol edecek. Nordic UART Service (TX Notify) ile bulunan her cihaz için Kırmızı led bir kez yanıp söner.

6. Adım: Bir BLE Çevre Birimine Bağlanma

LED Göstergeleri

Feather nRF52, Mavi ve Kırmızı olmak üzere iki led'e sahiptir. Kart bir BLE cihazına bağlandığında Mavi Led sabittir, aksi halde yanıp söner. Tarayıcı cihaza bağlı kalmaz, bu nedenle Mavi led'i genellikle yanıp söner. Kırmızı led, her Nordic UART Service (TX Notify) cihazı için bir kez yanıp söner. Tarayıcı olarak çalışırken Kırmızı Led, bulunan Nordic UART Service (TX Notify) cihazlarının sayısını sayar. Köprü olarak çalışırken, kod BLE adresine bağlandığında Kırmızı Led bir kez yanıp söner.

BLE Çevre Birimi'ne Bağlanma

Tarayıcı çizimi, bağlanmak istediğiniz BLE cihazının ayrıntılarını sağladığına göre, çıktıyı central_bleuart_bridge.ino çizimine kopyalayabilirsiniz. Bu taslağın üst kısmına yakın bir yerde aşağıdaki kodu bulacaksınız.

// Sonraki üç kod satırı, central_bleuart_scanner.ino çıktısından gelir

const char *BLE_NAME = "GENUINO 101-FC8F"; const karakter *BLE_ADDRESS = "98:4F:EE:0C:FC:8F"; const uint8_t BLE_ADDRESS_TYPE = 0;

Köprü yapmak istediğiniz BLE cihazı için tarayıcının çıktısıyla üç satırlık kodu değiştirin. Ardından Feather nRF52'yi, düzenlenmiş central_bleuart_bridge.ino taslağıyla programlayın.

Central_bleuart_bridge çizimini test etme

HUZZAH ESP8266'yı Feather nRF52'ye tekrar takmadan önce, BLE cihazınızla olan bağlantıyı test edin. Arduino IDE'nize bağlı Feather nRF52'yi bırakarak, Araçlar → Seri Monitörü 9600 baud'da açın ve ardından hedef BLE cihazınızın açık olduğunu kontrol edin.

BLE cihazınıza yukarıda anlatıldığı gibi bağlantı yapıldığında Mavi led sürekli yanacak ve Kırmızı led yaklaşık 10 saniyede bir yanıp sönecektir. Bu, bağlantının kurulmamasını ve sürdürülmesini sağlar.

Ardından Seri Monitörde BLE cihazınıza göndermeyi beklediğiniz komutları girebilir ve çalışmasını izleyebilir ve geri gönderdiği yanıtı izleyebilirsiniz. Her şey yolundaysa, HUZZAH ESP8266 modülünü kapatıp takabilirsiniz.

7. Adım: WiFi Üzerinden BLE Cihazına Bağlanma – Hepsini Bir Araya Getirme

HUZZAH ESP8266 modülünü köprü kodu (Wifi_Bridge.ino) ile ağ ssid'niz ve şifreniz ve IP'niz için yapılandırılmış olarak programlayıp test ettikten ve BLE cihazının adresiyle yapılandırılmış köprü koduyla (central_bleuart_bridge.ino) Feather nRF52'yi programlayıp test ettikten sonra ve yazın, ardından bunları birbirine bağlayabilir ve her ikisini de çalıştırmak için Tüy modülüne bir USB kaynağı takabilirsiniz.

HUZZAH modülü Kırmızı ledi yerel ağ yönlendiricinize bağlanırken sabit yanmalı ve BLE cihazınıza bağlanırken Tüy Mavi led sürekli yanmalı ve Tüy Kırmızı led, sadece açık olduğunu belirtmek için her 10 saniyede bir yanıp sönmelidir. BLE cihazı bağlı.

Telnet programınızı açın ve HUZZAH'ın IP ve portuna bağlanın. HUZZAH Kırmızı ledi programınızın bağlandığını belirtmek için yavaş yanıp sönmeli ve BLE cihazınıza WiFi üzerinden komutlar göndermeli ve BLE cihazının çalışmasını izlemeli ve telnet pencerenizde herhangi bir yanıt görmelisiniz. Unutmayın, BLE cihazınız 60sn boyunca herhangi bir veri göndermezse, HUZZAH kodunun bağlantı zaman aşımına uğrayacağını ve bağlantıyı keseceğini ve HUZZAH Kırmızı ledinin tekrar sabit yanacağını unutmayın.

Adım 8: Yardım – Çalışmıyor

İlk önce, HUZZAH ESP2866'yı Test Etme ve Central_bleuart_bridge taslağını test etme, yukarıda ayrıntılı olarak açıklanan test adımlarını gerçekleştirin.

Tarama Sorunları

Tarayıcı BLE cihazını bulamıyorsa ya çok uzaktadır ya da reklam yapmıyordur ya da zaten bir şeye bağlı. Tarayıcıyı yaklaştırmayı ve cihazı kapatıp açmayı ve BLE cihazıyla bağlantısı olabilecek yakınlardaki diğer tüm mobil cihazları kapatmayı deneyin.

Bunun gibi bir tarayıcı çıktısı alırsanız.

98:4F:EE:0C:FC:8F'ye bağlı Nordic UART hizmeti aranıyor… Hiçbiri bulunamadı VEYA Keşfedilemez!!!!! Bir Nordic UART Hizmeti Tanımlanamadı !!!!!!!! Nordic UART Hizmeti bekliyorsanız, Tarayıcıyı BLE cihazına yaklaştırın !!!!

BLE cihazına onu algılayacak kadar yakın olabilirsiniz, ancak Nordic UART hizmetini bulmak için başarılı bir Hizmet keşfi yapacak kadar yakın olmayabilirsiniz. BLE cihazına yaklaşmayı deneyin.

Son çare olarak Android veya iOS için ücretsiz Nordic nRF Connect uygulamasını kullanabilirsiniz. Bu uygulama daha iyi menzile ve hassasiyete sahip. BLE cihazının bir Nordic UART Hizmeti olup olmadığını size söyleyecektir. Bununla birlikte, tarayıcıya benzer bir kod kullandığından Wifi2BLE köprüsünü kullanmaya çalışmadan önce tarayıcının Nordic UART Serivice'yi çalıştırmasını ve bağlamasını ve tanımlamasını sağlamanız gerekir.

Daha derine inmek istiyorsanız, havada ne olduğunu görmek için Adafruit Bluefruit LE Sniffer modülünü kullanabilirsiniz.

BLE Bağlantı Sorunları

BLE cihazını taramayı başardıysanız, bağlantı sorunlarının en olası nedenleri şunlardır: I) BLE cihazı çok uzakta, II) BLE cihazına zaten başka bir şey bağlanmış

WiFi Bağlantı Sorunları

HUZZAH ESP8266 Kırmızı led sürekli yanmıyorsa routerınız üzerinden ağınızla bağlantısı yoktur. Wifi_Bridge.ino'da kodunuz olan ssid ve şifreyi kontrol edin ve tahsis ettiğiniz IP'nin henüz kullanılmadığını kontrol etmek için Android veya iOS Fing uygulamasını kullanın. Tüm bilgisayarlarınızı ve cihazlarınızı kapatmayı ve yönlendiriciyi kapatıp açmayı deneyin (20 saniye kapalı bırakın) ve ardından tekrar Fing ile tarayın. Son olarak, bağlantı kesilmeye devam ederse, Wifi_Bridge.ino kodundaki bağlantı zaman aşımı ayarını unutmayın.

9. Adım: Uzantılar ve Sonuç

Burada sunulan proje en basit versiyondur. Aşağıdakiler gibi bir dizi olası uzantı vardır: -

  • Feather nRF52, aynı anda 4 adede kadar BLE cihazına bağlanabilir, böylece daha geçerli adresler eklemek için kodu değiştirebilir ve tek bir WiFi bağlantısından 4 adede kadar cihazı kontrol edebilirsiniz. Feather nRF52 kartı kurulumuyla birlikte gelen örnek koda bakın.
  • İnternet üzerindeki herhangi bir yerden BLE cihazına erişim sağlamak için yönlendiricinizde bir delik açabilirsiniz. Bkz. DIY IoT cihazlarını pfodApp ile İnternet'e bağlama.
  • HUZZAH için WiFi ağ parametrelerini yeniden programlamadan bir web sayfası üzerinden yapılandırmanıza izin vermek için Ucuz/Basit Wifi Kalkanı kodunu kullanabilirsiniz. Devreye bir konfigürasyon butonu eklemeniz gerekir.
  • Feather nRF52'nin Nordic UART (TX Bildirimi) ile BLE cihazları için tarama yapmasını sağlayan bir yapılandırma düğmesi (yukarıdakiyle aynı düğmeyi kullanarak) ekleyebilir ve ardından en güçlü sinyale sahip olanın bağlantı ayrıntılarını kaydedebilirsiniz. Sonucu kaydetmek için Adafruit nRF52 board kurulumu ile birlikte gelen nffs kütüphanesini kullanmanız gerekecektir.
  • BLE cihazınız için özel bir arayüz sağlamak için HUZZAH ESP8266 koduna bir web sayfası ekleyebilirsiniz. Ayrıca pfodDesignerV3'ü kullanabilir ve pfodApp bu projede hiçbir değişiklik yapmadan özel bir arayüz ekleyebilirsiniz.

Çözüm

Bu basit proje, Nordic'in TX Notify ile UART'ını uygulayan herhangi bir Bluetooth Düşük Enerji (BLE) modülüne WiFi erişimi sağlar. Wifi2BLE köprüsü tamamen şeffaftır. Sadece WiFi verilerini BLE cihazına iletir ve BLE cihazının verilerini tekrar WiFi bağlantısına iletir.

Basit yapı ve ayrıntılı test talimatları, bunu BLE cihazlarına bilgisayarlarından veya BLE'nin normal aralığının dışından erişmek isteyen yeni başlayanlar için uygun bir proje haline getirir.

BLE cihaz yazılımı yeni Bluetooth V5 Mesh spesifikasyonunu yakaladığında bu proje daha önemli hale gelecektir. Ardından Wifi2BLE, tüm ev otomasyonunuza internet erişimi sağlayacaktır.

Önerilen: