Inhoudsopgave:

Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge - Ajarnpa
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge - Ajarnpa

Video: Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge - Ajarnpa

Video: Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge - Ajarnpa
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Juli-
Anonim
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge
Eenvoudige WiFi naar BLE (Bluetooth Low Energy) Bridge

Update 4 december 2017 -- herziene Feather nRF52-schetsen en foutopsporingstips. Foto's toegevoegd van brug gemonteerd in doos

Dit eenvoudige project biedt WiFi-toegang tot elke Bluetooth Low Energy (BLE) -module die Nordic's UART met TX Notify implementeert. De Wifi2BLE bridge is volledig transparant. Het geeft de wifi-gegevens gewoon door aan het BLE-apparaat en geeft de gegevens van het BLE-apparaat terug aan de wifi-verbinding.

De gratis pfodDesignerV3 genereert code om een Nordic UART-service te implementeren op veel BLE-modules, waaronder Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 en V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend en Flora Boards, Adafruit Bluefruit LE SPI (dwz Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE of Bluefruit LE SPI Friend) en alle andere boards waarmee u uw eigen service kunt programmeren.

Deze Wifi2BLE bridge is geschikt voor de onervaren constructeur die kan solderen. Het gebruikt slechts twee kaarten, één lintkabel en twee weerstanden

Naast gedetailleerde tests voor elk bord, bevat deze instructable een Help - Het werkt niet-stap met meer tips voor het vinden van fouten.

Deze instructies zijn ook online beschikbaar

Waarom dit project?

Dit project lost een aantal problemen op die BLE (Bluetooth Low Energy) heeft.

  • Alleen recente mobiele telefoons en computers ondersteunen BLE. Met de Wifi2BLE-brug kan elke mobiele telefoon of computer met een wifi-verbinding verbinding maken met het BLE-apparaat en het bedienen.
  • BLE heeft een beperkt bereik. Met de Wifi2BLE bridge heb je overal in huis (waar een wifi-verbinding is) en van buitenaf via internet toegang tot het BLE-apparaat.
  • Voor het maken van BLE-apps moet je Android of iOS leren. De Wifi2BLE bridge zorgt voor een universele telnet verbinding via elk terminalprogramma. Verder kunt u eenvoudig een webpagina aan de WiFi-module toevoegen om uw eigen aangepaste interface te creëren.
  • BLE V5 belooft mesh-netwerken om al uw BLE-apparaten thuis te verbinden, zodra de software de nieuwste Bluetooth-specificatie inhaalt. De Wifi2BLE-bridge maakt gebruik van een BLE V5-apparaat en biedt dus internettoegang tot dit thuisnetwerk wanneer het aankomt.

Mijn directe gebruik voor dit project is om de BLE-lichtregeling in de woonkamer toe te voegen aan het WiFi-netwerk, zodat deze vanaf elke plek in huis kan worden bediend. Hoewel deze tutorial pfodApp gebruikt als voorbeeld van het besturen van de BLE-boards via wifi, hoef je geen pfodApp aan te schaffen om dit project te voltooien.

Stap 1: Onderdelenlijst

Kosten ~US$60 op 30 november 2017, exclusief verzendkosten + een kleine plastic behuizing

Adafruit Feather nRF52 Bluefruit LE – nRF52832 – ~US$25

Adafruit HUZZAH ESP8266 Breakout - ~US$10

Lintkabel met aparte vrouwelijke uiteinden – Piratenbuskabel ~US$5 https://www.sparkfun.com/products/9556 OF 10-pins IDC-contactdoos Rainbow Breakout-kabel ~US$4 https://www.sparkfun.com/products/ 9556 OF vergelijkbaar

Break Away mannelijke headers - rechte hoek - ~ US $ 2

USB naar TTL 3V3 seriële kabel - ~ US $ 10 https://www.sparkfun.com/products/12977 (bij voorkeur omdat de pinnen zijn gelabeld) OF https://www.sparkfun.com/products/12977 (pinnen zijn NIET gelabeld)

USB A naar Micro B-kabel - ~ US $ 4 https://www.sparkfun.com/products/12977 (3 voet lang) OF ~ US $ 3 https://www.sparkfun.com/products/12977 (6 inch lang) OF ~US$2 https://www.sparkfun.com/products/12977 (6 inch lang) OF ~US$5 https://www.sparkfun.com/products/12977 (6 voet lang) OF vergelijkbaar

2 x 100 ohm weerstanden – ~US$1

USB-voeding (500mA of meer) – ~US$6 https://www.sparkfun.com/products/12890 OF ~US$7 https://www.adafruit.com/product/1994 OF vergelijkbaar

Arduino IDE V1.8.5 en een computer om het op te draaien.

Voor een plastic doos heb ik er een gebruikt van Jaycar UB5 (blauw) 83 mm x 54 mm x 31 mm ~ A $ 4

Stap 2: Wifi2BLE-circuit

Wifi2BLE-circuit
Wifi2BLE-circuit

Het Wifi2BLE-circuit is hierboven weergegeven. Een pdf-versie staat hier. Zoals je kunt zien, is de schakeling heel eenvoudig. Slechts 4 draden en twee 100 ohm beschermingsweerstanden. De beschermingsweerstanden zijn voor het geval u de TX / RX-lijnen verkeerd aansluit na het programmeren van de HUZZAH ESP8266 of de Feather nRF52.

OPMERKING: De Feather nRF52-kaartmarkering voor de TX- en RX-pinnen is niet correct. De TX-pin is eigenlijk degene naast de DFU-pin en de RX-pin is die naast de MISO-pin

Zorg ervoor dat u de TX/RX-lijnen aansluit zoals hierboven weergegeven. Gelukkig deden de beschermingsweerstanden hun werk en waren de boards niet beschadigd terwijl ik uitzocht waarom de boards elkaar niet raakten.

Stap 3: Wifi2BLE-constructie

Wifi2BLE-constructie
Wifi2BLE-constructie
Wifi2BLE-constructie
Wifi2BLE-constructie
Wifi2BLE-constructie
Wifi2BLE-constructie

Rechthoekige header-pinnen werden op de HUZZAH ESP8266 gesoldeerd zodat deze kon worden losgekoppeld voor programmering. Vier draden van de lintkabel worden gebruikt om de twee kaarten met elkaar te verbinden. Bewaar de vrouwelijke pinconnectoren en knip het andere uiteinde van de lintkabel af. Mijn lintkabel had dezelfde kleuren als de Sparkfun USB naar TTL-programmeerkabel, dus ik koos de draad die erbij paste. Zwart voor GND, Rood voor 5V+, Oranje voor TX (verbindt met ESP8266 RX) en Bruin voor RX (verbindt met ESP8266 TX)

Ik heb de beveiligingsweerstanden op de achterkant van het Feather nRF52-bord aangesloten. (Oplettende constructeurs die hun weerstandscodes kennen, zullen zien dat ik twee weerstanden van 68 ohm heb gebruikt die ik bij de hand heb in plaats van die van 100 ohm) en ze vervolgens hebben geïsoleerd met wat krimpfolie.

De rode kabel is gesoldeerd aan de Feather nRF52 USB-pin om de USB 5V op te pikken om de HUZZAH ESP8266-module van stroom te voorzien en de zwarte kabel is gesoldeerd aan de Feather nRF52 GND-pin.

Dat is alles behalve het programmeren van de modules, zoals hieronder beschreven, het in een plastic doos doen en een USB-voeding in de Feather nRF52 steken.

Stap 4: Wifi2BLE-programmering

Wifi2BLE-programmering
Wifi2BLE-programmering
Wifi2BLE-programmering
Wifi2BLE-programmering
Wifi2BLE-programmering
Wifi2BLE-programmering

Programmeren van de HUZZAH ESP8266

Volg de instructies op https://github.com/esp8266/Arduino onder Installing With Boards Manager om het schild te programmeren. Bij het openen van de Boards Manager vanuit het menu Tools → Board en selecteer Type Contributed en installeer het esp8266-platform. Dit project is gecompileerd met behulp van de ESP8266 versie 2.3.0. Andere versies hebben hun eigen set bugs en werken mogelijk niet met deze code.

OPMERKING: Gebruik de installatie van Adafruit Board NIET, omdat de schets die hier wordt gebruikt niet onder die code kan worden gecompileerd.

Sluit en open de Arduino IDE opnieuw en u kunt nu "Adafruit HUZZAH ESP8266" selecteren in het menu Tools → Board.

U moet ook de nieuwste versie van de pfodESP8266WiFiBufferedClient-bibliotheek installeren. Deze bibliotheek werkt met ESP8266.com IDE plug-in V2.3. (Als u eerder de pfodESP2866WiFi-bibliotheek hebt geïnstalleerd, verwijdert u die bibliotheekmap volledig.)

  • a) Download dit pfodESP8266WiFiBufferedClient.zip-bestand naar uw computer, verplaats het naar uw bureaublad of een andere map die u gemakkelijk kunt vinden
  • b) Gebruik vervolgens Arduino 1.8.5 IDE menu-optie Sketch → Bibliotheek importeren → Bibliotheek toevoegen om het te installeren. (Als Arduino je het niet laat installeren omdat de bibliotheek al bestaat, zoek en verwijder dan de oudere pfodESP8266BufferedClient-map en importeer deze dan)
  • c) Stop en herstart de Arduino IDE en onder Bestand->Voorbeelden zou u nu pfodESP8266BufferedClient moeten zien.

Het netwerk ssid en wachtwoord en IP en poort instellen

Nadat u de pfodESP8266BufferedClient-bibliotheek hebt geïnstalleerd, opent u de Arduino IDE en kopieert u deze schets, Wifi_Bridge.ino, naar de IDE. Voordat u de module programmeert, moet u de ssid en het wachtwoord van uw netwerk instellen en een ongebruikt IP-adres kiezen.

Bewerk deze drie regels bovenaan Wifi_Bridge.ino

char ssid = "**** ***"; char wachtwoord = "**** *****"; char staticIP = "10.1.1.180";

Ik gebruik de Fing-app (Android of iOS) om mijn lokale netwerk te scannen en de IP te identificeren die al worden gebruikt. Het is meestal veilig om een ongebruikt IP-adres te kiezen in het bereik van.180 tot.254

Om te beginnen kun je poortnr op 23 laten staan, de standaardpoort voor een telnetverbinding.

Nadat u deze wijzigingen heeft aangebracht, kunt u de ESP8266 programmeren.

Programmeren van de HUZZAH ESP8266

Om de HUZZAH ESP8266 te programmeren, sluit u de USB-naar-seriële kabel aan zoals op de foto wordt getoond. Controleer de foto en uw bedrading. Zie ook ESP8266 Programmeertips (espcomm mislukt)

Ik gebruik de Sparkfun USB naar TTL 3V3 seriële kabel omdat de TX- en RX-kabels zijn gemarkeerd. Zorg ervoor dat de TX-kabel is aangesloten op de RX-pin en dat de RX-kabel is aangesloten op de TX-pin zoals hierboven weergegeven. Als u de Adafruit-kabel gebruikt, zijn de aansluitingen niet gemarkeerd, maar heeft deze een kleurcode, rood is stroom, zwart is aarde, groen is TX en wit is RX.

Sluit de USB-naar-serieel-kabel aan op uw computer en selecteer deze COM-poort in het menu Extra → Poort. Laat de CPU-frequentie, flitsgrootte en uploadsnelheid op hun standaardinstellingen staan.

Zet vervolgens de Adafruit HUZZAH ESP2866-module in programmeermodus door de GPIO0-drukknop ingedrukt te houden en op de Reset-drukknop te klikken en vervolgens de GPIO0-drukknop los te laten. De GPIO0-led moet gedimd blijven branden. Selecteer vervolgens Bestand → Uploaden of gebruik de pijl naar rechts om het programma te compileren en te uploaden. Als je een foutmelding krijgt tijdens het uploaden, controleer dan of je kabelverbindingen op de juiste pinnen zijn aangesloten en probeer het opnieuw.

Zodra de programmering is voltooid, moet de rode led op de module gaan branden. Dat geeft aan dat het succesvol verbinding heeft gemaakt met uw lokale netwerk en de server heeft gestart om een verbinding te accepteren.

De HUZZAH ESP2866 testen

Om de HUZZAH ESP2866 te testen, laat u de programmeerkabel aangesloten en opent u de Arduino IDE Tools → Serial Monitor en stelt u 9600 baud in (rechtsonder). Open vervolgens een terminalprogramma op uw computer, ik gebruik TeraTerm voor Windows en CoolTerm voor Mac, en maak verbinding met het IP-adres en de poortNee die u instelt in de Wifi_Bridge.ino-schets.

Wanneer u de rode led op de module aansluit, moet deze beginnen te knipperen, wat aangeeft dat er een verbinding is. U zou nu in het terminalvenster van uw computer moeten kunnen typen en de tekens zouden in het monitorvenster van de Arduino IDE moeten verschijnen en omgekeerd.

Time-out wifi-verbinding

De Wifi_Bridge.ino-code heeft een verbindingstijd.

uint32_t connectionTimeout = 60000; // 60 seconden verbindingstime-out

Als er gedurende 60 seconden geen WiFi-gegevens zijn ontvangen door de HUZZAH ESP8266-module, verbreekt de module de verbinding en wacht op een nieuwe. Dit zorgt ervoor dat de module herstelt van 'half gesloten' verbindingen, wat gebeurde toen de client gewoon verdween door een slechte wifi-verbinding, stroomuitval bij de router of geforceerd afsluiten van de client. Zie Detectie van half-open (vervallen) TCP/IP-socketverbindingen voor meer details.

Deze verbindingstime-out is ingesteld op 60 sec. maar kan naar behoefte worden verlaagd of verhoogd. Als u dit op 0 zet, betekent dit dat u nooit een time-out krijgt, wat niet wordt aanbevolen.

Programmeren van de Feather nRF52

Om de Feather nRF52 te programmeren, volgt u de instructies voor het downloaden en installeren van de Arduino Board-ondersteuning voor de Feather nRF52. Controleer of u verbinding kunt maken met en programmeer het bord via de USB-kabel.

OPMERKING: Koppel de HUZZAH ESP8266-module los van de Feather nRF52 voordat u probeert de Feather te programmeren

Het aansluiten van de Feather nRF52 op een BLE-apparaat bestaat uit twee stappen. Eerst het MAC-adres (en type) op het apparaat identificeren en controleren of het de Nordic UART-service ondersteunt met TX Notify en vervolgens dat adres en type overbrengen naar de bridge-schets.

Stap 5: Aansluiting op een BLE-apparaat

Verbinding met een BLE-apparaat
Verbinding met een BLE-apparaat
Verbinding met een BLE-apparaat
Verbinding met een BLE-apparaat
Verbinding met een BLE-apparaat
Verbinding met een BLE-apparaat

Zodra de HUZZAH ESP8266 is geprogrammeerd, moet u het BLE-adres en het type apparaat waarmee u verbinding wilt maken, coderen in de Feather nRF52-schets. Dit is een proces in twee stappen. I) Voer het scanprogramma uit om BLE-apparaten in de buurt te vinden die de Nordic UART-service (TX Notify) implementeren en kopieer vervolgens de uitvoer van die scanner naar de Featherbridge-schets om het verbinding te laten maken met dat apparaat.

Scannen naar BLE-randapparatuur

Om compatibele BLE-randapparatuur te identificeren, laadt u het programma central_bleuart_scanner.ino in uw Feather nRF52. Dit programma scant voortdurend naar nieuwe apparaten en controleert vervolgens of ze de Nordic UART-service met TX Notify ondersteunen.

Nordic UART-service

De Nordic UART Service bestaat uit drie delen, de Service UUID en de RX- en TX-kenmerken. Hier is een voorbeeldcode die is gegenereerd door pfodDesignerV3 voor de RedBear NanoV2

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

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

pfodDesignerV3 kan voorbeeldcode genereren voor een aantal BLE-modules. Omdat er echter geen BLE-specificatie is voor een 'standaard' UART-verbinding, gebruiken niet alle modules de Nordic UART-service. HM-10-modules (Itead BLE-schild), RFduno en Romeo BLE gebruiken bijvoorbeeld hun eigen unieke uart-services en zullen dus geen verbinding maken met de Feather nRF52.

De volgende boards kunnen worden aangesloten: - Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 en V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend and Flora Boards, Adafruit Bluefruit LE SPI (dwz Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE of Bluefruit LE SPI Friend) Evenals borden die kunnen worden gecodeerd met aangepaste services of borden die de BLEPeripheral-bibliotheek kunnen gebruiken.

Het voorbeeldbord dat hier wordt gebruikt, is de Arduino/Genuino 101 met code gegenereerd door pfodDesignerV3. Met de gratis pfodDesignerV3 kun je pfodApp-menu's maken en vervolgens de Arduino-code genereren die nodig is om dat exacte menu op je Android-mobiel te tonen met behulp van (betaalde) pfodApp. pfodApp maakt ook verbinding via wifi, evenals Bluetooth Classic, BLE en sms, en kan dus verbinding maken via deze Wifi2BLE-brug. Maar zelfs als u pfodApp niet als uw controle-app wilt gebruiken, kunt u nog steeds de pfodDesignerV3 gebruiken om een Nordic UART-servicecode voor uw BLE-bord te genereren.

Deze tutoriallink beschrijft het instellen van de Arduino/Genuino 101 BLE en het creëren van een eenvoudige LED aan/uit-bediening met pfodDesignerV3. De schets geproduceerd door de pfodDesignerV3 is Arduino101_led_control.ino

Door de Arduino/Genuino 101 te programmeren met de Arduino101_led_control.ino kunt u verbinding maken met pfodApp en het volgende scherm weergeven op uw Android-mobiel.

Dit is echter slechts een voorbeeld en u hoeft geen pfodApp aan te schaffen om dit project te voltooien. Het belangrijkste is dat de gratis pfodDesignerV3-app code genereert voor de Arduino/Genuino 101 die een Nordic UART-service implementeert. Dus laten we ernaar scannen.

Dit is echter slechts een voorbeeld en u hoeft geen pfodApp aan te schaffen om dit project te voltooien. Het belangrijkste is dat de gratis pfodDesignerV3-app code genereert voor de Arduino/Genuino 101 die een Nordic UART-service implementeert. Dus laten we ernaar scannen.

Scannen naar een Nordic UART-service

Met de HUZZAH ESP8266-module losgekoppeld van de Feather nRF52, programmeert u de Feather nRF52 met de central_bleuart_scanner.ino en opent u vervolgens de Arduino IDE Tools → Serial Monitor en stelt u de baudrate in op 9600. Het inschakelen van de Arduino/Genuino 101 geeft de output die wordt weergegeven in de eerste screenshot hierboven.

Zoals je kunt zien, heeft de scanner twee BLE-apparaten gevonden, een Arduino/Genuino 101 met een Nordic UART-service erop, MAAR de TX-karakteristiek ondersteunde Notify niet. De scanner vond ook een RFduino BLE-module, maar RFduino gebruikt de Nordic UART-service niet, maar gebruikt in plaats daarvan een eigen. De Bluetooth-commissie draagt hier de schuld van omdat ze geen 'standaard' UART-service specificeert, maar elke fabrikant zelf laat bedenken.

Zoals hierboven beschreven, werd de 101-code gegenereerd door pfodDesignerV3, voornamelijk voor gebruik met pfodApp. pfodApp is niet zo kieskeurig over TX Notify als de Feather nRF52 uart-code. pfodApp werkt met de 101 zoals geprogrammeerd, maar de Feather nRF52 dringt aan op TX Notify, dus een kleine wijziging in de code is nodig om aan de Feather te voldoen.

Open de Arduino101_led_control.ino in de Arduino IDE en bovenaan vind je deze twee regels. De tweede regel is slechts een beschrijving van het kenmerk en heeft geen invloed op de werking.

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

Verander ze in

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

Programmeer vervolgens de 101 opnieuw met deze bewerkte versie, Arduino101_Notify_led_control.ino. Wanneer u vervolgens de Feather nRF52-scanner (central_bleuart_scanner.ino) opnieuw uitvoert, toont de seriële monitor de tweede schermafbeelding hierboven.

Geen fouten voor de Genuino 101 nu en de scanner drukt de code af die nodig is voor de Feather nRF52 bridge-schets, zodat deze verbinding maakt met de 101. De scanner controleert elk apparaat dat hij binnen bereik vindt. De rode led knippert één keer voor elk apparaat dat wordt gevonden met Nordic UART Service (TX Notify).

Stap 6: Aansluiten op een BLE-randapparaat

LED-indicaties:

De Feather nRF52 heeft twee leds, blauw en rood. Wanneer het bord is aangesloten op een BLE-apparaat, is de blauwe led constant, anders knippert hij. De scanner blijft niet verbonden met het apparaat, dus de blauwe led knippert meestal. De rode led knippert één keer voor elk apparaat van Nordic UART Service (TX Notify). Bij gebruik als scanner telt de rode led het aantal gevonden Nordic UART Service (TX Notify)-apparaten. Bij het lopen als een brug knippert de rode led eenmaal wanneer deze is aangesloten op het code BLE-adres.

Aansluiten op een BLE-randapparaat

Nu de scannerschets de details heeft opgeleverd voor het BLE-apparaat waarmee u verbinding wilt maken, kunt u de uitvoer kopiëren naar de central_bleuart_bridge.ino-schets. Bovenaan die schets vindt u de volgende code.

// Deze volgende drie regels code komen uit de output van 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;

Vervang de drie regels code door de uitvoer van de scanner voor het BLE-apparaat waarnaar u wilt overbruggen. Programmeer vervolgens de Feather nRF52 met de bewerkte central_bleuart_bridge.ino schets.

De schets van central_bleuart_bridge testen

Voordat u de HUZZAH ESP8266 weer aansluit op de Feather nRF52, moet u de verbinding met uw BLE-apparaat testen. Laat de Feather nRF52 aangesloten op uw Arduino IDE, open de Tools → Serial Monitor op 9600 baud en controleer vervolgens of uw doel-BLE-apparaat is ingeschakeld.

Wanneer de verbinding met uw BLE-apparaat tot stand is gebracht, zoals hierboven beschreven, zal de blauwe led constant oplichten en de rode led zal ongeveer elke 10sec knipperen. Hierdoor kunt u niet de verbinding tot stand brengen en in stand houden.

Vervolgens kunt u in de seriële monitor de commando's invoeren die u naar uw BLE-apparaat verwacht te sturen en kijken hoe het werkt en eventuele reacties controleren die het terugstuurt. Als alles in orde is, kunt u de HUZZAH ESP8266-module uitschakelen en aansluiten.

Stap 7: verbinding maken met het BLE-apparaat via wifi - alles samenbrengen

Nadat u de HUZZAH ESP8266-module hebt geprogrammeerd en getest met zijn bridge-code (Wifi_Bridge.ino) geconfigureerd voor uw netwerk-ssid en wachtwoord en IP EN de Feather nRF52 hebt geprogrammeerd en getest met zijn bridge-code (central_bleuart_bridge.ino) geconfigureerd met het adres van het BLE-apparaat en typ, dan kunt u ze samen aansluiten en een USB-voeding aansluiten op de Feather-module om ze allebei op te starten.

De rode led van de HUZZAH-module moet continu branden als deze verbinding maakt met uw lokale netwerkrouter en de Feather Blue-led moet continu branden als hij verbinding maakt met uw BLE-apparaat en de Feather Red-led moet ongeveer elke 10 seconden knipperen om aan te geven dat hij net aan is BLE-apparaat is aangesloten.

Open uw telnet-programma en maak verbinding met het IP-adres en de poort van de HUZZAH. De rode led van de HUZZAH moet langzaam knipperen om aan te geven dat uw programma verbinding heeft gemaakt en u moet via WiFi opdrachten naar uw BLE-apparaat sturen en kijken hoe het BLE-apparaat werkt en een reactie in uw telnet-venster zien. Onthoud dat als uw BLE-apparaat gedurende 60 seconden geen gegevens terugstuurt, de HUZZAH-code de verbinding verbreekt en de verbinding verbreekt, en de rode led van de HUZZAH gaat weer branden.

Stap 8: Help – Het werkt niet

Voer eerst de bovenstaande teststappen uit, Testen van de HUZZAH ESP2866 en Testen van de central_bleuart_bridge-schets.

Scanproblemen

Als de scanner uw BLE-apparaat niet kan vinden, is het ofwel te ver weg of maakt het geen reclame of is het al ergens mee verbonden. Probeer de scanner dichterbij te brengen en zet het apparaat aan en uit en schakel alle andere mobiele apparaten in de buurt uit die mogelijk een verbinding met het BLE-apparaat hebben.

Als u een scanneruitvoer als deze krijgt.

Verbonden met 98:4F:EE:0C:FC:8F Op zoek naar Nordic UART-service … Niet gevonden OF Niet vindbaar!!!!! Kan een Nordic UART-service niet identificeren !!!!!!! Als u een Nordic UART-service verwachtte, plaats de scanner dan dichter bij het BLE-apparaat !!!!

Het kan zijn dat u zich dicht genoeg bij het BLE-apparaat bevindt om het te detecteren, maar niet dicht genoeg om een servicedetectie uit te voeren om de Nordic UART-service te vinden. Probeer dichter bij het BLE-apparaat te komen.

Als laatste redmiddel kunt u gebruik maken van de gratis Nordic nRF Connect app voor Android of iOS. Die app heeft een beter bereik en gevoeligheid. Het zal u vertellen of het BLE-apparaat een Nordic UART-service heeft. U moet echter nog steeds de scanner laten werken en verbinding maken en de Nordic UART Serivice identificeren voordat u de Wifi2BLE-brug probeert te gebruiken, omdat deze code gebruikt die vergelijkbaar is met de scanner.

Als je dieper wilt graven, kun je de Adafruit Bluefruit LE Sniffer-module gebruiken om te zien wat er in de lucht is.

BLE-verbindingsproblemen

Als het je gelukt is om het BLE-apparaat te scannen, dan zijn de meest waarschijnlijke oorzaken van verbindingsproblemen I) het BLE-apparaat is te ver weg, II) er is al iets anders aangesloten op het BLE-apparaat

Problemen met wifi-verbinding

Als de rode led van de HUZZAH ESP8266 niet continu brandt, heeft deze geen verbinding met je netwerk via je router. Controleer de ssid en het wachtwoord die je hebt code in Wifi_Bridge.ino en gebruik de Fing-app Android of iOS om te controleren of het IP-adres dat je hebt toegewezen niet al wordt gebruikt. Probeer al uw computers en apparaten uit te schakelen en de router uit te schakelen (laat deze 20 seconden uit) en scan vervolgens opnieuw met Fing. Als de verbinding blijft wegvallen, onthoud dan de instelling voor de verbindingstime-out in de Wifi_Bridge.ino-code.

Stap 9: Uitbreidingen en conclusie

Het hier gepresenteerde project is de eenvoudigste versie. Er zijn een aantal mogelijke uitbreidingen zoals: -

  • De Feather nRF52 kan verbinding maken met maximaal 4 BLE-apparaten tegelijk, zodat u de code kunt wijzigen om meer geldige adressen toe te voegen en tot 4 apparaten te bedienen vanaf één wifi-verbinding. Zie de voorbeeldcode die bij de installatie van het Feather nRF52-bord wordt geleverd.
  • U kunt een gat in uw router slaan om overal op internet toegang te krijgen tot het BLE-apparaat. Zie DIY IoT-apparaten verbinden met internet met pfodApp.
  • U zou de code van Cheap/Simple Wifi Shield kunnen gebruiken om de WiFi-netwerkparameters voor de HUZZAH via een webpagina te configureren, zonder herprogrammering. U zou een configuratiedrukknop aan het circuit moeten toevoegen.
  • U kunt een configuratiedrukknop toevoegen (met dezelfde knop als hierboven) die de Feather nRF52 laat scannen naar BLE-apparaten met een Nordic UART (TX Notify) en vervolgens de verbindingsdetails opslaan voor degene met het sterkste signaal. Om het resultaat op te slaan, moet u de nffs-bibliotheek gebruiken die bij de installatie van het Adafruit nRF52-bord wordt geleverd.
  • U kunt een webpagina toevoegen aan de HUZZAH ESP8266-code om een aangepaste interface voor uw BLE-apparaat te bieden. U kunt ook pfodDesignerV3 en pfodApp gebruiken om een aangepaste interface toe te voegen zonder enige wijzigingen aan dit project.

Conclusie

Dit eenvoudige project biedt WiFi-toegang tot elke Bluetooth Low Energy (BLE) -module die Nordic's UART implementeert met TX Notify. De Wifi2BLE bridge is volledig transparant. Het geeft de wifi-gegevens gewoon door aan het BLE-apparaat en geeft de gegevens van het BLE-apparaat terug aan de wifi-verbinding.

De eenvoudige constructie en de gedetailleerde testinstructies maken dit een geschikt project voor beginners die toegang willen krijgen tot hun BLE-apparaat vanaf hun computer of van buiten het normale bereik van de BLE.

Dit project zal belangrijker worden zodra de BLE-apparaatsoftware de nieuwe Bluetooth V5 Mesh-specificatie inhaalt. Dan zorgt Wifi2BLE voor internettoegang tot je hele huisautomatisering.

Aanbevolen: