Spisu treści:

Prosty most WiFi do BLE (Bluetooth Low Energy): 9 kroków (ze zdjęciami)
Prosty most WiFi do BLE (Bluetooth Low Energy): 9 kroków (ze zdjęciami)

Wideo: Prosty most WiFi do BLE (Bluetooth Low Energy): 9 kroków (ze zdjęciami)

Wideo: Prosty most WiFi do BLE (Bluetooth Low Energy): 9 kroków (ze zdjęciami)
Wideo: A Wy na jakim etapie związku jesteście? 😂 #shorts 2024, Lipiec
Anonim
Prosty most WiFi do BLE (Bluetooth Low Energy)
Prosty most WiFi do BLE (Bluetooth Low Energy)
Prosty most WiFi do BLE (Bluetooth Low Energy)
Prosty most WiFi do BLE (Bluetooth Low Energy)
Prosty most WiFi do BLE (Bluetooth Low Energy)
Prosty most WiFi do BLE (Bluetooth Low Energy)

Aktualizacja 4 grudnia 2017 - poprawione szkice Feather nRF52 i wskazówki dotyczące debugowania. Dodano zdjęcia mostu zamontowanego w pudełku

Ten prosty projekt zapewnia dostęp Wi-Fi do dowolnego modułu Bluetooth Low Energy (BLE), który implementuje Nordic UART z TX Notify. Most Wifi2BLE jest całkowicie przezroczysty. Po prostu przekazuje dane Wi-Fi do urządzenia BLE i przekazuje dane urządzenia BLE z powrotem do połączenia Wi-Fi.

Bezpłatny pfodDesignerV3 generuje kod do implementacji usługi Nordic UART w wielu modułach BLE, w tym Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 i V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend i Flora Boards, Adafruit Bluefruit LE SPI (tj. Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE lub Bluefruit LE SPI Friend) oraz wszelkie inne tablice umożliwiające programowanie własnych usług.

Ten mostek Wifi2BLE jest odpowiedni dla niedoświadczonego konstruktora, który potrafi lutować. Wykorzystuje tylko dwie płytki, jeden kabel taśmowy i dwa rezystory

Oprócz szczegółowych testów dla każdej płyty, ta instrukcja zawiera krok Pomoc – to nie działa z większą liczbą wskazówek dotyczących wyszukiwania błędów.

Te instrukcje są również dostępne online

Dlaczego ten projekt?

Ten projekt rozwiązuje szereg problemów, które ma BLE (Bluetooth Low Energy).

  • Tylko najnowsze telefony komórkowe i komputery obsługują BLE. Most Wifi2BLE umożliwia dowolnemu telefonowi komórkowemu lub komputerowi z połączeniem Wi-Fi łączenie się z urządzeniem BLE i sterowanie nim.
  • BLE ma ograniczony zasięg. Most Wifi2BLE umożliwia dostęp do urządzenia BLE z dowolnego miejsca w domu (tam gdzie jest połączenie WiFi) oraz z zewnątrz przez Internet.
  • Tworzenie aplikacji BLE wymaga znajomości Androida lub iOS. Most Wifi2BLE zapewnia uniwersalne połączenie telnetowe za pośrednictwem dowolnego programu terminalowego. Co więcej, możesz łatwo dodać stronę internetową do modułu WiFi, aby stworzyć własny, niestandardowy interfejs.
  • BLE V5 obiecuje sieć mesh, aby połączyć wszystkie domowe urządzenia BLE, gdy oprogramowanie dogoni najnowszą specyfikację Bluetooth. Most Wifi2BLE wykorzystuje urządzenie BLE V5, dzięki czemu zapewni dostęp do Internetu do tej sieci domowej, gdy nadejdzie.

Moim bezpośrednim zastosowaniem w tym projekcie jest dodanie sterowania oświetleniem BLE w salonie do sieci Wi-Fi, aby umożliwić sterowanie nim z dowolnego miejsca w domu. Chociaż ten samouczek wykorzystuje pfodApp jako przykład sterowania płytami BLE przez WiFi, nie musisz kupować pfodApp, aby ukończyć ten projekt.

Krok 1: Lista części

Koszt ~60 USD na dzień 30.11.2017, bez wysyłki + mała plastikowa obudowa

Adafruit Feather nRF52 Bluefruit LE – nRF52832 – ~ 25 USD

Adafruit HUZZAH ESP8266 Breakout - ~ 10 USD

Kabel taśmowy z oddzielnymi końcówkami żeńskimi – Kabel Bus Pirate ~5 USD https://www.sparkfun.com/products/9556 LUB 10-pinowy kabel IDC z gniazdem Rainbow Breakout ~4 USD https://www.sparkfun.com/products/ 9556 LUB podobny

Oderwij męskie nagłówki - kąt prosty - ~ 2 USD

Kabel szeregowy USB do TTL 3V3 – ~10 USD https://www.sparkfun.com/products/12977 (preferowany, ponieważ ma oznaczone styki) LUB https://www.sparkfun.com/products/12977 (piny NIE są oznakowane)

Kabel USB A do Micro B – ~4 USD https://www.sparkfun.com/products/12977 (3 stopy długości) LUB ~3 USD https://www.sparkfun.com/products/12977 (6 cali długości) LUB ~ 2 USD https://www.sparkfun.com/products/12977 (6 cali długości) LUB ~ 5 USD https://www.sparkfun.com/products/12977 (6 stóp długości) LUB podobne

Rezystory 2 x 100 omów – ~ 1 USD

Zasilanie USB (500mA lub więcej) – ~6 USD https://www.sparkfun.com/products/12890 LUB ~7 USD https://www.adafruit.com/product/1994 LUB podobne

Arduino IDE V1.8.5 i komputer do jego uruchomienia.

Do plastikowego pudełka użyłem jednego z Jaycar UB5 (niebieski) 83mm x 54mm x 31mm ~ 4 $

Krok 2: Obwód Wifi2BLE

Obwód Wifi2BLE
Obwód Wifi2BLE

Obwód Wifi2BLE pokazano powyżej. Wersja pdf jest tutaj. Jak widać obwód jest bardzo prosty. Tylko 4 przewody i dwa rezystory ochronne 100 omów. Rezystory zabezpieczające są na wypadek, gdybyś pominął linie TX / RX po zaprogramowaniu HUZZAH ESP8266 lub Feather nRF52.

UWAGA: Oznaczenia na płytce Feather nRF52 dla pinów TX i RX są nieprawidłowe. Pin TX jest w rzeczywistości tym obok pinu DFU, a pin RX jest obok pinu MISO

Upewnij się, że podłączasz linie TX/RX, jak pokazano powyżej. Na szczęście rezystory ochronne wykonały swoją pracę i płyty nie zostały uszkodzone, podczas gdy ja wyjaśniałem, dlaczego płyty nie pasują do siebie.

Krok 3: Budowa Wifi2BLE

Budowa Wifi2BLE
Budowa Wifi2BLE
Budowa Wifi2BLE
Budowa Wifi2BLE
Budowa Wifi2BLE
Budowa Wifi2BLE

Prostokątne kołki nagłówka zostały przylutowane do HUZZAH ESP8266, aby umożliwić odłączenie go do programowania. Do połączenia dwóch płyt służą cztery żyły kabla taśmowego. Zachowaj żeńskie złącza pinowe i odetnij drugi koniec kabla taśmowego. Mój kabel taśmowy miał takie same kolory jak kabel do programowania Sparkfun USB na TTL, więc wybrałem przewód, aby do niego pasował. Czarny dla GND, Czerwony dla 5V+, Pomarańczowy dla TX (podłączany do ESP8266 RX) i Brązowy dla RX (podłączany do ESP8266 TX)

Podłączyłem rezystory ochronne z tyłu płyty Feather nRF52. (Uważni konstruktorzy, którzy znają swoje kody rezystorów, zobaczą, że użyłem dwóch rezystorów 68 omów, które podaję pod ręką zamiast 100 omów), a następnie zaizolowałem je folią termokurczliwą.

Czerwony kabel jest przylutowany do pinu Feather nRF52 USB, aby pobrać USB 5V do zasilania modułu HUZZAH ESP8266, a czarny kabel jest przylutowany do pinu Feather nRF52 GND.

To wszystko poza zaprogramowaniem modułów, jak opisano poniżej, umieszczeniem ich w plastikowym pudełku i podłączeniem zasilacza USB do Feather nRF52.

Krok 4: Programowanie Wifi2BLE

Programowanie Wifi2BLE
Programowanie Wifi2BLE
Programowanie Wifi2BLE
Programowanie Wifi2BLE
Programowanie Wifi2BLE
Programowanie Wifi2BLE

Programowanie HUZZAH ESP8266

Aby zaprogramować osłonę, postępuj zgodnie z instrukcjami podanymi na https://github.com/esp8266/Arduino w sekcji Instalacja za pomocą menedżera tablic. Po otwarciu Menedżera tablic z menu Narzędzia → Tablica wybierz opcję Type Contributed i zainstaluj platformę esp8266. Ten projekt został skompilowany przy użyciu ESP8266 w wersji 2.3.0. Inne wersje będą miały swój własny zestaw błędów i mogą nie działać z tym kodem.

UWAGA: NIE używaj instalacji Adafruit Board, ponieważ użyty tutaj szkic nie skompiluje się pod tym kodem.

Zamknij i ponownie otwórz Arduino IDE i możesz teraz wybrać „Adafruit HUZZAH ESP8266” z menu Narzędzia → Tablica.

Musisz także zainstalować najnowszą wersję biblioteki pfodESP8266WiFiBufferedClient. Ta biblioteka współpracuje z wtyczką ESP8266.com IDE V2.3. (Jeśli wcześniej zainstalowałeś bibliotekę pfodESP2866WiFi, całkowicie usuń ten katalog biblioteki.)

  • a) Pobierz plik pfodESP8266WiFiBufferedClient.zip na swój komputer, przenieś go na pulpit lub do innego folderu, który możesz łatwo znaleźć
  • b) Następnie użyj opcji menu Arduino 1.8.5 IDE Szkic → Importuj bibliotekę → Dodaj bibliotekę, aby ją zainstalować. (Jeśli Arduino nie pozwala na jego instalację, ponieważ biblioteka już istnieje, znajdź i usuń starszy folder pfodESP8266BufferedClient, a następnie zaimportuj ten)
  • c) Zatrzymaj i zrestartuj Arduino IDE i w Plik->Przykłady powinieneś teraz zobaczyć pfodESP8266BufferedClient.

Ustawianie identyfikatora sieci i hasła oraz adresu IP i portu

Po zainstalowaniu biblioteki pfodESP8266BufferedClient otwórz Arduino IDE i skopiuj ten szkic, Wifi_Bridge.ino, do IDE. Przed zaprogramowaniem modułu należy ustawić identyfikator sieciowy i hasło oraz wybrać nieużywany adres IP.

Edytuj te trzy linie w górnej części Wifi_Bridge.ino

znak ssid = "**** ***"; hasło znaku = "**** *****"; char staticIP = "10.1.1.180";

Używam aplikacji Fing (Android lub iOS), aby przeskanować moją sieć lokalną i zidentyfikować adres IP, który jest już używany. Zwykle bezpiecznie jest wybrać nieużywany adres IP z zakresu od 0,180 do 0,254

Na początek możesz zostawić port nr 23, standardowy port dla połączenia telnet.

Po dokonaniu tych zmian można zaprogramować ESP8266.

Programowanie HUZZAH ESP8266

Aby zaprogramować HUZZAH ESP8266, podłącz kabel USB do portu szeregowego, jak pokazano na zdjęciu. Sprawdź zdjęcie i okablowanie. Zobacz także wskazówki dotyczące programowania ESP8266 (nie powiodło się espcomm)

Używam kabla szeregowego Sparkfun USB do TTL 3V3, ponieważ ma oznaczone wyprowadzenia TX i RX. Upewnij się, że przewód TX jest podłączony do bolca RX, a przewód RX jest podłączony do bolca TX, jak pokazano powyżej. Jeśli używasz kabla Adafruit, nie ma on oznaczonych zacisków, ale jest oznaczony kolorami, czerwony to zasilanie, czarny to uziemienie, zielony to TX, a biały to RX.

Podłącz kabel USB do portu szeregowego do komputera i wybierz port COM w menu Narzędzia → Port. Pozostaw domyślne ustawienia częstotliwości procesora, rozmiaru lampy błyskowej i szybkości przesyłania.

Następnie wprowadź moduł Adafruit HUZZAH ESP2866 w tryb programowania przytrzymując przycisk GPIO0 i klikając przycisk Reset, a następnie puszczając przycisk GPIO0. Dioda GPIO0 powinna pozostać słabo zapalona. Następnie wybierz Plik → Prześlij lub użyj przycisku strzałki w prawo, aby skompilować i przesłać program. Jeśli pojawi się komunikat o błędzie przesyłania, sprawdź, czy połączenia kablowe są podłączone do właściwych pinów i spróbuj ponownie.

Po zakończeniu programowania powinna zaświecić się czerwona dioda na module. Oznacza to, że pomyślnie połączył się z siecią lokalną i uruchomił serwer, aby zaakceptować połączenie.

Testowanie HUZZAH ESP2866

Aby przetestować HUZZAH ESP2866, pozostaw kabel do programowania podłączony i otwórz Arduino IDE Tools → Serial Monitor i ustaw 9600 bodów (prawy dolny róg). Następnie otwórz program terminala na swoim komputerze, używam TeraTerm dla Windows i CoolTerm dla Mac i łączę się z IP i portem ustawionym w szkicu Wifi_Bridge.ino.

Po podłączeniu czerwona dioda LED na module powinna zacząć migać, wskazując na połączenie. Powinieneś teraz móc pisać w oknie terminala komputera, a znaki powinny pojawić się w oknie monitora Arduino IDE i na odwrót.

Limit czasu połączenia Wi-Fi

Kod Wifi_Bridge.ino ma czas połączenia.

uint32_t limit czasu połączenia = 60000; // 60-sekundowy limit czasu połączenia

W przypadku braku danych WiFi odbieranych przez moduł HUZZAH ESP8266 przez 60 sekund moduły zamykają połączenie i czekają na nowe. Gwarantuje to, że moduł odzyskuje sprawność po „półzamkniętych” połączeniach, które miały miejsce, gdy klient po prostu zniknął z powodu złego połączenia Wi-Fi, utraty zasilania routera lub wymuszonego wyłączenia klienta. Zobacz Wykrywanie półotwartych (upuszczonych) połączeń TCP/IP, aby uzyskać więcej informacji.

Ten limit czasu połączenia jest ustawiony na 60 sekund. ale w razie potrzeby można je zmniejszyć lub zwiększyć. Ustawienie go na 0 oznacza, że nigdy nie zostanie przekroczony limit czasu, co nie jest zalecane.

Programowanie pióra nRF52

Aby zaprogramować Feather nRF52, postępuj zgodnie z instrukcjami pobierania i instalowania obsługi Arduino Board dla Feather nRF52. Sprawdź, czy możesz podłączyć i zaprogramować płytkę za pomocą kabla USB.

UWAGA: Odłącz moduł HUZZAH ESP8266 od Feather nRF52 przed próbą zaprogramowania Feather

Podłączenie Feather nRF52 do urządzenia BLE składa się z dwóch kroków. Najpierw zidentyfikuj adres MAC (i typ) na urządzeniu i sprawdź, czy obsługuje nordycką usługę UART z TX Notify, a następnie prześlij ten adres i typ do szkicu mostu.

Krok 5: Połączenie z urządzeniem BLE

Połączenie z urządzeniem BLE
Połączenie z urządzeniem BLE
Połączenie z urządzeniem BLE
Połączenie z urządzeniem BLE
Połączenie z urządzeniem BLE
Połączenie z urządzeniem BLE

Po zaprogramowaniu HUZZAH ESP8266 należy zakodować adres BLE i typ urządzenia, z którym chcesz się połączyć, do szkicu Feather nRF52. Jest to proces dwuetapowy. I) Uruchom program do skanowania, aby znaleźć pobliskie urządzenia BLE, które implementują usługę Nordic UART (powiadomienie TX), a następnie skopiuj dane wyjściowe tego skanera do szkicu mostka piórkowego, aby połączyć się z tym urządzeniem.

Skanowanie w poszukiwaniu urządzeń peryferyjnych BLE

Aby zidentyfikować zgodne urządzenia peryferyjne BLE, załaduj program central_bleuart_scanner.ino do urządzenia Feather nRF52. Ten program nieustannie skanuje w poszukiwaniu nowych urządzeń, a następnie sprawdza, czy obsługują one nordycką usługę UART z TX Notify.

Skandynawska usługa UART

Skandynawska usługa UART składa się z trzech części: UUID usługi oraz charakterystyk RX i TX. Oto przykładowy kod wygenerowany przez pfodDesignerV3 dla RedBear NanoV2

BLEService uartService = BLEService("6E400001B5A3F393E0A9E50E24DCCA9E");

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

pfodDesignerV3 może generować przykładowy kod dla wielu modułów BLE. Jednak ze względu na brak specyfikacji BLE dla „standardowego” połączenia UART, nie wszystkie moduły korzystają z usługi Nordic UART. Na przykład moduły HM-10 (osłona Itead BLE), RFduno i Romeo BLE korzystają z własnych unikalnych usług uart i dlatego nie będą łączyć się z Feather nRF52.

Połączą się następujące płytki: - Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 i V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend and Flora Boards, Adafruit Bluefruit LE SPI (tj. Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE lub Bluefruit LE SPI Friend) Jak również tablice, które mogą być kodowane za pomocą niestandardowych usług lub tablice, które mogą korzystać z biblioteki BLPeripheral.

Przykładową płytką użytą tutaj jest Arduino/Genuino 101 z kodem wygenerowanym przez pfodDesignerV3. Bezpłatny pfodDesignerV3 umożliwia tworzenie menu pfodApp, a następnie generowanie kodu Arduino niezbędnego do wyświetlenia tego dokładnego menu na telefonie z Androidem za pomocą (płatnego) pfodApp. pfodApp będzie również łączyć się przez Wifi, a także przez Bluetooth Classic, BLE i SMS, a więc może łączyć się przez ten most Wifi2BLE. Jednak nawet jeśli nie chcesz używać pfodApp jako aplikacji sterującej, nadal możesz użyć pfodDesignerV3 do wygenerowania kodu usługi Nordic UART dla swojej płyty BLE.

Ten link do samouczka opisuje konfigurację Arduino/Genuino 101 BLE i tworzenie prostego sterowania włączaniem/wyłączaniem LED za pomocą pfodDesignerV3. Szkic stworzony przez pfodDesignerV3 to Arduino101_led_control.ino

Zaprogramowanie Arduino/Genuino 101 za pomocą Arduino101_led_control.ino pozwoli Ci połączyć się z pfodApp i wyświetlić następujący ekran na telefonie z systemem Android.

Jest to jednak tylko przykład i nie musisz kupować pfodApp, aby ukończyć ten projekt. Ważną częścią jest to, że bezpłatna aplikacja pfodDesignerV3 generuje kod dla Arduino/Genuino 101, który implementuje usługę Nordic UART. Więc poszukajmy tego.

Jest to jednak tylko przykład i nie musisz kupować pfodApp, aby ukończyć ten projekt. Ważną częścią jest to, że bezpłatna aplikacja pfodDesignerV3 generuje kod dla Arduino/Genuino 101, który implementuje usługę Nordic UART. Więc poszukajmy tego.

Skanowanie w poszukiwaniu skandynawskiej usługi UART

Po odłączeniu modułu HUZZAH ESP8266 od Feather nRF52 zaprogramuj Feather nRF52 za pomocą central_bleuart_scanner.ino, a następnie otwórz Arduino IDE Tools → Serial Monitor i ustaw prędkość transmisji na 9600. Włączenie Arduino/Genuino 101 daje wyjście pokazane w pierwszy zrzut ekranu powyżej.

Jak widać, skaner znalazł dwa urządzenia BLE, Arduino/Genuino 101 z usługą Nordic UART, ALE charakterystyka TX nie obsługuje Notify. Skaner znalazł również moduł RFduino BLE, ale RFduino nie korzysta z usługi Nordic UART, ale zamiast tego używa własnej. Komitet Bluetooth ponosi winę za to, że nie określił „standardowej” usługi UART, pozostawiając każdemu producentowi własną.

Jak opisano powyżej, kod 101 został wygenerowany przez pfodDesignerV3 głównie do użytku z pfodApp. pfodApp nie jest tak wybredny w kwestii TX Notify, jak kod uart Feather nRF52. pfodApp działa z 101 tak, jak zaprogramowano, ale Feather nRF52 nalega na powiadomienie TX, więc potrzebna jest niewielka zmiana w kodzie, aby zaspokoić Feather.

Otwórz Arduino101_led_control.ino w Arduino IDE, a u góry znajdziesz te dwie linie. Drugi wiersz to tylko opis charakterystyki i nie ma wpływu na działanie.

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

Zmień je na

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

Następnie przeprogramuj 101 za pomocą tej edytowanej wersji, Arduino101_Notify_led_control.ino. Następnie po ponownym uruchomieniu skanera Feather nRF52 (central_bleuart_scanner.ino), monitor szeregowy wyświetla drugi zrzut ekranu powyżej.

Brak błędów dla Genuino 101, a skaner drukuje kod potrzebny do szkicu mostu Feather nRF52, aby połączyć się z 101. Skaner sprawdzi każde urządzenie, które znajdzie w zasięgu. Czerwona dioda miga raz dla każdego urządzenia znalezionego z usługą Nordic UART (powiadomienie TX).

Krok 6: Łączenie z urządzeniem peryferyjnym BLE

Wskazania LED

Feather nRF52 ma dwie diody led, niebieską i czerwoną. Kiedy płytka jest podłączona do urządzenia BLE, niebieska dioda świeci, w przeciwnym razie miga. Skaner nie pozostaje podłączony do urządzenia, więc jego niebieska dioda zwykle miga. Czerwona dioda mignie raz dla każdego urządzenia Nordic UART Service (TX Notify). Podczas pracy jako skaner czerwona dioda zlicza liczbę znalezionych urządzeń Nordic UART Service (TX Notify). Podczas pracy jako most, czerwona dioda miga raz po podłączeniu do adresu kodu BLE.

Podłączanie do urządzenia peryferyjnego BLE

Teraz, gdy szkic skanera zawiera szczegóły dotyczące urządzenia BLE, z którym chcesz się połączyć, możesz skopiować dane wyjściowe do szkicu central_bleuart_bridge.ino. W górnej części tego szkicu znajdziesz następujący kod.

// Kolejne trzy wiersze kodu pochodzą z danych wyjściowych central_bleuart_scanner.ino

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

Zastąp trzy wiersze kodu danymi wyjściowymi skanera dla urządzenia BLE, z którym chcesz się połączyć. Następnie zaprogramuj Feather nRF52 za pomocą edytowanego szkicu central_bleuart_bridge.ino.

Testowanie szkicu central_bleuart_bridge

Przed ponownym podłączeniem HUZZAH ESP8266 do urządzenia Feather nRF52 przetestuj połączenie z urządzeniem BLE. Pozostawiając Feather nRF52 podłączony do Arduino IDE, otwórz Narzędzia → Serial Monitor przy 9600 bodach, a następnie sprawdź, czy docelowe urządzenie BLE jest włączone.

Po nawiązaniu połączenia z urządzeniem BLE, jak opisano powyżej, niebieska dioda LED będzie świecić stale, a czerwona dioda LED będzie migać co około 10 sekund. Dzięki temu połączenie nie zostało nawiązane i nie jest utrzymywane.

Następnie w monitorze szeregowym możesz wprowadzić polecenia, które chcesz wysłać do urządzenia BLE i obserwować, jak działa i monitorować każdą odpowiedź, którą wysyła z powrotem. Jeśli wszystko jest w porządku, możesz wyłączyć i podłączyć moduł HUZZAH ESP8266.

Krok 7: Łączenie się z urządzeniem BLE przez Wi-Fi – połączenie wszystkiego

Po zaprogramowaniu i przetestowaniu modułu HUZZAH ESP8266 z kodem mostka (Wifi_Bridge.ino) skonfigurowanym dla identyfikatora sieci i hasła oraz adresu IP ORAZ zaprogramowanie i przetestowanie Feather nRF52 z kodem mostka (central_bleuart_bridge.ino) skonfigurowanym z adresem urządzenia BLE i wpisz, a następnie możesz je połączyć i podłączyć zasilanie USB do modułu Feather, aby zasilić je oba.

Czerwona dioda LED modułu HUZZAH powinna świecić na stałe, gdy łączy się z routerem sieci lokalnej, a dioda Feather Blue powinna świecić się na stałe, gdy łączy się z urządzeniem BLE, a dioda Feather Red powinna migać co około 10 sekund, aby wskazać, że jest włączony Urządzenie BLE jest podłączone.

Otwórz program telnet i połącz się z adresem IP i portem HUZZAH. Czerwona dioda HUZZAH powinna migać powoli, aby wskazać, że program się połączył. Powinieneś otrzymywać polecenia do urządzenia BLE przez Wi-Fi i obserwować działanie urządzenia BLE i zobaczyć odpowiedź w oknie telnet. Pamiętaj, że jeśli Twoje urządzenie BLE nie odeśle żadnych danych przez 60 sekund, kod HUZZAH przekroczy limit czasu połączenia i rozłączy się, a czerwona dioda HUZZAH ponownie zaświeci się na stałe.

Krok 8: Pomoc – to nie działa

Najpierw wykonaj opisane powyżej kroki testowania, Testowanie HUZZAH ESP2866 i Testowanie szkicu central_bleuart_bridge.

Problemy ze skanowaniem

Jeśli skaner nie może znaleźć urządzenia BLE, jest albo za daleko, albo nie reklamuje się lub jest już z czymś podłączony. Spróbuj przybliżyć skaner i włączyć i wyłączyć zasilanie oraz wyłączyć wszystkie znajdujące się w pobliżu urządzenia mobilne, które mogą mieć połączenie z urządzeniem BLE.

Jeśli uzyskasz taki wynik skanera.

Połączono z 98:4F:EE:0C:FC:8F Szukam usługi Nordic UART… Nie znaleziono LUB Nie można wykryć!!!!! Nie można zidentyfikować skandynawskiej usługi UART !!!!!!!! Jeśli oczekiwałeś Nordic UART Service, zbliż Skaner do urządzenia BLE !!!!

Możliwe, że jesteś wystarczająco blisko urządzenia BLE, aby je wykryć, ale nie na tyle blisko, aby pomyślnie przeprowadzić wykrywanie usług w celu znalezienia usługi Nordic UART. Spróbuj zbliżyć się do urządzenia BLE.

W ostateczności możesz skorzystać z bezpłatnej aplikacji Nordic nRF Connect na Androida lub iOS. Ta aplikacja ma lepszy zasięg i czułość. Poinformuje Cię, czy urządzenie BLE ma usługę Nordic UART. Jednak nadal będziesz musiał uruchomić skaner, połączyć się i zidentyfikować Nordic UART Service przed próbą użycia mostka Wifi2BLE, ponieważ używa on kodu podobnego do skanera.

Jeśli chcesz kopać głębiej, możesz użyć modułu Adafruit Bluefruit LE Sniffer, aby zobaczyć, co jest w powietrzu.

Problemy z połączeniem BLE

Jeśli udało Ci się przeskanować urządzenie BLE, to najbardziej prawdopodobnymi przyczynami problemów z połączeniem są: I) urządzenie BLE jest za daleko, II) coś innego już połączyło się z urządzeniem BLE

Problemy z połączeniem Wi-Fi

Jeśli czerwona dioda HUZZAH ESP8266 nie świeci światłem ciągłym, oznacza to, że nie ma połączenia z siecią za pośrednictwem routera. Sprawdź identyfikator SSid i hasło, które masz kod w Wifi_Bridge.ino i użyj aplikacji Fing na Androida lub iOS, aby sprawdzić, czy przydzielony adres IP nie jest już używany. Spróbuj wyłączyć wszystkie komputery i urządzenia, a następnie wyłącz i włącz router (pozostaw go na 20 sekund), a następnie ponownie przeskanuj za pomocą Fing. Na koniec, jeśli połączenie będzie zrywane, pamiętaj o ustawieniu limitu czasu połączenia w kodzie Wifi_Bridge.ino.

Krok 9: Rozszerzenia i wnioski

Prezentowany tutaj projekt jest najprostszą wersją. Istnieje wiele możliwych rozszerzeń, takich jak:-

  • Feather nRF52 może łączyć się z maksymalnie 4 urządzeniami BLE jednocześnie, dzięki czemu można zmodyfikować kod, aby dodać więcej ważnych adresów i kontrolować do 4 urządzeń z jednego połączenia WiFi. Zobacz przykładowy kod dołączony do instalacji płyty Feather nRF52.
  • Możesz wybić dziurę w routerze, aby zapewnić dostęp do urządzenia BLE z dowolnego miejsca w Internecie. Zobacz Łączenie urządzeń IoT DIY z Internetem za pomocą pfodApp.
  • Możesz użyć kodu z Cheap/Simple Wifi Shield, aby skonfigurować parametry sieci Wi-Fi dla HUZZAH za pośrednictwem strony internetowej, bez przeprogramowywania. Będziesz musiał dodać przycisk konfiguracji do obwodu.
  • Możesz dodać przycisk konfiguracyjny (używając tego samego przycisku co powyżej), który umożliwia skanowanie Feather nRF52 w poszukiwaniu urządzeń BLE z nordyckim UART (powiadomienie TX), a następnie zapisać szczegóły połączenia dla tego z najsilniejszym sygnałem. Aby zapisać wynik, będziesz musiał użyć biblioteki nffs, która jest dostarczana z instalacją płyty Adafruit nRF52.
  • Możesz dodać stronę internetową do kodu HUZZAH ESP8266, aby zapewnić niestandardowy interfejs dla urządzenia BLE. Możesz również użyć pfodDesignerV3 i pfodApp dodać własny interfejs bez żadnych zmian w tym projekcie.

Wniosek

Ten prosty projekt zapewnia dostęp WiFi do dowolnego modułu Bluetooth Low Energy (BLE), który implementuje Nordic UART z TX Notify. Most Wifi2BLE jest całkowicie przezroczysty. Po prostu przekazuje dane Wi-Fi do urządzenia BLE i przekazuje dane urządzenia BLE z powrotem do połączenia Wi-Fi.

Prosta konstrukcja i szczegółowe instrukcje testowania sprawiają, że jest to odpowiedni projekt dla początkujących, którzy chcą uzyskać dostęp do swojego urządzenia BLE z komputera lub spoza normalnego zakresu BLE.

Ten projekt stanie się ważniejszy, gdy oprogramowanie urządzenia BLE dogoni nową specyfikację Bluetooth V5 Mesh. Wtedy Wifi2BLE zapewni dostęp do internetu dla całej automatyki domowej.

Zalecana: